<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>12004</bug_id>
          
          <creation_ts>2006-12-27 13:33:44 -0800</creation_ts>
          <short_desc>Webkit doesnt handle omitting M at the start of path syntax well</short_desc>
          <delta_ts>2006-12-31 07:10:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Rob Buis">rwlbuis</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>39369</commentid>
    <comment_count>0</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-12-27 13:33:44 -0800</bug_when>
    <thetext>A path syntax like d=&apos;L200 0 L 200 200 L 0 200 Z L asdlkfjasdfkja&apos; causes these warnings:

CGPathAddLineToPoint: no current point.
CGPathAddLineToPoint: no current point.
CGPathAddLineToPoint: no current point.
CGPathCloseSubpath: no current point.
CGPathAddLineToPoint: no current point.
CGPathAddCurveToPoint: no current point.
CGPathAddLineToPoint: no current point.
CGPathAddLineToPoint: no current point.
CGPathAddLineToPoint: no current point.
CGPathCloseSubpath: no current point.
CGPathAddLineToPoint: no current point.
CGPathAddCurveToPoint: no current point.

Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38903</commentid>
    <comment_count>1</comment_count>
      <attachid>12127</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-12-30 12:59:01 -0800</bug_when>
    <thetext>Created attachment 12127
First attempt

The code changes are ok now I think, though the testcase may need some work.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38906</commentid>
    <comment_count>2</comment_count>
      <attachid>12127</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-12-30 14:40:41 -0800</bug_when>
    <thetext>Comment on attachment 12127
First attempt

The patch looks great.

We could always use more tests though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38713</commentid>
    <comment_count>3</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2006-12-31 07:10:51 -0800</bug_when>
    <thetext>Landed in r18489.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12127</attachid>
            <date>2006-12-30 12:59:01 -0800</date>
            <delta_ts>2006-12-30 14:40:41 -0800</delta_ts>
            <desc>First attempt</desc>
            <filename>12004-2.diff</filename>
            <type>text/plain</type>
            <size>48637</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE4NDg2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDYtMTItMzAgIFJvYiBCdWlzICA8YnVpc0Br
ZGUub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkYXB0ZWQgdGVzdGNhc2UgZm9yOgorICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjAwNAorICAgICAgICBXZWJraXQgZG9lc250IGhhbmRsZSBvbWl0dGlu
ZyBNIGF0IHRoZSBzdGFydCBvZiBwYXRoIHN5bnRheCB3ZWxsCisKKyAgICAgICAgKiBzdmcvY3Vz
dG9tL3BhdGgtYmFkLWRhdGEtZXhwZWN0ZWQuY2hlY2tzdW06CisgICAgICAgICogc3ZnL2N1c3Rv
bS9wYXRoLWJhZC1kYXRhLWV4cGVjdGVkLnBuZzoKKyAgICAgICAgKiBzdmcvY3VzdG9tL3BhdGgt
YmFkLWRhdGEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN2Zy9jdXN0b20vcGF0aC1iYWQtZGF0
YS5zdmc6CisKIDIwMDYtMTItMzAgIFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IHdlaW5pZy4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vcGF0aC1i
YWQtZGF0YS1leHBlY3RlZC5jaGVja3N1bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL3BhdGgtYmFkLWRhdGEtZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDE4NDg1KQor
KysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9wYXRoLWJhZC1kYXRhLWV4cGVjdGVkLmNoZWNrc3Vt
CSh3b3JraW5nIGNvcHkpCkBAIC0xICsxIEBACi0wOTRkMTZmNThhZTg2Y2Q5MDg1YTA3ZjM5OTA3
NDY5NwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzg1M2RlMDA1NjdkMTIxYmVhMGI3YmVj
ZTY2YTVkNjFjClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMv
c3ZnL2N1c3RvbS9wYXRoLWJhZC1kYXRhLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL3BhdGgtYmFkLWRhdGEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAx
ODQ4NSkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vcGF0aC1iYWQtZGF0YS1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSwzIEBACiBsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg3NTUKICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLSAgICBSZW5kZXJTVkdD
b250YWluZXIge3N2Z30gYXQgKDAsLTIzMy40MCkgc2l6ZSA2NzcuMzF4NDk0LjgyCi0gICAgICBS
ZW5kZXJQYXRoIHtwYXRofSBhdCAoMCwtMjMzLjQwKSBzaXplIDY3Ny4zMXg0OTQuODIgW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbZGF0YT0iTTYwMi43OCwyNjEuNDNDNjc3
LjMxLDEwMC4yMCw2MDIuNzksLTg5LjAyLDQzNi4zNCwtMTYxLjIxQzI2OS44OSwtMjMzLjQwLDc0
LjUzLC0xNjEuMjIsMC4wMCwtMC4wMCJdCisgICAgUmVuZGVyU1ZHQ29udGFpbmVyIHtzdmd9IGF0
ICgwLDApIHNpemUgMHgwCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3BhdGgtYmFkLWRh
dGEuc3ZnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vcGF0aC1iYWQtZGF0
YS5zdmcJKHJldmlzaW9uIDE4NDg2KQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9wYXRoLWJh
ZC1kYXRhLnN2Zwkod29ya2luZyBjb3B5KQpAQCAtNSw1ICs1LDcgQEAKICAgIHdpZHRoPSIyMDBt
bSIKICAgIGhlaWdodD0iMjAwbW0iCiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciPgotICAgPHBhdGggZD0iTSA2MDIuNzc3MSAyNjEuNDI1NCBBIDMxOC4wMzk5IDMwOC4wNDkx
IDAgASAxIDYwMi43NzcxIDI2MS40MjUzIi8+CisgICA8cGF0aCBzdHJva2U9InJlZCIgZD0iTSAw
IDAgTCAxMCAxMCAxMCIvPgorICAgPHBhdGggc3Ryb2tlPSJyZWQiIGQ9Ik0gMCAwIEwgMTAgMTAg
ASIvPgorICAgPHBhdGggc3Ryb2tlPSJyZWQiIGQ9Ik0gMCAwIEwgMTAsLCAxMCIvPgogPC9zdmc+
CkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTg0ODYpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDI4IEBACisyMDA2LTEyLTMwICBSb2IgQnVpcyAgPGJ1aXNAa2RlLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjAwNAorICAgICAgICBXZWJraXQgZG9lc250
IGhhbmRsZSBvbWl0dGluZyBNIGF0IHRoZSBzdGFydCBvZiBwYXRoIHN5bnRheCB3ZWxsCisKKyAg
ICAgICAgSW1wcm92ZSBwYXRoIHBhcnNpbmcgZXJyb3IgaGFuZGxpbmcuCisKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICoga3N2ZzIvc3ZnL1NW
R0xlbmd0aC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OnNldFZhbHVlQXNTdHJp
bmcpOgorICAgICAgICAqIGtzdmcyL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUGF0aFBhcnNlcjo6cGFyc2VTVkcpOgorICAgICAgICAqIGtzdmcyL3N2
Zy9TVkdQYXJzZXJVdGlsaXRpZXMuaDoKKyAgICAgICAgKiBrc3ZnMi9zdmcvU1ZHUGF0aEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OlNWR1BhdGhFbGVtZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0
ZSk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1BhdGhFbGVtZW50Lmg6CisgICAgICAgICoga3N2
ZzIvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlFbGVt
ZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgICoga3N2ZzIvc3ZnL1NWR1BvbHlF
bGVtZW50Lmg6CisgICAgICAgICoga3N2ZzIvc3ZnL3N2Z3BhdGhwYXJzZXIuY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIGtzdmcyL3N2Zy9zdmdwYXRocGFyc2VyLmg6IFJlbW92ZWQuCisKIDIwMDYt
MTItMzAgIFJvYiBCdWlzICA8YnVpc0BrZGUub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IHdl
aW5pZy4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiAxODQ4NSkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xOTYxLDggKzE5NjEsNiBAQAogCQlBODhBRDRBOTA5NTI0
OEYwMDAxREQxOTYgLyogU1ZHUGFpbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4QzBGODhCMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYWludC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4OEFENEFB
MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQYXRoRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjg4QzA4OTcwMUYzMDBCQTUxMTQgLyog
U1ZHUGF0aEVsZW1lbnQuY3BwICovOyB9OwogCQlBODhBRDRBQjA5NTI0OEYwMDAxREQxOTYgLyog
U1ZHUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4QzBGODhEMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRoRWxlbWVudC5oICovOyB9
OwotCQlBODhBRDRBQzA5NTI0OEYwMDAxREQxOTYgLyogc3ZncGF0aHBhcnNlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjg4RTA4OTcwMUYz
MDBCQTUxMTQgLyogc3ZncGF0aHBhcnNlci5jcHAgKi87IH07Ci0JCUE4OEFENEFEMDk1MjQ4RjAw
MDFERDE5NiAvKiBzdmdwYXRocGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjg4RjA4OTcwMUYzMDBCQTUxMTQgLyogc3ZncGF0aHBhcnNl
ci5oICovOyB9OwogCQlBODhBRDRBRTA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUGF0aFNlZ0FyYy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjg5
MDA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHUGF0aFNlZ0FyYy5jcHAgKi87IH07CiAJCUE4OEFENEFG
MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQYXRoU2VnQXJjLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEMwRjg5MTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZH
UGF0aFNlZ0FyYy5oICovOyB9OwogCQlBODhBRDRCMDA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUGF0
aFNlZ0Nsb3NlUGF0aC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEMwRjg5MjA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHUGF0aFNlZ0Nsb3NlUGF0aC5j
cHAgKi87IH07CkBAIC00OTMxLDggKzQ5MjksNiBAQAogCQlBOEMwRjg4QjA4OTcwMUYzMDBCQTUx
MTQgLyogU1ZHUGFpbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTVkdQYWludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY4OEMwODk3MDFGMzAwQkE1MTE0IC8qIFNWR1Bh
dGhFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU1ZHUGF0aEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQThDMEY4OEQwODk3MDFGMzAwQkE1MTE0
IC8qIFNWR1BhdGhFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU1ZHUGF0aEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07Ci0JCUE4QzBGODhFMDg5NzAxRjMwMEJBNTEx
NCAvKiBzdmdwYXRocGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gc3ZncGF0aHBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQlBOEMwRjg4RjA4OTcwMUYz
MDBCQTUxMTQgLyogc3ZncGF0aHBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHN2Z3BhdGhwYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4QzBGODkwMDg5NzAxRjMw
MEJBNTExNCAvKiBTVkdQYXRoU2VnQXJjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHUGF0aFNlZ0FyYy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBOEMwRjg5MTA4
OTcwMUYzMDBCQTUxMTQgLyogU1ZHUGF0aFNlZ0FyYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BhdGhTZWdBcmMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4QzBGODkyMDg5
NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRoU2VnQ2xvc2VQYXRoLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHUGF0aFNlZ0Nsb3NlUGF0
aC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwpAQCAtODMwNyw4ICs4MzAzLDYgQEAKIAkJCQlCMkU5NTQ4RTBBQjVGQkEzMDA3NkRFMzcg
LyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5pZGwgKi8sCiAJCQkJQThDMEY4OEMwODk3MDFGMzAw
QkE1MTE0IC8qIFNWR1BhdGhFbGVtZW50LmNwcCAqLywKIAkJCQlBOEMwRjg4RDA4OTcwMUYzMDBC
QTUxMTQgLyogU1ZHUGF0aEVsZW1lbnQuaCAqLywKLQkJCQlBOEMwRjg4RTA4OTcwMUYzMDBCQTUx
MTQgLyogc3ZncGF0aHBhcnNlci5jcHAgKi8sCi0JCQkJQThDMEY4OEYwODk3MDFGMzAwQkE1MTE0
IC8qIHN2Z3BhdGhwYXJzZXIuaCAqLywKIAkJCQlBOEMwRjg5RDA4OTcwMUYzMDBCQTUxMTQgLyog
U1ZHUGF0aFNlZy5oICovLAogCQkJCUE4QzBGODkwMDg5NzAxRjMwMEJBNTExNCAvKiBTVkdQYXRo
U2VnQXJjLmNwcCAqLywKIAkJCQlBOEMwRjg5MTA4OTcwMUYzMDBCQTUxMTQgLyogU1ZHUGF0aFNl
Z0FyYy5oICovLApAQCAtOTU1Miw3ICs5NTQ2LDYgQEAKIAkJCQlBODhBRDRBNzA5NTI0OEYwMDAx
REQxOTYgLyogU1ZHTnVtYmVyTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4QUQ0QTkwOTUy
NDhGMDAwMUREMTk2IC8qIFNWR1BhaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODhBRDRBQjA5
NTI0OEYwMDAxREQxOTYgLyogU1ZHUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4
OEFENEFEMDk1MjQ4RjAwMDFERDE5NiAvKiBzdmdwYXRocGFyc2VyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBODhBRDRBRjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUGF0aFNlZ0FyYy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTg4QUQ0QjEwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1BhdGhTZWdDbG9zZVBh
dGguaCBpbiBIZWFkZXJzICovLAogCQkJCUE4OEFENEIzMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQ
YXRoU2VnQ3VydmV0b0N1YmljLmggaW4gSGVhZGVycyAqLywKQEAgLTExMTM5LDcgKzExMTMyLDYg
QEAKIAkJCQlBODhBRDRBNjA5NTI0OEYwMDAxREQxOTYgLyogU1ZHTnVtYmVyTGlzdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBODhBRDRBODA5NTI0OEYwMDAxREQxOTYgLyogU1ZHUGFpbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4QUQ0QUEwOTUyNDhGMDAwMUREMTk2IC8qIFNWR1BhdGhF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4OEFENEFDMDk1MjQ4RjAwMDFERDE5NiAv
KiBzdmdwYXRocGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4OEFENEFFMDk1MjQ4RjAw
MDFERDE5NiAvKiBTVkdQYXRoU2VnQXJjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4OEFENEIw
MDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQYXRoU2VnQ2xvc2VQYXRoLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4OEFENEIyMDk1MjQ4RjAwMDFERDE5NiAvKiBTVkdQYXRoU2VnQ3VydmV0b0N1Ymlj
LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHTGVuZ3RoLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdMZW5ndGguY3BwCShyZXZpc2lv
biAxODQ4NSkKKysrIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR0xlbmd0aC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAi
U1ZHU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1N0eWxlZEVsZW1lbnQuaCIKLSNpbmNsdWRl
ICJzdmdwYXRocGFyc2VyLmgiCisjaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0aWVzLmgiCiAKICNp
bmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KQEAgLTI0MywxMCAr
MjQzLDEwIEBAIHZvaWQgU1ZHTGVuZ3RoOjpzZXRWYWx1ZUFzU3RyaW5nKGNvbnN0IFMKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgZG91YmxlIGNvbnZlcnRlZE51bWJlciA9IDA7Ci0gICAgRGVwcmVj
YXRlZFN0cmluZyBkZXBTdHJpbmcgPSBzLmRlcHJlY2F0ZWRTdHJpbmcoKTsKLSAgICBjb25zdCBj
aGFyKiBzdGFydCA9IGRlcFN0cmluZy5sYXRpbjEoKTsKLSAgICBwYXJzZUNvb3JkKHN0YXJ0LCBj
b252ZXJ0ZWROdW1iZXIpOwotICAgIAorICAgIGNvbnN0IFVDaGFyKiBwdHIgPSBzLmNoYXJhY3Rl
cnMoKTsKKyAgICBjb25zdCBVQ2hhciogZW5kID0gcHRyICsgcy5sZW5ndGgoKTsKKyAgICBwYXJz
ZU51bWJlcihwdHIsIGVuZCwgY29udmVydGVkTnVtYmVyLCBmYWxzZSk7CisKICAgICBtX3VuaXQg
PSBzdG9yZVVuaXQoZXh0cmFjdE1vZGUobV91bml0KSwgc3RyaW5nVG9MZW5ndGhUeXBlKHMpKTsK
ICAgICBtX3ZhbHVlSW5TcGVjaWZpZWRVbml0cyA9IGNvbnZlcnRlZE51bWJlcjsKIH0KSW5kZXg6
IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhcnNlclV0aWxpdGllcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmNwcAkocmV2aXNpb24gMTg0ODUp
CisrKyBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXJzZXJVdGlsaXRpZXMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzIsMTAgKzEzMiwxMCBAQCB2b2lkIFNWR1BvbHlQYXJzZXI6OnBhcnNlUG9pbnRz
KGNvbnN0IFN0CiAgICAgfQogfQogCi12b2lkIFNWR1BhdGhQYXJzZXI6OnBhcnNlU1ZHKGNvbnN0
IFN0cmluZyYgcywgYm9vbCBwcm9jZXNzKQorYm9vbCBTVkdQYXRoUGFyc2VyOjpwYXJzZVNWRyhj
b25zdCBTdHJpbmcmIHMsIGJvb2wgcHJvY2VzcykKIHsKICAgICBpZiAocy5pc0VtcHR5KCkpCi0g
ICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgY29uc3QgVUNoYXIq
IHB0ciA9IHMuY2hhcmFjdGVycygpOwogICAgIGNvbnN0IFVDaGFyKiBlbmQgPSBwdHIgKyBzLmxl
bmd0aCgpOwpAQCAtMTQ1LDYgKzE0NSw3IEBAIHZvaWQgU1ZHUGF0aFBhcnNlcjo6cGFyc2VTVkco
Y29uc3QgU3RyaW4KICAgICBib29sIGNsb3NlZCA9IHRydWU7CiAgICAgc2tpcE9wdGlvbmFsU3Bh
Y2VzKHB0ciwgZW5kKTsgLy8gc2tpcCBhbnkgbGVhZGluZyBzcGFjZXMKICAgICBjaGFyIGNvbW1h
bmQgPSAqKHB0cisrKSwgbGFzdENvbW1hbmQgPSAnICc7CisgICAgaWYgKGNvbW1hbmQgIT0gJ20n
ICYmIGNvbW1hbmQgIT0gJ00nKSByZXR1cm4gZmFsc2U7IC8vIHBhdGggbXVzdCBzdGFydCB3aXRo
IG1vdmV0bwogCiAgICAgc3VicGF0aHggPSBzdWJwYXRoeSA9IGN1cnggPSBjdXJ5ID0gY29udHJs
eCA9IGNvbnRybHkgPSAwLjA7CiAgICAgd2hpbGUgKDEpIHsKQEAgLTE1OSw5ICsxNjAsOSBAQCB2
b2lkIFNWR1BhdGhQYXJzZXI6OnBhcnNlU1ZHKGNvbnN0IFN0cmluCiAgICAgICAgICAgICBjYXNl
ICdNJzoKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBpZiAoIXBhcnNlTnVtYmVyKHB0
ciwgZW5kLCB0b3gpKQotICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIGlmICghcGFyc2VOdW1iZXIocHRy
LCBlbmQsIHRveSkpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgICAgICAgICBpZiAocHJvY2VzcykgewogICAg
ICAgICAgICAgICAgICAgICBzdWJwYXRoeCA9IGN1cnggPSByZWxhdGl2ZSA/IGN1cnggKyB0b3gg
OiB0b3g7CkBAIC0xNzcsOCArMTc4LDEwIEBAIHZvaWQgU1ZHUGF0aFBhcnNlcjo6cGFyc2VTVkco
Y29uc3QgU3RyaW4KICAgICAgICAgICAgICAgICByZWxhdGl2ZSA9IHRydWU7CiAgICAgICAgICAg
ICBjYXNlICdMJzoKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBwYXJzZU51bWJlcihw
dHIsIGVuZCwgdG94KTsKLSAgICAgICAgICAgICAgICBwYXJzZU51bWJlcihwdHIsIGVuZCwgdG95
KTsKKyAgICAgICAgICAgICAgICBpZiAoIXBhcnNlTnVtYmVyKHB0ciwgZW5kLCB0b3gpKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgaWYgKCFwYXJz
ZU51bWJlcihwdHIsIGVuZCwgdG95KSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MpIHsKICAgICAgICAgICAgICAgICAgICAg
Y3VyeCA9IHJlbGF0aXZlID8gY3VyeCArIHRveCA6IHRveDsKQEAgLTE5Miw3ICsxOTUsOCBAQCB2
b2lkIFNWR1BhdGhQYXJzZXI6OnBhcnNlU1ZHKGNvbnN0IFN0cmluCiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBjYXNlICdoJzoKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBwYXJz
ZU51bWJlcihwdHIsIGVuZCwgdG94KTsKKyAgICAgICAgICAgICAgICBpZiAoIXBhcnNlTnVtYmVy
KHB0ciwgZW5kLCB0b3gpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgICAgICAgICAgaWYgKHByb2Nlc3MpIHsKICAgICAgICAgICAgICAgICAgICAgY3VyeCA9IGN1
cnggKyB0b3g7CiAgICAgICAgICAgICAgICAgICAgIHN2Z0xpbmVUbyhjdXJ4LCBjdXJ5KTsKQEAg
LTIwMyw3ICsyMDcsOCBAQCB2b2lkIFNWR1BhdGhQYXJzZXI6OnBhcnNlU1ZHKGNvbnN0IFN0cmlu
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjYXNlICdIJzoKICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBwYXJzZU51bWJlcihwdHIsIGVuZCwgdG94KTsKKyAgICAgICAgICAgICAg
ICBpZiAoIXBhcnNlTnVtYmVyKHB0ciwgZW5kLCB0b3gpKQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MpIHsKICAgICAgICAgICAg
ICAgICAgICAgY3VyeCA9IHRveDsKICAgICAgICAgICAgICAgICAgICAgc3ZnTGluZVRvKGN1cngs
IGN1cnkpOwpAQCAtMjE0LDcgKzIxOSw4IEBAIHZvaWQgU1ZHUGF0aFBhcnNlcjo6cGFyc2VTVkco
Y29uc3QgU3RyaW4KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhc2UgJ3YnOgogICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIHBhcnNlTnVtYmVyKHB0ciwgZW5kLCB0b3kpOworICAg
ICAgICAgICAgICAgIGlmICghcGFyc2VOdW1iZXIocHRyLCBlbmQsIHRveSkpCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICBpZiAocHJvY2Vzcykgewog
ICAgICAgICAgICAgICAgICAgICBjdXJ5ID0gY3VyeSArIHRveTsKICAgICAgICAgICAgICAgICAg
ICAgc3ZnTGluZVRvKGN1cngsIGN1cnkpOwpAQCAtMjI1LDcgKzIzMSw4IEBAIHZvaWQgU1ZHUGF0
aFBhcnNlcjo6cGFyc2VTVkcoY29uc3QgU3RyaW4KICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGNhc2UgJ1YnOgogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHBhcnNlTnVtYmVyKHB0
ciwgZW5kLCB0b3kpOworICAgICAgICAgICAgICAgIGlmICghcGFyc2VOdW1iZXIocHRyLCBlbmQs
IHRveSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAg
ICBpZiAocHJvY2VzcykgewogICAgICAgICAgICAgICAgICAgICBjdXJ5ID0gdG95OwogICAgICAg
ICAgICAgICAgICAgICBzdmdMaW5lVG8oY3VyeCwgY3VyeSk7CkBAIC0yNTAsMTIgKzI1NywxOCBA
QCB2b2lkIFNWR1BhdGhQYXJzZXI6OnBhcnNlU1ZHKGNvbnN0IFN0cmluCiAgICAgICAgICAgICAg
ICAgcmVsYXRpdmUgPSB0cnVlOwogICAgICAgICAgICAgY2FzZSAnQyc6CiAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgcGFyc2VOdW1iZXIocHRyLCBlbmQsIHgxKTsKLSAgICAgICAgICAg
ICAgICBwYXJzZU51bWJlcihwdHIsIGVuZCwgeTEpOwotICAgICAgICAgICAgICAgIHBhcnNlTnVt
YmVyKHB0ciwgZW5kLCB4Mik7Ci0gICAgICAgICAgICAgICAgcGFyc2VOdW1iZXIocHRyLCBlbmQs
IHkyKTsKLSAgICAgICAgICAgICAgICBwYXJzZU51bWJlcihwdHIsIGVuZCwgdG94KTsKLSAgICAg
ICAgICAgICAgICBwYXJzZU51bWJlcihwdHIsIGVuZCwgdG95KTsKKyAgICAgICAgICAgICAgICBp
ZiAoIXBhcnNlTnVtYmVyKHB0ciwgZW5kLCB4MSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgICAgICAgICBpZiAoIXBhcnNlTnVtYmVyKHB0ciwgZW5kLCB5MSkp
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBpZiAo
IXBhcnNlTnVtYmVyKHB0ciwgZW5kLCB4MikpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgICAgICAgICBpZiAoIXBhcnNlTnVtYmVyKHB0ciwgZW5kLCB5MikpCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBpZiAoIXBh
cnNlTnVtYmVyKHB0ciwgZW5kLCB0b3gpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICAgICAgICAgaWYgKCFwYXJzZU51bWJlcihwdHIsIGVuZCwgdG95KSkKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgICAgICAgICAgaWYgKHBy
b2Nlc3MpIHsKICAgICAgICAgICAgICAgICAgICAgcHgxID0gcmVsYXRpdmUgPyBjdXJ4ICsgeDEg
OiB4MTsKQEAgLTI4MSwxMCArMjk0LDE0IEBAIHZvaWQgU1ZHUGF0aFBhcnNlcjo6cGFyc2VTVkco
Y29uc3QgU3RyaW4KICAgICAgICAgICAgICAgICByZWxhdGl2ZSA9IHRydWU7CiAgICAgICAgICAg
ICBjYXNlICdTJzoKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBwYXJzZU51bWJlcihw
dHIsIGVuZCwgeDIpOwotICAgICAgICAgICAgICAgIHBhcnNlTnVtYmVyKHB0ciwgZW5kLCB5Mik7
Ci0gICAgICAgICAgICAgICAgcGFyc2VOdW1iZXIocHRyLCBlbmQsIHRveCk7Ci0gICAgICAgICAg
ICAgICAgcGFyc2VOdW1iZXIocHRyLCBlbmQsIHRveSk7CisgICAgICAgICAgICAgICAgaWYgKCFw
YXJzZU51bWJlcihwdHIsIGVuZCwgeDIpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgICAgICAgICAgaWYgKCFwYXJzZU51bWJlcihwdHIsIGVuZCwgeTIpKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgaWYgKCFwYXJz
ZU51bWJlcihwdHIsIGVuZCwgdG94KSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICAgICAgICAgIGlmICghcGFyc2VOdW1iZXIocHRyLCBlbmQsIHRveSkpCisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICBpZiAoIShsYXN0
Q29tbWFuZCA9PSAnYycgfHwgbGFzdENvbW1hbmQgPT0gJ0MnIHx8CiAgICAgICAgICAgICAgICAg
ICAgICBsYXN0Q29tbWFuZCA9PSAncycgfHwgbGFzdENvbW1hbmQgPT0gJ1MnKSkgewogICAgICAg
ICAgICAgICAgICAgICBjb250cmx4ID0gY3VyeDsKQEAgLTMxNCwxMCArMzMxLDE0IEBAIHZvaWQg
U1ZHUGF0aFBhcnNlcjo6cGFyc2VTVkcoY29uc3QgU3RyaW4KICAgICAgICAgICAgICAgICByZWxh
dGl2ZSA9IHRydWU7CiAgICAgICAgICAgICBjYXNlICdRJzoKICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBwYXJzZU51bWJlcihwdHIsIGVuZCwgeDEpOwotICAgICAgICAgICAgICAgIHBh
cnNlTnVtYmVyKHB0ciwgZW5kLCB5MSk7Ci0gICAgICAgICAgICAgICAgcGFyc2VOdW1iZXIocHRy
LCBlbmQsIHRveCk7Ci0gICAgICAgICAgICAgICAgcGFyc2VOdW1iZXIocHRyLCBlbmQsIHRveSk7
CisgICAgICAgICAgICAgICAgaWYgKCFwYXJzZU51bWJlcihwdHIsIGVuZCwgeDEpKQorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgaWYgKCFwYXJzZU51
bWJlcihwdHIsIGVuZCwgeTEpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICAgICAgaWYgKCFwYXJzZU51bWJlcihwdHIsIGVuZCwgdG94KSkKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIGlmICghcGFyc2VOdW1i
ZXIocHRyLCBlbmQsIHRveSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzKSB7CiAgICAgICAgICAgICAgICAgICAgIHB4MSA9
IHJlbGF0aXZlID8gKGN1cnggKyAyICogKHgxICsgY3VyeCkpICogKDEuMCAvIDMuMCkgOiAoY3Vy
eCArIDIgKiB4MSkgKiAoMS4wIC8gMy4wKTsKQEAgLTM0Miw4ICszNjMsMTAgQEAgdm9pZCBTVkdQ
YXRoUGFyc2VyOjpwYXJzZVNWRyhjb25zdCBTdHJpbgogICAgICAgICAgICAgICAgIHJlbGF0aXZl
ID0gdHJ1ZTsKICAgICAgICAgICAgIGNhc2UgJ1QnOgogICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIHBhcnNlTnVtYmVyKHB0ciwgZW5kLCB0b3gpOwotICAgICAgICAgICAgICAgIHBhcnNl
TnVtYmVyKHB0ciwgZW5kLCB0b3kpOworICAgICAgICAgICAgICAgIGlmICghcGFyc2VOdW1iZXIo
cHRyLCBlbmQsIHRveCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgICAgICAgICBpZiAoIXBhcnNlTnVtYmVyKHB0ciwgZW5kLCB0b3kpKQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgaWYgKCEobGFzdENvbW1hbmQg
PT0gJ3EnIHx8IGxhc3RDb21tYW5kID09ICdRJyB8fAogICAgICAgICAgICAgICAgICAgICAgbGFz
dENvbW1hbmQgPT0gJ3QnIHx8IGxhc3RDb21tYW5kID09ICdUJykpIHsKICAgICAgICAgICAgICAg
ICAgICAgY29udHJseCA9IGN1cng7CkBAIC0zNzgsMTUgKzQwMSwyMiBAQCB2b2lkIFNWR1BhdGhQ
YXJzZXI6OnBhcnNlU1ZHKGNvbnN0IFN0cmluCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg
ICAgYm9vbCBsYXJnZUFyYywgc3dlZXA7CiAgICAgICAgICAgICAgICAgZG91YmxlIGFuZ2xlLCBy
eCwgcnk7Ci0gICAgICAgICAgICAgICAgcGFyc2VOdW1iZXIocHRyLCBlbmQsIHJ4KTsKLSAgICAg
ICAgICAgICAgICBwYXJzZU51bWJlcihwdHIsIGVuZCwgcnkpOwotICAgICAgICAgICAgICAgIHBh
cnNlTnVtYmVyKHB0ciwgZW5kLCBhbmdsZSk7Ci0gICAgICAgICAgICAgICAgcGFyc2VOdW1iZXIo
cHRyLCBlbmQsIHRveCk7CisgICAgICAgICAgICAgICAgaWYgKCFwYXJzZU51bWJlcihwdHIsIGVu
ZCwgcngpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAg
ICAgaWYgKCFwYXJzZU51bWJlcihwdHIsIGVuZCwgcnkpKQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgaWYgKCFwYXJzZU51bWJlcihwdHIsIGVuZCwg
YW5nbGUpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAg
ICAgaWYgKCFwYXJzZU51bWJlcihwdHIsIGVuZCwgdG94KSkKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIGxhcmdlQXJjID0gdG94ID09IDE7Ci0gICAg
ICAgICAgICAgICAgcGFyc2VOdW1iZXIocHRyLCBlbmQsIHRveCk7CisgICAgICAgICAgICAgICAg
aWYgKCFwYXJzZU51bWJlcihwdHIsIGVuZCwgdG94KSkKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIHN3ZWVwID0gdG94ID09IDE7Ci0gICAgICAgICAg
ICAgICAgcGFyc2VOdW1iZXIocHRyLCBlbmQsIHRveCk7Ci0gICAgICAgICAgICAgICAgcGFyc2VO
dW1iZXIocHRyLCBlbmQsIHRveSk7CisgICAgICAgICAgICAgICAgaWYgKCFwYXJzZU51bWJlcihw
dHIsIGVuZCwgdG94KSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAgICAgICAgIGlmICghcGFyc2VOdW1iZXIocHRyLCBlbmQsIHRveSkpCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAgICAgICAgIC8vIFNwZWM6IHJhZGlpIGFy
ZSBub25uZWdhdGl2ZSBudW1iZXJzCiAgICAgICAgICAgICAgICAgcnggPSBmYWJzKHJ4KTsKQEAg
LTQwMCwxMiArNDMwLDEyIEBAIHZvaWQgU1ZHUGF0aFBhcnNlcjo6cGFyc2VTVkcoY29uc3QgU3Ry
aW4KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IEFuIGVycm9yIHNob3VsZCBnbyB0byB0aGUgSmF2YVNjcmlwdCBjb25zb2xlLCBv
ciB0aGUgbGlrZS4KLSAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGxhc3RDb21tYW5kID0gY29tbWFuZDsKIAog
ICAgICAgICBpZiAocHRyID49IGVuZCkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOwogCiAgICAgICAgIGlmICgqcHRyID09ICcrJyB8fCAqcHRyID09ICctJyB8
fCAoKnB0ciA+PSAnMCcgJiYgKnB0ciA8PSAnOScpKSB7CiAgICAgICAgICAgICAvLyB0aGVyZSBh
cmUgc3RpbGwgY29vcmRzIGluIHRoaXMgY29tbWFuZApAQCAtNDEzLDggKzQ0Myw3IEBAIHZvaWQg
U1ZHUGF0aFBhcnNlcjo6cGFyc2VTVkcoY29uc3QgU3RyaW4KICAgICAgICAgICAgICAgICBjb21t
YW5kID0gJ0wnOwogICAgICAgICAgICAgZWxzZSBpZiAoY29tbWFuZCA9PSAnbScpCiAgICAgICAg
ICAgICAgICAgY29tbWFuZCA9ICdsJzsKLSAgICAgICAgfQotICAgICAgICBlbHNlCisgICAgICAg
IH0gZWxzZQogICAgICAgICAgICAgY29tbWFuZCA9ICoocHRyKyspOwogCiAgICAgICAgIGlmIChs
YXN0Q29tbWFuZCAhPSAnQycgJiYgbGFzdENvbW1hbmQgIT0gJ2MnICYmCkBAIC00MjUsNiArNDU0
LDggQEAgdm9pZCBTVkdQYXRoUGFyc2VyOjpwYXJzZVNWRyhjb25zdCBTdHJpbgogICAgICAgICAg
ICAgY29udHJseSA9IGN1cnk7CiAgICAgICAgIH0KICAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7
CiB9CiAKIC8vIFRoaXMgd29ya3MgYnkgY29udmVydGluZyB0aGUgU1ZHIGFyYyB0byAic2ltcGxl
IiBiZXppZXJzLgpJbmRleDogV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgJKHJl
dmlzaW9uIDE4NDg2KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGFyc2VyVXRpbGl0aWVzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTkwLDcgKzkwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUKICAgICB7
CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIH5TVkdQYXRoUGFyc2VyKCkgeyB9Ci0gICAg
ICAgIHZvaWQgcGFyc2VTVkcoY29uc3QgU3RyaW5nICZkLCBib29sIHByb2Nlc3MgPSBmYWxzZSk7
CisgICAgICAgIGJvb2wgcGFyc2VTVkcoY29uc3QgU3RyaW5nICZkLCBib29sIHByb2Nlc3MgPSBm
YWxzZSk7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzdmdNb3ZlVG8o
ZG91YmxlIHgxLCBkb3VibGUgeTEsIGJvb2wgY2xvc2VkLCBib29sIGFicyA9IHRydWUpID0gMDsK
SW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAJKHJldmlzaW9uIDE4NDg1KQor
KysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00Niw3ICs0Niw3IEBAIFNWR1BhdGhFbGVtZW50OjpTVkdQYXRoRWxlbWVudChjb25zdCBRdWEK
ICAgICAsIFNWR1Rlc3RzKCkKICAgICAsIFNWR0xhbmdTcGFjZSgpCiAgICAgLCBTVkdFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkKCkKLSAgICAsIERlcHJlY2F0ZWRTVkdQYXRoUGFyc2VyKCkKKyAg
ICAsIFNWR1BhdGhQYXJzZXIoKQogICAgICwgbV9wYXRoTGVuZ3RoKDAuMCkKIHsKIH0KQEAgLTM0
NCw3ICszNDQsOCBAQCB2b2lkIFNWR1BhdGhFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0CiAg
ICAgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdOYW1lczo6ZEF0dHIpIHsKICAgICAgICAgRXhjZXB0
aW9uQ29kZSBlYzsKICAgICAgICAgcGF0aFNlZ0xpc3QoKS0+Y2xlYXIoZWMpOwotICAgICAgICBw
YXJzZVNWRyhhdHRyLT52YWx1ZSgpLmRlcHJlY2F0ZWRTdHJpbmcoKSwgdHJ1ZSk7CisgICAgICAg
IGlmICghcGFyc2VTVkcoYXR0ci0+dmFsdWUoKSwgdHJ1ZSkpCisgICAgICAgICAgICBwYXRoU2Vn
TGlzdCgpLT5jbGVhcihlYyk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKFNWR1Rlc3RzOjpw
YXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOwogICAgICAgICBpZiAoU1ZHTGFuZ1Nw
YWNlOjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKSkgcmV0dXJuOwpJbmRleDogV2ViQ29yZS9r
c3ZnMi9zdmcvU1ZHUGF0aEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2
Zy9TVkdQYXRoRWxlbWVudC5oCShyZXZpc2lvbiAxODQ4NSkKKysrIFdlYkNvcmUva3N2ZzIvc3Zn
L1NWR1BhdGhFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDkgKzI4LDkgQEAKICNpbmNs
dWRlICJTVkdBbmltYXRlZFBhdGhEYXRhLmgiCiAjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZC5oIgogI2luY2x1ZGUgIlNWR0xhbmdTcGFjZS5oIgorI2luY2x1ZGUgIlNWR1Bh
cnNlclV0aWxpdGllcy5oIgogI2luY2x1ZGUgIlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50
LmgiCiAjaW5jbHVkZSAiU1ZHVGVzdHMuaCIKLSNpbmNsdWRlICJzdmdwYXRocGFyc2VyLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlCiB7CkBAIC01OSw3ICs1OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHTGFuZ1NwYWNlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHQW5pbWF0ZWRQYXRoRGF0YSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBEZXByZWNhdGVkU1ZHUGF0aFBhcnNl
cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1BhdGhQYXJzZXIKICAgICB7
CiAgICAgcHVibGljOgogICAgICAgICBTVkdQYXRoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqKTsKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvbHlFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAJKHJl
dmlzaW9uIDE4NDg1KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02NSw3ICs2NSw3IEBAIHZvaWQgU1ZHUG9seUVsZW1lbnQ6OnBhcnNl
TWFwcGVkQXR0cmlidXQKICAgICBpZiAoYXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjpwb2ludHNB
dHRyKSB7CiAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgICAgICBwb2ludHMoKS0+
Y2xlYXIoZWMpOwotICAgICAgICBwYXJzZVBvaW50cyhhdHRyLT52YWx1ZSgpLmRlcHJlY2F0ZWRT
dHJpbmcoKSk7CisgICAgICAgIHBhcnNlUG9pbnRzKGF0dHItPnZhbHVlKCkpOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGlmIChTVkdUZXN0czo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoYXR0cikpCiAg
ICAgICAgICAgICByZXR1cm47CkluZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9TVkdQb2x5RWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUva3N2ZzIvc3ZnL1NWR1BvbHlFbGVtZW50LmgJKHJl
dmlzaW9uIDE4NDg1KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvU1ZHUG9seUVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMjgsOSArMjgsOSBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVkUG9pbnRz
LmgiCiAjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oIgogI2luY2x1ZGUg
IlNWR0xhbmdTcGFjZS5oIgorI2luY2x1ZGUgIlNWR1BhcnNlclV0aWxpdGllcy5oIgogI2luY2x1
ZGUgIlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHVGVzdHMu
aCIKLSNpbmNsdWRlICJzdmdwYXRocGFyc2VyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlCiB7Cklu
ZGV4OiBXZWJDb3JlL2tzdmcyL3N2Zy9zdmdwYXRocGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2tzdmcyL3N2Zy9zdmdwYXRocGFyc2VyLmNwcAkocmV2aXNpb24gMTg0ODUpCisrKyBX
ZWJDb3JlL2tzdmcyL3N2Zy9zdmdwYXRocGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1
OTkgKzAsMCBAQAotLyogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0gICBD
b3B5cmlnaHQgKEMpIDIwMDIsIDIwMDMgVGhlIEthcmJvbiBEZXZlbG9wZXJzCi0gICAgICAgICAg
ICAgICAgIDIwMDYgICAgICAgQWxleGFuZGVyIEtlbGxldHQgPGx5cGFub3ZAa2RlLm9yZz4KLQot
ICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgotICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKLSAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
Ci0gICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQotICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCi0KLSAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAz
MzAsCi0gICBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpZmRlZiBTVkdfU1VQUE9SVAotI2luY2x1ZGUgInN2Z3BhdGhwYXJzZXIuaCIKLSNp
bmNsdWRlICJEZXByZWNhdGVkU3RyaW5nLmgiCi0jaW5jbHVkZSA8bWF0aC5oPgotI2luY2x1ZGUg
PHd0Zi9NYXRoRXh0cmFzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLy8gU1ZHIGFsbG93
cyBzZXZlcmFsIGRpZmZlcmVudCB3aGl0ZXNwYWNlIGNoYXJhY3RlcnM6Ci0vLyBodHRwOi8vd3d3
LnczLm9yZy9UUi9TVkcvcGF0aHMuaHRtbCNQYXRoRGF0YUJORgotc3RhdGljIGlubGluZSBib29s
IGlzV2hpdGVzcGFjZShjaGFyIGMpIHsKLSAgICByZXR1cm4gKGMgPT0gJyAnIHx8IGMgPT0gJ1x0
JyB8fCBjID09ICdcbicgfHwgYyA9PSAnXHInKTsKLX0KLQotLy8gQWxsIHN0cmluZ3MgYXJlIGFz
c3VtZWQgdG8gYmUgbnVsbCB0ZXJtaW5hdGVkCi1zdGF0aWMgaW5saW5lIGJvb2wgc2tpcE9wdGlv
bmFsU3BhY2VzKGNvbnN0IGNoYXIqJiBwdHIpIC8vIHRydWUgbWVhbnMgImZvdW5kIHNwYWNlIgot
ewotICAgIGlmICghaXNXaGl0ZXNwYWNlKCpwdHIpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgd2hpbGUgKGlzV2hpdGVzcGFjZSgqcHRyKSkKLSAgICAgICAgcHRyKys7Ci0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBza2lwT3B0aW9uYWxTcGFjZXNPckNvbW1h
KGNvbnN0IGNoYXIqJiBwdHIpCi17Ci0gICAgaWYgKCFpc1doaXRlc3BhY2UoKnB0cikgJiYgKnB0
ciAhPSAnLCcpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBza2lwT3B0aW9uYWxTcGFjZXMo
cHRyKTsKLSAgICBpZiAoKnB0ciA9PSAnLCcpIHsKLSAgICAgICAgcHRyKys7Ci0gICAgICAgIHNr
aXBPcHRpb25hbFNwYWNlcyhwdHIpOwotICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotCi1j
b25zdCBjaGFyKiBwYXJzZUNvb3JkKGNvbnN0IGNoYXIqIHB0ciwgZG91YmxlICZudW1iZXIpCi17
Ci0gICAgaW50IGludGVnZXIsIGV4cG9uZW50OwotICAgIGRvdWJsZSBkZWNpbWFsLCBmcmFjOwot
ICAgIGludCBzaWduLCBleHBzaWduOwotCi0gICAgZXhwb25lbnQgPSAwOwotICAgIGludGVnZXIg
PSAwOwotICAgIGZyYWMgPSAxLjA7Ci0gICAgZGVjaW1hbCA9IDA7Ci0gICAgc2lnbiA9IDE7Ci0g
ICAgZXhwc2lnbiA9IDE7Ci0KLSAgICAvLyByZWFkIHRoZSBzaWduCi0gICAgaWYgKCpwdHIgPT0g
JysnKQotICAgICAgICBwdHIrKzsKLSAgICBlbHNlIGlmICgqcHRyID09ICctJykgewotICAgICAg
ICBwdHIrKzsKLSAgICAgICAgc2lnbiA9IC0xOwotICAgIH0KLSAgICAvLyByZWFkIHRoZSBpbnRl
Z2VyIHBhcnQKLSAgICB3aGlsZSgqcHRyICE9ICdcMCcgJiYgKnB0ciA+PSAnMCcgJiYgKnB0ciA8
PSAnOScpCi0gICAgICAgIGludGVnZXIgPSAoaW50ZWdlciAqIDEwKSArICoocHRyKyspIC0gJzAn
OwotCi0gICAgaWYgKCpwdHIgPT0gJy4nKSB7IC8vIHJlYWQgdGhlIGRlY2ltYWxzCi0gICAgICAg
IHB0cisrOwotICAgICAgICB3aGlsZSgqcHRyICE9ICdcMCcgJiYgKnB0ciA+PSAnMCcgJiYgKnB0
ciA8PSAnOScpCi0gICAgICAgICAgICBkZWNpbWFsICs9ICgqKHB0cisrKSAtICcwJykgKiAoZnJh
YyAqPSAwLjEpOwotICAgIH0KLQotICAgIGlmICgqcHRyID09ICdlJyB8fCAqcHRyID09ICdFJykg
eyAvLyByZWFkIHRoZSBleHBvbmVudCBwYXJ0Ci0gICAgICAgIHB0cisrOwotCi0gICAgICAgIC8v
IHJlYWQgdGhlIHNpZ24gb2YgdGhlIGV4cG9uZW50Ci0gICAgICAgIGlmICgqcHRyID09ICcrJykK
LSAgICAgICAgICAgIHB0cisrOwotICAgICAgICBlbHNlIGlmICgqcHRyID09ICctJykgewotICAg
ICAgICAgICAgcHRyKys7Ci0gICAgICAgICAgICBleHBzaWduID0gLTE7Ci0gICAgICAgIH0KLQot
ICAgICAgICBleHBvbmVudCA9IDA7Ci0gICAgICAgIHdoaWxlKCpwdHIgIT0gJ1wwJyAmJiAqcHRy
ID49ICcwJyAmJiAqcHRyIDw9ICc5JykgewotICAgICAgICAgICAgZXhwb25lbnQgKj0gMTA7Ci0g
ICAgICAgICAgICBleHBvbmVudCArPSAqcHRyIC0gJzAnOwotICAgICAgICAgICAgcHRyKys7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICBudW1iZXIgPSBpbnRlZ2VyICsgZGVjaW1hbDsKLSAgICBu
dW1iZXIgKj0gc2lnbiAqIHBvdygxMC4wLCBleHBzaWduICogZXhwb25lbnQpOwotCi0gICAgc2tp
cE9wdGlvbmFsU3BhY2VzT3JDb21tYShwdHIpOwotCi0gICAgcmV0dXJuIHB0cjsKLX0KLQotdm9p
ZCBTVkdQb2x5UGFyc2VyOjpwYXJzZVBvaW50cyhjb25zdCBEZXByZWNhdGVkU3RyaW5nJiBzKSBj
b25zdAotewotICAgIGlmIChzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIERlcHJl
Y2F0ZWRTdHJpbmcgcG9pbnREYXRhID0gczsKLSAgICBjb25zdCBjaGFyKiBjdXJyU2VnbWVudCA9
IHBvaW50RGF0YS5sYXRpbjEoKTsKLSAgICBjb25zdCBjaGFyKiBlb1N0cmluZyA9IHBvaW50RGF0
YS5sYXRpbjEoKSArIHBvaW50RGF0YS5sZW5ndGgoKTsKLSAgICAKLSAgICBza2lwT3B0aW9uYWxT
cGFjZXMoY3VyclNlZ21lbnQpOwotICAgIAotICAgIGludCBzZWdtZW50TnVtID0gMDsKLSAgICB3
aGlsZSAoY3VyclNlZ21lbnQgPCBlb1N0cmluZykgewotICAgICAgICBjb25zdCBjaGFyKiBwcmV2
U2VnbWVudCA9IGN1cnJTZWdtZW50OwotICAgICAgICBkb3VibGUgeFBvcyA9IDA7Ci0gICAgICAg
IGN1cnJTZWdtZW50ID0gcGFyc2VDb29yZChjdXJyU2VnbWVudCwgeFBvcyk7IAotICAgICAgICBp
ZiAoY3VyclNlZ21lbnQgPT0gcHJldlNlZ21lbnQpCi0gICAgICAgICAgICBicmVhazsKLQotICAg
ICAgICBwcmV2U2VnbWVudCA9IGN1cnJTZWdtZW50OwotICAgICAgICBkb3VibGUgeVBvcyA9IDA7
Ci0gICAgICAgIGN1cnJTZWdtZW50ID0gcGFyc2VDb29yZChjdXJyU2VnbWVudCwgeVBvcyk7Ci0g
ICAgICAgIGlmIChjdXJyU2VnbWVudCA9PSBwcmV2U2VnbWVudCkKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgCi0gICAgICAgIHN2Z1BvbHlUbyh4UG9zLCB5UG9zLCBzZWdtZW50TnVt
KyspOwotICAgIH0KLX0KLQotdm9pZCBEZXByZWNhdGVkU1ZHUGF0aFBhcnNlcjo6cGFyc2VTVkco
Y29uc3QgRGVwcmVjYXRlZFN0cmluZyYgcywgYm9vbCBwcm9jZXNzKQotewotICAgIGlmIChzLmlz
RW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRGVwcmVjYXRlZFN0cmluZyBkID0gczsK
LSAgICBjb25zdCBjaGFyKiBwdHIgPSBkLmxhdGluMSgpOwotICAgIGNvbnN0IGNoYXIqIGVuZCA9
IGQubGF0aW4xKCkgKyBkLmxlbmd0aCgpICsgMTsKLQotICAgIGRvdWJsZSBjb250cmx4LCBjb250
cmx5LCBjdXJ4LCBjdXJ5LCBzdWJwYXRoeCwgc3VicGF0aHksIHRveCwgdG95LCB4MSwgeTEsIHgy
LCB5MiwgeGMsIHljOwotICAgIGRvdWJsZSBweDEsIHB5MSwgcHgyLCBweTIsIHB4MywgcHkzOwot
ICAgIGJvb2wgY2xvc2VkID0gdHJ1ZTsKLSAgICBza2lwT3B0aW9uYWxTcGFjZXMocHRyKTsgLy8g
c2tpcCBhbnkgbGVhZGluZyBzcGFjZXMKLSAgICBjaGFyIGNvbW1hbmQgPSAqKHB0cisrKSwgbGFz
dENvbW1hbmQgPSAnICc7Ci0KLSAgICBzdWJwYXRoeCA9IHN1YnBhdGh5ID0gY3VyeCA9IGN1cnkg
PSBjb250cmx4ID0gY29udHJseSA9IDAuMDsKLSAgICB3aGlsZShwdHIgPCBlbmQpIHsKLSAgICAg
ICAgc2tpcE9wdGlvbmFsU3BhY2VzKHB0cik7IC8vIHNraXAgc3BhY2VzIGJldHdlZW4gY29tbWFu
ZCBhbmQgZmlyc3QgY29vcmQKLQotICAgICAgICBib29sIHJlbGF0aXZlID0gZmFsc2U7Ci0KLSAg
ICAgICAgc3dpdGNoKGNvbW1hbmQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGNhc2UgJ20nOgot
ICAgICAgICAgICAgICAgIHJlbGF0aXZlID0gdHJ1ZTsKLSAgICAgICAgICAgIGNhc2UgJ00nOgot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHB0ciA9IHBhcnNlQ29vcmQocHRyLCB0b3gp
OwotICAgICAgICAgICAgICAgIHB0ciA9IHBhcnNlQ29vcmQocHRyLCB0b3kpOwotCi0gICAgICAg
ICAgICAgICAgaWYgKHByb2Nlc3MpIHsKLSAgICAgICAgICAgICAgICAgICAgc3VicGF0aHggPSBj
dXJ4ID0gcmVsYXRpdmUgPyBjdXJ4ICsgdG94IDogdG94OwotICAgICAgICAgICAgICAgICAgICBz
dWJwYXRoeSA9IGN1cnkgPSByZWxhdGl2ZSA/IGN1cnkgKyB0b3kgOiB0b3k7Ci0KLSAgICAgICAg
ICAgICAgICAgICAgc3ZnTW92ZVRvKGN1cngsIGN1cnksIGNsb3NlZCk7Ci0gICAgICAgICAgICAg
ICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHN2Z01vdmVUbyh0b3gsIHRveSwgY2xvc2Vk
LCAhcmVsYXRpdmUpOwotICAgICAgICAgICAgICAgIGNsb3NlZCA9IGZhbHNlOwotICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAnbCc6Ci0gICAg
ICAgICAgICAgICAgcmVsYXRpdmUgPSB0cnVlOwotICAgICAgICAgICAgY2FzZSAnTCc6Ci0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcHRyID0gcGFyc2VDb29yZChwdHIsIHRveCk7Ci0g
ICAgICAgICAgICAgICAgcHRyID0gcGFyc2VDb29yZChwdHIsIHRveSk7Ci0KLSAgICAgICAgICAg
ICAgICBpZiAocHJvY2VzcykgewotICAgICAgICAgICAgICAgICAgICBjdXJ4ID0gcmVsYXRpdmUg
PyBjdXJ4ICsgdG94IDogdG94OwotICAgICAgICAgICAgICAgICAgICBjdXJ5ID0gcmVsYXRpdmUg
PyBjdXJ5ICsgdG95IDogdG95OwotCi0gICAgICAgICAgICAgICAgICAgIHN2Z0xpbmVUbyhjdXJ4
LCBjdXJ5KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgICAgICBzdmdMaW5lVG8odG94LCB0b3ksICFyZWxhdGl2ZSk7Ci0gICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYXNlICdoJzoKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBwdHIgPSBwYXJzZUNvb3JkKHB0ciwgdG94KTsKLSAg
ICAgICAgICAgICAgICBpZiAocHJvY2VzcykgewotICAgICAgICAgICAgICAgICAgICBjdXJ4ID0g
Y3VyeCArIHRveDsKLSAgICAgICAgICAgICAgICAgICAgc3ZnTGluZVRvKGN1cngsIGN1cnkpOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
ICAgIHN2Z0xpbmVUb0hvcml6b250YWwodG94LCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjYXNlICdIJzoKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBwdHIgPSBwYXJzZUNvb3JkKHB0ciwgdG94KTsKLSAgICAgICAgICAg
ICAgICBpZiAocHJvY2VzcykgewotICAgICAgICAgICAgICAgICAgICBjdXJ4ID0gdG94OwotICAg
ICAgICAgICAgICAgICAgICBzdmdMaW5lVG8oY3VyeCwgY3VyeSk7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgc3ZnTGluZVRvSG9y
aXpvbnRhbCh0b3gpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgY2FzZSAndic6Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcHRyID0g
cGFyc2VDb29yZChwdHIsIHRveSk7Ci0gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MpIHsKLSAg
ICAgICAgICAgICAgICAgICAgY3VyeSA9IGN1cnkgKyB0b3k7Ci0gICAgICAgICAgICAgICAgICAg
IHN2Z0xpbmVUbyhjdXJ4LCBjdXJ5KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBzdmdMaW5lVG9WZXJ0aWNhbCh0b3ksIGZhbHNl
KTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNh
c2UgJ1YnOgotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHB0ciA9IHBhcnNlQ29vcmQo
cHRyLCB0b3kpOwotICAgICAgICAgICAgICAgIGlmIChwcm9jZXNzKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGN1cnkgPSB0b3k7Ci0gICAgICAgICAgICAgICAgICAgIHN2Z0xpbmVUbyhjdXJ4LCBj
dXJ5KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgICAgICBzdmdMaW5lVG9WZXJ0aWNhbCh0b3kpOwotICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAneic6Ci0gICAgICAgICAgICBjYXNl
ICdaJzoKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAvLyByZXNldCBjdXJ4LCBjdXJ5
IGZvciBuZXh0IHBhdGgKLSAgICAgICAgICAgICAgICBpZiAocHJvY2VzcykgewotICAgICAgICAg
ICAgICAgICAgICBjdXJ4ID0gc3VicGF0aHg7Ci0gICAgICAgICAgICAgICAgICAgIGN1cnkgPSBz
dWJwYXRoeTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY2xvc2VkID0gdHJ1
ZTsKLSAgICAgICAgICAgICAgICBzdmdDbG9zZVBhdGgoKTsKLSAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgJ2MnOgotICAgICAgICAgICAgICAg
IHJlbGF0aXZlID0gdHJ1ZTsKLSAgICAgICAgICAgIGNhc2UgJ0MnOgotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIHB0ciA9IHBhcnNlQ29vcmQocHRyLCB4MSk7Ci0gICAgICAgICAgICAg
ICAgcHRyID0gcGFyc2VDb29yZChwdHIsIHkxKTsKLSAgICAgICAgICAgICAgICBwdHIgPSBwYXJz
ZUNvb3JkKHB0ciwgeDIpOwotICAgICAgICAgICAgICAgIHB0ciA9IHBhcnNlQ29vcmQocHRyLCB5
Mik7Ci0gICAgICAgICAgICAgICAgcHRyID0gcGFyc2VDb29yZChwdHIsIHRveCk7Ci0gICAgICAg
ICAgICAgICAgcHRyID0gcGFyc2VDb29yZChwdHIsIHRveSk7Ci0KLSAgICAgICAgICAgICAgICBp
ZiAocHJvY2VzcykgewotICAgICAgICAgICAgICAgICAgICBweDEgPSByZWxhdGl2ZSA/IGN1cngg
KyB4MSA6IHgxOwotICAgICAgICAgICAgICAgICAgICBweTEgPSByZWxhdGl2ZSA/IGN1cnkgKyB5
MSA6IHkxOwotICAgICAgICAgICAgICAgICAgICBweDIgPSByZWxhdGl2ZSA/IGN1cnggKyB4MiA6
IHgyOwotICAgICAgICAgICAgICAgICAgICBweTIgPSByZWxhdGl2ZSA/IGN1cnkgKyB5MiA6IHky
OwotICAgICAgICAgICAgICAgICAgICBweDMgPSByZWxhdGl2ZSA/IGN1cnggKyB0b3ggOiB0b3g7
Ci0gICAgICAgICAgICAgICAgICAgIHB5MyA9IHJlbGF0aXZlID8gY3VyeSArIHRveSA6IHRveTsK
LQotICAgICAgICAgICAgICAgICAgICBzdmdDdXJ2ZVRvQ3ViaWMocHgxLCBweTEsIHB4MiwgcHky
LCBweDMsIHB5Myk7Ci0KLSAgICAgICAgICAgICAgICAgICAgY29udHJseCA9IHJlbGF0aXZlID8g
Y3VyeCArIHgyIDogeDI7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRybHkgPSByZWxhdGl2ZSA/
IGN1cnkgKyB5MiA6IHkyOwotICAgICAgICAgICAgICAgICAgICBjdXJ4ID0gcmVsYXRpdmUgPyBj
dXJ4ICsgdG94IDogdG94OwotICAgICAgICAgICAgICAgICAgICBjdXJ5ID0gcmVsYXRpdmUgPyBj
dXJ5ICsgdG95IDogdG95OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICAgICAgICAgIHN2Z0N1cnZlVG9DdWJpYyh4MSwgeTEsIHgyLCB5MiwgdG94
LCB0b3ksICFyZWxhdGl2ZSk7Ci0KLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGNhc2UgJ3MnOgotICAgICAgICAgICAgICAgIHJlbGF0aXZlID0gdHJ1
ZTsKLSAgICAgICAgICAgIGNhc2UgJ1MnOgotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IHB0ciA9IHBhcnNlQ29vcmQocHRyLCB4Mik7Ci0gICAgICAgICAgICAgICAgcHRyID0gcGFyc2VD
b29yZChwdHIsIHkyKTsKLSAgICAgICAgICAgICAgICBwdHIgPSBwYXJzZUNvb3JkKHB0ciwgdG94
KTsKLSAgICAgICAgICAgICAgICBwdHIgPSBwYXJzZUNvb3JkKHB0ciwgdG95KTsKLSAgICAgICAg
ICAgICAgICBpZiAoIShsYXN0Q29tbWFuZCA9PSAnYycgfHwgbGFzdENvbW1hbmQgPT0gJ0MnIHx8
Ci0gICAgICAgICAgICAgICAgICAgICBsYXN0Q29tbWFuZCA9PSAncycgfHwgbGFzdENvbW1hbmQg
PT0gJ1MnKSkgewotICAgICAgICAgICAgICAgICAgICBjb250cmx4ID0gY3VyeDsKLSAgICAgICAg
ICAgICAgICAgICAgY29udHJseSA9IGN1cnk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICAgICAgaWYgKHByb2Nlc3MpIHsKLSAgICAgICAgICAgICAgICAgICAgcHgxID0gMiAqIGN1
cnggLSBjb250cmx4OwotICAgICAgICAgICAgICAgICAgICBweTEgPSAyICogY3VyeSAtIGNvbnRy
bHk7Ci0gICAgICAgICAgICAgICAgICAgIHB4MiA9IHJlbGF0aXZlID8gY3VyeCArIHgyIDogeDI7
Ci0gICAgICAgICAgICAgICAgICAgIHB5MiA9IHJlbGF0aXZlID8gY3VyeSArIHkyIDogeTI7Ci0g
ICAgICAgICAgICAgICAgICAgIHB4MyA9IHJlbGF0aXZlID8gY3VyeCArIHRveCA6IHRveDsKLSAg
ICAgICAgICAgICAgICAgICAgcHkzID0gcmVsYXRpdmUgPyBjdXJ5ICsgdG95IDogdG95OwotCi0g
ICAgICAgICAgICAgICAgICAgIHN2Z0N1cnZlVG9DdWJpYyhweDEsIHB5MSwgcHgyLCBweTIsIHB4
MywgcHkzKTsKLQotICAgICAgICAgICAgICAgICAgICBjb250cmx4ID0gcmVsYXRpdmUgPyBjdXJ4
ICsgeDIgOiB4MjsKLSAgICAgICAgICAgICAgICAgICAgY29udHJseSA9IHJlbGF0aXZlID8gY3Vy
eSArIHkyIDogeTI7Ci0gICAgICAgICAgICAgICAgICAgIGN1cnggPSByZWxhdGl2ZSA/IGN1cngg
KyB0b3ggOiB0b3g7Ci0gICAgICAgICAgICAgICAgICAgIGN1cnkgPSByZWxhdGl2ZSA/IGN1cnkg
KyB0b3kgOiB0b3k7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgICAgICAgICAgc3ZnQ3VydmVUb0N1YmljU21vb3RoKHgyLCB5MiwgdG94LCB0b3ks
ICFyZWxhdGl2ZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBjYXNlICdxJzoKLSAgICAgICAgICAgICAgICByZWxhdGl2ZSA9IHRydWU7Ci0gICAg
ICAgICAgICBjYXNlICdRJzoKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBwdHIgPSBw
YXJzZUNvb3JkKHB0ciwgeDEpOwotICAgICAgICAgICAgICAgIHB0ciA9IHBhcnNlQ29vcmQocHRy
LCB5MSk7Ci0gICAgICAgICAgICAgICAgcHRyID0gcGFyc2VDb29yZChwdHIsIHRveCk7Ci0gICAg
ICAgICAgICAgICAgcHRyID0gcGFyc2VDb29yZChwdHIsIHRveSk7Ci0KLSAgICAgICAgICAgICAg
ICBpZiAocHJvY2VzcykgewotICAgICAgICAgICAgICAgICAgICBweDEgPSByZWxhdGl2ZSA/IChj
dXJ4ICsgMiAqICh4MSArIGN1cngpKSAqICgxLjAgLyAzLjApIDogKGN1cnggKyAyICogeDEpICog
KDEuMCAvIDMuMCk7Ci0gICAgICAgICAgICAgICAgICAgIHB5MSA9IHJlbGF0aXZlID8gKGN1cnkg
KyAyICogKHkxICsgY3VyeSkpICogKDEuMCAvIDMuMCkgOiAoY3VyeSArIDIgKiB5MSkgKiAoMS4w
IC8gMy4wKTsKLSAgICAgICAgICAgICAgICAgICAgcHgyID0gcmVsYXRpdmUgPyAoKGN1cnggKyB0
b3gpICsgMiAqICh4MSArIGN1cngpKSAqICgxLjAgLyAzLjApIDogKHRveCArIDIgKiB4MSkgKiAo
MS4wIC8gMy4wKTsKLSAgICAgICAgICAgICAgICAgICAgcHkyID0gcmVsYXRpdmUgPyAoKGN1cnkg
KyB0b3kpICsgMiAqICh5MSArIGN1cnkpKSAqICgxLjAgLyAzLjApIDogKHRveSArIDIgKiB5MSkg
KiAoMS4wIC8gMy4wKTsKLSAgICAgICAgICAgICAgICAgICAgcHgzID0gcmVsYXRpdmUgPyBjdXJ4
ICsgdG94IDogdG94OwotICAgICAgICAgICAgICAgICAgICBweTMgPSByZWxhdGl2ZSA/IGN1cnkg
KyB0b3kgOiB0b3k7Ci0KLSAgICAgICAgICAgICAgICAgICAgc3ZnQ3VydmVUb0N1YmljKHB4MSwg
cHkxLCBweDIsIHB5MiwgcHgzLCBweTMpOwotCi0gICAgICAgICAgICAgICAgICAgIGNvbnRybHgg
PSByZWxhdGl2ZSA/IGN1cnggKyB4MSA6IHgxOwotICAgICAgICAgICAgICAgICAgICBjb250cmx5
ID0gcmVsYXRpdmUgPyBjdXJ5ICsgeTEgOiB5MTsKLSAgICAgICAgICAgICAgICAgICAgY3VyeCA9
IHJlbGF0aXZlID8gY3VyeCArIHRveCA6IHRveDsKLSAgICAgICAgICAgICAgICAgICAgY3VyeSA9
IHJlbGF0aXZlID8gY3VyeSArIHRveSA6IHRveTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBzdmdDdXJ2ZVRvUXVhZHJhdGljKHgx
LCB5MSwgdG94LCB0b3ksICFyZWxhdGl2ZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBjYXNlICd0JzoKLSAgICAgICAgICAgICAgICByZWxhdGl2
ZSA9IHRydWU7Ci0gICAgICAgICAgICBjYXNlICdUJzoKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBwdHIgPSBwYXJzZUNvb3JkKHB0ciwgdG94KTsKLSAgICAgICAgICAgICAgICBwdHIg
PSBwYXJzZUNvb3JkKHB0ciwgdG95KTsKLSAgICAgICAgICAgICAgICBpZiAoIShsYXN0Q29tbWFu
ZCA9PSAncScgfHwgbGFzdENvbW1hbmQgPT0gJ1EnIHx8Ci0gICAgICAgICAgICAgICAgICAgICBs
YXN0Q29tbWFuZCA9PSAndCcgfHwgbGFzdENvbW1hbmQgPT0gJ1QnKSkgewotICAgICAgICAgICAg
ICAgICAgICBjb250cmx4ID0gY3VyeDsKLSAgICAgICAgICAgICAgICAgICAgY29udHJseSA9IGN1
cnk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MpIHsK
LSAgICAgICAgICAgICAgICAgICAgeGMgPSAyICogY3VyeCAtIGNvbnRybHg7Ci0gICAgICAgICAg
ICAgICAgICAgIHljID0gMiAqIGN1cnkgLSBjb250cmx5OwotCi0gICAgICAgICAgICAgICAgICAg
IHB4MSA9IHJlbGF0aXZlID8gKGN1cnggKyAyICogeGMpICogKDEuMCAvIDMuMCkgOiAoY3VyeCAr
IDIgKiB4YykgKiAoMS4wIC8gMy4wKTsKLSAgICAgICAgICAgICAgICAgICAgcHkxID0gcmVsYXRp
dmUgPyAoY3VyeSArIDIgKiB5YykgKiAoMS4wIC8gMy4wKSA6IChjdXJ5ICsgMiAqIHljKSAqICgx
LjAgLyAzLjApOwotICAgICAgICAgICAgICAgICAgICBweDIgPSByZWxhdGl2ZSA/ICgoY3VyeCAr
IHRveCkgKyAyICogeGMpICogKDEuMCAvIDMuMCkgOiAodG94ICsgMiAqIHhjKSAqICgxLjAgLyAz
LjApOwotICAgICAgICAgICAgICAgICAgICBweTIgPSByZWxhdGl2ZSA/ICgoY3VyeSArIHRveSkg
KyAyICogeWMpICogKDEuMCAvIDMuMCkgOiAodG95ICsgMiAqIHljKSAqICgxLjAgLyAzLjApOwot
ICAgICAgICAgICAgICAgICAgICBweDMgPSByZWxhdGl2ZSA/IGN1cnggKyB0b3ggOiB0b3g7Ci0g
ICAgICAgICAgICAgICAgICAgIHB5MyA9IHJlbGF0aXZlID8gY3VyeSArIHRveSA6IHRveTsKLQot
ICAgICAgICAgICAgICAgICAgICBzdmdDdXJ2ZVRvQ3ViaWMocHgxLCBweTEsIHB4MiwgcHkyLCBw
eDMsIHB5Myk7Ci0KLSAgICAgICAgICAgICAgICAgICAgY29udHJseCA9IHhjOwotICAgICAgICAg
ICAgICAgICAgICBjb250cmx5ID0geWM7Ci0gICAgICAgICAgICAgICAgICAgIGN1cnggPSByZWxh
dGl2ZSA/IGN1cnggKyB0b3ggOiB0b3g7Ci0gICAgICAgICAgICAgICAgICAgIGN1cnkgPSByZWxh
dGl2ZSA/IGN1cnkgKyB0b3kgOiB0b3k7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgc3ZnQ3VydmVUb1F1YWRyYXRpY1Ntb290aCh0
b3gsIHRveSwgIXJlbGF0aXZlKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGNhc2UgJ2EnOgotICAgICAgICAgICAgICAgIHJlbGF0aXZlID0gdHJ1
ZTsKLSAgICAgICAgICAgIGNhc2UgJ0EnOgotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IGJvb2wgbGFyZ2VBcmMsIHN3ZWVwOwotICAgICAgICAgICAgICAgIGRvdWJsZSBhbmdsZSwgcngs
IHJ5OwotICAgICAgICAgICAgICAgIHB0ciA9IHBhcnNlQ29vcmQocHRyLCByeCk7Ci0gICAgICAg
ICAgICAgICAgcHRyID0gcGFyc2VDb29yZChwdHIsIHJ5KTsKLSAgICAgICAgICAgICAgICBwdHIg
PSBwYXJzZUNvb3JkKHB0ciwgYW5nbGUpOwotICAgICAgICAgICAgICAgIHB0ciA9IHBhcnNlQ29v
cmQocHRyLCB0b3gpOwotICAgICAgICAgICAgICAgIGxhcmdlQXJjID0gdG94ID09IDE7Ci0gICAg
ICAgICAgICAgICAgcHRyID0gcGFyc2VDb29yZChwdHIsIHRveCk7Ci0gICAgICAgICAgICAgICAg
c3dlZXAgPSB0b3ggPT0gMTsKLSAgICAgICAgICAgICAgICBwdHIgPSBwYXJzZUNvb3JkKHB0ciwg
dG94KTsKLSAgICAgICAgICAgICAgICBwdHIgPSBwYXJzZUNvb3JkKHB0ciwgdG95KTsKLQotICAg
ICAgICAgICAgICAgIC8vIFNwZWM6IHJhZGlpIGFyZSBub25uZWdhdGl2ZSBudW1iZXJzCi0gICAg
ICAgICAgICAgICAgcnggPSBmYWJzKHJ4KTsKLSAgICAgICAgICAgICAgICByeSA9IGZhYnMocnkp
OwotCi0gICAgICAgICAgICAgICAgaWYgKHByb2Nlc3MpCi0gICAgICAgICAgICAgICAgICAgIGNh
bGN1bGF0ZUFyYyhyZWxhdGl2ZSwgY3VyeCwgY3VyeSwgYW5nbGUsIHRveCwgdG95LCByeCwgcnks
IGxhcmdlQXJjLCBzd2VlcCk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
ICAgICBzdmdBcmNUbyh0b3gsIHRveSwgcngsIHJ5LCBhbmdsZSwgbGFyZ2VBcmMsIHN3ZWVwLCAh
cmVsYXRpdmUpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogQW4gZXJyb3Igc2hvdWxk
IGdvIHRvIHRoZSBKYXZhU2NyaXB0IGNvbnNvbGUsIG9yIHRoZSBsaWtlLgotICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBsYXN0Q29tbWFuZCA9IGNvbW1hbmQ7Ci0K
LSAgICAgICAgaWYgKCpwdHIgPT0gJysnIHx8ICpwdHIgPT0gJy0nIHx8ICgqcHRyID49ICcwJyAm
JiAqcHRyIDw9ICc5JykpIHsKLSAgICAgICAgICAgIC8vIHRoZXJlIGFyZSBzdGlsbCBjb29yZHMg
aW4gdGhpcyBjb21tYW5kCi0gICAgICAgICAgICBpZiAoY29tbWFuZCA9PSAnTScpCi0gICAgICAg
ICAgICAgICAgY29tbWFuZCA9ICdMJzsKLSAgICAgICAgICAgIGVsc2UgaWYgKGNvbW1hbmQgPT0g
J20nKQotICAgICAgICAgICAgICAgIGNvbW1hbmQgPSAnbCc7Ci0gICAgICAgIH0KLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgY29tbWFuZCA9ICoocHRyKyspOwotCi0gICAgICAgIGlmIChsYXN0
Q29tbWFuZCAhPSAnQycgJiYgbGFzdENvbW1hbmQgIT0gJ2MnICYmCi0gICAgICAgICAgICBsYXN0
Q29tbWFuZCAhPSAnUycgJiYgbGFzdENvbW1hbmQgIT0gJ3MnICYmCi0gICAgICAgICAgICBsYXN0
Q29tbWFuZCAhPSAnUScgJiYgbGFzdENvbW1hbmQgIT0gJ3EnICYmCi0gICAgICAgICAgICBsYXN0
Q29tbWFuZCAhPSAnVCcgJiYgbGFzdENvbW1hbmQgIT0gJ3QnKSB7Ci0gICAgICAgICAgICBjb250
cmx4ID0gY3VyeDsKLSAgICAgICAgICAgIGNvbnRybHkgPSBjdXJ5OwotICAgICAgICB9Ci0gICAg
fQotfQotCi0vLyBUaGlzIHdvcmtzIGJ5IGNvbnZlcnRpbmcgdGhlIFNWRyBhcmMgdG8gInNpbXBs
ZSIgYmV6aWVycy4KLS8vIEZvciBlYWNoIGJlemllciBmb3VuZCBhIHN2Z1RvQ3VydmUgY2FsbCBp
cyBkb25lLgotLy8gQWRhcHRlZCBmcm9tIE5pa28ncyBjb2RlIGluIGtkZWxpYnMva2RlY29yZS9z
dmdpY29ucy4KLS8vIE1heWJlIHRoaXMgY2FuIHNlcnZlIGluIHNvbWUgc2hhcmVkIGxpYj8gKFJv
YikKLXZvaWQgRGVwcmVjYXRlZFNWR1BhdGhQYXJzZXI6OmNhbGN1bGF0ZUFyYyhib29sIHJlbGF0
aXZlLCBkb3VibGUgJmN1cngsIGRvdWJsZSAmY3VyeSwgZG91YmxlIGFuZ2xlLCBkb3VibGUgeCwg
ZG91YmxlIHksIGRvdWJsZSByMSwgZG91YmxlIHIyLCBib29sIGxhcmdlQXJjRmxhZywgYm9vbCBz
d2VlcEZsYWcpCi17Ci0gICAgZG91YmxlIHNpbl90aCwgY29zX3RoOwotICAgIGRvdWJsZSBhMDAs
IGEwMSwgYTEwLCBhMTE7Ci0gICAgZG91YmxlIHgwLCB5MCwgeDEsIHkxLCB4YywgeWM7Ci0gICAg
ZG91YmxlIGQsIHNmYWN0b3IsIHNmYWN0b3Jfc3E7Ci0gICAgZG91YmxlIHRoMCwgdGgxLCB0aF9h
cmM7Ci0gICAgaW50IGksIG5fc2VnczsKLQotICAgIHNpbl90aCA9IHNpbihhbmdsZSAqIChNX1BJ
IC8gMTgwLjApKTsKLSAgICBjb3NfdGggPSBjb3MoYW5nbGUgKiAoTV9QSSAvIDE4MC4wKSk7Ci0K
LSAgICBkb3VibGUgZHg7Ci0KLSAgICBpZiAoIXJlbGF0aXZlKQotICAgICAgICBkeCA9IChjdXJ4
IC0geCkgLyAyLjA7Ci0gICAgZWxzZQotICAgICAgICBkeCA9IC14IC8gMi4wOwotCi0gICAgZG91
YmxlIGR5OwotICAgICAgICAKLSAgICBpZiAoIXJlbGF0aXZlKQotICAgICAgICBkeSA9IChjdXJ5
IC0geSkgLyAyLjA7Ci0gICAgZWxzZQotICAgICAgICBkeSA9IC15IC8gMi4wOwotICAgICAgICAK
LSAgICBkb3VibGUgX3gxID0gIGNvc190aCAqIGR4ICsgc2luX3RoICogZHk7Ci0gICAgZG91Ymxl
IF95MSA9IC1zaW5fdGggKiBkeCArIGNvc190aCAqIGR5OwotICAgIGRvdWJsZSBQcjEgPSByMSAq
IHIxOwotICAgIGRvdWJsZSBQcjIgPSByMiAqIHIyOwotICAgIGRvdWJsZSBQeCA9IF94MSAqIF94
MTsKLSAgICBkb3VibGUgUHkgPSBfeTEgKiBfeTE7Ci0KLSAgICAvLyBTcGVjIDogY2hlY2sgaWYg
cmFkaWkgYXJlIGxhcmdlIGVub3VnaAotICAgIGRvdWJsZSBjaGVjayA9IFB4IC8gUHIxICsgUHkg
LyBQcjI7Ci0gICAgaWYgKGNoZWNrID4gMSkgewotICAgICAgICByMSA9IHIxICogc3FydChjaGVj
ayk7Ci0gICAgICAgIHIyID0gcjIgKiBzcXJ0KGNoZWNrKTsKLSAgICB9Ci0KLSAgICBhMDAgPSBj
b3NfdGggLyByMTsKLSAgICBhMDEgPSBzaW5fdGggLyByMTsKLSAgICBhMTAgPSAtc2luX3RoIC8g
cjI7Ci0gICAgYTExID0gY29zX3RoIC8gcjI7Ci0KLSAgICB4MCA9IGEwMCAqIGN1cnggKyBhMDEg
KiBjdXJ5OwotICAgIHkwID0gYTEwICogY3VyeCArIGExMSAqIGN1cnk7Ci0KLSAgICBpZiAoIXJl
bGF0aXZlKQotICAgICAgICB4MSA9IGEwMCAqIHggKyBhMDEgKiB5OwotICAgIGVsc2UKLSAgICAg
ICAgeDEgPSBhMDAgKiAoY3VyeCArIHgpICsgYTAxICogKGN1cnkgKyB5KTsKLSAgICAgICAgCi0g
ICAgaWYgKCFyZWxhdGl2ZSkKLSAgICAgICAgeTEgPSBhMTAgKiB4ICsgYTExICogeTsKLSAgICBl
bHNlCi0gICAgICAgIHkxID0gYTEwICogKGN1cnggKyB4KSArIGExMSAqIChjdXJ5ICsgeSk7Ci0K
LSAgICAvKiAoeDAsIHkwKSBpcyBjdXJyZW50IHBvaW50IGluIHRyYW5zZm9ybWVkIGNvb3JkaW5h
dGUgc3BhY2UuCi0gICAgICAgKHgxLCB5MSkgaXMgbmV3IHBvaW50IGluIHRyYW5zZm9ybWVkIGNv
b3JkaW5hdGUgc3BhY2UuCi0KLSAgICAgICBUaGUgYXJjIGZpdHMgYSB1bml0LXJhZGl1cyBjaXJj
bGUgaW4gdGhpcyBzcGFjZS4KLSAgICAqLwotCi0gICAgZCA9ICh4MSAtIHgwKSAqICh4MSAtIHgw
KSArICh5MSAtIHkwKSAqICh5MSAtIHkwKTsKLQotICAgIHNmYWN0b3Jfc3EgPSAxLjAgLyBkIC0g
MC4yNTsKLQotICAgIGlmIChzZmFjdG9yX3NxIDwgMCkKLSAgICAgICAgc2ZhY3Rvcl9zcSA9IDA7
Ci0KLSAgICBzZmFjdG9yID0gc3FydChzZmFjdG9yX3NxKTsKLQotICAgIGlmIChzd2VlcEZsYWcg
PT0gbGFyZ2VBcmNGbGFnKQotICAgICAgICBzZmFjdG9yID0gLXNmYWN0b3I7Ci0KLSAgICB4YyA9
IDAuNSAqICh4MCArIHgxKSAtIHNmYWN0b3IgKiAoeTEgLSB5MCk7Ci0gICAgeWMgPSAwLjUgKiAo
eTAgKyB5MSkgKyBzZmFjdG9yICogKHgxIC0geDApOwotCi0gICAgLyogKHhjLCB5YykgaXMgY2Vu
dGVyIG9mIHRoZSBjaXJjbGUuICovCi0gICAgdGgwID0gYXRhbjIoeTAgLSB5YywgeDAgLSB4Yyk7
Ci0gICAgdGgxID0gYXRhbjIoeTEgLSB5YywgeDEgLSB4Yyk7Ci0KLSAgICB0aF9hcmMgPSB0aDEg
LSB0aDA7Ci0gICAgaWYgKHRoX2FyYyA8IDAgJiYgc3dlZXBGbGFnKQotICAgICAgICB0aF9hcmMg
Kz0gMiAqIE1fUEk7Ci0gICAgZWxzZSBpZiAodGhfYXJjID4gMCAmJiAhc3dlZXBGbGFnKQotICAg
ICAgICB0aF9hcmMgLT0gMiAqIE1fUEk7Ci0KLSAgICBuX3NlZ3MgPSAoaW50KSAoaW50KSBjZWls
KGZhYnModGhfYXJjIC8gKE1fUEkgKiAwLjUgKyAwLjAwMSkpKTsKLQotICAgIGZvcihpID0gMDsg
aSA8IG5fc2VnczsgaSsrKSB7Ci0gICAgICAgIGRvdWJsZSBzaW5fdGgsIGNvc190aDsKLSAgICAg
ICAgZG91YmxlIGEwMCwgYTAxLCBhMTAsIGExMTsKLSAgICAgICAgZG91YmxlIHgxLCB5MSwgeDIs
IHkyLCB4MywgeTM7Ci0gICAgICAgIGRvdWJsZSB0OwotICAgICAgICBkb3VibGUgdGhfaGFsZjsK
LQotICAgICAgICBkb3VibGUgX3RoMCA9IHRoMCArIGkgKiB0aF9hcmMgLyBuX3NlZ3M7Ci0gICAg
ICAgIGRvdWJsZSBfdGgxID0gdGgwICsgKGkgKyAxKSAqIHRoX2FyYyAvIG5fc2VnczsKLQotICAg
ICAgICBzaW5fdGggPSBzaW4oYW5nbGUgKiAoTV9QSSAvIDE4MC4wKSk7Ci0gICAgICAgIGNvc190
aCA9IGNvcyhhbmdsZSAqIChNX1BJIC8gMTgwLjApKTsKLQotICAgICAgICAvKiBpbnZlcnNlIHRy
YW5zZm9ybSBjb21wYXJlZCB3aXRoIHJzdmdfcGF0aF9hcmMgKi8KLSAgICAgICAgYTAwID0gY29z
X3RoICogcjE7Ci0gICAgICAgIGEwMSA9IC1zaW5fdGggKiByMjsKLSAgICAgICAgYTEwID0gc2lu
X3RoICogcjE7Ci0gICAgICAgIGExMSA9IGNvc190aCAqIHIyOwotCi0gICAgICAgIHRoX2hhbGYg
PSAwLjUgKiAoX3RoMSAtIF90aDApOwotICAgICAgICB0ID0gKDguMCAvIDMuMCkgKiBzaW4odGhf
aGFsZiAqIDAuNSkgKiBzaW4odGhfaGFsZiAqIDAuNSkgLyBzaW4odGhfaGFsZik7Ci0gICAgICAg
IHgxID0geGMgKyBjb3MoX3RoMCkgLSB0ICogc2luKF90aDApOwotICAgICAgICB5MSA9IHljICsg
c2luKF90aDApICsgdCAqIGNvcyhfdGgwKTsKLSAgICAgICAgeDMgPSB4YyArIGNvcyhfdGgxKTsK
LSAgICAgICAgeTMgPSB5YyArIHNpbihfdGgxKTsKLSAgICAgICAgeDIgPSB4MyArIHQgKiBzaW4o
X3RoMSk7Ci0gICAgICAgIHkyID0geTMgLSB0ICogY29zKF90aDEpOwotCi0gICAgICAgIHN2Z0N1
cnZlVG9DdWJpYyhhMDAgKiB4MSArIGEwMSAqIHkxLCBhMTAgKiB4MSArIGExMSAqIHkxLCBhMDAg
KiB4MiArIGEwMSAqIHkyLCBhMTAgKiB4MiArIGExMSAqIHkyLCBhMDAgKiB4MyArIGEwMSAqIHkz
LCBhMTAgKiB4MyArIGExMSAqIHkzKTsKLSAgICB9Ci0KLSAgICBpZiAoIXJlbGF0aXZlKQotICAg
ICAgICBjdXJ4ID0geDsKLSAgICBlbHNlCi0gICAgICAgIGN1cnggKz0geDsKLQotICAgIGlmICgh
cmVsYXRpdmUpCi0gICAgICAgIGN1cnkgPSB5OwotICAgIGVsc2UKLSAgICAgICAgY3VyeSArPSB5
OyAgICAKLX0KLQotdm9pZCBEZXByZWNhdGVkU1ZHUGF0aFBhcnNlcjo6c3ZnTGluZVRvSG9yaXpv
bnRhbChkb3VibGUsIGJvb2wpCi17Ci19Ci0KLXZvaWQgRGVwcmVjYXRlZFNWR1BhdGhQYXJzZXI6
OnN2Z0xpbmVUb1ZlcnRpY2FsKGRvdWJsZSwgYm9vbCkKLXsKLX0KLQotdm9pZCBEZXByZWNhdGVk
U1ZHUGF0aFBhcnNlcjo6c3ZnQ3VydmVUb0N1YmljU21vb3RoKGRvdWJsZSwgZG91YmxlLCBkb3Vi
bGUsIGRvdWJsZSwgYm9vbCkKLXsKLX0KLQotdm9pZCBEZXByZWNhdGVkU1ZHUGF0aFBhcnNlcjo6
c3ZnQ3VydmVUb1F1YWRyYXRpYyhkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGJvb2wp
Ci17Ci19Ci0KLXZvaWQgRGVwcmVjYXRlZFNWR1BhdGhQYXJzZXI6OnN2Z0N1cnZlVG9RdWFkcmF0
aWNTbW9vdGgoZG91YmxlLCBkb3VibGUsIGJvb2wpCi17Ci19Ci0KLXZvaWQgRGVwcmVjYXRlZFNW
R1BhdGhQYXJzZXI6OnN2Z0FyY1RvKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91
YmxlLCBib29sLCBib29sLCBib29sKQotewotfSAKLQotfQotCi0vLyB2aW06dHM9NDpub2V0Ci0j
ZW5kaWYgLy8gU1ZHX1NVUFBPUlQKSW5kZXg6IFdlYkNvcmUva3N2ZzIvc3ZnL3N2Z3BhdGhwYXJz
ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2tzdmcyL3N2Zy9zdmdwYXRocGFyc2VyLmgJKHJl
dmlzaW9uIDE4NDg1KQorKysgV2ViQ29yZS9rc3ZnMi9zdmcvc3ZncGF0aHBhcnNlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDc3ICswLDAgQEAKLS8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBL
REUgcHJvamVjdAotICAgQ29weXJpZ2h0IChDKSAyMDAyLCAyMDAzIFRoZSBLYXJib24gRGV2ZWxv
cGVycwotCi0gICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCi0gICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot
ICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KLQotICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
LSAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAt
IFN1aXRlIDMzMCwKLSAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgotKi8KLQotI2lmbmRl
ZiBfX1NWR1BBVEhQQVJTRVJfSF9fCi0jZGVmaW5lIF9fU1ZHUEFUSFBBUlNFUl9IX18KLSNpZmRl
ZiBTVkdfU1VQUE9SVAotCi1uYW1lc3BhY2UgV2ViQ29yZQotewotICAgIGNsYXNzIERlcHJlY2F0
ZWRTdHJpbmc7Ci0KLSAgICBjb25zdCBjaGFyICpwYXJzZUNvb3JkKGNvbnN0IGNoYXIgKnB0ciwg
ZG91YmxlICZudW1iZXIpOwotCi0gICAgY2xhc3MgU1ZHUG9seVBhcnNlcgotICAgIHsKLSAgICBw
dWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgflNWR1BvbHlQYXJzZXIoKSB7IH0KLSAgICAgICAgdm9p
ZCBwYXJzZVBvaW50cyggY29uc3QgRGVwcmVjYXRlZFN0cmluZyAmcG9pbnRzICkgY29uc3Q7Ci0K
LSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzdmdQb2x5VG8oIGRvdWJsZSB4
MSwgZG91YmxlIHkxLCBpbnQgbnIgKSBjb25zdCA9IDA7Ci0gICAgfTsKLQotICAgIC8qKgotICAg
ICAqIFBhcnNlciBmb3Igc3ZnIHBhdGggZGF0YSwgY29udGFpbmVkIGluIHRoZSBkIGF0dHJpYnV0
ZS4KLSAgICAgKgotICAgICAqIFRoZSBwYXJzZXIgZGVsaXZlcnMgZW5jb3VudGVyZWQgY29tbWFu
ZHMgYW5kIHBhcmFtZXRlcnMgYnkgY2FsbGluZwotICAgICAqIG1ldGhvZHMgdGhhdCBjb3JyZXNw
b25kIHRvIHRob3NlIGNvbW1hbmRzLiBDbGllbnRzIGhhdmUgdG8gZGVyaXZlCi0gICAgICogZnJv
bSB0aGlzIGNsYXNzIGFuZCBpbXBsZW1lbnQgdGhlIGFic3RyYWN0IGNvbW1hbmQgbWV0aG9kcy4K
LSAgICAgKgotICAgICAqIFRoZXJlIGFyZSB0d28gb3BlcmF0aW5nIG1vZGVzLiBCeSBkZWZhdWx0
IHRoZSBwYXJzZXIganVzdCBkZWxpdmVycyB1bmFsdGVyZWQKLSAgICAgKiBzdmcgcGF0aCBkYXRh
IGNvbW1hbmRzIGFuZCBwYXJhbWV0ZXJzLiBJbiB0aGUgc2Vjb25kIG1vZGUsIGl0IHdpbGwgY29u
dmVydCBhbGwKLSAgICAgKiByZWxhdGl2ZSBjb29yZGluYXRlcyB0byBhYnNvbHV0ZSBvbmVzLCBh
bmQgY29udmVydCBhbGwgY3VydmVzIHRvIGN1YmljIGJlemllcnMuCi0gICAgICovCi0gICAgY2xh
c3MgRGVwcmVjYXRlZFNWR1BhdGhQYXJzZXIKLSAgICB7Ci0gICAgcHVibGljOgotICAgICAgICB2
aXJ0dWFsIH5EZXByZWNhdGVkU1ZHUGF0aFBhcnNlcigpIHsgfQotICAgICAgICB2b2lkIHBhcnNl
U1ZHKCBjb25zdCBEZXByZWNhdGVkU3RyaW5nICZkLCBib29sIHByb2Nlc3MgPSBmYWxzZSApOwot
Ci0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIHZvaWQgc3ZnTW92ZVRvKCBkb3VibGUg
eDEsIGRvdWJsZSB5MSwgYm9vbCBjbG9zZWQsIGJvb2wgYWJzID0gdHJ1ZSApID0gMDsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHN2Z0xpbmVUbyggZG91YmxlIHgxLCBkb3VibGUgeTEsIGJvb2wgYWJz
ID0gdHJ1ZSApID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHN2Z0xpbmVUb0hvcml6b250YWwo
IGRvdWJsZSB4LCBib29sIGFicyA9IHRydWUgKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHN2Z0xp
bmVUb1ZlcnRpY2FsKCBkb3VibGUgeSwgYm9vbCBhYnMgPSB0cnVlICk7Ci0gICAgICAgIHZpcnR1
YWwgdm9pZCBzdmdDdXJ2ZVRvQ3ViaWMoIGRvdWJsZSB4MSwgZG91YmxlIHkxLCBkb3VibGUgeDIs
IGRvdWJsZSB5MiwgZG91YmxlIHgsIGRvdWJsZSB5LCBib29sIGFicyA9IHRydWUgKSA9IDA7Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBzdmdDdXJ2ZVRvQ3ViaWNTbW9vdGgoIGRvdWJsZSB4LCBkb3Vi
bGUgeSwgZG91YmxlIHgyLCBkb3VibGUgeTIsIGJvb2wgYWJzID0gdHJ1ZSApOwotICAgICAgICB2
aXJ0dWFsIHZvaWQgc3ZnQ3VydmVUb1F1YWRyYXRpYyggZG91YmxlIHgsIGRvdWJsZSB5LCBkb3Vi
bGUgeDEsIGRvdWJsZSB5MSwgYm9vbCBhYnMgPSB0cnVlICk7Ci0gICAgICAgIHZpcnR1YWwgdm9p
ZCBzdmdDdXJ2ZVRvUXVhZHJhdGljU21vb3RoKCBkb3VibGUgeCwgZG91YmxlIHksIGJvb2wgYWJz
ID0gdHJ1ZSApOwotICAgICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXJjVG8oIGRvdWJsZSB4LCBkb3Vi
bGUgeSwgZG91YmxlIHIxLCBkb3VibGUgcjIsIGRvdWJsZSBhbmdsZSwgYm9vbCBsYXJnZUFyY0Zs
YWcsIGJvb2wgc3dlZXBGbGFnLCBib29sIGFicyA9IHRydWUgKTsKLSAgICAgICAgdmlydHVhbCB2
b2lkIHN2Z0Nsb3NlUGF0aCgpID0gMDsKLSAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGNhbGN1
bGF0ZUFyYyggYm9vbCByZWxhdGl2ZSwgZG91YmxlICZjdXJ4LCBkb3VibGUgJmN1cnksIGRvdWJs
ZSBhbmdsZSwgZG91YmxlIHgsIGRvdWJsZSB5LCBkb3VibGUgcjEsIGRvdWJsZSByMiwgYm9vbCBs
YXJnZUFyY0ZsYWcsIGJvb2wgc3dlZXBGbGFnICk7Ci0gICAgfTsKLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCi0jZW5kaWYgLy8gU1ZHX1NVUFBPUlQKLSNlbmRpZgotCi0vLyB2aW06dHM9NDpu
b2V0CkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3BhdGgtYmFkLWRhdGEtZXhwZWN0ZWQu
cG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5
cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5
QUFBQUpZQ0FZQUFBQ2Fkb0p3QUFBTWEwbEVRVlI0bk8zWE1RRUFJQXpBTU1DLzUrR2kKSENRSytu
YlB6Q3dBQUlEQWVSMEFBQUQ4dzRBQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJ
QUFHUU1DQUFBa0RFZwpBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJ
QUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNCkNBQUFrREVnQUFCQXhvQUFBQUFaQXdJ
QUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVoKQXdJ
QUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lB
QUdRTUNBQUFrREVnQUFCQQp4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lB
QUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBCmtERWdBQUJBeG9BQUFBQVpBd0lB
QUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUEK
QUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFB
R1FNQ0FBQWtERWdBQUJBeG9BQQpBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFB
R1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnCkFBQkF4b0FBQUFBWkF3SUFB
R1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFH
UU0KQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFH
UU1DQUFBa0RFZ0FBQkF4b0FBQUFBWgpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFH
UU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBCnhvQUFBQUFaQXdJQUFH
UU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdR
TUNBQUEKa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdR
TUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQQpBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdR
TUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBCkFBQVpBd0lBQUdR
TUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FN
Q0FBQWtERWcKQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FN
Q0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTQpDQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FN
Q0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaCkF3SUFBR1FN
Q0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1D
QUFBa0RFZ0FBQkEKeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1D
QUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQQprREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1D
QUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBCkFHUU1D
QUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNB
QUFrREVnQUFCQXhvQUEKQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNB
QUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZwpBQUJBeG9BQUFBQVpBd0lBQUdRTUNB
QUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNCkNB
QUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FB
QWtERWdBQUJBeG9BQUFBQVoKQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FB
QWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQQp4b0FBQUFBWkF3SUFBR1FNQ0FB
QWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFB
CmtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFB
a0RFZ0FBQkF4b0FBQUFBWkF3SUEKQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFB
a0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQQpBQUFaQXdJQUFHUU1DQUFB
a0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFr
REVnCkFBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFr
REVnQUFCQXhvQUFBQUFaQXdJQUFHUU0KQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFr
REVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWgpBd0lBQUdRTUNBQUFr
REVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtE
RWdBQUJBCnhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtE
RWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUEKa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtE
RWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQQpBR1FNQ0FBQWtE
RWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RF
Z0FBQkF4b0FBCkFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RF
Z0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWcKQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RF
Z0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTQpDQUFBa0RF
Z0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVn
QUFCQXhvQUFBQUFaCkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVn
QUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkEKeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVn
QUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQQprREVn
QUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdB
QUJBeG9BQUFBQVpBd0lBCkFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdB
QUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUEKQUFBWkF3SUFBR1FNQ0FBQWtERWdB
QUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZwpB
QUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FB
QkF4b0FBQUFBWkF3SUFBR1FNCkNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FB
QkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVoKQXdJQUFHUU1DQUFBa0RFZ0FB
QkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFC
QQp4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFC
QXhvQUFBQUFaQXdJQUFHUU1DQUFBCmtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFC
QXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUEKQUdRTUNBQUFrREVnQUFC
QXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJB
eG9BQQpBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJB
eG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnCkFBQkF4b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJB
eG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU0KQ0FBQWtERWdBQUJB
eG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4
b0FBQUFBWgpBd0lBQUdRTUNBQUFrREVnQUFCQXhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4
b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBCnhvQUFBQUFaQXdJQUFHUU1DQUFBa0RFZ0FBQkF4
b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUEKa0RFZ0FBQkF4
b0FBQUFBWkF3SUFBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRTUNBQUFrREVnQUFCQXhv
QUFBQUFaQXdJQQpBR1FNQ0FBQWtERWdBQUJBeG9BQUFBQVpBd0lBQUdRdTZWY0lyR1pHc1RVQUFB
QUFTVVZPUks1Q1lJST0KCg==
</data>
<flag name="review"
          id="4480"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>