<?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>105133</bug_id>
          
          <creation_ts>2012-12-16 12:18:10 -0800</creation_ts>
          <short_desc>Bytecode dumping should show rare case profiles</short_desc>
          <delta_ts>2012-12-16 23:17:32 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>792354</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-16 12:18:10 -0800</bug_when>
    <thetext>This is useful for the &quot;profiling&quot; command in the profiler, which dumps the profiling that the DFG saw at compile time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792355</commentid>
    <comment_count>1</comment_count>
      <attachid>179656</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-16 12:21:27 -0800</bug_when>
    <thetext>Created attachment 179656
sample profiling session</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792356</commentid>
    <comment_count>2</comment_count>
      <attachid>179657</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-16 12:22:18 -0800</bug_when>
    <thetext>Created attachment 179657
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792360</commentid>
    <comment_count>3</comment_count>
      <attachid>179657</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-16 12:50:18 -0800</bug_when>
    <thetext>Comment on attachment 179657
the patch

Attachment 179657 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15371447</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792365</commentid>
    <comment_count>4</comment_count>
      <attachid>179659</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-16 13:05:45 -0800</bug_when>
    <thetext>Created attachment 179659
the patch

Fix no-value-profiling build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792367</commentid>
    <comment_count>5</comment_count>
      <attachid>179661</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-16 13:13:39 -0800</bug_when>
    <thetext>Created attachment 179661
the patch

Fix a minor style issue I found.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792382</commentid>
    <comment_count>6</comment_count>
      <attachid>179661</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-16 14:54:37 -0800</bug_when>
    <thetext>Comment on attachment 179661
the patch

Attachment 179661 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15371485

New failing tests:
fast/frames/sandboxed-iframe-attribute-parsing.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792463</commentid>
    <comment_count>7</comment_count>
      <attachid>179661</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2012-12-16 21:37:34 -0800</bug_when>
    <thetext>Comment on attachment 179661
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792491</commentid>
    <comment_count>8</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-12-16 23:17:32 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/137878</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>179656</attachid>
            <date>2012-12-16 12:21:27 -0800</date>
            <delta_ts>2012-12-16 12:21:27 -0800</delta_ts>
            <desc>sample profiling session</desc>
            <filename>sample.txt</filename>
            <type>text/plain</type>
            <size>6487</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">W3BpemxvQHdhcnRvb3RoIE9wZW5Tb3VyY2VdIFRvb2xzL1NjcmlwdHMvZGlzcGxheS1wcm9maWxl
ci1vdXRwdXQgY3J5cHRvLW1kNS5wcm9maWxlIAogICBDb2RlQmxvY2sgICAgI0luc3RyIFNvdXJj
ZSBDb3VudHMgTWFjaGluZSBDb3VudHMgI0NvbXBpbCAgSW5saW5lcyAgI0V4aXRzICAgICAgICAg
ICAgICAgICAgICAgICAgIFNvdXJjZSAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICBCYXNlL0RGRyAgICAgICBCYXNlL0RGRyAgICAgICAgICAgIFNyYy9Ub3Rh
bApzYWZlX2FkZCNFYWdqYW8gICA1NCAgICAgMTA3LzY0MzY3ICAgICAgMTA3LzEzMzEgICAgICAg
MiAgICAgICA1LzUgICAgICA0MCAgICBmdW5jdGlvbiBzYWZlX2FkZCh4LCB5KSB7IHZhciBsc3cg
PSAoeCAmIDB4RkZGRikgKyAoCmJpdF9yb2wjQXhhZUlVICAgIDIxICAgICA2Ny8xNTc5OSAgICAg
ICAgNjcvNDAgICAgICAgICAyICAgICAgIDUvNSAgICAgICAwICAgIGZ1bmN0aW9uIGJpdF9yb2wo
bnVtLCBjbnQpIHsgcmV0dXJuIChudW0gPDwgY250KSB8ICgKbWQ1X2NtbiNEUUdFb2cgICAgOTYg
ICAgIDEwNy8xNTc1OSAgICAgIDEwNy8yMTkgICAgICAgIDIgICAgICAgMS80ICAgICAgNDAgICAg
ZnVuY3Rpb24gbWQ1X2NtbihxLCBhLCBiLCB4LCBzLCB0KSB7IHJldHVybiBzYWZlX2FkZApzdHIy
YmlubCNFb0hsUTMgIDE3NiAgICAgNjU3Ni85MTU4ICAgICA2NTc2LzkxNTggICAgICAgMiAgICAg
ICAwLzAgICAgICAgMyAgICBmdW5jdGlvbiBzdHIyYmlubChzdHIpIHsgdmFyIGJpbiA9IEFycmF5
KCk7IHZhciBtYXNrCiBtZDVfZmYjQVBZdUpPICAgIDU2ICAgICAgNzcvMzg4NSAgICAgICA3Ny8z
ODg1ICAgICAgICAyICAgICAgIDAvMCAgICAgIDEwICAgIGZ1bmN0aW9uIG1kNV9mZihhLCBiLCBj
LCBkLCB4LCBzLCB0KSB7IHJldHVybiBtZDVfY20KIG1kNV9nZyNEb3FEUnkgICAgNTYgICAgICA3
Ny8zODg1ICAgICAgIDc3LzM4ODUgICAgICAgIDIgICAgICAgMC8wICAgICAgMTAgICAgZnVuY3Rp
b24gbWQ1X2dnKGEsIGIsIGMsIGQsIHgsIHMsIHQpIHsgcmV0dXJuIG1kNV9jbQogbWQ1X2hoI0Iz
TGVVbyAgICA0MyAgICAgIDc3LzM4ODUgICAgICAgNzcvMzg4NSAgICAgICAgMiAgICAgICAwLzAg
ICAgICAxMCAgICBmdW5jdGlvbiBtZDVfaGgoYSwgYiwgYywgZCwgeCwgcywgdCkgeyByZXR1cm4g
bWQ1X2NtCiBtZDVfaWkjQll3RkFpICAgIDUxICAgICAgNzcvMzg4NSAgICAgICA3Ny8zODg1ICAg
ICAgICAyICAgICAgIDAvMCAgICAgIDEwICAgIGZ1bmN0aW9uIG1kNV9paShhLCBiLCBjLCBkLCB4
LCBzLCB0KSB7IHJldHVybiBtZDVfY20KY29yZV9tZDUjRDVvVE50ICAzMDQ2ICAgICAgMTU0LzAg
ICAgICAgICAxNTQvMCAgICAgICAgIDEgICAgICAgMC8wICAgICAgIDAgICAgZnVuY3Rpb24gY29y
ZV9tZDUoeCwgbGVuKSB7IC8qIGFwcGVuZCBwYWRkaW5nICovIHhbbAo8Z2xvYmFsPiNESHJXUEUg
IDE1MyAgICAgICAgMC8wICAgICAgICAgICAwLzAgICAgICAgICAgMCAgICAgICAwLzAgICAgICAg
MCAgICAvKiAqIEEgSmF2YVNjcmlwdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgUlNBIERhdGEgU2Vj
CmhleF9tZDUjREIxVEVkICAgIDcwICAgICAgICAwLzAgICAgICAgICAgIDAvMCAgICAgICAgICAw
ICAgICAgIDAvMCAgICAgICAwICAgIGZ1bmN0aW9uIGhleF9tZDUocyl7IHJldHVybiBiaW5sMmhl
eChjb3JlX21kNShzdHIyYmkKYmlubDJoZXgjQWVaeko4ICAxODMgICAgICAgIDAvMCAgICAgICAg
ICAgMC8wICAgICAgICAgIDAgICAgICAgMC8wICAgICAgIDAgICAgZnVuY3Rpb24gYmlubDJoZXgo
YmluYXJyYXkpIHsgdmFyIGhleF90YWIgPSBoZXhjYXNlIAo+IHAgc3RyMmJpbmwKQ29tcGlsYXRp
b24gc3RyMmJpbmwjRW9IbFEzLTEtQmFzZWxpbmU6CiAgICAgIGFyZzAgKHItNyk6IHByZWRpY3Rp
bmcgVW5kZWZpbmVkCiAgICAgIGFyZzEgKHItOCk6IHByZWRpY3RpbmcgQ2VsbDogMHgxMGQ3Y2Zm
MDAgLT4gMHgwICgweDEwZDcxZmNjMDogc3RyaW5nLCBOb25BcnJheSkKICAgICAgICBbICAgMF0g
ZW50ZXIKICAgICAgICBbICAgMV0gcmVzb2x2ZV93aXRoX3RoaXMgcjQsIHIzLCBBcnJheShAaWQw
KSwgMCAgICBwcmVkaWN0aW5nIENlbGw6IDB4MTBkNzRmZjIwIC0+IDB4MTBkMGYwMjQ4ICgweDEw
ZDcxZDFhMDogRnVuY3Rpb24sIE5vbkFycmF5KQogICAgICAgIFsgICA3XSBqbmVxX3B0cgkJIHIz
LCAzICgweDEwZDc0ZmYyMCksIDExKC0+MTgpCiAgICAgICAgWyAgMTFdIG5ld19hcnJheQkgcjAs
IHIwLCAwCiAgICAgICAgWyAgMTZdIGptcAkJIDExKC0+MjcpCiAgICAgICAgWyAgMThdIGNhbGwJ
IHIzLCAxLCAxMQogICAgICAgIFsgIDI0XSBjYWxsX3B1dF9yZXN1bHQJCSByMAogICAgICAgIFsg
IDI3XSByZXNvbHZlCQkgcjMsIGNocnN6KEBpZDEpLCAxICAgIHByZWRpY3RpbmcgSW50MzI6IDgK
ICAgICAgICBbICAzMl0gbHNoaWZ0CQkgcjMsIEludDMyOiAxKEBrMCksIHIzCiAgICAgICAgWyAg
MzZdIHN1YgkJIHIxLCByMywgSW50MzI6IDEoQGswKQogICAgICAgIFsgIDQxXSBtb3YJCSByMiwg
SW50MzI6IDAoQGsxKQogICAgICAgIFsgIDQ0XSBnZXRfYnlfaWQJIHIzLCByLTgsIGxlbmd0aChA
aWQyKSAgICBwcmVkaWN0aW5nIEludDMyOiAxNTgyNAogICAgICAgIFsgIDUzXSByZXNvbHZlCQkg
cjQsIGNocnN6KEBpZDEpLCAxICAgIHByZWRpY3RpbmcgSW50MzI6IDgKICAgICAgICBbICA1OF0g
bXVsCQkgcjMsIHIzLCByNAogICAgICAgIFsgIDYzXSBqbmxlc3MJCSByMiwgcjMsIDExMSgtPjE3
NCkKICAgICAgICBbICA2N10gbG9vcF9oaW50CiAgICAgICAgWyAgNjhdIG1vdgkJIHIzLCByMAog
ICAgICAgIFsgIDcxXSByc2hpZnQJCSByNCwgcjIsIEludDMyOiA1KEBrMikKICAgICAgICBbICA3
NV0gZ2V0X2J5X3ZhbAkgcjUsIHIzLCByNCAgICAyMDk3MTUyOkFycmF5V2l0aEludDMyLCBzdHJ1
Y3QgPSAweDEwZDcxZTE0MCwgT3JpZ2luYWwsIHByZWRpY3RpbmcgSW50MzI6IDEyMQogICAgICAg
IFsgIDgxXSBtb3YJCSByOCwgci04CiAgICAgICAgWyAgODRdIGdldF9ieV9pZAkgcjYsIHI4LCBj
aGFyQ29kZUF0KEBpZDMpICAgIHByZWRpY3RpbmcgQ2VsbDogMHgxMGQ3N2YyYzAgLT4gMHgxMGQw
ZjBjZjggKDB4MTBkNzFlYmUwOiBGdW5jdGlvbiwgTm9uQXJyYXkpCiAgICAgICAgWyAgOTNdIHJl
c29sdmUJCSByOSwgY2hyc3ooQGlkMSksIDEgICAgcHJlZGljdGluZyBJbnQzMjogOAogICAgICAg
IFsgIDk4XSBkaXYJCSByNywgcjIsIHI5CiAgICAgICAgWyAxMDNdIGNhbGwJIHI2LCAyLCAxNSBs
bGludCgweDEwZDc3ZjJjMCwgZXhlYyAweDEwZDc2ZTYwMCkKICAgICAgICBbIDEwOV0gY2FsbF9w
dXRfcmVzdWx0CQkgcjYgICAgcHJlZGljdGluZyBJbnQzMjogMzIKICAgICAgICBbIDExMl0gYml0
YW5kCQkgcjYsIHI2LCByMQogICAgICAgIFsgMTE3XSBtb2QJCSByNywgcjIsIEludDMyOiAzMihA
azMpCiAgICAgICAgWyAxMjFdIGxzaGlmdAkJIHI2LCByNiwgcjcKICAgICAgICBbIDEyNV0gYml0
b3IJCSByNSwgcjUsIHI2CiAgICAgICAgWyAxMzBdIHB1dF9ieV92YWwJIHIzLCByNCwgcjUgICAg
MjA5NzE1MjpBcnJheVdpdGhJbnQzMiwgc3RydWN0ID0gMHgxMGQ3MWUxNDAsIEhvbGUsIE9yaWdp
bmFsCiAgICAgICAgWyAxMzVdIG1vdgkJIHI2LCByMgogICAgICAgIFsgMTM4XSByZXNvbHZlCQkg
cjcsIGNocnN6KEBpZDEpLCAxICAgIHByZWRpY3RpbmcgSW50MzI6IDgKICAgICAgICBbIDE0M10g
YWRkCQkgcjYsIHI2LCByNwogICAgICAgIFsgMTQ4XSBtb3YJCSByMiwgcjYKICAgICAgICBbIDE1
MV0gZ2V0X2J5X2lkCSByNiwgci04LCBsZW5ndGgoQGlkMikgICAgcHJlZGljdGluZyBJbnQzMjog
MTU4MjQKICAgICAgICBbIDE2MF0gcmVzb2x2ZQkJIHI3LCBjaHJzeihAaWQxKSwgMSAgICBwcmVk
aWN0aW5nIEludDMyOiA4CiAgICAgICAgWyAxNjVdIG11bAkJIHI2LCByNiwgcjcKICAgICAgICBb
IDE3MF0gbG9vcF9pZl9sZXNzCSByMiwgcjYsIC0xMDMoLT42NykKICAgICAgICBbIDE3NF0gcmV0
CQkgcjAKCkNvbXBpbGF0aW9uIHN0cjJiaW5sI0VvSGxRMy0yLURGRzoKICAgICAgYXJnMCAoci03
KTogcHJlZGljdGluZyBVbmRlZmluZWQKICAgICAgYXJnMSAoci04KTogcHJlZGljdGluZyBDZWxs
OiAweDEwZDdjZmYwMCAtPiAweDAgKDB4MTBkNzFmY2MwOiBzdHJpbmcsIE5vbkFycmF5KQogICAg
ICAgIFsgICAwXSBlbnRlcgogICAgICAgIFsgICAxXSByZXNvbHZlX3dpdGhfdGhpcyByNCwgcjMs
IEFycmF5KEBpZDApLCAwICAgIHByZWRpY3RpbmcgQ2VsbDogMHgxMGQ3NGZmMjAgLT4gMHgxMGQw
ZjAyNDggKDB4MTBkNzFkMWEwOiBGdW5jdGlvbiwgTm9uQXJyYXkpCiAgICAgICAgWyAgIDddIGpu
ZXFfcHRyCQkgcjMsIDMgKDB4MTBkNzRmZjIwKSwgMTEoLT4xOCkKICAgICAgICBbICAxMV0gbmV3
X2FycmF5CSByMCwgcjAsIDAKICAgICAgICBbICAxNl0gam1wCQkgMTEoLT4yNykKICAgICAgICBb
ICAxOF0gY2FsbAkgcjMsIDEsIDExCiAgICAgICAgWyAgMjRdIGNhbGxfcHV0X3Jlc3VsdAkJIHIw
CiAgICAgICAgWyAgMjddIHJlc29sdmUJCSByMywgY2hyc3ooQGlkMSksIDEgICAgcHJlZGljdGlu
ZyBJbnQzMjogOAogICAgICAgIFsgIDMyXSBsc2hpZnQJCSByMywgSW50MzI6IDEoQGswKSwgcjMK
ICAgICAgICBbICAzNl0gc3ViCQkgcjEsIHIzLCBJbnQzMjogMShAazApCiAgICAgICAgWyAgNDFd
IG1vdgkJIHIyLCBJbnQzMjogMChAazEpCiAgICAgICAgWyAgNDRdIGdldF9ieV9pZAkgcjMsIHIt
OCwgbGVuZ3RoKEBpZDIpICAgIHByZWRpY3RpbmcgSW50MzI6IDE1ODI0CiAgICAgICAgWyAgNTNd
IHJlc29sdmUJCSByNCwgY2hyc3ooQGlkMSksIDEgICAgcHJlZGljdGluZyBJbnQzMjogOAogICAg
ICAgIFsgIDU4XSBtdWwJCSByMywgcjMsIHI0CiAgICAgICAgWyAgNjNdIGpubGVzcwkJIHIyLCBy
MywgMTExKC0+MTc0KQogICAgICAgIFsgIDY3XSBsb29wX2hpbnQKICAgICAgICBbICA2OF0gbW92
CQkgcjMsIHIwCiAgICAgICAgWyAgNzFdIHJzaGlmdAkJIHI0LCByMiwgSW50MzI6IDUoQGsyKQog
ICAgICAgIFsgIDc1XSBnZXRfYnlfdmFsCSByNSwgcjMsIHI0ICAgIDIwOTcxNTI6QXJyYXlXaXRo
SW50MzIsIHN0cnVjdCA9IDB4MTBkNzFlMTQwLCBPcmlnaW5hbCwgcHJlZGljdGluZyBJbnRPdGhl
ciwgcmFyZSBjYXNlOiA0MTEKICAgICAgICBbICA4MV0gbW92CQkgcjgsIHItOAogICAgICAgIFsg
IDg0XSBnZXRfYnlfaWQJIHI2LCByOCwgY2hhckNvZGVBdChAaWQzKSBqaXQocHJvdG8sIHN0cnVj
dCA9IDB4MTBkNzFmY2MwLCBwcm90b3R5cGVTdHJ1Y3QgPSAweDEwZDcxZmNjMCkgICAgcHJlZGlj
dGluZyBDZWxsOiAweDEwZDc3ZjJjMCAtPiAweDEwZDBmMGNmOCAoMHgxMGQ3MWViZTA6IEZ1bmN0
aW9uLCBOb25BcnJheSksIHJhcmUgY2FzZTogMgogICAgICAgIFsgIDkzXSByZXNvbHZlCQkgcjks
IGNocnN6KEBpZDEpLCAxICAgIHByZWRpY3RpbmcgSW50MzI6IDgKICAgICAgICBbICA5OF0gZGl2
CQkgcjcsIHIyLCByOQogICAgICAgIFsgMTAzXSBjYWxsCSByNiwgMiwgMTUgbGxpbnQoMHgxMGQ3
N2YyYzAsIGV4ZWMgMHgxMGQ3NmU2MDApIGppdCgweDEwZDc3ZjJjMCwgZXhlYyAweDEwZDc2ZTYw
MCkgICAgcmFyZSBjYXNlOiAyCiAgICAgICAgWyAxMDldIGNhbGxfcHV0X3Jlc3VsdAkJIHI2ICAg
IHByZWRpY3RpbmcgSW50MzI6IDMyCiAgICAgICAgWyAxMTJdIGJpdGFuZAkJIHI2LCByNiwgcjEK
ICAgICAgICBbIDExN10gbW9kCQkgcjcsIHIyLCBJbnQzMjogMzIoQGszKQogICAgICAgIFsgMTIx
XSBsc2hpZnQJCSByNiwgcjYsIHI3CiAgICAgICAgWyAxMjVdIGJpdG9yCQkgcjUsIHI1LCByNiAg
ICByYXJlIGNhc2U6IDQxMQogICAgICAgIFsgMTMwXSBwdXRfYnlfdmFsCSByMywgcjQsIHI1ICAg
IDIwOTcxNTI6QXJyYXlXaXRoSW50MzIsIHN0cnVjdCA9IDB4MTBkNzFlMTQwLCBIb2xlLCBPcmln
aW5hbCwgcmFyZSBjYXNlOiA0CiAhISEhISAgICAgICAgICAgRVhJVDogZHVlIHRvIFVuY291bnRh
YmxlLCAzIHRpbWVzCiAgICAgICAgWyAxMzVdIG1vdgkJIHI2LCByMgogICAgICAgIFsgMTM4XSBy
ZXNvbHZlCQkgcjcsIGNocnN6KEBpZDEpLCAxICAgIHByZWRpY3RpbmcgSW50MzI6IDgKICAgICAg
ICBbIDE0M10gYWRkCQkgcjYsIHI2LCByNwogICAgICAgIFsgMTQ4XSBtb3YJCSByMiwgcjYKICAg
ICAgICBbIDE1MV0gZ2V0X2J5X2lkCSByNiwgci04LCBsZW5ndGgoQGlkMikgaml0KHVuc2V0KSAg
ICBwcmVkaWN0aW5nIEludDMyOiAxNTgyNCwgcmFyZSBjYXNlOiAxNjQzCiAgICAgICAgWyAxNjBd
IHJlc29sdmUJCSByNywgY2hyc3ooQGlkMSksIDEgICAgcHJlZGljdGluZyBJbnQzMjogOAogICAg
ICAgIFsgMTY1XSBtdWwJCSByNiwgcjYsIHI3CiAgICAgICAgWyAxNzBdIGxvb3BfaWZfbGVzcwkg
cjIsIHI2LCAtMTAzKC0+NjcpCiAgICAgICAgWyAxNzRdIHJldAkJIHIwCj4gCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179657</attachid>
            <date>2012-12-16 12:22:18 -0800</date>
            <delta_ts>2012-12-16 13:05:45 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>rarecases.patch</filename>
            <type>text/plain</type>
            <size>38350</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM3ODQ0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBA
CisyMDEyLTEyLTE2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Qnl0ZWNvZGUgZHVtcGluZyBzaG91bGQgc2hvdyByYXJlIGNhc2UgcHJvZmlsZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTEzMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yZWQgdGhlIGR1
bXBlciB0byBjYWxsIGR1bXBCeXRlY29kZUNvbW1hbmRBbmROZXdMaW5lIGluIGp1c3Qgb25lIHBs
YWNlLAorICAgICAgICByYXRoZXIgdGhhbiBpbiBhbGwgb2YgdGhlIHBsYWNlcy4gQ2hhbmdlZCB0
aGUgcmFyZSBjYXNlIHByb2ZpbGUgZ2V0dGVycyB0byB1c2UKKyAgICAgICAgdHJ5QmluYXJ5U2Vh
cmNoIHJhdGhlciB0aGFuIGJpbmFyeVNlYXJjaCwgc28gdGhhdCB0aGV5IGNhbiBiZSB1c2VkIHNw
ZWN1bGF0aXZlbHkKKyAgICAgICAgZXZlbiBpZiB5b3UgZG9uJ3Qga25vdyB0aGF0IHRoZSBieXRl
Y29kZSBoYXMgcmFyZSBjYXNlIHByb2ZpbGVzLiBUaGlzIGFjdHVhbGx5CisgICAgICAgIGluY3Jl
YXNlcyBvdXIgYXNzZXJ0aW9uIGxldmVsLCBzaW5jZSBpdCBtZWFucyB0aGF0IGluIHJlbGVhc2Ug
YnVpbGRzIHdlIHdpbGwgZ2V0CisgICAgICAgIG51bGwgYW5kIGNyYXNoIHJhdGhlciB0aGFuIGdl
dHRpbmcgc29tZSByYW5kb20gYWRqYWNlbnQgcHJvZmlsZS4gQW5kIHRoZW4gdGhpcworICAgICAg
ICBhZGRzIHNvbWUgcHJpbnRpbmcgb2YgdGhlIHJhcmUgY2FzZSBwcm9maWxlcy4KKworICAgICAg
ICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cHJp
bnRVbmFyeU9wKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpwcmludEJpbmFyeU9wKToKKyAg
ICAgICAgKEpTQzo6Q29kZUJsb2NrOjpwcmludENvbmRpdGlvbmFsSnVtcCk6CisgICAgICAgIChK
U0M6OkNvZGVCbG9jazo6cHJpbnRDYWxsT3ApOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnBy
aW50UHV0QnlJZE9wKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpiZWdpbkR1bXBQcm9maWxp
bmcpOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wVmFsdWVQ
cm9maWxpbmcpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXBBcnJheVByb2ZpbGluZyk6
CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZHVtcFJhcmVDYXNlUHJvZmlsZSk6CisgICAgICAg
IChKU0M6OkNvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKToKKyAgICAgICAgKiBieXRlY29kZS9Db2Rl
QmxvY2suaDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpyYXJlQ2FzZVByb2ZpbGVGb3JCeXRl
Y29kZU9mZnNldCk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6c3BlY2lhbEZhc3RDYXNlUHJv
ZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KToKKwogMjAxMi0xMi0xMyAgRmlsaXAgUGl6bG8gIDxmcGl6
bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEF0dGVtcHQgdG8gcmF0aW9uYWxpemUgYW5kIHNpbXBs
aWZ5IFdURjo6YmluYXJ5U2VhcmNoCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTM3ODM0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCwgMjAx
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
Q2FtZXJvbiBad2FyaWNoIDxjd3p3YXJpY2hAdXdhdGVybG9vLmNhPgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dApAQCAtMjI5LDcgKzIyOSw2IEBAIHZvaWQgQ29kZUJsb2NrOjpwcmludFVuYXJ5T3AoUHJpbnRT
dHJlYW0KICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKIAogICAgIG91dC5wcmludGYo
IlslNGRdICVzXHRcdCAlcywgJXMiLCBsb2NhdGlvbiwgb3AsIHJlZ2lzdGVyTmFtZShleGVjLCBy
MCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSk7Ci0gICAgZHVtcEJ5dGVj
b2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiB9CiAKIHZvaWQgQ29kZUJsb2Nr
OjpwcmludEJpbmFyeU9wKFByaW50U3RyZWFtJiBvdXQsIEV4ZWNTdGF0ZSogZXhlYywgaW50IGxv
Y2F0aW9uLCBjb25zdCBJbnN0cnVjdGlvbiomIGl0LCBjb25zdCBjaGFyKiBvcCkKQEAgLTIzOCw3
ICsyMzcsNiBAQCB2b2lkIENvZGVCbG9jazo6cHJpbnRCaW5hcnlPcChQcmludFN0cmVhCiAgICAg
aW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgaW50IHIyID0gKCsraXQpLT51Lm9wZXJh
bmQ7CiAgICAgb3V0LnByaW50ZigiWyU0ZF0gJXNcdFx0ICVzLCAlcywgJXMiLCBsb2NhdGlvbiwg
b3AsIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEp
LmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIyKS5kYXRhKCkpOwotICAgIGR1bXBCeXRlY29k
ZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogfQogCiB2b2lkIENvZGVCbG9jazo6
cHJpbnRDb25kaXRpb25hbEp1bXAoUHJpbnRTdHJlYW0mIG91dCwgRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJbnN0cnVjdGlvbiosIGNvbnN0IEluc3RydWN0aW9uKiYgaXQsIGludCBsb2NhdGlvbiwg
Y29uc3QgY2hhciogb3ApCkBAIC0yNDYsNyArMjQ0LDYgQEAgdm9pZCBDb2RlQmxvY2s6OnByaW50
Q29uZGl0aW9uYWxKdW1wKFByaQogICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAg
IGludCBvZmZzZXQgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICBvdXQucHJpbnRmKCJbJTRkXSAl
c1x0XHQgJXMsICVkKC0+JWQpIiwgbG9jYXRpb24sIG9wLCByZWdpc3Rlck5hbWUoZXhlYywgcjAp
LmRhdGEoKSwgb2Zmc2V0LCBsb2NhdGlvbiArIG9mZnNldCk7Ci0gICAgZHVtcEJ5dGVjb2RlQ29t
bWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiB9CiAKIHZvaWQgQ29kZUJsb2NrOjpwcmlu
dEdldEJ5SWRPcChQcmludFN0cmVhbSYgb3V0LCBFeGVjU3RhdGUqIGV4ZWMsIGludCBsb2NhdGlv
biwgY29uc3QgSW5zdHJ1Y3Rpb24qJiBpdCkKQEAgLTQ3Nyw3ICs0NzQsNiBAQCB2b2lkIENvZGVC
bG9jazo6cHJpbnRDYWxsT3AoUHJpbnRTdHJlYW0mCiAgICAgICAgIH0KICNlbmRpZgogICAgIH0K
LSAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICBp
dCArPSAyOwogfQogCkBAIC00ODcsNyArNDgzLDYgQEAgdm9pZCBDb2RlQmxvY2s6OnByaW50UHV0
QnlJZE9wKFByaW50U3RyZQogICAgIGludCBpZDAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICBp
bnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICBvdXQucHJpbnRmKCJbJTRkXSAlc1x0ICVz
LCAlcywgJXMiLCBsb2NhdGlvbiwgb3AsIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCBp
ZE5hbWUoaWQwLCBtX2lkZW50aWZpZXJzW2lkMF0pLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMs
IHIxKS5kYXRhKCkpOwotICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9j
YXRpb24pOwogICAgIGl0ICs9IDU7CiB9CiAKQEAgLTY2Miw1NyArNjU3LDc1IEBAIHZvaWQgQ29k
ZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICBvdXQucHJpbnRmKCJcbiIpOwog
fQogCi12b2lkIENvZGVCbG9jazo6ZHVtcFZhbHVlUHJvZmlsaW5nKFByaW50U3RyZWFtJiBvdXQs
IGNvbnN0IEluc3RydWN0aW9uKiYgaXQpCit2b2lkIENvZGVCbG9jazo6YmVnaW5EdW1wUHJvZmls
aW5nKFByaW50U3RyZWFtJiBvdXQsIGJvb2wmIGhhc1ByaW50ZWRQcm9maWxpbmcpCit7CisgICAg
aWYgKGhhc1ByaW50ZWRQcm9maWxpbmcpCisgICAgICAgIG91dC5wcmludCgiLCAiKTsKKyAgICBl
bHNlIHsKKyAgICAgICAgb3V0LnByaW50KCIgICAgIik7CisgICAgICAgIGhhc1ByaW50ZWRQcm9m
aWxpbmcgPSB0cnVlOworICAgIH0KK30KKwordm9pZCBDb2RlQmxvY2s6OmR1bXBWYWx1ZVByb2Zp
bGluZyhQcmludFN0cmVhbSYgb3V0LCBjb25zdCBJbnN0cnVjdGlvbiomIGl0LCBib29sJiBoYXNQ
cmludGVkUHJvZmlsaW5nKQogewogICAgICsraXQ7CiAjaWYgRU5BQkxFKFZBTFVFX1BST0ZJTEVS
KQogICAgIENTdHJpbmcgZGVzY3JpcHRpb24gPSBpdC0+dS5wcm9maWxlLT5icmllZkRlc2NyaXB0
aW9uKCk7CiAgICAgaWYgKCFkZXNjcmlwdGlvbi5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuOwot
ICAgIG91dC5wcmludCgiICAgICIsIGRlc2NyaXB0aW9uKTsKKyAgICBiZWdpbkR1bXBQcm9maWxp
bmcob3V0LCBoYXNQcmludGVkUHJvZmlsaW5nKTsKKyAgICBvdXQucHJpbnQoZGVzY3JpcHRpb24p
OwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ob3V0KTsKICNlbmRpZgogfQogCi12b2lkIENvZGVC
bG9jazo6ZHVtcEFycmF5UHJvZmlsaW5nKFByaW50U3RyZWFtJiBvdXQsIGNvbnN0IEluc3RydWN0
aW9uKiYgaXQpCit2b2lkIENvZGVCbG9jazo6ZHVtcEFycmF5UHJvZmlsaW5nKFByaW50U3RyZWFt
JiBvdXQsIGNvbnN0IEluc3RydWN0aW9uKiYgaXQsIGJvb2wmIGhhc1ByaW50ZWRQcm9maWxpbmcp
CiB7CiAgICAgKytpdDsKICNpZiBFTkFCTEUoVkFMVUVfUFJPRklMRVIpCiAgICAgQ1N0cmluZyBk
ZXNjcmlwdGlvbiA9IGl0LT51LmFycmF5UHJvZmlsZS0+YnJpZWZEZXNjcmlwdGlvbih0aGlzKTsK
ICAgICBpZiAoIWRlc2NyaXB0aW9uLmxlbmd0aCgpKQogICAgICAgICByZXR1cm47Ci0gICAgb3V0
LnByaW50KCIgICAgIiwgZGVzY3JpcHRpb24pOworICAgIGJlZ2luRHVtcFByb2ZpbGluZyhvdXQs
IGhhc1ByaW50ZWRQcm9maWxpbmcpOworICAgIG91dC5wcmludChkZXNjcmlwdGlvbik7CiAjZWxz
ZQogICAgIFVOVVNFRF9QQVJBTShvdXQpOwogI2VuZGlmCiB9CiAKK3ZvaWQgQ29kZUJsb2NrOjpk
dW1wUmFyZUNhc2VQcm9maWxlKFByaW50U3RyZWFtJiBvdXQsIGNvbnN0IGNoYXIqIG5hbWUsIFJh
cmVDYXNlUHJvZmlsZSogcHJvZmlsZSwgYm9vbCYgaGFzUHJpbnRlZFByb2ZpbGluZykKK3sKKyAg
ICBpZiAoIXByb2ZpbGUgfHwgIXByb2ZpbGUtPm1fY291bnRlcikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgYmVnaW5EdW1wUHJvZmlsaW5nKG91dCwgaGFzUHJpbnRlZFByb2ZpbGluZyk7CisgICAg
b3V0LnByaW50KG5hbWUsIHByb2ZpbGUtPm1fY291bnRlcik7Cit9CisKIHZvaWQgQ29kZUJsb2Nr
OjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0mIG91dCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
bnN0cnVjdGlvbiogYmVnaW4sIGNvbnN0IEluc3RydWN0aW9uKiYgaXQpCiB7CiAgICAgaW50IGxv
Y2F0aW9uID0gaXQgLSBiZWdpbjsKKyAgICBib29sIGhhc1ByaW50ZWRQcm9maWxpbmcgPSBmYWxz
ZTsKICAgICBzd2l0Y2ggKGV4ZWMtPmludGVycHJldGVyKCktPmdldE9wY29kZUlEKGl0LT51Lm9w
Y29kZSkpIHsKICAgICAgICAgY2FzZSBvcF9lbnRlcjogewogICAgICAgICAgICAgb3V0LnByaW50
ZigiWyU0ZF0gZW50ZXIiLCBsb2NhdGlvbik7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21t
ZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2Ugb3BfY3JlYXRlX2FjdGl2YXRpb246IHsKICAgICAgICAgICAgIGlu
dCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0g
Y3JlYXRlX2FjdGl2YXRpb24gJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5k
YXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBs
b2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9w
X2NyZWF0ZV9hcmd1bWVudHM6IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVy
YW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gY3JlYXRlX2FyZ3VtZW50c1x0ICVz
IiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpKTsKLSAgICAgICAgICAg
IGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9pbml0X2xhenlfcmVnOiB7CiAg
ICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5w
cmludGYoIlslNGRdIGluaXRfbGF6eV9yZWdcdCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUo
ZXhlYywgcjApLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3
TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2Ugb3BfZ2V0X2NhbGxlZTogewpAQCAtNzI1LDIwICs3MzgsMTcgQEAgdm9pZCBDb2Rl
QmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IHIwID0gKCsr
aXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsK
ICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGNyZWF0ZV90aGlzICVzLCAlcyIsIGxvY2F0
aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIx
KS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0
LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNl
IG9wX2NvbnZlcnRfdGhpczogewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJh
bmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBjb252ZXJ0X3RoaXNcdCAlcyIsIGxv
Y2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1w
Qnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgICsr
aXQ7IC8vIFNraXAgdmFsdWUgcHJvZmlsZS4KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgIGNhc2Ugb3BfbmV3X29iamVjdDogewogICAgICAgICAgICAgaW50IHIwID0gKCsr
aXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBuZXdfb2JqZWN0
XHQgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCkpOwotICAgICAg
ICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX25ld19hcnJheTogewpA
QCAtNzQ2LDcgKzc1Niw2IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJl
YW0KICAgICAgICAgICAgIGludCBhcmd2ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAg
ICBpbnQgYXJnYyA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50Zigi
WyU0ZF0gbmV3X2FycmF5XHQgJXMsICVzLCAlZCIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhl
YywgZHN0KS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCBhcmd2KS5kYXRhKCksIGFyZ2MpOwot
ICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7
CiAgICAgICAgICAgICArK2l0OyAvLyBTa2lwIGFycmF5IGFsbG9jYXRpb24gcHJvZmlsZS4KICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC03NTQsNyArNzYzLDYgQEAgdm9pZCBDb2Rl
QmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IGRzdCA9ICgr
K2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IGxlbmd0aCA9ICgrK2l0KS0+dS5vcGVy
YW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gbmV3X2FycmF5X3dpdGhfc2l6ZVx0
ICVzLCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgZHN0KS5kYXRhKCksIHJlZ2lz
dGVyTmFtZShleGVjLCBsZW5ndGgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVD
b21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgICsraXQ7IC8vIFNr
aXAgYXJyYXkgYWxsb2NhdGlvbiBwcm9maWxlLgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KQEAgLTc2Myw3ICs3NzEsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50
U3RyZWFtCiAgICAgICAgICAgICBpbnQgYXJndiA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAg
ICAgICAgaW50IGFyZ2MgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmlu
dGYoIlslNGRdIG5ld19hcnJheV9idWZmZXJcdCAlcywgJWQsICVkIiwgbG9jYXRpb24sIHJlZ2lz
dGVyTmFtZShleGVjLCBkc3QpLmRhdGEoKSwgYXJndiwgYXJnYyk7Ci0gICAgICAgICAgICBkdW1w
Qnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgICsr
aXQ7IC8vIFNraXAgYXJyYXkgYWxsb2NhdGlvbiBwcm9maWxlLgogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KQEAgLTc3NSwxNCArNzgyLDEyIEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0
ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgICAgICBvdXQucHJpbnRmKCIlcyIsIHJlZ2V4
cE5hbWUocmUwLCByZWdleHAocmUwKSkuZGF0YSgpKTsKICAgICAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgICAgICBvdXQucHJpbnRmKCJiYWRfcmVnZXhwKCVkKSIsIHJlMCk7Ci0gICAgICAgICAg
ICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbW92OiB7CiAgICAgICAgICAg
ICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByMSA9ICgrK2l0
KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gbW92XHRcdCAlcywg
JXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFt
ZShleGVjLCByMSkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmRO
ZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBvcF9ub3Q6IHsKQEAgLTgzMiwxMyArODM3LDExIEBAIHZvaWQgQ29kZUJsb2Nr
OjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgY2FzZSBvcF9wcmVfaW5jOiB7CiAg
ICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5w
cmludGYoIlslNGRdIHByZV9pbmNcdFx0ICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVj
LCByMCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5l
KG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBvcF9wcmVfZGVjOiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFu
ZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHByZV9kZWNcdFx0ICVzIiwgbG9jYXRp
b24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRl
Y29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wb3N0X2luYzogewpAQCAtOTE0LDcgKzkxNyw2
IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAg
IGludCByMiA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgr
K2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gY2hlY2tfaGFz
X2luc3RhbmNlXHRcdCAlcywgJXMsICVzLCAlZCgtPiVkKSIsIGxvY2F0aW9uLCByZWdpc3Rlck5h
bWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIHJlZ2lz
dGVyTmFtZShleGVjLCByMikuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKLSAg
ICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9pbnN0YW5jZW9m
OiB7CkBAIC05MjIsNyArOTI0LDYgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmlu
dFN0cmVhbQogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAg
ICAgICBpbnQgcjIgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYo
IlslNGRdIGluc3RhbmNlb2ZcdFx0ICVzLCAlcywgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1l
KGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCByZWdpc3Rl
ck5hbWUoZXhlYywgcjIpLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50
QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgIGNhc2Ugb3BfdHlwZW9mOiB7CkBAIC05NjQsNyArOTY1LDYgQEAgdm9pZCBDb2Rl
QmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IHZhbHVlID0g
KCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcmVzb2x2ZUluZm8gPSAoKytpdCkt
PnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHB1dF90b19iYXNlXHQg
JXMsICVzLCAlcywgJWQiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIGJhc2UpLmRhdGEo
KSwgaWROYW1lKGlkMCwgbV9pZGVudGlmaWVyc1tpZDBdKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShl
eGVjLCB2YWx1ZSkuZGF0YSgpLCByZXNvbHZlSW5mbyk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNv
ZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcmVzb2x2ZToKQEAgLTk3NywxMyArOTc3LDExIEBA
IHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIGlu
dCBpZDAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByZXNvbHZlSW5mbyA9
ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gcmVzb2x2
ZVx0XHQgJXMsICVzLCAlZCIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEo
KSwgaWROYW1lKGlkMCwgbV9pZGVudGlmaWVyc1tpZDBdKS5kYXRhKCksIHJlc29sdmVJbmZvKTsK
LSAgICAgICAgICAgIGR1bXBWYWx1ZVByb2ZpbGluZyhvdXQsIGl0KTsKLSAgICAgICAgICAgIGR1
bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOworICAgICAgICAgICAg
ZHVtcFZhbHVlUHJvZmlsaW5nKG91dCwgaXQsIGhhc1ByaW50ZWRQcm9maWxpbmcpOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9pbml0X2dsb2JhbF9jb25z
dF9ub3A6IHsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGluaXRfZ2xvYmFsX2NvbnN0
X25vcFx0IiwgbG9jYXRpb24pOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5l
d0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBpdCsrOwogICAgICAgICAgICAgaXQr
KzsKICAgICAgICAgICAgIGl0Kys7CkBAIC05OTQsNyArOTkyLDYgQEAgdm9pZCBDb2RlQmxvY2s6
OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgV3JpdGVCYXJyaWVyPFVua25v
d24+KiByZWdpc3RlclBvaW50ZXIgPSAoKytpdCktPnUucmVnaXN0ZXJQb2ludGVyOwogICAgICAg
ICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRm
KCJbJTRkXSBpbml0X2dsb2JhbF9jb25zdFx0IGclZCglcCksICVzIiwgbG9jYXRpb24sIG1fZ2xv
YmFsT2JqZWN0LT5maW5kUmVnaXN0ZXJJbmRleChyZWdpc3RlclBvaW50ZXIpLCByZWdpc3RlclBv
aW50ZXIsIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBC
eXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgaXQr
KzsKICAgICAgICAgICAgIGl0Kys7CiAgICAgICAgICAgICBicmVhazsKQEAgLTEwMDMsNyArMTAw
MCw2IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAg
ICAgIFdyaXRlQmFycmllcjxVbmtub3duPiogcmVnaXN0ZXJQb2ludGVyID0gKCsraXQpLT51LnJl
Z2lzdGVyUG9pbnRlcjsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwog
ICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gaW5pdF9nbG9iYWxfY29uc3RfY2hlY2tcdCBn
JWQoJXApLCAlcyIsIGxvY2F0aW9uLCBtX2dsb2JhbE9iamVjdC0+ZmluZFJlZ2lzdGVySW5kZXgo
cmVnaXN0ZXJQb2ludGVyKSwgcmVnaXN0ZXJQb2ludGVyLCByZWdpc3Rlck5hbWUoZXhlYywgcjAp
LmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQs
IGxvY2F0aW9uKTsKICAgICAgICAgICAgIGl0Kys7CiAgICAgICAgICAgICBpdCsrOwogICAgICAg
ICAgICAgYnJlYWs7CkBAIC0xMDE5LDE1ICsxMDE1LDEzIEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1w
Qnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIGludCByZXNvbHZlSW5mbyA9ICgrK2l0
KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHB1dFRvQmFzZUluZm8gPSAoKytpdCktPnUu
b3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHJlc29sdmVfYmFzZSVzXHQg
JXMsICVzLCAlZCwgJWQiLCBsb2NhdGlvbiwgaXNTdHJpY3QgPyAiX3N0cmljdCIgOiAiIiwgcmVn
aXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIGlkTmFtZShpZDAsIG1faWRlbnRpZmllcnNbaWQw
XSkuZGF0YSgpLCByZXNvbHZlSW5mbywgcHV0VG9CYXNlSW5mbyk7Ci0gICAgICAgICAgICBkdW1w
VmFsdWVQcm9maWxpbmcob3V0LCBpdCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50
QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKKyAgICAgICAgICAgIGR1bXBWYWx1ZVByb2ZpbGlu
ZyhvdXQsIGl0LCBoYXNQcmludGVkUHJvZmlsaW5nKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2Ugb3BfZW5zdXJlX3Byb3BlcnR5X2V4aXN0czogewogICAgICAg
ICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgaWQwID0g
KCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBlbnN1cmVf
cHJvcGVydHlfZXhpc3RzXHQgJXMsICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCBy
MCkuZGF0YSgpLCBpZE5hbWUoaWQwLCBtX2lkZW50aWZpZXJzW2lkMF0pLmRhdGEoKSk7Ci0gICAg
ICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcmVzb2x2ZV93aXRo
X2Jhc2U6IHsKQEAgLTEwMzcsOCArMTAzMSw3IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNv
ZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIGludCByZXNvbHZlSW5mbyA9ICgrK2l0KS0+dS5v
cGVyYW5kOwogICAgICAgICAgICAgaW50IHB1dFRvQmFzZUluZm8gPSAoKytpdCktPnUub3BlcmFu
ZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHJlc29sdmVfd2l0aF9iYXNlICVzLCAl
cywgJXMsICVkLCAlZCIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwg
cmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIGlkTmFtZShpZDAsIG1faWRlbnRpZmllcnNb
aWQwXSkuZGF0YSgpLCByZXNvbHZlSW5mbywgcHV0VG9CYXNlSW5mbyk7Ci0gICAgICAgICAgICBk
dW1wVmFsdWVQcm9maWxpbmcob3V0LCBpdCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21t
ZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKKyAgICAgICAgICAgIGR1bXBWYWx1ZVByb2Zp
bGluZyhvdXQsIGl0LCBoYXNQcmludGVkUHJvZmlsaW5nKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcmVzb2x2ZV93aXRoX3RoaXM6IHsKQEAgLTEwNDcs
OCArMTA0MCw3IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAg
ICAgICAgICAgIGludCBpZDAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBy
ZXNvbHZlSW5mbyA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50Zigi
WyU0ZF0gcmVzb2x2ZV93aXRoX3RoaXMgJXMsICVzLCAlcywgJWQiLCBsb2NhdGlvbiwgcmVnaXN0
ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCBp
ZE5hbWUoaWQwLCBtX2lkZW50aWZpZXJzW2lkMF0pLmRhdGEoKSwgcmVzb2x2ZUluZm8pOwotICAg
ICAgICAgICAgZHVtcFZhbHVlUHJvZmlsaW5nKG91dCwgaXQpOwotICAgICAgICAgICAgZHVtcEJ5
dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CisgICAgICAgICAgICBkdW1w
VmFsdWVQcm9maWxpbmcob3V0LCBpdCwgaGFzUHJpbnRlZFByb2ZpbGluZyk7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2dldF9ieV9pZDoKQEAgLTEwNjcs
OCArMTA1OSw3IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAg
ICAgICAgY2FzZSBvcF9nZXRfc3RyaW5nX2xlbmd0aDogewogICAgICAgICAgICAgcHJpbnRHZXRC
eUlkT3Aob3V0LCBleGVjLCBsb2NhdGlvbiwgaXQpOwogICAgICAgICAgICAgcHJpbnRHZXRCeUlk
Q2FjaGVTdGF0dXMob3V0LCBleGVjLCBsb2NhdGlvbik7Ci0gICAgICAgICAgICBkdW1wVmFsdWVQ
cm9maWxpbmcob3V0LCBpdCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3
TGluZShvdXQsIGxvY2F0aW9uKTsKKyAgICAgICAgICAgIGR1bXBWYWx1ZVByb2ZpbGluZyhvdXQs
IGl0LCBoYXNQcmludGVkUHJvZmlsaW5nKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgIGNhc2Ugb3BfZ2V0X2FyZ3VtZW50c19sZW5ndGg6IHsKQEAgLTExMTgsNyArMTEw
OSw2IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAg
ICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIyID0gKCsr
aXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBwdXRfZ2V0dGVy
X3NldHRlclx0ICVzLCAlcywgJXMsICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCBy
MCkuZGF0YSgpLCBpZE5hbWUoaWQwLCBtX2lkZW50aWZpZXJzW2lkMF0pLmRhdGEoKSwgcmVnaXN0
ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMikuZGF0YSgpKTsK
LSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24p
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9kZWxfYnlf
aWQ6IHsKQEAgLTExMjYsNyArMTExNiw2IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUo
UHJpbnRTdHJlYW0KICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAg
ICAgICAgICAgaW50IGlkMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnBy
aW50ZigiWyU0ZF0gZGVsX2J5X2lkXHQgJXMsICVzLCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5h
bWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIGlkTmFt
ZShpZDAsIG1faWRlbnRpZmllcnNbaWQwXSkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRl
Y29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9nZXRfYnlfdmFsOiB7CkBAIC0xMTM0LDkgKzEx
MjMsOCBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAg
ICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByMiA9ICgr
K2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gZ2V0X2J5X3Zh
bFx0ICVzLCAlcywgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCks
IHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjIpLmRh
dGEoKSk7Ci0gICAgICAgICAgICBkdW1wQXJyYXlQcm9maWxpbmcob3V0LCBpdCk7Ci0gICAgICAg
ICAgICBkdW1wVmFsdWVQcm9maWxpbmcob3V0LCBpdCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNv
ZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKKyAgICAgICAgICAgIGR1bXBBcnJh
eVByb2ZpbGluZyhvdXQsIGl0LCBoYXNQcmludGVkUHJvZmlsaW5nKTsKKyAgICAgICAgICAgIGR1
bXBWYWx1ZVByb2ZpbGluZyhvdXQsIGl0LCBoYXNQcmludGVkUHJvZmlsaW5nKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfZ2V0X2FyZ3VtZW50X2J5X3Zh
bDogewpAQCAtMTE0NSw4ICsxMTMzLDcgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQ
cmludFN0cmVhbQogICAgICAgICAgICAgaW50IHIyID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAg
ICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBnZXRfYXJndW1lbnRfYnlfdmFsXHQgJXMsICVzLCAl
cyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1l
KGV4ZWMsIHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMikuZGF0YSgpKTsKICAgICAg
ICAgICAgICsraXQ7Ci0gICAgICAgICAgICBkdW1wVmFsdWVQcm9maWxpbmcob3V0LCBpdCk7Ci0g
ICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsK
KyAgICAgICAgICAgIGR1bXBWYWx1ZVByb2ZpbGluZyhvdXQsIGl0LCBoYXNQcmludGVkUHJvZmls
aW5nKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfZ2V0
X2J5X3BuYW1lOiB7CkBAIC0xMTU3LDcgKzExNDQsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5
dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBpbnQgcjQgPSAoKytpdCktPnUub3BlcmFu
ZDsKICAgICAgICAgICAgIGludCByNSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAg
b3V0LnByaW50ZigiWyU0ZF0gZ2V0X2J5X3BuYW1lXHQgJXMsICVzLCAlcywgJXMsICVzLCAlcyIs
IGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4
ZWMsIHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMikuZGF0YSgpLCByZWdpc3Rlck5h
bWUoZXhlYywgcjMpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHI0KS5kYXRhKCksIHJlZ2lz
dGVyTmFtZShleGVjLCByNSkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1l
bnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBvcF9wdXRfYnlfdmFsOiB7CkBAIC0xMTY1LDggKzExNTEsNyBAQCB2
b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBpbnQg
cjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByMiA9ICgrK2l0KS0+dS5v
cGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gcHV0X2J5X3ZhbFx0ICVzLCAl
cywgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVy
TmFtZShleGVjLCByMSkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjIpLmRhdGEoKSk7Ci0g
ICAgICAgICAgICBkdW1wQXJyYXlQcm9maWxpbmcob3V0LCBpdCk7Ci0gICAgICAgICAgICBkdW1w
Qnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKKyAgICAgICAgICAgIGR1
bXBBcnJheVByb2ZpbGluZyhvdXQsIGl0LCBoYXNQcmludGVkUHJvZmlsaW5nKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfZGVsX2J5X3ZhbDogewpAQCAt
MTE3NCw3ICsxMTU5LDYgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVh
bQogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBp
bnQgcjIgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRd
IGRlbF9ieV92YWxcdCAlcywgJXMsICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCBy
MCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4
ZWMsIHIyKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xp
bmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICBjYXNlIG9wX3B1dF9ieV9pbmRleDogewpAQCAtMTE4MiwxOSArMTE2NiwxNiBAQCB2b2lkIENv
ZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICB1bnNpZ25lZCBu
MCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9w
ZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBwdXRfYnlfaW5kZXhcdCAlcywg
JXUsICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCBuMCwgcmVn
aXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29t
bWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBjYXNlIG9wX2ptcDogewogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgr
K2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gam1wXHRcdCAl
ZCgtPiVkKSIsIGxvY2F0aW9uLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKLSAgICAgICAg
ICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9sb29wOiB7CiAgICAgICAg
ICAgICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJp
bnRmKCJbJTRkXSBsb29wXHRcdCAlZCgtPiVkKSIsIGxvY2F0aW9uLCBvZmZzZXQsIGxvY2F0aW9u
ICsgb2Zmc2V0KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91
dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2Fz
ZSBvcF9qdHJ1ZTogewpAQCAtMTIyNiw3ICsxMjA3LDYgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBC
eXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgU3BlY2lhbDo6UG9pbnRlciBwb2ludGVy
ID0gKCsraXQpLT51LnNwZWNpYWxQb2ludGVyOwogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgr
K2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gam5lcV9wdHJc
dFx0ICVzLCAlZCAoJXApLCAlZCgtPiVkKSIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywg
cjApLmRhdGEoKSwgcG9pbnRlciwgbV9nbG9iYWxPYmplY3QtPmFjdHVhbFBvaW50ZXJGb3IocG9p
bnRlciksIG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOwotICAgICAgICAgICAgZHVtcEJ5dGVj
b2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2psZXNzOiB7CkBAIC0xMjM0LDcgKzEyMTQsNiBA
QCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBp
bnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBvZmZzZXQgPSAoKytp
dCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGpsZXNzXHRcdCAl
cywgJXMsICVkKC0+JWQpIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgp
LCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSwgb2Zmc2V0LCBsb2NhdGlvbiArIG9mZnNl
dCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0
aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bfamxl
c3NlcTogewpAQCAtMTI0Miw3ICsxMjIxLDYgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29k
ZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAg
ICAgICAgICAgICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBv
dXQucHJpbnRmKCJbJTRkXSBqbGVzc2VxXHRcdCAlcywgJXMsICVkKC0+JWQpIiwgbG9jYXRpb24s
IHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRh
dGEoKSwgb2Zmc2V0LCBsb2NhdGlvbiArIG9mZnNldCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNv
ZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfamdyZWF0ZXI6IHsKQEAgLTEyNTAsNyArMTIyOCw2
IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAg
IGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgr
K2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gamdyZWF0ZXJc
dFx0ICVzLCAlcywgJWQoLT4lZCkiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5k
YXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsg
b2Zmc2V0KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwg
bG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBv
cF9qZ3JlYXRlcmVxOiB7CkBAIC0xMjU4LDcgKzEyMzUsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVt
cEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3Bl
cmFuZDsKICAgICAgICAgICAgIGludCBvZmZzZXQgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAg
ICAgICAgIG91dC5wcmludGYoIlslNGRdIGpncmVhdGVyZXFcdFx0ICVzLCAlcywgJWQoLT4lZCki
LCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShl
eGVjLCByMSkuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKLSAgICAgICAgICAg
IGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9qbmxlc3M6IHsKQEAgLTEyNjYs
NyArMTI0Miw2IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAg
ICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IG9m
ZnNldCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0g
am5sZXNzXHRcdCAlcywgJXMsICVkKC0+JWQpIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVj
LCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSwgb2Zmc2V0LCBsb2Nh
dGlvbiArIG9mZnNldCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGlu
ZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAg
IGNhc2Ugb3Bfam5sZXNzZXE6IHsKQEAgLTEyNzQsNyArMTI0OSw2IEBAIHZvaWQgQ29kZUJsb2Nr
OjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+
dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgrK2l0KS0+dS5vcGVyYW5kOwog
ICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gam5sZXNzZXFcdFx0ICVzLCAlcywgJWQoLT4l
ZCkiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFt
ZShleGVjLCByMSkuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKLSAgICAgICAg
ICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9qbmdyZWF0ZXI6IHsKQEAg
LTEyODIsNyArMTI1Niw2IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJl
YW0KICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAg
aW50IG9mZnNldCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50Zigi
WyU0ZF0gam5ncmVhdGVyXHRcdCAlcywgJXMsICVkKC0+JWQpIiwgbG9jYXRpb24sIHJlZ2lzdGVy
TmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSwgb2Zm
c2V0LCBsb2NhdGlvbiArIG9mZnNldCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50
QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgIGNhc2Ugb3Bfam5ncmVhdGVyZXE6IHsKQEAgLTEyOTAsNyArMTI2Myw2IEBAIHZv
aWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIGludCBy
MSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgrK2l0KS0+
dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gam5ncmVhdGVyZXFcdFx0
ICVzLCAlcywgJWQoLT4lZCkiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRh
KCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zm
c2V0KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9j
YXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9s
b29wX2lmX2xlc3M6IHsKQEAgLTEyOTgsNyArMTI3MCw2IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1w
Qnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVy
YW5kOwogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAg
ICAgICAgb3V0LnByaW50ZigiWyU0ZF0gbG9vcF9pZl9sZXNzXHQgJXMsICVzLCAlZCgtPiVkKSIs
IGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4
ZWMsIHIxKS5kYXRhKCksIG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOwotICAgICAgICAgICAg
ZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2xvb3BfaWZfbGVzc2VxOiB7CkBA
IC0xMzA2LDcgKzEyNzcsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3Ry
ZWFtCiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAg
IGludCBvZmZzZXQgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYo
IlslNGRdIGxvb3BfaWZfbGVzc2VxXHQgJXMsICVzLCAlZCgtPiVkKSIsIGxvY2F0aW9uLCByZWdp
c3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCks
IG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29t
bWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBjYXNlIG9wX2xvb3BfaWZfZ3JlYXRlcjogewpAQCAtMTMxNCw3ICsxMjg0
LDYgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAg
ICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0g
KCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBsb29wX2lm
X2dyZWF0ZXJcdCAlcywgJXMsICVkKC0+JWQpIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVj
LCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSwgb2Zmc2V0LCBsb2Nh
dGlvbiArIG9mZnNldCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGlu
ZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAg
IGNhc2Ugb3BfbG9vcF9pZl9ncmVhdGVyZXE6IHsKQEAgLTEzMjIsMTIgKzEyOTEsMTAgQEAgdm9p
ZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IHIx
ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51
Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBsb29wX2lmX2dyZWF0ZXJl
cVx0ICVzLCAlcywgJWQoLT4lZCkiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5k
YXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsg
b2Zmc2V0KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwg
bG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBv
cF9sb29wX2hpbnQ6IHsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGxvb3BfaGludCIs
IGxvY2F0aW9uKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91
dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2Fz
ZSBvcF9zd2l0Y2hfaW1tOiB7CkBAIC0xMzM1LDcgKzEzMDIsNiBAQCB2b2lkIENvZGVCbG9jazo6
ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBpbnQgZGVmYXVsdFRhcmdldCA9
ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHNjcnV0aW5lZVJlZ2lzdGVyID0g
KCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBzd2l0Y2hf
aW1tXHQgJWQsICVkKC0+JWQpLCAlcyIsIGxvY2F0aW9uLCB0YWJsZUluZGV4LCBkZWZhdWx0VGFy
Z2V0LCBsb2NhdGlvbiArIGRlZmF1bHRUYXJnZXQsIHJlZ2lzdGVyTmFtZShleGVjLCBzY3J1dGlu
ZWVSZWdpc3RlcikuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmRO
ZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBvcF9zd2l0Y2hfY2hhcjogewpAQCAtMTM0Myw3ICsxMzA5LDYgQEAgdm9pZCBD
b2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IGRlZmF1
bHRUYXJnZXQgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBzY3J1dGluZWVS
ZWdpc3RlciA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0
ZF0gc3dpdGNoX2NoYXJcdCAlZCwgJWQoLT4lZCksICVzIiwgbG9jYXRpb24sIHRhYmxlSW5kZXgs
IGRlZmF1bHRUYXJnZXQsIGxvY2F0aW9uICsgZGVmYXVsdFRhcmdldCwgcmVnaXN0ZXJOYW1lKGV4
ZWMsIHNjcnV0aW5lZVJlZ2lzdGVyKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2Rl
Q29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICBjYXNlIG9wX3N3aXRjaF9zdHJpbmc6IHsKQEAgLTEzNTEsNyArMTMx
Niw2IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAg
ICAgIGludCBkZWZhdWx0VGFyZ2V0ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBp
bnQgc2NydXRpbmVlUmVnaXN0ZXIgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91
dC5wcmludGYoIlslNGRdIHN3aXRjaF9zdHJpbmdcdCAlZCwgJWQoLT4lZCksICVzIiwgbG9jYXRp
b24sIHRhYmxlSW5kZXgsIGRlZmF1bHRUYXJnZXQsIGxvY2F0aW9uICsgZGVmYXVsdFRhcmdldCwg
cmVnaXN0ZXJOYW1lKGV4ZWMsIHNjcnV0aW5lZVJlZ2lzdGVyKS5kYXRhKCkpOwotICAgICAgICAg
ICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX25ld19mdW5jOiB7CkBAIC0x
MzU5LDE0ICsxMzIzLDEyIEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJl
YW0KICAgICAgICAgICAgIGludCBmMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAg
aW50IHNob3VsZENoZWNrID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJp
bnRmKCJbJTRkXSBuZXdfZnVuY1x0XHQgJXMsIGYlZCwgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJO
YW1lKGV4ZWMsIHIwKS5kYXRhKCksIGYwLCBzaG91bGRDaGVjayA/ICI8Q2hlY2tlZD4iIDogIjxV
bmNoZWNrZWQ+Iik7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShv
dXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNh
c2Ugb3BfbmV3X2Z1bmNfZXhwOiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3Bl
cmFuZDsKICAgICAgICAgICAgIGludCBmMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAg
ICAgb3V0LnByaW50ZigiWyU0ZF0gbmV3X2Z1bmNfZXhwXHQgJXMsIGYlZCIsIGxvY2F0aW9uLCBy
ZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgZjApOwotICAgICAgICAgICAgZHVtcEJ5dGVj
b2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2NhbGw6IHsKQEAgLTEzODMsNDAgKzEzNDUsMzQg
QEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAg
aW50IGFyZ3VtZW50cyA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IGZpcnN0
RnJlZVJlZ2lzdGVyID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRm
KCJbJTRkXSBjYWxsX3ZhcmFyZ3NcdCAlcywgJXMsICVzLCAlZCIsIGxvY2F0aW9uLCByZWdpc3Rl
ck5hbWUoZXhlYywgY2FsbGVlKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCB0aGlzVmFsdWUp
LmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIGFyZ3VtZW50cykuZGF0YSgpLCBmaXJzdEZyZWVS
ZWdpc3Rlcik7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQs
IGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ug
b3BfdGVhcl9vZmZfYWN0aXZhdGlvbjogewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51
Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSB0ZWFyX29mZl9hY3RpdmF0
aW9uXHQgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCkpOwotICAg
ICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3RlYXJfb2ZmX2Fy
Z3VtZW50czogewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAg
ICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmlu
dGYoIlslNGRdIHRlYXJfb2ZmX2FyZ3VtZW50cyAlcywgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJO
YW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpKTsKLSAg
ICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9yZXQ6IHsKICAg
ICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnBy
aW50ZigiWyU0ZF0gcmV0XHRcdCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjAp
LmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQs
IGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ug
b3BfY2FsbF9wdXRfcmVzdWx0OiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3Bl
cmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGNhbGxfcHV0X3Jlc3VsdFx0XHQg
JXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCkpOwotICAgICAgICAg
ICAgZHVtcFZhbHVlUHJvZmlsaW5nKG91dCwgaXQpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2Rl
Q29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CisgICAgICAgICAgICBkdW1wVmFsdWVQ
cm9maWxpbmcob3V0LCBpdCwgaGFzUHJpbnRlZFByb2ZpbGluZyk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3JldF9vYmplY3Rfb3JfdGhpczogewogICAg
ICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjEg
PSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGNvbnN0
cnVjdG9yX3JldFx0XHQgJXMgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5k
YXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBC
eXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9jb25zdHJ1Y3Q6IHsKQEAgLTE0MjgsMTQg
KzEzODQsMTIgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAg
ICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgY291
bnQgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHN0
cmNhdFx0XHQgJXMsICVzLCAlZCIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRh
dGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIGNvdW50KTsKLSAgICAgICAgICAg
IGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF90b19wcmltaXRpdmU6IHsKICAg
ICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIx
ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSB0b19w
cmltaXRpdmVcdCAlcywgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRh
KCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRl
Y29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9nZXRfcG5hbWVzOiB7CkBAIC0xNDQ1LDcgKzEz
OTksNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAg
ICAgICBpbnQgcjMgPSBpdFs0XS51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0g
aXRbNV0udS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gZ2V0X3BuYW1l
c1x0ICVzLCAlcywgJXMsICVzLCAlZCgtPiVkKSIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhl
YywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFt
ZShleGVjLCByMikuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjMpLmRhdGEoKSwgb2Zmc2V0
LCBsb2NhdGlvbiArIG9mZnNldCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5k
TmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGl0ICs9IE9QQ09ERV9MRU5HVEgo
b3BfZ2V0X3BuYW1lcykgLSAxOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTE0
NTcsMTkgKzE0MTAsMTYgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVh
bQogICAgICAgICAgICAgaW50IGl0ZXIgPSBpdFs1XS51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBp
bnQgb2Zmc2V0ID0gaXRbNl0udS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0
ZF0gbmV4dF9wbmFtZVx0ICVzLCAlcywgJXMsICVzLCAlcywgJWQoLT4lZCkiLCBsb2NhdGlvbiwg
cmVnaXN0ZXJOYW1lKGV4ZWMsIGRlc3QpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIGJhc2Up
LmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIGkpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMs
IHNpemUpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIGl0ZXIpLmRhdGEoKSwgb2Zmc2V0LCBs
b2NhdGlvbiArIG9mZnNldCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3
TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGl0ICs9IE9QQ09ERV9MRU5HVEgob3Bf
bmV4dF9wbmFtZSkgLSAxOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBvcF9wdXNoX3dpdGhfc2NvcGU6IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+
dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gcHVzaF93aXRoX3Njb3Bl
XHQgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCkpOwotICAgICAg
ICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3BvcF9zY29wZTogewog
ICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gcG9wX3Njb3BlIiwgbG9jYXRpb24pOwotICAg
ICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3B1c2hfbmFtZV9z
Y29wZTogewpAQCAtMTQ3NywzMyArMTQyNywyOCBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVj
b2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsK
ICAgICAgICAgICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXMgPSAoKytpdCktPnUub3BlcmFuZDsKICAg
ICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHB1c2hfbmFtZV9zY29wZSBcdCVzLCAlcywgJXUi
LCBsb2NhdGlvbiwgaWROYW1lKGlkMCwgbV9pZGVudGlmaWVyc1tpZDBdKS5kYXRhKCksIHJlZ2lz
dGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCBhdHRyaWJ1dGVzKTsKLSAgICAgICAgICAgIGR1bXBC
eXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9qbXBfc2NvcGVzOiB7CiAgICAgICAgICAg
ICBpbnQgc2NvcGVEZWx0YSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IG9m
ZnNldCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0g
am1wX3Njb3Blc1x0XiVkLCAlZCgtPiVkKSIsIGxvY2F0aW9uLCBzY29wZURlbHRhLCBvZmZzZXQs
IGxvY2F0aW9uICsgb2Zmc2V0KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmRO
ZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAg
ICAgICAgY2FzZSBvcF9jYXRjaDogewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9w
ZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBjYXRjaFx0XHQgJXMiLCBsb2Nh
dGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5
dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3Rocm93OiB7CiAgICAgICAgICAgICBpbnQg
cjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHRo
cm93XHRcdCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7Ci0g
ICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfdGhyb3dfc3Rh
dGljX2Vycm9yOiB7CiAgICAgICAgICAgICBpbnQgazAgPSAoKytpdCktPnUub3BlcmFuZDsKICAg
ICAgICAgICAgIGludCBrMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnBy
aW50ZigiWyU0ZF0gdGhyb3dfc3RhdGljX2Vycm9yXHQgJXMsICVzIiwgbG9jYXRpb24sIGNvbnN0
YW50TmFtZShleGVjLCBrMCwgZ2V0Q29uc3RhbnQoazApKS5kYXRhKCksIGsxID8gInRydWUiIDog
ImZhbHNlIik7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQs
IGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ug
b3BfZGVidWc6IHsKQEAgLTE1MTIsMjUgKzE0NTcsMjEgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBC
eXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IGxhc3RMaW5lID0gKCsraXQpLT51
Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgY29sdW1uID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAg
ICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBkZWJ1Z1x0XHQgJXMsICVkLCAlZCwgJWQiLCBs
b2NhdGlvbiwgZGVidWdIb29rTmFtZShkZWJ1Z0hvb2tJRCksIGZpcnN0TGluZSwgbGFzdExpbmUs
IGNvbHVtbik7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQs
IGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ug
b3BfcHJvZmlsZV93aWxsX2NhbGw6IHsKICAgICAgICAgICAgIGludCBmdW5jdGlvbiA9ICgrK2l0
KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gcHJvZmlsZV93aWxs
X2NhbGwgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIGZ1bmN0aW9uKS5kYXRhKCkp
OwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlv
bik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3Byb2Zp
bGVfZGlkX2NhbGw6IHsKICAgICAgICAgICAgIGludCBmdW5jdGlvbiA9ICgrK2l0KS0+dS5vcGVy
YW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gcHJvZmlsZV9kaWRfY2FsbFx0ICVz
IiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCBmdW5jdGlvbikuZGF0YSgpKTsKLSAgICAg
ICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9lbmQ6IHsKICAgICAg
ICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50
ZigiWyU0ZF0gZW5kXHRcdCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRh
dGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxv
Y2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAjaWYgRU5BQkxFKExMSU5U
X0NfTE9PUCkKQEAgLTE1MzgsNiArMTQ3OSwxMSBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVj
b2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBBU1NFUlQoZmFsc2UpOyAvLyBXZSBzaG91bGQg
bmV2ZXIgZ2V0IGhlcmUuCiAjZW5kaWYKICAgICB9CisKKyAgICBkdW1wUmFyZUNhc2VQcm9maWxl
KG91dCwgInJhcmUgY2FzZTogIiwgcmFyZUNhc2VQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQobG9j
YXRpb24pLCBoYXNQcmludGVkUHJvZmlsaW5nKTsKKyAgICBkdW1wUmFyZUNhc2VQcm9maWxlKG91
dCwgInNwZWNpYWwgZmFzdCBjYXNlOiAiLCBzcGVjaWFsRmFzdENhc2VQcm9maWxlRm9yQnl0ZWNv
ZGVPZmZzZXQobG9jYXRpb24pLCBoYXNQcmludGVkUHJvZmlsaW5nKTsKKyAgICAKKyAgICBkdW1w
Qnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKIH0KIAogdm9pZCBDb2Rl
QmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbSYgb3V0LCB1bnNpZ25lZCBieXRlY29kZU9m
ZnNldCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJ
KHJldmlzaW9uIDEzNzgzNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtNzA3LDcgKzcwNyw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgICAgICBSYXJlQ2FzZVByb2ZpbGUqIHJhcmVDYXNlUHJvZmlsZShpbnQgaW5kZXgpIHsg
cmV0dXJuICZtX3JhcmVDYXNlUHJvZmlsZXNbaW5kZXhdOyB9CiAgICAgICAgIFJhcmVDYXNlUHJv
ZmlsZSogcmFyZUNhc2VQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoaW50IGJ5dGVjb2RlT2Zmc2V0
KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYmluYXJ5U2VhcmNoPFJhcmVDYXNlUHJv
ZmlsZSwgaW50PigKKyAgICAgICAgICAgIHJldHVybiB0cnlCaW5hcnlTZWFyY2g8UmFyZUNhc2VQ
cm9maWxlLCBpbnQ+KAogICAgICAgICAgICAgICAgIG1fcmFyZUNhc2VQcm9maWxlcywgbV9yYXJl
Q2FzZVByb2ZpbGVzLnNpemUoKSwgYnl0ZWNvZGVPZmZzZXQsCiAgICAgICAgICAgICAgICAgZ2V0
UmFyZUNhc2VQcm9maWxlQnl0ZWNvZGVPZmZzZXQpOwogICAgICAgICB9CkBAIC03MzcsNyArNzM3
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJhcmVDYXNlUHJvZmlsZSogc3BlY2lhbEZh
c3RDYXNlUHJvZmlsZShpbnQgaW5kZXgpIHsgcmV0dXJuICZtX3NwZWNpYWxGYXN0Q2FzZVByb2Zp
bGVzW2luZGV4XTsgfQogICAgICAgICBSYXJlQ2FzZVByb2ZpbGUqIHNwZWNpYWxGYXN0Q2FzZVBy
b2ZpbGVGb3JCeXRlY29kZU9mZnNldChpbnQgYnl0ZWNvZGVPZmZzZXQpCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBiaW5hcnlTZWFyY2g8UmFyZUNhc2VQcm9maWxlLCBpbnQ+KAorICAg
ICAgICAgICAgcmV0dXJuIHRyeUJpbmFyeVNlYXJjaDxSYXJlQ2FzZVByb2ZpbGUsIGludD4oCiAg
ICAgICAgICAgICAgICAgbV9zcGVjaWFsRmFzdENhc2VQcm9maWxlcywgbV9zcGVjaWFsRmFzdENh
c2VQcm9maWxlcy5zaXplKCksIGJ5dGVjb2RlT2Zmc2V0LAogICAgICAgICAgICAgICAgIGdldFJh
cmVDYXNlUHJvZmlsZUJ5dGVjb2RlT2Zmc2V0KTsKICAgICAgICAgfQpAQCAtMTE4Nyw4ICsxMTg3
LDEwIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBlbnVtIENhY2hlRHVtcE1vZGUgeyBEdW1w
Q2FjaGVzLCBEb250RHVtcENhY2hlcyB9OwogICAgICAgICB2b2lkIHByaW50Q2FsbE9wKFByaW50
U3RyZWFtJiwgRXhlY1N0YXRlKiwgaW50IGxvY2F0aW9uLCBjb25zdCBJbnN0cnVjdGlvbiomLCBj
b25zdCBjaGFyKiBvcCwgQ2FjaGVEdW1wTW9kZSk7CiAgICAgICAgIHZvaWQgcHJpbnRQdXRCeUlk
T3AoUHJpbnRTdHJlYW0mLCBFeGVjU3RhdGUqLCBpbnQgbG9jYXRpb24sIGNvbnN0IEluc3RydWN0
aW9uKiYsIGNvbnN0IGNoYXIqIG9wKTsKLSAgICAgICAgdm9pZCBkdW1wVmFsdWVQcm9maWxpbmco
UHJpbnRTdHJlYW0mLCBjb25zdCBJbnN0cnVjdGlvbiomKTsKLSAgICAgICAgdm9pZCBkdW1wQXJy
YXlQcm9maWxpbmcoUHJpbnRTdHJlYW0mLCBjb25zdCBJbnN0cnVjdGlvbiomKTsKKyAgICAgICAg
dm9pZCBiZWdpbkR1bXBQcm9maWxpbmcoUHJpbnRTdHJlYW0mLCBib29sJiBoYXNQcmludGVkUHJv
ZmlsaW5nKTsKKyAgICAgICAgdm9pZCBkdW1wVmFsdWVQcm9maWxpbmcoUHJpbnRTdHJlYW0mLCBj
b25zdCBJbnN0cnVjdGlvbiomLCBib29sJiBoYXNQcmludGVkUHJvZmlsaW5nKTsKKyAgICAgICAg
dm9pZCBkdW1wQXJyYXlQcm9maWxpbmcoUHJpbnRTdHJlYW0mLCBjb25zdCBJbnN0cnVjdGlvbiom
LCBib29sJiBoYXNQcmludGVkUHJvZmlsaW5nKTsKKyAgICAgICAgdm9pZCBkdW1wUmFyZUNhc2VQ
cm9maWxlKFByaW50U3RyZWFtJiwgY29uc3QgY2hhciogbmFtZSwgUmFyZUNhc2VQcm9maWxlKiwg
Ym9vbCYgaGFzUHJpbnRlZFByb2ZpbGluZyk7CiAKICAgICAgICAgdm9pZCB2aXNpdFN0cnVjdHVy
ZXMoU2xvdFZpc2l0b3ImLCBJbnN0cnVjdGlvbiogdlBDKTsKICAgICAgICAgCg==
</data>
<flag name="commit-queue"
          id="196614"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179659</attachid>
            <date>2012-12-16 13:05:45 -0800</date>
            <delta_ts>2012-12-16 13:13:39 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>rarecases.patch</filename>
            <type>text/plain</type>
            <size>38458</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM3ODQ0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBA
CisyMDEyLTEyLTE2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Qnl0ZWNvZGUgZHVtcGluZyBzaG91bGQgc2hvdyByYXJlIGNhc2UgcHJvZmlsZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTEzMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yZWQgdGhlIGR1
bXBlciB0byBjYWxsIGR1bXBCeXRlY29kZUNvbW1hbmRBbmROZXdMaW5lIGluIGp1c3Qgb25lIHBs
YWNlLAorICAgICAgICByYXRoZXIgdGhhbiBpbiBhbGwgb2YgdGhlIHBsYWNlcy4gQ2hhbmdlZCB0
aGUgcmFyZSBjYXNlIHByb2ZpbGUgZ2V0dGVycyB0byB1c2UKKyAgICAgICAgdHJ5QmluYXJ5U2Vh
cmNoIHJhdGhlciB0aGFuIGJpbmFyeVNlYXJjaCwgc28gdGhhdCB0aGV5IGNhbiBiZSB1c2VkIHNw
ZWN1bGF0aXZlbHkKKyAgICAgICAgZXZlbiBpZiB5b3UgZG9uJ3Qga25vdyB0aGF0IHRoZSBieXRl
Y29kZSBoYXMgcmFyZSBjYXNlIHByb2ZpbGVzLiBUaGlzIGFjdHVhbGx5CisgICAgICAgIGluY3Jl
YXNlcyBvdXIgYXNzZXJ0aW9uIGxldmVsLCBzaW5jZSBpdCBtZWFucyB0aGF0IGluIHJlbGVhc2Ug
YnVpbGRzIHdlIHdpbGwgZ2V0CisgICAgICAgIG51bGwgYW5kIGNyYXNoIHJhdGhlciB0aGFuIGdl
dHRpbmcgc29tZSByYW5kb20gYWRqYWNlbnQgcHJvZmlsZS4gQW5kIHRoZW4gdGhpcworICAgICAg
ICBhZGRzIHNvbWUgcHJpbnRpbmcgb2YgdGhlIHJhcmUgY2FzZSBwcm9maWxlcy4KKworICAgICAg
ICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cHJp
bnRVbmFyeU9wKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpwcmludEJpbmFyeU9wKToKKyAg
ICAgICAgKEpTQzo6Q29kZUJsb2NrOjpwcmludENvbmRpdGlvbmFsSnVtcCk6CisgICAgICAgIChK
U0M6OkNvZGVCbG9jazo6cHJpbnRDYWxsT3ApOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnBy
aW50UHV0QnlJZE9wKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpiZWdpbkR1bXBQcm9maWxp
bmcpOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wVmFsdWVQ
cm9maWxpbmcpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXBBcnJheVByb2ZpbGluZyk6
CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZHVtcFJhcmVDYXNlUHJvZmlsZSk6CisgICAgICAg
IChKU0M6OkNvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKToKKyAgICAgICAgKiBieXRlY29kZS9Db2Rl
QmxvY2suaDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpyYXJlQ2FzZVByb2ZpbGVGb3JCeXRl
Y29kZU9mZnNldCk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6c3BlY2lhbEZhc3RDYXNlUHJv
ZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KToKKwogMjAxMi0xMi0xMyAgRmlsaXAgUGl6bG8gIDxmcGl6
bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEF0dGVtcHQgdG8gcmF0aW9uYWxpemUgYW5kIHNpbXBs
aWZ5IFdURjo6YmluYXJ5U2VhcmNoCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTM3ODM0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCwgMjAx
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
Q2FtZXJvbiBad2FyaWNoIDxjd3p3YXJpY2hAdXdhdGVybG9vLmNhPgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dApAQCAtMjI5LDcgKzIyOSw2IEBAIHZvaWQgQ29kZUJsb2NrOjpwcmludFVuYXJ5T3AoUHJpbnRT
dHJlYW0KICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKIAogICAgIG91dC5wcmludGYo
IlslNGRdICVzXHRcdCAlcywgJXMiLCBsb2NhdGlvbiwgb3AsIHJlZ2lzdGVyTmFtZShleGVjLCBy
MCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSk7Ci0gICAgZHVtcEJ5dGVj
b2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiB9CiAKIHZvaWQgQ29kZUJsb2Nr
OjpwcmludEJpbmFyeU9wKFByaW50U3RyZWFtJiBvdXQsIEV4ZWNTdGF0ZSogZXhlYywgaW50IGxv
Y2F0aW9uLCBjb25zdCBJbnN0cnVjdGlvbiomIGl0LCBjb25zdCBjaGFyKiBvcCkKQEAgLTIzOCw3
ICsyMzcsNiBAQCB2b2lkIENvZGVCbG9jazo6cHJpbnRCaW5hcnlPcChQcmludFN0cmVhCiAgICAg
aW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgaW50IHIyID0gKCsraXQpLT51Lm9wZXJh
bmQ7CiAgICAgb3V0LnByaW50ZigiWyU0ZF0gJXNcdFx0ICVzLCAlcywgJXMiLCBsb2NhdGlvbiwg
b3AsIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEp
LmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIyKS5kYXRhKCkpOwotICAgIGR1bXBCeXRlY29k
ZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogfQogCiB2b2lkIENvZGVCbG9jazo6
cHJpbnRDb25kaXRpb25hbEp1bXAoUHJpbnRTdHJlYW0mIG91dCwgRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJbnN0cnVjdGlvbiosIGNvbnN0IEluc3RydWN0aW9uKiYgaXQsIGludCBsb2NhdGlvbiwg
Y29uc3QgY2hhciogb3ApCkBAIC0yNDYsNyArMjQ0LDYgQEAgdm9pZCBDb2RlQmxvY2s6OnByaW50
Q29uZGl0aW9uYWxKdW1wKFByaQogICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAg
IGludCBvZmZzZXQgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICBvdXQucHJpbnRmKCJbJTRkXSAl
c1x0XHQgJXMsICVkKC0+JWQpIiwgbG9jYXRpb24sIG9wLCByZWdpc3Rlck5hbWUoZXhlYywgcjAp
LmRhdGEoKSwgb2Zmc2V0LCBsb2NhdGlvbiArIG9mZnNldCk7Ci0gICAgZHVtcEJ5dGVjb2RlQ29t
bWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiB9CiAKIHZvaWQgQ29kZUJsb2NrOjpwcmlu
dEdldEJ5SWRPcChQcmludFN0cmVhbSYgb3V0LCBFeGVjU3RhdGUqIGV4ZWMsIGludCBsb2NhdGlv
biwgY29uc3QgSW5zdHJ1Y3Rpb24qJiBpdCkKQEAgLTQ3Nyw3ICs0NzQsNiBAQCB2b2lkIENvZGVC
bG9jazo6cHJpbnRDYWxsT3AoUHJpbnRTdHJlYW0mCiAgICAgICAgIH0KICNlbmRpZgogICAgIH0K
LSAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICBp
dCArPSAyOwogfQogCkBAIC00ODcsNyArNDgzLDYgQEAgdm9pZCBDb2RlQmxvY2s6OnByaW50UHV0
QnlJZE9wKFByaW50U3RyZQogICAgIGludCBpZDAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICBp
bnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICBvdXQucHJpbnRmKCJbJTRkXSAlc1x0ICVz
LCAlcywgJXMiLCBsb2NhdGlvbiwgb3AsIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCBp
ZE5hbWUoaWQwLCBtX2lkZW50aWZpZXJzW2lkMF0pLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMs
IHIxKS5kYXRhKCkpOwotICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9j
YXRpb24pOwogICAgIGl0ICs9IDU7CiB9CiAKQEAgLTY2Miw1NyArNjU3LDc3IEBAIHZvaWQgQ29k
ZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICBvdXQucHJpbnRmKCJcbiIpOwog
fQogCi12b2lkIENvZGVCbG9jazo6ZHVtcFZhbHVlUHJvZmlsaW5nKFByaW50U3RyZWFtJiBvdXQs
IGNvbnN0IEluc3RydWN0aW9uKiYgaXQpCit2b2lkIENvZGVCbG9jazo6YmVnaW5EdW1wUHJvZmls
aW5nKFByaW50U3RyZWFtJiBvdXQsIGJvb2wmIGhhc1ByaW50ZWRQcm9maWxpbmcpCit7CisgICAg
aWYgKGhhc1ByaW50ZWRQcm9maWxpbmcpCisgICAgICAgIG91dC5wcmludCgiLCAiKTsKKyAgICBl
bHNlIHsKKyAgICAgICAgb3V0LnByaW50KCIgICAgIik7CisgICAgICAgIGhhc1ByaW50ZWRQcm9m
aWxpbmcgPSB0cnVlOworICAgIH0KK30KKwordm9pZCBDb2RlQmxvY2s6OmR1bXBWYWx1ZVByb2Zp
bGluZyhQcmludFN0cmVhbSYgb3V0LCBjb25zdCBJbnN0cnVjdGlvbiomIGl0LCBib29sJiBoYXNQ
cmludGVkUHJvZmlsaW5nKQogewogICAgICsraXQ7CiAjaWYgRU5BQkxFKFZBTFVFX1BST0ZJTEVS
KQogICAgIENTdHJpbmcgZGVzY3JpcHRpb24gPSBpdC0+dS5wcm9maWxlLT5icmllZkRlc2NyaXB0
aW9uKCk7CiAgICAgaWYgKCFkZXNjcmlwdGlvbi5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuOwot
ICAgIG91dC5wcmludCgiICAgICIsIGRlc2NyaXB0aW9uKTsKKyAgICBiZWdpbkR1bXBQcm9maWxp
bmcob3V0LCBoYXNQcmludGVkUHJvZmlsaW5nKTsKKyAgICBvdXQucHJpbnQoZGVzY3JpcHRpb24p
OwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ob3V0KTsKICNlbmRpZgogfQogCi12b2lkIENvZGVC
bG9jazo6ZHVtcEFycmF5UHJvZmlsaW5nKFByaW50U3RyZWFtJiBvdXQsIGNvbnN0IEluc3RydWN0
aW9uKiYgaXQpCit2b2lkIENvZGVCbG9jazo6ZHVtcEFycmF5UHJvZmlsaW5nKFByaW50U3RyZWFt
JiBvdXQsIGNvbnN0IEluc3RydWN0aW9uKiYgaXQsIGJvb2wmIGhhc1ByaW50ZWRQcm9maWxpbmcp
CiB7CiAgICAgKytpdDsKICNpZiBFTkFCTEUoVkFMVUVfUFJPRklMRVIpCiAgICAgQ1N0cmluZyBk
ZXNjcmlwdGlvbiA9IGl0LT51LmFycmF5UHJvZmlsZS0+YnJpZWZEZXNjcmlwdGlvbih0aGlzKTsK
ICAgICBpZiAoIWRlc2NyaXB0aW9uLmxlbmd0aCgpKQogICAgICAgICByZXR1cm47Ci0gICAgb3V0
LnByaW50KCIgICAgIiwgZGVzY3JpcHRpb24pOworICAgIGJlZ2luRHVtcFByb2ZpbGluZyhvdXQs
IGhhc1ByaW50ZWRQcm9maWxpbmcpOworICAgIG91dC5wcmludChkZXNjcmlwdGlvbik7CiAjZWxz
ZQogICAgIFVOVVNFRF9QQVJBTShvdXQpOwogI2VuZGlmCiB9CiAKKyNpZiBFTkFCTEUoVkFMVUVf
UFJPRklMRVIpCit2b2lkIENvZGVCbG9jazo6ZHVtcFJhcmVDYXNlUHJvZmlsZShQcmludFN0cmVh
bSYgb3V0LCBjb25zdCBjaGFyKiBuYW1lLCBSYXJlQ2FzZVByb2ZpbGUqIHByb2ZpbGUsIGJvb2wm
IGhhc1ByaW50ZWRQcm9maWxpbmcpCit7CisgICAgaWYgKCFwcm9maWxlIHx8ICFwcm9maWxlLT5t
X2NvdW50ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGJlZ2luRHVtcFByb2ZpbGluZyhvdXQs
IGhhc1ByaW50ZWRQcm9maWxpbmcpOworICAgIG91dC5wcmludChuYW1lLCBwcm9maWxlLT5tX2Nv
dW50ZXIpOworfQorI2VuZGlmCisKIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRT
dHJlYW0mIG91dCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJbnN0cnVjdGlvbiogYmVnaW4sIGNv
bnN0IEluc3RydWN0aW9uKiYgaXQpCiB7CiAgICAgaW50IGxvY2F0aW9uID0gaXQgLSBiZWdpbjsK
KyAgICBib29sIGhhc1ByaW50ZWRQcm9maWxpbmcgPSBmYWxzZTsKICAgICBzd2l0Y2ggKGV4ZWMt
PmludGVycHJldGVyKCktPmdldE9wY29kZUlEKGl0LT51Lm9wY29kZSkpIHsKICAgICAgICAgY2Fz
ZSBvcF9lbnRlcjogewogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gZW50ZXIiLCBsb2Nh
dGlvbik7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxv
Y2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bf
Y3JlYXRlX2FjdGl2YXRpb246IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVy
YW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gY3JlYXRlX2FjdGl2YXRpb24gJXMi
LCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCkpOwotICAgICAgICAgICAg
ZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2NyZWF0ZV9hcmd1bWVudHM6IHsK
ICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0
LnByaW50ZigiWyU0ZF0gY3JlYXRlX2FyZ3VtZW50c1x0ICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVy
TmFtZShleGVjLCByMCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRB
bmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgY2FzZSBvcF9pbml0X2xhenlfcmVnOiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAo
KytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGluaXRfbGF6
eV9yZWdcdCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7Ci0g
ICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfZ2V0X2NhbGxl
ZTogewpAQCAtNzI1LDIwICs3NDAsMTcgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQ
cmludFN0cmVhbQogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAg
ICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmlu
dGYoIlslNGRdIGNyZWF0ZV90aGlzICVzLCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhl
YywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCkpOwotICAgICAgICAg
ICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2NvbnZlcnRfdGhpczogewog
ICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQu
cHJpbnRmKCJbJTRkXSBjb252ZXJ0X3RoaXNcdCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUo
ZXhlYywgcjApLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3
TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgICsraXQ7IC8vIFNraXAgdmFsdWUgcHJv
ZmlsZS4KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbmV3
X29iamVjdDogewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAg
ICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBuZXdfb2JqZWN0XHQgJXMiLCBsb2NhdGlvbiwgcmVn
aXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29t
bWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBjYXNlIG9wX25ld19hcnJheTogewpAQCAtNzQ2LDcgKzc1OCw2IEBAIHZv
aWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIGludCBh
cmd2ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgYXJnYyA9ICgrK2l0KS0+
dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gbmV3X2FycmF5XHQgJXMs
ICVzLCAlZCIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgZHN0KS5kYXRhKCksIHJlZ2lz
dGVyTmFtZShleGVjLCBhcmd2KS5kYXRhKCksIGFyZ2MpOwotICAgICAgICAgICAgZHVtcEJ5dGVj
b2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICArK2l0OyAv
LyBTa2lwIGFycmF5IGFsbG9jYXRpb24gcHJvZmlsZS4KICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CkBAIC03NTQsNyArNzY1LDYgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQ
cmludFN0cmVhbQogICAgICAgICAgICAgaW50IGRzdCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAg
ICAgICAgICAgaW50IGxlbmd0aCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0
LnByaW50ZigiWyU0ZF0gbmV3X2FycmF5X3dpdGhfc2l6ZVx0ICVzLCAlcyIsIGxvY2F0aW9uLCBy
ZWdpc3Rlck5hbWUoZXhlYywgZHN0KS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCBsZW5ndGgp
LmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQs
IGxvY2F0aW9uKTsKICAgICAgICAgICAgICsraXQ7IC8vIFNraXAgYXJyYXkgYWxsb2NhdGlvbiBw
cm9maWxlLgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTc2Myw3ICs3NzMsNiBA
QCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBp
bnQgYXJndiA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IGFyZ2MgPSAoKytp
dCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIG5ld19hcnJheV9i
dWZmZXJcdCAlcywgJWQsICVkIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCBkc3QpLmRh
dGEoKSwgYXJndiwgYXJnYyk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3
TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgICsraXQ7IC8vIFNraXAgYXJyYXkgYWxs
b2NhdGlvbiBwcm9maWxlLgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTc3NSwx
NCArNzg0LDEyIEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAg
ICAgICAgICAgICAgICBvdXQucHJpbnRmKCIlcyIsIHJlZ2V4cE5hbWUocmUwLCByZWdleHAocmUw
KSkuZGF0YSgpKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBvdXQucHJpbnRm
KCJiYWRfcmVnZXhwKCVkKSIsIHJlMCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50
QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgIGNhc2Ugb3BfbW92OiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUu
b3BlcmFuZDsKICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAg
ICAgICAgb3V0LnByaW50ZigiWyU0ZF0gbW92XHRcdCAlcywgJXMiLCBsb2NhdGlvbiwgcmVnaXN0
ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpKTsK
LSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24p
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9ub3Q6IHsK
QEAgLTgzMiwxMyArODM5LDExIEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRT
dHJlYW0KICAgICAgICAgY2FzZSBvcF9wcmVfaW5jOiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAo
KytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHByZV9pbmNc
dFx0ICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpKTsKLSAgICAg
ICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wcmVfZGVjOiB7CiAg
ICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5w
cmludGYoIlslNGRdIHByZV9kZWNcdFx0ICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVj
LCByMCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5l
KG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBvcF9wb3N0X2luYzogewpAQCAtOTE0LDcgKzkxOSw2IEBAIHZvaWQgQ29kZUJsb2NrOjpk
dW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIGludCByMiA9ICgrK2l0KS0+dS5v
cGVyYW5kOwogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAg
ICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gY2hlY2tfaGFzX2luc3RhbmNlXHRcdCAlcywgJXMs
ICVzLCAlZCgtPiVkKSIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwg
cmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMikuZGF0
YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29k
ZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9pbnN0YW5jZW9mOiB7CkBAIC05MjIsNyArOTI2LDYg
QEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAg
aW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjIgPSAoKytpdCkt
PnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGluc3RhbmNlb2ZcdFx0
ICVzLCAlcywgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJl
Z2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjIpLmRhdGEo
KSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0
aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfdHlw
ZW9mOiB7CkBAIC05NjQsNyArOTY3LDYgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQ
cmludFN0cmVhbQogICAgICAgICAgICAgaW50IHZhbHVlID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAg
ICAgICAgICAgICBpbnQgcmVzb2x2ZUluZm8gPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAg
ICAgIG91dC5wcmludGYoIlslNGRdIHB1dF90b19iYXNlXHQgJXMsICVzLCAlcywgJWQiLCBsb2Nh
dGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIGJhc2UpLmRhdGEoKSwgaWROYW1lKGlkMCwgbV9pZGVu
dGlmaWVyc1tpZDBdKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCB2YWx1ZSkuZGF0YSgpLCBy
ZXNvbHZlSW5mbyk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShv
dXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNh
c2Ugb3BfcmVzb2x2ZToKQEAgLTk3NywxMyArOTc5LDExIEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1w
Qnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIGludCBpZDAgPSAoKytpdCktPnUub3Bl
cmFuZDsKICAgICAgICAgICAgIGludCByZXNvbHZlSW5mbyA9ICgrK2l0KS0+dS5vcGVyYW5kOwog
ICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gcmVzb2x2ZVx0XHQgJXMsICVzLCAlZCIsIGxv
Y2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgaWROYW1lKGlkMCwgbV9pZGVu
dGlmaWVyc1tpZDBdKS5kYXRhKCksIHJlc29sdmVJbmZvKTsKLSAgICAgICAgICAgIGR1bXBWYWx1
ZVByb2ZpbGluZyhvdXQsIGl0KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmRO
ZXdMaW5lKG91dCwgbG9jYXRpb24pOworICAgICAgICAgICAgZHVtcFZhbHVlUHJvZmlsaW5nKG91
dCwgaXQsIGhhc1ByaW50ZWRQcm9maWxpbmcpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBvcF9pbml0X2dsb2JhbF9jb25zdF9ub3A6IHsKICAgICAgICAgICAg
IG91dC5wcmludGYoIlslNGRdIGluaXRfZ2xvYmFsX2NvbnN0X25vcFx0IiwgbG9jYXRpb24pOwot
ICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7
CiAgICAgICAgICAgICBpdCsrOwogICAgICAgICAgICAgaXQrKzsKICAgICAgICAgICAgIGl0Kys7
CkBAIC05OTQsNyArOTk0LDYgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0
cmVhbQogICAgICAgICAgICAgV3JpdGVCYXJyaWVyPFVua25vd24+KiByZWdpc3RlclBvaW50ZXIg
PSAoKytpdCktPnUucmVnaXN0ZXJQb2ludGVyOwogICAgICAgICAgICAgaW50IHIwID0gKCsraXQp
LT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBpbml0X2dsb2JhbF9j
b25zdFx0IGclZCglcCksICVzIiwgbG9jYXRpb24sIG1fZ2xvYmFsT2JqZWN0LT5maW5kUmVnaXN0
ZXJJbmRleChyZWdpc3RlclBvaW50ZXIpLCByZWdpc3RlclBvaW50ZXIsIHJlZ2lzdGVyTmFtZShl
eGVjLCByMCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdM
aW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgaXQrKzsKICAgICAgICAgICAgIGl0Kys7
CiAgICAgICAgICAgICBicmVhazsKQEAgLTEwMDMsNyArMTAwMiw2IEBAIHZvaWQgQ29kZUJsb2Nr
OjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIFdyaXRlQmFycmllcjxVbmtu
b3duPiogcmVnaXN0ZXJQb2ludGVyID0gKCsraXQpLT51LnJlZ2lzdGVyUG9pbnRlcjsKICAgICAg
ICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50
ZigiWyU0ZF0gaW5pdF9nbG9iYWxfY29uc3RfY2hlY2tcdCBnJWQoJXApLCAlcyIsIGxvY2F0aW9u
LCBtX2dsb2JhbE9iamVjdC0+ZmluZFJlZ2lzdGVySW5kZXgocmVnaXN0ZXJQb2ludGVyKSwgcmVn
aXN0ZXJQb2ludGVyLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7Ci0gICAgICAgICAg
ICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAg
ICAgIGl0Kys7CiAgICAgICAgICAgICBpdCsrOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMDE5
LDE1ICsxMDE3LDEzIEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0K
ICAgICAgICAgICAgIGludCByZXNvbHZlSW5mbyA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAg
ICAgICAgaW50IHB1dFRvQmFzZUluZm8gPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAg
IG91dC5wcmludGYoIlslNGRdIHJlc29sdmVfYmFzZSVzXHQgJXMsICVzLCAlZCwgJWQiLCBsb2Nh
dGlvbiwgaXNTdHJpY3QgPyAiX3N0cmljdCIgOiAiIiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5k
YXRhKCksIGlkTmFtZShpZDAsIG1faWRlbnRpZmllcnNbaWQwXSkuZGF0YSgpLCByZXNvbHZlSW5m
bywgcHV0VG9CYXNlSW5mbyk7Ci0gICAgICAgICAgICBkdW1wVmFsdWVQcm9maWxpbmcob3V0LCBp
dCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0
aW9uKTsKKyAgICAgICAgICAgIGR1bXBWYWx1ZVByb2ZpbGluZyhvdXQsIGl0LCBoYXNQcmludGVk
UHJvZmlsaW5nKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ug
b3BfZW5zdXJlX3Byb3BlcnR5X2V4aXN0czogewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQp
LT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgaWQwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAg
ICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBlbnN1cmVfcHJvcGVydHlfZXhpc3RzXHQgJXMs
ICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCBpZE5hbWUoaWQw
LCBtX2lkZW50aWZpZXJzW2lkMF0pLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVD
b21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcmVzb2x2ZV93aXRoX2Jhc2U6IHsKQEAgLTEwMzcsOCAr
MTAzMyw3IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAg
ICAgICAgIGludCByZXNvbHZlSW5mbyA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAg
aW50IHB1dFRvQmFzZUluZm8gPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5w
cmludGYoIlslNGRdIHJlc29sdmVfd2l0aF9iYXNlICVzLCAlcywgJXMsICVkLCAlZCIsIGxvY2F0
aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIx
KS5kYXRhKCksIGlkTmFtZShpZDAsIG1faWRlbnRpZmllcnNbaWQwXSkuZGF0YSgpLCByZXNvbHZl
SW5mbywgcHV0VG9CYXNlSW5mbyk7Ci0gICAgICAgICAgICBkdW1wVmFsdWVQcm9maWxpbmcob3V0
LCBpdCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxv
Y2F0aW9uKTsKKyAgICAgICAgICAgIGR1bXBWYWx1ZVByb2ZpbGluZyhvdXQsIGl0LCBoYXNQcmlu
dGVkUHJvZmlsaW5nKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNh
c2Ugb3BfcmVzb2x2ZV93aXRoX3RoaXM6IHsKQEAgLTEwNDcsOCArMTA0Miw3IEBAIHZvaWQgQ29k
ZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIGludCBpZDAgPSAo
KytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByZXNvbHZlSW5mbyA9ICgrK2l0KS0+
dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gcmVzb2x2ZV93aXRoX3Ro
aXMgJXMsICVzLCAlcywgJWQiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRh
KCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCBpZE5hbWUoaWQwLCBtX2lkZW50aWZp
ZXJzW2lkMF0pLmRhdGEoKSwgcmVzb2x2ZUluZm8pOwotICAgICAgICAgICAgZHVtcFZhbHVlUHJv
ZmlsaW5nKG91dCwgaXQpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xp
bmUob3V0LCBsb2NhdGlvbik7CisgICAgICAgICAgICBkdW1wVmFsdWVQcm9maWxpbmcob3V0LCBp
dCwgaGFzUHJpbnRlZFByb2ZpbGluZyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBjYXNlIG9wX2dldF9ieV9pZDoKQEAgLTEwNjcsOCArMTA2MSw3IEBAIHZvaWQgQ29k
ZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgY2FzZSBvcF9nZXRfc3Ry
aW5nX2xlbmd0aDogewogICAgICAgICAgICAgcHJpbnRHZXRCeUlkT3Aob3V0LCBleGVjLCBsb2Nh
dGlvbiwgaXQpOwogICAgICAgICAgICAgcHJpbnRHZXRCeUlkQ2FjaGVTdGF0dXMob3V0LCBleGVj
LCBsb2NhdGlvbik7Ci0gICAgICAgICAgICBkdW1wVmFsdWVQcm9maWxpbmcob3V0LCBpdCk7Ci0g
ICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsK
KyAgICAgICAgICAgIGR1bXBWYWx1ZVByb2ZpbGluZyhvdXQsIGl0LCBoYXNQcmludGVkUHJvZmls
aW5nKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfZ2V0
X2FyZ3VtZW50c19sZW5ndGg6IHsKQEAgLTExMTgsNyArMTExMSw2IEBAIHZvaWQgQ29kZUJsb2Nr
OjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+
dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIyID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAg
ICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBwdXRfZ2V0dGVyX3NldHRlclx0ICVzLCAlcywgJXMs
ICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCBpZE5hbWUoaWQw
LCBtX2lkZW50aWZpZXJzW2lkMF0pLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRh
KCksIHJlZ2lzdGVyTmFtZShleGVjLCByMikuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRl
Y29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9kZWxfYnlfaWQ6IHsKQEAgLTExMjYsNyArMTEx
OCw2IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAg
ICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IGlkMCA9ICgr
K2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gZGVsX2J5X2lk
XHQgJXMsICVzLCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwg
cmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIGlkTmFtZShpZDAsIG1faWRlbnRpZmllcnNb
aWQwXSkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5l
KG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBvcF9nZXRfYnlfdmFsOiB7CkBAIC0xMTM0LDkgKzExMjUsOCBAQCB2b2lkIENvZGVCbG9j
azo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCkt
PnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByMiA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAg
ICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gZ2V0X2J5X3ZhbFx0ICVzLCAlcywgJXMiLCBsb2Nh
dGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCBy
MSkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjIpLmRhdGEoKSk7Ci0gICAgICAgICAgICBk
dW1wQXJyYXlQcm9maWxpbmcob3V0LCBpdCk7Ci0gICAgICAgICAgICBkdW1wVmFsdWVQcm9maWxp
bmcob3V0LCBpdCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShv
dXQsIGxvY2F0aW9uKTsKKyAgICAgICAgICAgIGR1bXBBcnJheVByb2ZpbGluZyhvdXQsIGl0LCBo
YXNQcmludGVkUHJvZmlsaW5nKTsKKyAgICAgICAgICAgIGR1bXBWYWx1ZVByb2ZpbGluZyhvdXQs
IGl0LCBoYXNQcmludGVkUHJvZmlsaW5nKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgIGNhc2Ugb3BfZ2V0X2FyZ3VtZW50X2J5X3ZhbDogewpAQCAtMTE0NSw4ICsxMTM1
LDcgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAg
ICAgaW50IHIyID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJb
JTRkXSBnZXRfYXJndW1lbnRfYnlfdmFsXHQgJXMsICVzLCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rl
ck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIHJl
Z2lzdGVyTmFtZShleGVjLCByMikuZGF0YSgpKTsKICAgICAgICAgICAgICsraXQ7Ci0gICAgICAg
ICAgICBkdW1wVmFsdWVQcm9maWxpbmcob3V0LCBpdCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNv
ZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKKyAgICAgICAgICAgIGR1bXBWYWx1
ZVByb2ZpbGluZyhvdXQsIGl0LCBoYXNQcmludGVkUHJvZmlsaW5nKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfZ2V0X2J5X3BuYW1lOiB7CkBAIC0xMTU3
LDcgKzExNDYsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAg
ICAgICAgICAgICBpbnQgcjQgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBy
NSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gZ2V0
X2J5X3BuYW1lXHQgJXMsICVzLCAlcywgJXMsICVzLCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5h
bWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIHJlZ2lz
dGVyTmFtZShleGVjLCByMikuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjMpLmRhdGEoKSwg
cmVnaXN0ZXJOYW1lKGV4ZWMsIHI0KS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByNSkuZGF0
YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9j
YXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9w
dXRfYnlfdmFsOiB7CkBAIC0xMTY1LDggKzExNTMsNyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5
dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFu
ZDsKICAgICAgICAgICAgIGludCByMiA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAg
b3V0LnByaW50ZigiWyU0ZF0gcHV0X2J5X3ZhbFx0ICVzLCAlcywgJXMiLCBsb2NhdGlvbiwgcmVn
aXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgp
LCByZWdpc3Rlck5hbWUoZXhlYywgcjIpLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQXJyYXlQ
cm9maWxpbmcob3V0LCBpdCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3
TGluZShvdXQsIGxvY2F0aW9uKTsKKyAgICAgICAgICAgIGR1bXBBcnJheVByb2ZpbGluZyhvdXQs
IGl0LCBoYXNQcmludGVkUHJvZmlsaW5nKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgIGNhc2Ugb3BfZGVsX2J5X3ZhbDogewpAQCAtMTE3NCw3ICsxMTYxLDYgQEAgdm9p
ZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IHIx
ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjIgPSAoKytpdCktPnUub3Bl
cmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGRlbF9ieV92YWxcdCAlcywgJXMs
ICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5h
bWUoZXhlYywgcjEpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIyKS5kYXRhKCkpOwotICAg
ICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3B1dF9ieV9pbmRl
eDogewpAQCAtMTE4MiwxOSArMTE2OCwxNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2Rl
KFByaW50U3RyZWFtCiAgICAgICAgICAgICB1bnNpZ25lZCBuMCA9ICgrK2l0KS0+dS5vcGVyYW5k
OwogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBv
dXQucHJpbnRmKCJbJTRkXSBwdXRfYnlfaW5kZXhcdCAlcywgJXUsICVzIiwgbG9jYXRpb24sIHJl
Z2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCBuMCwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5k
YXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBs
b2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9w
X2ptcDogewogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAg
ICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gam1wXHRcdCAlZCgtPiVkKSIsIGxvY2F0aW9uLCBv
ZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1l
bnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBvcF9sb29wOiB7CiAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gKCsr
aXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBsb29wXHRcdCAl
ZCgtPiVkKSIsIGxvY2F0aW9uLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKLSAgICAgICAg
ICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9qdHJ1ZTogewpAQCAtMTIy
Niw3ICsxMjA5LDYgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQog
ICAgICAgICAgICAgU3BlY2lhbDo6UG9pbnRlciBwb2ludGVyID0gKCsraXQpLT51LnNwZWNpYWxQ
b2ludGVyOwogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAg
ICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gam5lcV9wdHJcdFx0ICVzLCAlZCAoJXApLCAlZCgt
PiVkKSIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcG9pbnRlciwg
bV9nbG9iYWxPYmplY3QtPmFjdHVhbFBvaW50ZXJGb3IocG9pbnRlciksIG9mZnNldCwgbG9jYXRp
b24gKyBvZmZzZXQpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUo
b3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBj
YXNlIG9wX2psZXNzOiB7CkBAIC0xMjM0LDcgKzEyMTYsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVt
cEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3Bl
cmFuZDsKICAgICAgICAgICAgIGludCBvZmZzZXQgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAg
ICAgICAgIG91dC5wcmludGYoIlslNGRdIGpsZXNzXHRcdCAlcywgJXMsICVkKC0+JWQpIiwgbG9j
YXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywg
cjEpLmRhdGEoKSwgb2Zmc2V0LCBsb2NhdGlvbiArIG9mZnNldCk7Ci0gICAgICAgICAgICBkdW1w
Qnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bfamxlc3NlcTogewpAQCAtMTI0Miw3ICsx
MjIzLDYgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAg
ICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgb2Zmc2V0
ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBqbGVz
c2VxXHRcdCAlcywgJXMsICVkKC0+JWQpIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCBy
MCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSwgb2Zmc2V0LCBsb2NhdGlv
biArIG9mZnNldCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShv
dXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNh
c2Ugb3BfamdyZWF0ZXI6IHsKQEAgLTEyNTAsNyArMTIzMCw2IEBAIHZvaWQgQ29kZUJsb2NrOjpk
dW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5v
cGVyYW5kOwogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAg
ICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gamdyZWF0ZXJcdFx0ICVzLCAlcywgJWQoLT4lZCki
LCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShl
eGVjLCByMSkuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKLSAgICAgICAgICAg
IGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9qZ3JlYXRlcmVxOiB7CkBAIC0x
MjU4LDcgKzEyMzcsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFt
CiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGlu
dCBvZmZzZXQgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlsl
NGRdIGpncmVhdGVyZXFcdFx0ICVzLCAlcywgJWQoLT4lZCkiLCBsb2NhdGlvbiwgcmVnaXN0ZXJO
YW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCBvZmZz
ZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRB
bmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgY2FzZSBvcF9qbmxlc3M6IHsKQEAgLTEyNjYsNyArMTI0NCw2IEBAIHZvaWQgQ29k
ZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIGludCByMSA9ICgr
K2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgrK2l0KS0+dS5vcGVy
YW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gam5sZXNzXHRcdCAlcywgJXMsICVk
KC0+JWQpIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rl
ck5hbWUoZXhlYywgcjEpLmRhdGEoKSwgb2Zmc2V0LCBsb2NhdGlvbiArIG9mZnNldCk7Ci0gICAg
ICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bfam5sZXNzZXE6IHsK
QEAgLTEyNzQsNyArMTI1MSw2IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRT
dHJlYW0KICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAg
ICAgaW50IG9mZnNldCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50
ZigiWyU0ZF0gam5sZXNzZXFcdFx0ICVzLCAlcywgJWQoLT4lZCkiLCBsb2NhdGlvbiwgcmVnaXN0
ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCBv
ZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1l
bnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KICAgICAgICAgY2FzZSBvcF9qbmdyZWF0ZXI6IHsKQEAgLTEyODIsNyArMTI1OCw2IEBAIHZv
aWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIGludCBy
MSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgrK2l0KS0+
dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gam5ncmVhdGVyXHRcdCAl
cywgJXMsICVkKC0+JWQpIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgp
LCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSwgb2Zmc2V0LCBsb2NhdGlvbiArIG9mZnNl
dCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0
aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3Bfam5n
cmVhdGVyZXE6IHsKQEAgLTEyOTAsNyArMTI2NSw2IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0
ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5k
OwogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAg
ICAgb3V0LnByaW50ZigiWyU0ZF0gam5ncmVhdGVyZXFcdFx0ICVzLCAlcywgJWQoLT4lZCkiLCBs
b2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVj
LCByMSkuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKLSAgICAgICAgICAgIGR1
bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9sb29wX2lmX2xlc3M6IHsKQEAgLTEy
OTgsNyArMTI3Miw2IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0K
ICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50
IG9mZnNldCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0
ZF0gbG9vcF9pZl9sZXNzXHQgJXMsICVzLCAlZCgtPiVkKSIsIGxvY2F0aW9uLCByZWdpc3Rlck5h
bWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIG9mZnNl
dCwgbG9jYXRpb24gKyBvZmZzZXQpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFu
ZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBjYXNlIG9wX2xvb3BfaWZfbGVzc2VxOiB7CkBAIC0xMzA2LDcgKzEyNzksNiBAQCB2
b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBpbnQg
cjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBvZmZzZXQgPSAoKytpdCkt
PnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGxvb3BfaWZfbGVzc2Vx
XHQgJXMsICVzLCAlZCgtPiVkKSIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRh
dGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIG9mZnNldCwgbG9jYXRpb24gKyBv
ZmZzZXQpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBs
b2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9w
X2xvb3BfaWZfZ3JlYXRlcjogewpAQCAtMTMxNCw3ICsxMjg2LDYgQEAgdm9pZCBDb2RlQmxvY2s6
OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51
Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAg
ICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBsb29wX2lmX2dyZWF0ZXJcdCAlcywgJXMsICVk
KC0+JWQpIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rl
ck5hbWUoZXhlYywgcjEpLmRhdGEoKSwgb2Zmc2V0LCBsb2NhdGlvbiArIG9mZnNldCk7Ci0gICAg
ICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbG9vcF9pZl9ncmVh
dGVyZXE6IHsKQEAgLTEzMjIsMTIgKzEyOTMsMTAgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRl
Y29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7
CiAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAg
ICBvdXQucHJpbnRmKCJbJTRkXSBsb29wX2lmX2dyZWF0ZXJlcVx0ICVzLCAlcywgJWQoLT4lZCki
LCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShl
eGVjLCByMSkuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKLSAgICAgICAgICAg
IGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9sb29wX2hpbnQ6IHsKICAgICAg
ICAgICAgIG91dC5wcmludGYoIlslNGRdIGxvb3BfaGludCIsIGxvY2F0aW9uKTsKLSAgICAgICAg
ICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9zd2l0Y2hfaW1tOiB7CkBA
IC0xMzM1LDcgKzEzMDQsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3Ry
ZWFtCiAgICAgICAgICAgICBpbnQgZGVmYXVsdFRhcmdldCA9ICgrK2l0KS0+dS5vcGVyYW5kOwog
ICAgICAgICAgICAgaW50IHNjcnV0aW5lZVJlZ2lzdGVyID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAg
ICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBzd2l0Y2hfaW1tXHQgJWQsICVkKC0+JWQpLCAl
cyIsIGxvY2F0aW9uLCB0YWJsZUluZGV4LCBkZWZhdWx0VGFyZ2V0LCBsb2NhdGlvbiArIGRlZmF1
bHRUYXJnZXQsIHJlZ2lzdGVyTmFtZShleGVjLCBzY3J1dGluZWVSZWdpc3RlcikuZGF0YSgpKTsK
LSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24p
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9zd2l0Y2hf
Y2hhcjogewpAQCAtMTM0Myw3ICsxMzExLDYgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29k
ZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IGRlZmF1bHRUYXJnZXQgPSAoKytpdCktPnUu
b3BlcmFuZDsKICAgICAgICAgICAgIGludCBzY3J1dGluZWVSZWdpc3RlciA9ICgrK2l0KS0+dS5v
cGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gc3dpdGNoX2NoYXJcdCAlZCwg
JWQoLT4lZCksICVzIiwgbG9jYXRpb24sIHRhYmxlSW5kZXgsIGRlZmF1bHRUYXJnZXQsIGxvY2F0
aW9uICsgZGVmYXVsdFRhcmdldCwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHNjcnV0aW5lZVJlZ2lzdGVy
KS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0
LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNl
IG9wX3N3aXRjaF9zdHJpbmc6IHsKQEAgLTEzNTEsNyArMTMxOCw2IEBAIHZvaWQgQ29kZUJsb2Nr
OjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIGludCBkZWZhdWx0VGFyZ2V0
ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgc2NydXRpbmVlUmVnaXN0ZXIg
PSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHN3aXRj
aF9zdHJpbmdcdCAlZCwgJWQoLT4lZCksICVzIiwgbG9jYXRpb24sIHRhYmxlSW5kZXgsIGRlZmF1
bHRUYXJnZXQsIGxvY2F0aW9uICsgZGVmYXVsdFRhcmdldCwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHNj
cnV0aW5lZVJlZ2lzdGVyKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVu
dEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogICAgICAgICBjYXNlIG9wX25ld19mdW5jOiB7CkBAIC0xMzU5LDE0ICsxMzI1LDEyIEBAIHZv
aWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIGludCBm
MCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHNob3VsZENoZWNrID0gKCsr
aXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBuZXdfZnVuY1x0
XHQgJXMsIGYlZCwgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCks
IGYwLCBzaG91bGRDaGVjayA/ICI8Q2hlY2tlZD4iIDogIjxVbmNoZWNrZWQ+Iik7Ci0gICAgICAg
ICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbmV3X2Z1bmNfZXhwOiB7
CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGlu
dCBmMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0g
bmV3X2Z1bmNfZXhwXHQgJXMsIGYlZCIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjAp
LmRhdGEoKSwgZjApOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUo
b3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBj
YXNlIG9wX2NhbGw6IHsKQEAgLTEzODMsNDAgKzEzNDcsMzQgQEAgdm9pZCBDb2RlQmxvY2s6OmR1
bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IGFyZ3VtZW50cyA9ICgrK2l0
KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IGZpcnN0RnJlZVJlZ2lzdGVyID0gKCsraXQp
LT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBjYWxsX3ZhcmFyZ3Nc
dCAlcywgJXMsICVzLCAlZCIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgY2FsbGVlKS5k
YXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCB0aGlzVmFsdWUpLmRhdGEoKSwgcmVnaXN0ZXJOYW1l
KGV4ZWMsIGFyZ3VtZW50cykuZGF0YSgpLCBmaXJzdEZyZWVSZWdpc3Rlcik7Ci0gICAgICAgICAg
ICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfdGVhcl9vZmZfYWN0aXZhdGlv
bjogewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAg
ICBvdXQucHJpbnRmKCJbJTRkXSB0ZWFyX29mZl9hY3RpdmF0aW9uXHQgJXMiLCBsb2NhdGlvbiwg
cmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2Rl
Q29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICBjYXNlIG9wX3RlYXJfb2ZmX2FyZ3VtZW50czogewogICAgICAgICAg
ICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjEgPSAoKytp
dCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHRlYXJfb2ZmX2Fy
Z3VtZW50cyAlcywgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCks
IHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29k
ZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9yZXQ6IHsKICAgICAgICAgICAgIGludCByMCA9ICgr
K2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gcmV0XHRcdCAl
cyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7Ci0gICAgICAgICAg
ICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfY2FsbF9wdXRfcmVzdWx0OiB7
CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91
dC5wcmludGYoIlslNGRdIGNhbGxfcHV0X3Jlc3VsdFx0XHQgJXMiLCBsb2NhdGlvbiwgcmVnaXN0
ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcFZhbHVlUHJvZmlsaW5n
KG91dCwgaXQpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0
LCBsb2NhdGlvbik7CisgICAgICAgICAgICBkdW1wVmFsdWVQcm9maWxpbmcob3V0LCBpdCwgaGFz
UHJpbnRlZFByb2ZpbGluZyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICBjYXNlIG9wX3JldF9vYmplY3Rfb3JfdGhpczogewogICAgICAgICAgICAgaW50IHIwID0gKCsr
aXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsK
ICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGNvbnN0cnVjdG9yX3JldFx0XHQgJXMgJXMi
LCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShl
eGVjLCByMSkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdM
aW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBvcF9jb25zdHJ1Y3Q6IHsKQEAgLTE0MjgsMTQgKzEzODYsMTIgQEAgdm9pZCBDb2Rl
QmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IHIxID0gKCsr
aXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgY291bnQgPSAoKytpdCktPnUub3BlcmFu
ZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHN0cmNhdFx0XHQgJXMsICVzLCAlZCIs
IGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4
ZWMsIHIxKS5kYXRhKCksIGNvdW50KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRB
bmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgY2FzZSBvcF90b19wcmltaXRpdmU6IHsKICAgICAgICAgICAgIGludCByMCA9ICgr
K2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7
CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSB0b19wcmltaXRpdmVcdCAlcywgJXMiLCBs
b2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVj
LCByMSkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5l
KG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBvcF9nZXRfcG5hbWVzOiB7CkBAIC0xNDQ1LDcgKzE0MDEsNiBAQCB2b2lkIENvZGVCbG9j
azo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBpbnQgcjMgPSBpdFs0XS51
Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gaXRbNV0udS5vcGVyYW5kOwogICAg
ICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gZ2V0X3BuYW1lc1x0ICVzLCAlcywgJXMsICVzLCAl
ZCgtPiVkKSIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0
ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMikuZGF0YSgpLCBy
ZWdpc3Rlck5hbWUoZXhlYywgcjMpLmRhdGEoKSwgb2Zmc2V0LCBsb2NhdGlvbiArIG9mZnNldCk7
Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9u
KTsKICAgICAgICAgICAgIGl0ICs9IE9QQ09ERV9MRU5HVEgob3BfZ2V0X3BuYW1lcykgLSAxOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTE0NTcsMTkgKzE0MTIsMTYgQEAgdm9p
ZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IGl0
ZXIgPSBpdFs1XS51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gaXRbNl0udS5v
cGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gbmV4dF9wbmFtZVx0ICVzLCAl
cywgJXMsICVzLCAlcywgJWQoLT4lZCkiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIGRl
c3QpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIGJhc2UpLmRhdGEoKSwgcmVnaXN0ZXJOYW1l
KGV4ZWMsIGkpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHNpemUpLmRhdGEoKSwgcmVnaXN0
ZXJOYW1lKGV4ZWMsIGl0ZXIpLmRhdGEoKSwgb2Zmc2V0LCBsb2NhdGlvbiArIG9mZnNldCk7Ci0g
ICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsK
ICAgICAgICAgICAgIGl0ICs9IE9QQ09ERV9MRU5HVEgob3BfbmV4dF9wbmFtZSkgLSAxOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wdXNoX3dpdGhfc2Nv
cGU6IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAg
ICAgb3V0LnByaW50ZigiWyU0ZF0gcHVzaF93aXRoX3Njb3BlXHQgJXMiLCBsb2NhdGlvbiwgcmVn
aXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29t
bWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBjYXNlIG9wX3BvcF9zY29wZTogewogICAgICAgICAgICAgb3V0LnByaW50
ZigiWyU0ZF0gcG9wX3Njb3BlIiwgbG9jYXRpb24pOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2Rl
Q29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICBjYXNlIG9wX3B1c2hfbmFtZV9zY29wZTogewpAQCAtMTQ3NywzMyAr
MTQyOSwyOCBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAg
ICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIHVuc2lnbmVk
IGF0dHJpYnV0ZXMgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYo
IlslNGRdIHB1c2hfbmFtZV9zY29wZSBcdCVzLCAlcywgJXUiLCBsb2NhdGlvbiwgaWROYW1lKGlk
MCwgbV9pZGVudGlmaWVyc1tpZDBdKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0
YSgpLCBhdHRyaWJ1dGVzKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdM
aW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBvcF9qbXBfc2NvcGVzOiB7CiAgICAgICAgICAgICBpbnQgc2NvcGVEZWx0YSA9ICgr
K2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgrK2l0KS0+dS5vcGVy
YW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gam1wX3Njb3Blc1x0XiVkLCAlZCgt
PiVkKSIsIGxvY2F0aW9uLCBzY29wZURlbHRhLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsK
LSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24p
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9jYXRjaDog
ewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBv
dXQucHJpbnRmKCJbJTRkXSBjYXRjaFx0XHQgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4
ZWMsIHIwKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xp
bmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICBjYXNlIG9wX3Rocm93OiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFu
ZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHRocm93XHRcdCAlcyIsIGxvY2F0aW9u
LCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNv
ZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfdGhyb3dfc3RhdGljX2Vycm9yOiB7CiAgICAgICAg
ICAgICBpbnQgazAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBrMSA9ICgr
K2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gdGhyb3dfc3Rh
dGljX2Vycm9yXHQgJXMsICVzIiwgbG9jYXRpb24sIGNvbnN0YW50TmFtZShleGVjLCBrMCwgZ2V0
Q29uc3RhbnQoazApKS5kYXRhKCksIGsxID8gInRydWUiIDogImZhbHNlIik7Ci0gICAgICAgICAg
ICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfZGVidWc6IHsKQEAgLTE1MTIs
MjUgKzE0NTksMjEgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQog
ICAgICAgICAgICAgaW50IGxhc3RMaW5lID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAg
ICBpbnQgY29sdW1uID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRm
KCJbJTRkXSBkZWJ1Z1x0XHQgJXMsICVkLCAlZCwgJWQiLCBsb2NhdGlvbiwgZGVidWdIb29rTmFt
ZShkZWJ1Z0hvb2tJRCksIGZpcnN0TGluZSwgbGFzdExpbmUsIGNvbHVtbik7Ci0gICAgICAgICAg
ICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHJvZmlsZV93aWxsX2NhbGw6
IHsKICAgICAgICAgICAgIGludCBmdW5jdGlvbiA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAg
ICAgICAgb3V0LnByaW50ZigiWyU0ZF0gcHJvZmlsZV93aWxsX2NhbGwgJXMiLCBsb2NhdGlvbiwg
cmVnaXN0ZXJOYW1lKGV4ZWMsIGZ1bmN0aW9uKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5
dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3Byb2ZpbGVfZGlkX2NhbGw6IHsKICAgICAg
ICAgICAgIGludCBmdW5jdGlvbiA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0
LnByaW50ZigiWyU0ZF0gcHJvZmlsZV9kaWRfY2FsbFx0ICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVy
TmFtZShleGVjLCBmdW5jdGlvbikuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNv
bW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSBvcF9lbmQ6IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0
KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gZW5kXHRcdCAlcyIs
IGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7Ci0gICAgICAgICAgICBk
dW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAjaWYgRU5BQkxFKExMSU5UX0NfTE9PUCkKQEAgLTE1MzgsNiAr
MTQ4MSwxMyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAg
ICAgICAgICBBU1NFUlQoZmFsc2UpOyAvLyBXZSBzaG91bGQgbmV2ZXIgZ2V0IGhlcmUuCiAjZW5k
aWYKICAgICB9CisKKyNpZiBFTkFCTEUoVkFMVUVfUFJPRklMRVIpCisgICAgZHVtcFJhcmVDYXNl
UHJvZmlsZShvdXQsICJyYXJlIGNhc2U6ICIsIHJhcmVDYXNlUHJvZmlsZUZvckJ5dGVjb2RlT2Zm
c2V0KGxvY2F0aW9uKSwgaGFzUHJpbnRlZFByb2ZpbGluZyk7CisgICAgZHVtcFJhcmVDYXNlUHJv
ZmlsZShvdXQsICJzcGVjaWFsIGZhc3QgY2FzZTogIiwgc3BlY2lhbEZhc3RDYXNlUHJvZmlsZUZv
ckJ5dGVjb2RlT2Zmc2V0KGxvY2F0aW9uKSwgaGFzUHJpbnRlZFByb2ZpbGluZyk7CisjZW5kaWYK
KyAgICAKKyAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsK
IH0KIAogdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbSYgb3V0LCB1bnNp
Z25lZCBieXRlY29kZU9mZnNldCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9uIDEzNzgzNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9Db2RlQmxvY2suaAkod29ya2luZyBjb3B5KQpAQCAtNzA3LDcgKzcwNyw3IEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICBSYXJlQ2FzZVByb2ZpbGUqIHJhcmVDYXNlUHJvZmls
ZShpbnQgaW5kZXgpIHsgcmV0dXJuICZtX3JhcmVDYXNlUHJvZmlsZXNbaW5kZXhdOyB9CiAgICAg
ICAgIFJhcmVDYXNlUHJvZmlsZSogcmFyZUNhc2VQcm9maWxlRm9yQnl0ZWNvZGVPZmZzZXQoaW50
IGJ5dGVjb2RlT2Zmc2V0KQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYmluYXJ5U2Vh
cmNoPFJhcmVDYXNlUHJvZmlsZSwgaW50PigKKyAgICAgICAgICAgIHJldHVybiB0cnlCaW5hcnlT
ZWFyY2g8UmFyZUNhc2VQcm9maWxlLCBpbnQ+KAogICAgICAgICAgICAgICAgIG1fcmFyZUNhc2VQ
cm9maWxlcywgbV9yYXJlQ2FzZVByb2ZpbGVzLnNpemUoKSwgYnl0ZWNvZGVPZmZzZXQsCiAgICAg
ICAgICAgICAgICAgZ2V0UmFyZUNhc2VQcm9maWxlQnl0ZWNvZGVPZmZzZXQpOwogICAgICAgICB9
CkBAIC03MzcsNyArNzM3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJhcmVDYXNlUHJv
ZmlsZSogc3BlY2lhbEZhc3RDYXNlUHJvZmlsZShpbnQgaW5kZXgpIHsgcmV0dXJuICZtX3NwZWNp
YWxGYXN0Q2FzZVByb2ZpbGVzW2luZGV4XTsgfQogICAgICAgICBSYXJlQ2FzZVByb2ZpbGUqIHNw
ZWNpYWxGYXN0Q2FzZVByb2ZpbGVGb3JCeXRlY29kZU9mZnNldChpbnQgYnl0ZWNvZGVPZmZzZXQp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBiaW5hcnlTZWFyY2g8UmFyZUNhc2VQcm9m
aWxlLCBpbnQ+KAorICAgICAgICAgICAgcmV0dXJuIHRyeUJpbmFyeVNlYXJjaDxSYXJlQ2FzZVBy
b2ZpbGUsIGludD4oCiAgICAgICAgICAgICAgICAgbV9zcGVjaWFsRmFzdENhc2VQcm9maWxlcywg
bV9zcGVjaWFsRmFzdENhc2VQcm9maWxlcy5zaXplKCksIGJ5dGVjb2RlT2Zmc2V0LAogICAgICAg
ICAgICAgICAgIGdldFJhcmVDYXNlUHJvZmlsZUJ5dGVjb2RlT2Zmc2V0KTsKICAgICAgICAgfQpA
QCAtMTE4Nyw4ICsxMTg3LDEyIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBlbnVtIENhY2hl
RHVtcE1vZGUgeyBEdW1wQ2FjaGVzLCBEb250RHVtcENhY2hlcyB9OwogICAgICAgICB2b2lkIHBy
aW50Q2FsbE9wKFByaW50U3RyZWFtJiwgRXhlY1N0YXRlKiwgaW50IGxvY2F0aW9uLCBjb25zdCBJ
bnN0cnVjdGlvbiomLCBjb25zdCBjaGFyKiBvcCwgQ2FjaGVEdW1wTW9kZSk7CiAgICAgICAgIHZv
aWQgcHJpbnRQdXRCeUlkT3AoUHJpbnRTdHJlYW0mLCBFeGVjU3RhdGUqLCBpbnQgbG9jYXRpb24s
IGNvbnN0IEluc3RydWN0aW9uKiYsIGNvbnN0IGNoYXIqIG9wKTsKLSAgICAgICAgdm9pZCBkdW1w
VmFsdWVQcm9maWxpbmcoUHJpbnRTdHJlYW0mLCBjb25zdCBJbnN0cnVjdGlvbiomKTsKLSAgICAg
ICAgdm9pZCBkdW1wQXJyYXlQcm9maWxpbmcoUHJpbnRTdHJlYW0mLCBjb25zdCBJbnN0cnVjdGlv
biomKTsKKyAgICAgICAgdm9pZCBiZWdpbkR1bXBQcm9maWxpbmcoUHJpbnRTdHJlYW0mLCBib29s
JiBoYXNQcmludGVkUHJvZmlsaW5nKTsKKyAgICAgICAgdm9pZCBkdW1wVmFsdWVQcm9maWxpbmco
UHJpbnRTdHJlYW0mLCBjb25zdCBJbnN0cnVjdGlvbiomLCBib29sJiBoYXNQcmludGVkUHJvZmls
aW5nKTsKKyAgICAgICAgdm9pZCBkdW1wQXJyYXlQcm9maWxpbmcoUHJpbnRTdHJlYW0mLCBjb25z
dCBJbnN0cnVjdGlvbiomLCBib29sJiBoYXNQcmludGVkUHJvZmlsaW5nKTsKKyNpZiBFTkFCTEUo
VkFMVUVfUFJPRklMRVIpCisgICAgICAgIHZvaWQgZHVtcFJhcmVDYXNlUHJvZmlsZShQcmludFN0
cmVhbSYsIGNvbnN0IGNoYXIqIG5hbWUsIFJhcmVDYXNlUHJvZmlsZSosIGJvb2wmIGhhc1ByaW50
ZWRQcm9maWxpbmcpOworI2VuZGlmCiAKICAgICAgICAgdm9pZCB2aXNpdFN0cnVjdHVyZXMoU2xv
dFZpc2l0b3ImLCBJbnN0cnVjdGlvbiogdlBDKTsKICAgICAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179661</attachid>
            <date>2012-12-16 13:13:39 -0800</date>
            <delta_ts>2012-12-16 21:37:34 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>rarecases.patch</filename>
            <type>text/plain</type>
            <size>38463</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTM3ODQ0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBA
CisyMDEyLTEyLTE2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
Qnl0ZWNvZGUgZHVtcGluZyBzaG91bGQgc2hvdyByYXJlIGNhc2UgcHJvZmlsZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNTEzMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yZWQgdGhlIGR1
bXBlciB0byBjYWxsIGR1bXBCeXRlY29kZUNvbW1hbmRBbmROZXdMaW5lIGluIGp1c3Qgb25lIHBs
YWNlLAorICAgICAgICByYXRoZXIgdGhhbiBpbiBhbGwgb2YgdGhlIHBsYWNlcy4gQ2hhbmdlZCB0
aGUgcmFyZSBjYXNlIHByb2ZpbGUgZ2V0dGVycyB0byB1c2UKKyAgICAgICAgdHJ5QmluYXJ5U2Vh
cmNoIHJhdGhlciB0aGFuIGJpbmFyeVNlYXJjaCwgc28gdGhhdCB0aGV5IGNhbiBiZSB1c2VkIHNw
ZWN1bGF0aXZlbHkKKyAgICAgICAgZXZlbiBpZiB5b3UgZG9uJ3Qga25vdyB0aGF0IHRoZSBieXRl
Y29kZSBoYXMgcmFyZSBjYXNlIHByb2ZpbGVzLiBUaGlzIGFjdHVhbGx5CisgICAgICAgIGluY3Jl
YXNlcyBvdXIgYXNzZXJ0aW9uIGxldmVsLCBzaW5jZSBpdCBtZWFucyB0aGF0IGluIHJlbGVhc2Ug
YnVpbGRzIHdlIHdpbGwgZ2V0CisgICAgICAgIG51bGwgYW5kIGNyYXNoIHJhdGhlciB0aGFuIGdl
dHRpbmcgc29tZSByYW5kb20gYWRqYWNlbnQgcHJvZmlsZS4gQW5kIHRoZW4gdGhpcworICAgICAg
ICBhZGRzIHNvbWUgcHJpbnRpbmcgb2YgdGhlIHJhcmUgY2FzZSBwcm9maWxlcy4KKworICAgICAg
ICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6cHJp
bnRVbmFyeU9wKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpwcmludEJpbmFyeU9wKToKKyAg
ICAgICAgKEpTQzo6Q29kZUJsb2NrOjpwcmludENvbmRpdGlvbmFsSnVtcCk6CisgICAgICAgIChK
U0M6OkNvZGVCbG9jazo6cHJpbnRDYWxsT3ApOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnBy
aW50UHV0QnlJZE9wKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpiZWdpbkR1bXBQcm9maWxp
bmcpOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wVmFsdWVQ
cm9maWxpbmcpOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmR1bXBBcnJheVByb2ZpbGluZyk6
CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6ZHVtcFJhcmVDYXNlUHJvZmlsZSk6CisgICAgICAg
IChKU0M6OkNvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKToKKyAgICAgICAgKiBieXRlY29kZS9Db2Rl
QmxvY2suaDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpyYXJlQ2FzZVByb2ZpbGVGb3JCeXRl
Y29kZU9mZnNldCk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6c3BlY2lhbEZhc3RDYXNlUHJv
ZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KToKKwogMjAxMi0xMi0xMyAgRmlsaXAgUGl6bG8gIDxmcGl6
bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEF0dGVtcHQgdG8gcmF0aW9uYWxpemUgYW5kIHNpbXBs
aWZ5IFdURjo6YmluYXJ5U2VhcmNoCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTM3ODM0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSwgMjAxMCwgMjAx
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
Q2FtZXJvbiBad2FyaWNoIDxjd3p3YXJpY2hAdXdhdGVybG9vLmNhPgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dApAQCAtMjI5LDcgKzIyOSw2IEBAIHZvaWQgQ29kZUJsb2NrOjpwcmludFVuYXJ5T3AoUHJpbnRT
dHJlYW0KICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKIAogICAgIG91dC5wcmludGYo
IlslNGRdICVzXHRcdCAlcywgJXMiLCBsb2NhdGlvbiwgb3AsIHJlZ2lzdGVyTmFtZShleGVjLCBy
MCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSk7Ci0gICAgZHVtcEJ5dGVj
b2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiB9CiAKIHZvaWQgQ29kZUJsb2Nr
OjpwcmludEJpbmFyeU9wKFByaW50U3RyZWFtJiBvdXQsIEV4ZWNTdGF0ZSogZXhlYywgaW50IGxv
Y2F0aW9uLCBjb25zdCBJbnN0cnVjdGlvbiomIGl0LCBjb25zdCBjaGFyKiBvcCkKQEAgLTIzOCw3
ICsyMzcsNiBAQCB2b2lkIENvZGVCbG9jazo6cHJpbnRCaW5hcnlPcChQcmludFN0cmVhCiAgICAg
aW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgaW50IHIyID0gKCsraXQpLT51Lm9wZXJh
bmQ7CiAgICAgb3V0LnByaW50ZigiWyU0ZF0gJXNcdFx0ICVzLCAlcywgJXMiLCBsb2NhdGlvbiwg
b3AsIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEp
LmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIyKS5kYXRhKCkpOwotICAgIGR1bXBCeXRlY29k
ZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogfQogCiB2b2lkIENvZGVCbG9jazo6
cHJpbnRDb25kaXRpb25hbEp1bXAoUHJpbnRTdHJlYW0mIG91dCwgRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBJbnN0cnVjdGlvbiosIGNvbnN0IEluc3RydWN0aW9uKiYgaXQsIGludCBsb2NhdGlvbiwg
Y29uc3QgY2hhciogb3ApCkBAIC0yNDYsNyArMjQ0LDYgQEAgdm9pZCBDb2RlQmxvY2s6OnByaW50
Q29uZGl0aW9uYWxKdW1wKFByaQogICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAg
IGludCBvZmZzZXQgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICBvdXQucHJpbnRmKCJbJTRkXSAl
c1x0XHQgJXMsICVkKC0+JWQpIiwgbG9jYXRpb24sIG9wLCByZWdpc3Rlck5hbWUoZXhlYywgcjAp
LmRhdGEoKSwgb2Zmc2V0LCBsb2NhdGlvbiArIG9mZnNldCk7Ci0gICAgZHVtcEJ5dGVjb2RlQ29t
bWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiB9CiAKIHZvaWQgQ29kZUJsb2NrOjpwcmlu
dEdldEJ5SWRPcChQcmludFN0cmVhbSYgb3V0LCBFeGVjU3RhdGUqIGV4ZWMsIGludCBsb2NhdGlv
biwgY29uc3QgSW5zdHJ1Y3Rpb24qJiBpdCkKQEAgLTQ3Nyw3ICs0NzQsNiBAQCB2b2lkIENvZGVC
bG9jazo6cHJpbnRDYWxsT3AoUHJpbnRTdHJlYW0mCiAgICAgICAgIH0KICNlbmRpZgogICAgIH0K
LSAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICBp
dCArPSAyOwogfQogCkBAIC00ODcsNyArNDgzLDYgQEAgdm9pZCBDb2RlQmxvY2s6OnByaW50UHV0
QnlJZE9wKFByaW50U3RyZQogICAgIGludCBpZDAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICBp
bnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICBvdXQucHJpbnRmKCJbJTRkXSAlc1x0ICVz
LCAlcywgJXMiLCBsb2NhdGlvbiwgb3AsIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCBp
ZE5hbWUoaWQwLCBtX2lkZW50aWZpZXJzW2lkMF0pLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMs
IHIxKS5kYXRhKCkpOwotICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9j
YXRpb24pOwogICAgIGl0ICs9IDU7CiB9CiAKQEAgLTY2Miw1NyArNjU3LDc4IEBAIHZvaWQgQ29k
ZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICBvdXQucHJpbnRmKCJcbiIpOwog
fQogCi12b2lkIENvZGVCbG9jazo6ZHVtcFZhbHVlUHJvZmlsaW5nKFByaW50U3RyZWFtJiBvdXQs
IGNvbnN0IEluc3RydWN0aW9uKiYgaXQpCit2b2lkIENvZGVCbG9jazo6YmVnaW5EdW1wUHJvZmls
aW5nKFByaW50U3RyZWFtJiBvdXQsIGJvb2wmIGhhc1ByaW50ZWRQcm9maWxpbmcpCit7CisgICAg
aWYgKGhhc1ByaW50ZWRQcm9maWxpbmcpIHsKKyAgICAgICAgb3V0LnByaW50KCI7ICIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIG91dC5wcmludCgiICAgICIpOworICAgIGhh
c1ByaW50ZWRQcm9maWxpbmcgPSB0cnVlOworfQorCit2b2lkIENvZGVCbG9jazo6ZHVtcFZhbHVl
UHJvZmlsaW5nKFByaW50U3RyZWFtJiBvdXQsIGNvbnN0IEluc3RydWN0aW9uKiYgaXQsIGJvb2wm
IGhhc1ByaW50ZWRQcm9maWxpbmcpCiB7CiAgICAgKytpdDsKICNpZiBFTkFCTEUoVkFMVUVfUFJP
RklMRVIpCiAgICAgQ1N0cmluZyBkZXNjcmlwdGlvbiA9IGl0LT51LnByb2ZpbGUtPmJyaWVmRGVz
Y3JpcHRpb24oKTsKICAgICBpZiAoIWRlc2NyaXB0aW9uLmxlbmd0aCgpKQogICAgICAgICByZXR1
cm47Ci0gICAgb3V0LnByaW50KCIgICAgIiwgZGVzY3JpcHRpb24pOworICAgIGJlZ2luRHVtcFBy
b2ZpbGluZyhvdXQsIGhhc1ByaW50ZWRQcm9maWxpbmcpOworICAgIG91dC5wcmludChkZXNjcmlw
dGlvbik7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShvdXQpOwogI2VuZGlmCiB9CiAKLXZvaWQg
Q29kZUJsb2NrOjpkdW1wQXJyYXlQcm9maWxpbmcoUHJpbnRTdHJlYW0mIG91dCwgY29uc3QgSW5z
dHJ1Y3Rpb24qJiBpdCkKK3ZvaWQgQ29kZUJsb2NrOjpkdW1wQXJyYXlQcm9maWxpbmcoUHJpbnRT
dHJlYW0mIG91dCwgY29uc3QgSW5zdHJ1Y3Rpb24qJiBpdCwgYm9vbCYgaGFzUHJpbnRlZFByb2Zp
bGluZykKIHsKICAgICArK2l0OwogI2lmIEVOQUJMRShWQUxVRV9QUk9GSUxFUikKICAgICBDU3Ry
aW5nIGRlc2NyaXB0aW9uID0gaXQtPnUuYXJyYXlQcm9maWxlLT5icmllZkRlc2NyaXB0aW9uKHRo
aXMpOwogICAgIGlmICghZGVzY3JpcHRpb24ubGVuZ3RoKCkpCiAgICAgICAgIHJldHVybjsKLSAg
ICBvdXQucHJpbnQoIiAgICAiLCBkZXNjcmlwdGlvbik7CisgICAgYmVnaW5EdW1wUHJvZmlsaW5n
KG91dCwgaGFzUHJpbnRlZFByb2ZpbGluZyk7CisgICAgb3V0LnByaW50KGRlc2NyaXB0aW9uKTsK
ICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG91dCk7CiAjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShW
QUxVRV9QUk9GSUxFUikKK3ZvaWQgQ29kZUJsb2NrOjpkdW1wUmFyZUNhc2VQcm9maWxlKFByaW50
U3RyZWFtJiBvdXQsIGNvbnN0IGNoYXIqIG5hbWUsIFJhcmVDYXNlUHJvZmlsZSogcHJvZmlsZSwg
Ym9vbCYgaGFzUHJpbnRlZFByb2ZpbGluZykKK3sKKyAgICBpZiAoIXByb2ZpbGUgfHwgIXByb2Zp
bGUtPm1fY291bnRlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgYmVnaW5EdW1wUHJvZmlsaW5n
KG91dCwgaGFzUHJpbnRlZFByb2ZpbGluZyk7CisgICAgb3V0LnByaW50KG5hbWUsIHByb2ZpbGUt
Pm1fY291bnRlcik7Cit9CisjZW5kaWYKKwogdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQ
cmludFN0cmVhbSYgb3V0LCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEluc3RydWN0aW9uKiBiZWdp
biwgY29uc3QgSW5zdHJ1Y3Rpb24qJiBpdCkKIHsKICAgICBpbnQgbG9jYXRpb24gPSBpdCAtIGJl
Z2luOworICAgIGJvb2wgaGFzUHJpbnRlZFByb2ZpbGluZyA9IGZhbHNlOwogICAgIHN3aXRjaCAo
ZXhlYy0+aW50ZXJwcmV0ZXIoKS0+Z2V0T3Bjb2RlSUQoaXQtPnUub3Bjb2RlKSkgewogICAgICAg
ICBjYXNlIG9wX2VudGVyOiB7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBlbnRlciIs
IGxvY2F0aW9uKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91
dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2Fz
ZSBvcF9jcmVhdGVfYWN0aXZhdGlvbjogewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51
Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBjcmVhdGVfYWN0aXZhdGlv
biAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7Ci0gICAgICAg
ICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfY3JlYXRlX2FyZ3VtZW50
czogewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAg
ICBvdXQucHJpbnRmKCJbJTRkXSBjcmVhdGVfYXJndW1lbnRzXHQgJXMiLCBsb2NhdGlvbiwgcmVn
aXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29t
bWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBjYXNlIG9wX2luaXRfbGF6eV9yZWc6IHsKICAgICAgICAgICAgIGludCBy
MCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gaW5p
dF9sYXp5X3JlZ1x0ICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgp
KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRp
b24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9nZXRf
Y2FsbGVlOiB7CkBAIC03MjUsMjAgKzc0MSwxNyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVj
b2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsK
ICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0
LnByaW50ZigiWyU0ZF0gY3JlYXRlX3RoaXMgJXMsICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFt
ZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSk7Ci0gICAg
ICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfY29udmVydF90aGlz
OiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAg
IG91dC5wcmludGYoIlslNGRdIGNvbnZlcnRfdGhpc1x0ICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVy
TmFtZShleGVjLCByMCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRB
bmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgKytpdDsgLy8gU2tpcCB2YWx1
ZSBwcm9maWxlLgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBv
cF9uZXdfb2JqZWN0OiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsK
ICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIG5ld19vYmplY3RcdCAlcyIsIGxvY2F0aW9u
LCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNv
ZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbmV3X2FycmF5OiB7CkBAIC03NDYsNyArNzU5LDYg
QEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAg
aW50IGFyZ3YgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBhcmdjID0gKCsr
aXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBuZXdfYXJyYXlc
dCAlcywgJXMsICVkIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCBkc3QpLmRhdGEoKSwg
cmVnaXN0ZXJOYW1lKGV4ZWMsIGFyZ3YpLmRhdGEoKSwgYXJnYyk7Ci0gICAgICAgICAgICBkdW1w
Qnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgICsr
aXQ7IC8vIFNraXAgYXJyYXkgYWxsb2NhdGlvbiBwcm9maWxlLgogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KQEAgLTc1NCw3ICs3NjYsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVj
b2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBpbnQgZHN0ID0gKCsraXQpLT51Lm9wZXJhbmQ7
CiAgICAgICAgICAgICBpbnQgbGVuZ3RoID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAg
ICBvdXQucHJpbnRmKCJbJTRkXSBuZXdfYXJyYXlfd2l0aF9zaXplXHQgJXMsICVzIiwgbG9jYXRp
b24sIHJlZ2lzdGVyTmFtZShleGVjLCBkc3QpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIGxl
bmd0aCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5l
KG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgKytpdDsgLy8gU2tpcCBhcnJheSBhbGxvY2F0
aW9uIHByb2ZpbGUuCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtNzYzLDcgKzc3
NCw2IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAg
ICAgIGludCBhcmd2ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgYXJnYyA9
ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gbmV3X2Fy
cmF5X2J1ZmZlclx0ICVzLCAlZCwgJWQiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIGRz
dCkuZGF0YSgpLCBhcmd2LCBhcmdjKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRB
bmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgKytpdDsgLy8gU2tpcCBhcnJh
eSBhbGxvY2F0aW9uIHByb2ZpbGUuCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAt
Nzc1LDE0ICs3ODUsMTIgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVh
bQogICAgICAgICAgICAgICAgIG91dC5wcmludGYoIiVzIiwgcmVnZXhwTmFtZShyZTAsIHJlZ2V4
cChyZTApKS5kYXRhKCkpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG91dC5w
cmludGYoImJhZF9yZWdleHAoJWQpIiwgcmUwKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNv
bW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSBvcF9tb3Y6IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0
KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAg
ICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBtb3ZcdFx0ICVzLCAlcyIsIGxvY2F0aW9uLCBy
ZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRh
KCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2Nh
dGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX25v
dDogewpAQCAtODMyLDEzICs4NDAsMTEgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQ
cmludFN0cmVhbQogICAgICAgICBjYXNlIG9wX3ByZV9pbmM6IHsKICAgICAgICAgICAgIGludCBy
MCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gcHJl
X2luY1x0XHQgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCkpOwot
ICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3ByZV9kZWM6
IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAg
b3V0LnByaW50ZigiWyU0ZF0gcHJlX2RlY1x0XHQgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1l
KGV4ZWMsIHIwKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5l
d0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
ICAgICBjYXNlIG9wX3Bvc3RfaW5jOiB7CkBAIC05MTQsNyArOTIwLDYgQEAgdm9pZCBDb2RlQmxv
Y2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IHIyID0gKCsraXQp
LT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51Lm9wZXJhbmQ7
CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBjaGVja19oYXNfaW5zdGFuY2VcdFx0ICVz
LCAlcywgJXMsICVkKC0+JWQpIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0
YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIy
KS5kYXRhKCksIG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOwotICAgICAgICAgICAgZHVtcEJ5
dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2luc3RhbmNlb2Y6IHsKQEAgLTkyMiw3ICs5
MjcsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAg
ICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByMiA9ICgr
K2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gaW5zdGFuY2Vv
Zlx0XHQgJXMsICVzLCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEo
KSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMiku
ZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwg
bG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBv
cF90eXBlb2Y6IHsKQEAgLTk2NCw3ICs5NjgsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVj
b2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBpbnQgdmFsdWUgPSAoKytpdCktPnUub3BlcmFu
ZDsKICAgICAgICAgICAgIGludCByZXNvbHZlSW5mbyA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAg
ICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gcHV0X3RvX2Jhc2VcdCAlcywgJXMsICVzLCAlZCIs
IGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgYmFzZSkuZGF0YSgpLCBpZE5hbWUoaWQwLCBt
X2lkZW50aWZpZXJzW2lkMF0pLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHZhbHVlKS5kYXRh
KCksIHJlc29sdmVJbmZvKTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdM
aW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBvcF9yZXNvbHZlOgpAQCAtOTc3LDEzICs5ODAsMTEgQEAgdm9pZCBDb2RlQmxvY2s6
OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IGlkMCA9ICgrK2l0KS0+
dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHJlc29sdmVJbmZvID0gKCsraXQpLT51Lm9wZXJh
bmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSByZXNvbHZlXHRcdCAlcywgJXMsICVk
IiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCBpZE5hbWUoaWQwLCBt
X2lkZW50aWZpZXJzW2lkMF0pLmRhdGEoKSwgcmVzb2x2ZUluZm8pOwotICAgICAgICAgICAgZHVt
cFZhbHVlUHJvZmlsaW5nKG91dCwgaXQpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVu
dEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CisgICAgICAgICAgICBkdW1wVmFsdWVQcm9maWxp
bmcob3V0LCBpdCwgaGFzUHJpbnRlZFByb2ZpbGluZyk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICBjYXNlIG9wX2luaXRfZ2xvYmFsX2NvbnN0X25vcDogewogICAgICAg
ICAgICAgb3V0LnByaW50ZigiWyU0ZF0gaW5pdF9nbG9iYWxfY29uc3Rfbm9wXHQiLCBsb2NhdGlv
bik7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0
aW9uKTsKICAgICAgICAgICAgIGl0Kys7CiAgICAgICAgICAgICBpdCsrOwogICAgICAgICAgICAg
aXQrKzsKQEAgLTk5NCw3ICs5OTUsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFBy
aW50U3RyZWFtCiAgICAgICAgICAgICBXcml0ZUJhcnJpZXI8VW5rbm93bj4qIHJlZ2lzdGVyUG9p
bnRlciA9ICgrK2l0KS0+dS5yZWdpc3RlclBvaW50ZXI7CiAgICAgICAgICAgICBpbnQgcjAgPSAo
KytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGluaXRfZ2xv
YmFsX2NvbnN0XHQgZyVkKCVwKSwgJXMiLCBsb2NhdGlvbiwgbV9nbG9iYWxPYmplY3QtPmZpbmRS
ZWdpc3RlckluZGV4KHJlZ2lzdGVyUG9pbnRlciksIHJlZ2lzdGVyUG9pbnRlciwgcmVnaXN0ZXJO
YW1lKGV4ZWMsIHIwKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFu
ZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBpdCsrOwogICAgICAgICAgICAg
aXQrKzsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTAwMyw3ICsxMDAzLDYgQEAgdm9pZCBDb2Rl
QmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgV3JpdGVCYXJyaWVy
PFVua25vd24+KiByZWdpc3RlclBvaW50ZXIgPSAoKytpdCktPnUucmVnaXN0ZXJQb2ludGVyOwog
ICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQu
cHJpbnRmKCJbJTRkXSBpbml0X2dsb2JhbF9jb25zdF9jaGVja1x0IGclZCglcCksICVzIiwgbG9j
YXRpb24sIG1fZ2xvYmFsT2JqZWN0LT5maW5kUmVnaXN0ZXJJbmRleChyZWdpc3RlclBvaW50ZXIp
LCByZWdpc3RlclBvaW50ZXIsIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpKTsKLSAgICAg
ICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAg
ICAgICAgICAgaXQrKzsKICAgICAgICAgICAgIGl0Kys7CiAgICAgICAgICAgICBicmVhazsKQEAg
LTEwMTksMTUgKzEwMTgsMTMgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0
cmVhbQogICAgICAgICAgICAgaW50IHJlc29sdmVJbmZvID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAg
ICAgICAgICAgICBpbnQgcHV0VG9CYXNlSW5mbyA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAg
ICAgICAgb3V0LnByaW50ZigiWyU0ZF0gcmVzb2x2ZV9iYXNlJXNcdCAlcywgJXMsICVkLCAlZCIs
IGxvY2F0aW9uLCBpc1N0cmljdCA/ICJfc3RyaWN0IiA6ICIiLCByZWdpc3Rlck5hbWUoZXhlYywg
cjApLmRhdGEoKSwgaWROYW1lKGlkMCwgbV9pZGVudGlmaWVyc1tpZDBdKS5kYXRhKCksIHJlc29s
dmVJbmZvLCBwdXRUb0Jhc2VJbmZvKTsKLSAgICAgICAgICAgIGR1bXBWYWx1ZVByb2ZpbGluZyhv
dXQsIGl0KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwg
bG9jYXRpb24pOworICAgICAgICAgICAgZHVtcFZhbHVlUHJvZmlsaW5nKG91dCwgaXQsIGhhc1By
aW50ZWRQcm9maWxpbmcpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBvcF9lbnN1cmVfcHJvcGVydHlfZXhpc3RzOiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAo
KytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBpZDAgPSAoKytpdCktPnUub3BlcmFu
ZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGVuc3VyZV9wcm9wZXJ0eV9leGlzdHNc
dCAlcywgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIGlkTmFt
ZShpZDAsIG1faWRlbnRpZmllcnNbaWQwXSkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBCeXRl
Y29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9yZXNvbHZlX3dpdGhfYmFzZTogewpAQCAtMTAz
Nyw4ICsxMDM0LDcgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQog
ICAgICAgICAgICAgaW50IHJlc29sdmVJbmZvID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAg
ICAgICBpbnQgcHV0VG9CYXNlSW5mbyA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAg
b3V0LnByaW50ZigiWyU0ZF0gcmVzb2x2ZV93aXRoX2Jhc2UgJXMsICVzLCAlcywgJWQsICVkIiwg
bG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhl
YywgcjEpLmRhdGEoKSwgaWROYW1lKGlkMCwgbV9pZGVudGlmaWVyc1tpZDBdKS5kYXRhKCksIHJl
c29sdmVJbmZvLCBwdXRUb0Jhc2VJbmZvKTsKLSAgICAgICAgICAgIGR1bXBWYWx1ZVByb2ZpbGlu
ZyhvdXQsIGl0KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91
dCwgbG9jYXRpb24pOworICAgICAgICAgICAgZHVtcFZhbHVlUHJvZmlsaW5nKG91dCwgaXQsIGhh
c1ByaW50ZWRQcm9maWxpbmcpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBvcF9yZXNvbHZlX3dpdGhfdGhpczogewpAQCAtMTA0Nyw4ICsxMDQzLDcgQEAgdm9p
ZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IGlk
MCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHJlc29sdmVJbmZvID0gKCsr
aXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSByZXNvbHZlX3dp
dGhfdGhpcyAlcywgJXMsICVzLCAlZCIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjAp
LmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCksIGlkTmFtZShpZDAsIG1faWRl
bnRpZmllcnNbaWQwXSkuZGF0YSgpLCByZXNvbHZlSW5mbyk7Ci0gICAgICAgICAgICBkdW1wVmFs
dWVQcm9maWxpbmcob3V0LCBpdCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5k
TmV3TGluZShvdXQsIGxvY2F0aW9uKTsKKyAgICAgICAgICAgIGR1bXBWYWx1ZVByb2ZpbGluZyhv
dXQsIGl0LCBoYXNQcmludGVkUHJvZmlsaW5nKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lkOgpAQCAtMTA2Nyw4ICsxMDYyLDcgQEAgdm9p
ZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICBjYXNlIG9wX2dl
dF9zdHJpbmdfbGVuZ3RoOiB7CiAgICAgICAgICAgICBwcmludEdldEJ5SWRPcChvdXQsIGV4ZWMs
IGxvY2F0aW9uLCBpdCk7CiAgICAgICAgICAgICBwcmludEdldEJ5SWRDYWNoZVN0YXR1cyhvdXQs
IGV4ZWMsIGxvY2F0aW9uKTsKLSAgICAgICAgICAgIGR1bXBWYWx1ZVByb2ZpbGluZyhvdXQsIGl0
KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRp
b24pOworICAgICAgICAgICAgZHVtcFZhbHVlUHJvZmlsaW5nKG91dCwgaXQsIGhhc1ByaW50ZWRQ
cm9maWxpbmcpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBv
cF9nZXRfYXJndW1lbnRzX2xlbmd0aDogewpAQCAtMTExOCw3ICsxMTEyLDYgQEAgdm9pZCBDb2Rl
QmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IHIxID0gKCsr
aXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjIgPSAoKytpdCktPnUub3BlcmFuZDsK
ICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHB1dF9nZXR0ZXJfc2V0dGVyXHQgJXMsICVz
LCAlcywgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIGlkTmFt
ZShpZDAsIG1faWRlbnRpZmllcnNbaWQwXSkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEp
LmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIyKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVt
cEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2RlbF9ieV9pZDogewpAQCAtMTEyNiw3
ICsxMTE5LDYgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAg
ICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgaWQw
ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBkZWxf
YnlfaWRcdCAlcywgJXMsICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0
YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSwgaWROYW1lKGlkMCwgbV9pZGVudGlm
aWVyc1tpZDBdKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5l
d0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
ICAgICBjYXNlIG9wX2dldF9ieV92YWw6IHsKQEAgLTExMzQsOSArMTEyNiw4IEBAIHZvaWQgQ29k
ZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIGludCByMSA9ICgr
K2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIyID0gKCsraXQpLT51Lm9wZXJhbmQ7
CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBnZXRfYnlfdmFsXHQgJXMsICVzLCAlcyIs
IGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4
ZWMsIHIxKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMikuZGF0YSgpKTsKLSAgICAgICAg
ICAgIGR1bXBBcnJheVByb2ZpbGluZyhvdXQsIGl0KTsKLSAgICAgICAgICAgIGR1bXBWYWx1ZVBy
b2ZpbGluZyhvdXQsIGl0KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdM
aW5lKG91dCwgbG9jYXRpb24pOworICAgICAgICAgICAgZHVtcEFycmF5UHJvZmlsaW5nKG91dCwg
aXQsIGhhc1ByaW50ZWRQcm9maWxpbmcpOworICAgICAgICAgICAgZHVtcFZhbHVlUHJvZmlsaW5n
KG91dCwgaXQsIGhhc1ByaW50ZWRQcm9maWxpbmcpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSBvcF9nZXRfYXJndW1lbnRfYnlfdmFsOiB7CkBAIC0xMTQ1LDgg
KzExMzYsNyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAg
ICAgICAgICBpbnQgcjIgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmlu
dGYoIlslNGRdIGdldF9hcmd1bWVudF9ieV92YWxcdCAlcywgJXMsICVzIiwgbG9jYXRpb24sIHJl
Z2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEo
KSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIyKS5kYXRhKCkpOwogICAgICAgICAgICAgKytpdDsKLSAg
ICAgICAgICAgIGR1bXBWYWx1ZVByb2ZpbGluZyhvdXQsIGl0KTsKLSAgICAgICAgICAgIGR1bXBC
eXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOworICAgICAgICAgICAgZHVt
cFZhbHVlUHJvZmlsaW5nKG91dCwgaXQsIGhhc1ByaW50ZWRQcm9maWxpbmcpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9nZXRfYnlfcG5hbWU6IHsKQEAg
LTExNTcsNyArMTE0Nyw2IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJl
YW0KICAgICAgICAgICAgIGludCByNCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAg
aW50IHI1ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRk
XSBnZXRfYnlfcG5hbWVcdCAlcywgJXMsICVzLCAlcywgJXMsICVzIiwgbG9jYXRpb24sIHJlZ2lz
dGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSwg
cmVnaXN0ZXJOYW1lKGV4ZWMsIHIyKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMykuZGF0
YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjQpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHI1
KS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0
LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNl
IG9wX3B1dF9ieV92YWw6IHsKQEAgLTExNjUsOCArMTE1NCw3IEBAIHZvaWQgQ29kZUJsb2NrOjpk
dW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5v
cGVyYW5kOwogICAgICAgICAgICAgaW50IHIyID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAg
ICAgICBvdXQucHJpbnRmKCJbJTRkXSBwdXRfYnlfdmFsXHQgJXMsICVzLCAlcyIsIGxvY2F0aW9u
LCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5k
YXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMikuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBB
cnJheVByb2ZpbGluZyhvdXQsIGl0KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRB
bmROZXdMaW5lKG91dCwgbG9jYXRpb24pOworICAgICAgICAgICAgZHVtcEFycmF5UHJvZmlsaW5n
KG91dCwgaXQsIGhhc1ByaW50ZWRQcm9maWxpbmcpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSBvcF9kZWxfYnlfdmFsOiB7CkBAIC0xMTc0LDcgKzExNjIsNiBA
QCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBp
bnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByMiA9ICgrK2l0KS0+
dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gZGVsX2J5X3ZhbFx0ICVz
LCAlcywgJXMiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lz
dGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjIpLmRhdGEoKSk7
Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9u
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHV0X2J5
X2luZGV4OiB7CkBAIC0xMTgyLDE5ICsxMTY5LDE2IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0
ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIHVuc2lnbmVkIG4wID0gKCsraXQpLT51Lm9w
ZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAg
ICAgIG91dC5wcmludGYoIlslNGRdIHB1dF9ieV9pbmRleFx0ICVzLCAldSwgJXMiLCBsb2NhdGlv
biwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIG4wLCByZWdpc3Rlck5hbWUoZXhlYywg
cjEpLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShv
dXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNh
c2Ugb3Bfam1wOiB7CiAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51Lm9wZXJhbmQ7
CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBqbXBcdFx0ICVkKC0+JWQpIiwgbG9jYXRp
b24sIG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2Rl
Q29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICBjYXNlIG9wX2xvb3A6IHsKICAgICAgICAgICAgIGludCBvZmZzZXQg
PSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGxvb3Bc
dFx0ICVkKC0+JWQpIiwgbG9jYXRpb24sIG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOwotICAg
ICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2p0cnVlOiB7CkBA
IC0xMjI2LDcgKzEyMTAsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3Ry
ZWFtCiAgICAgICAgICAgICBTcGVjaWFsOjpQb2ludGVyIHBvaW50ZXIgPSAoKytpdCktPnUuc3Bl
Y2lhbFBvaW50ZXI7CiAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51Lm9wZXJhbmQ7
CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBqbmVxX3B0clx0XHQgJXMsICVkICglcCks
ICVkKC0+JWQpIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCBwb2lu
dGVyLCBtX2dsb2JhbE9iamVjdC0+YWN0dWFsUG9pbnRlckZvcihwb2ludGVyKSwgb2Zmc2V0LCBs
b2NhdGlvbiArIG9mZnNldCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3
TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2Ugb3Bfamxlc3M6IHsKQEAgLTEyMzQsNyArMTIxNyw2IEBAIHZvaWQgQ29kZUJsb2Nr
OjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+
dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgrK2l0KS0+dS5vcGVyYW5kOwog
ICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gamxlc3NcdFx0ICVzLCAlcywgJWQoLT4lZCki
LCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShl
eGVjLCByMSkuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsKLSAgICAgICAgICAg
IGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9qbGVzc2VxOiB7CkBAIC0xMjQy
LDcgKzEyMjQsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAg
ICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBv
ZmZzZXQgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRd
IGpsZXNzZXFcdFx0ICVzLCAlcywgJWQoLT4lZCkiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4
ZWMsIHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCBvZmZzZXQsIGxv
Y2F0aW9uICsgb2Zmc2V0KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdM
aW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAg
ICAgY2FzZSBvcF9qZ3JlYXRlcjogewpAQCAtMTI1MCw3ICsxMjMxLDYgQEAgdm9pZCBDb2RlQmxv
Y2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IHIxID0gKCsraXQp
LT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51Lm9wZXJhbmQ7
CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBqZ3JlYXRlclx0XHQgJXMsICVzLCAlZCgt
PiVkKSIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJO
YW1lKGV4ZWMsIHIxKS5kYXRhKCksIG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOwotICAgICAg
ICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2pncmVhdGVyZXE6IHsK
QEAgLTEyNTgsNyArMTIzOCw2IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRT
dHJlYW0KICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAg
ICAgaW50IG9mZnNldCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50
ZigiWyU0ZF0gamdyZWF0ZXJlcVx0XHQgJXMsICVzLCAlZCgtPiVkKSIsIGxvY2F0aW9uLCByZWdp
c3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCks
IG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29t
bWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBjYXNlIG9wX2pubGVzczogewpAQCAtMTI2Niw3ICsxMjQ1LDYgQEAgdm9p
ZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IHIx
ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51
Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBqbmxlc3NcdFx0ICVzLCAl
cywgJWQoLT4lZCkiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJl
Z2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsK
LSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24p
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9qbmxlc3Nl
cTogewpAQCAtMTI3NCw3ICsxMjUyLDYgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQ
cmludFN0cmVhbQogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAg
ICAgICAgICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQu
cHJpbnRmKCJbJTRkXSBqbmxlc3NlcVx0XHQgJXMsICVzLCAlZCgtPiVkKSIsIGxvY2F0aW9uLCBy
ZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRh
KCksIG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2Rl
Q29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQogICAgICAgICBjYXNlIG9wX2puZ3JlYXRlcjogewpAQCAtMTI4Miw3ICsxMjU5LDYg
QEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAg
aW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gKCsr
aXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBqbmdyZWF0ZXJc
dFx0ICVzLCAlcywgJWQoLT4lZCkiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5k
YXRhKCksIHJlZ2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsg
b2Zmc2V0KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwg
bG9jYXRpb24pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBv
cF9qbmdyZWF0ZXJlcTogewpAQCAtMTI5MCw3ICsxMjY2LDYgQEAgdm9pZCBDb2RlQmxvY2s6OmR1
bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9w
ZXJhbmQ7CiAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAg
ICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBqbmdyZWF0ZXJlcVx0XHQgJXMsICVzLCAlZCgtPiVk
KSIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1l
KGV4ZWMsIHIxKS5kYXRhKCksIG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOwotICAgICAgICAg
ICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2xvb3BfaWZfbGVzczogewpA
QCAtMTI5OCw3ICsxMjczLDYgQEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0
cmVhbQogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAg
ICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRm
KCJbJTRkXSBsb29wX2lmX2xlc3NcdCAlcywgJXMsICVkKC0+JWQpIiwgbG9jYXRpb24sIHJlZ2lz
dGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSwg
b2Zmc2V0LCBsb2NhdGlvbiArIG9mZnNldCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21t
ZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICB9CiAgICAgICAgIGNhc2Ugb3BfbG9vcF9pZl9sZXNzZXE6IHsKQEAgLTEzMDYsNyArMTI4MCw2
IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAg
IGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IG9mZnNldCA9ICgr
K2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gbG9vcF9pZl9s
ZXNzZXFcdCAlcywgJXMsICVkKC0+JWQpIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCBy
MCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSwgb2Zmc2V0LCBsb2NhdGlv
biArIG9mZnNldCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShv
dXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNh
c2Ugb3BfbG9vcF9pZl9ncmVhdGVyOiB7CkBAIC0xMzE0LDcgKzEyODcsNiBAQCB2b2lkIENvZGVC
bG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBpbnQgcjEgPSAoKytp
dCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBvZmZzZXQgPSAoKytpdCktPnUub3BlcmFu
ZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGxvb3BfaWZfZ3JlYXRlclx0ICVzLCAl
cywgJWQoLT4lZCkiLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIwKS5kYXRhKCksIHJl
Z2lzdGVyTmFtZShleGVjLCByMSkuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0KTsK
LSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24p
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9sb29wX2lm
X2dyZWF0ZXJlcTogewpAQCAtMTMyMiwxMiArMTI5NCwxMCBAQCB2b2lkIENvZGVCbG9jazo6ZHVt
cEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3Bl
cmFuZDsKICAgICAgICAgICAgIGludCBvZmZzZXQgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAg
ICAgICAgIG91dC5wcmludGYoIlslNGRdIGxvb3BfaWZfZ3JlYXRlcmVxXHQgJXMsICVzLCAlZCgt
PiVkKSIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJO
YW1lKGV4ZWMsIHIxKS5kYXRhKCksIG9mZnNldCwgbG9jYXRpb24gKyBvZmZzZXQpOwotICAgICAg
ICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2xvb3BfaGludDogewog
ICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gbG9vcF9oaW50IiwgbG9jYXRpb24pOwotICAg
ICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3N3aXRjaF9pbW06
IHsKQEAgLTEzMzUsNyArMTMwNSw2IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJp
bnRTdHJlYW0KICAgICAgICAgICAgIGludCBkZWZhdWx0VGFyZ2V0ID0gKCsraXQpLT51Lm9wZXJh
bmQ7CiAgICAgICAgICAgICBpbnQgc2NydXRpbmVlUmVnaXN0ZXIgPSAoKytpdCktPnUub3BlcmFu
ZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHN3aXRjaF9pbW1cdCAlZCwgJWQoLT4l
ZCksICVzIiwgbG9jYXRpb24sIHRhYmxlSW5kZXgsIGRlZmF1bHRUYXJnZXQsIGxvY2F0aW9uICsg
ZGVmYXVsdFRhcmdldCwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHNjcnV0aW5lZVJlZ2lzdGVyKS5kYXRh
KCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2Nh
dGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3N3
aXRjaF9jaGFyOiB7CkBAIC0xMzQzLDcgKzEzMTIsNiBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5
dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBpbnQgZGVmYXVsdFRhcmdldCA9ICgrK2l0
KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHNjcnV0aW5lZVJlZ2lzdGVyID0gKCsraXQp
LT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBzd2l0Y2hfY2hhclx0
ICVkLCAlZCgtPiVkKSwgJXMiLCBsb2NhdGlvbiwgdGFibGVJbmRleCwgZGVmYXVsdFRhcmdldCwg
bG9jYXRpb24gKyBkZWZhdWx0VGFyZ2V0LCByZWdpc3Rlck5hbWUoZXhlYywgc2NydXRpbmVlUmVn
aXN0ZXIpLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGlu
ZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAg
IGNhc2Ugb3Bfc3dpdGNoX3N0cmluZzogewpAQCAtMTM1MSw3ICsxMzE5LDYgQEAgdm9pZCBDb2Rl
QmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAgaW50IGRlZmF1bHRU
YXJnZXQgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBzY3J1dGluZWVSZWdp
c3RlciA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0g
c3dpdGNoX3N0cmluZ1x0ICVkLCAlZCgtPiVkKSwgJXMiLCBsb2NhdGlvbiwgdGFibGVJbmRleCwg
ZGVmYXVsdFRhcmdldCwgbG9jYXRpb24gKyBkZWZhdWx0VGFyZ2V0LCByZWdpc3Rlck5hbWUoZXhl
Yywgc2NydXRpbmVlUmVnaXN0ZXIpLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVD
b21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2Ugb3BfbmV3X2Z1bmM6IHsKQEAgLTEzNTksMTQgKzEzMjYsMTIg
QEAgdm9pZCBDb2RlQmxvY2s6OmR1bXBCeXRlY29kZShQcmludFN0cmVhbQogICAgICAgICAgICAg
aW50IGYwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgc2hvdWxkQ2hlY2sg
PSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIG5ld19m
dW5jXHRcdCAlcywgZiVkLCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRh
dGEoKSwgZjAsIHNob3VsZENoZWNrID8gIjxDaGVja2VkPiIgOiAiPFVuY2hlY2tlZD4iKTsKLSAg
ICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9uZXdfZnVuY19l
eHA6IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAg
ICAgaW50IGYwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJb
JTRkXSBuZXdfZnVuY19leHBcdCAlcywgZiVkIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVj
LCByMCkuZGF0YSgpLCBmMCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3
TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2Ugb3BfY2FsbDogewpAQCAtMTM4Myw0MCArMTM0OCwzNCBAQCB2b2lkIENvZGVCbG9j
azo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBpbnQgYXJndW1lbnRzID0g
KCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgZmlyc3RGcmVlUmVnaXN0ZXIgPSAo
KytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIGNhbGxfdmFy
YXJnc1x0ICVzLCAlcywgJXMsICVkIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCBjYWxs
ZWUpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHRoaXNWYWx1ZSkuZGF0YSgpLCByZWdpc3Rl
ck5hbWUoZXhlYywgYXJndW1lbnRzKS5kYXRhKCksIGZpcnN0RnJlZVJlZ2lzdGVyKTsKLSAgICAg
ICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF90ZWFyX29mZl9hY3Rp
dmF0aW9uOiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAg
ICAgICAgIG91dC5wcmludGYoIlslNGRdIHRlYXJfb2ZmX2FjdGl2YXRpb25cdCAlcyIsIGxvY2F0
aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0
ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfdGVhcl9vZmZfYXJndW1lbnRzOiB7CiAgICAg
ICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByMSA9
ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gdGVhcl9v
ZmZfYXJndW1lbnRzICVzLCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRh
dGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIxKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5
dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3JldDogewogICAgICAgICAgICAgaW50IHIw
ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSByZXRc
dFx0ICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpKTsKLSAgICAg
ICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9jYWxsX3B1dF9yZXN1
bHQ6IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAg
ICAgb3V0LnByaW50ZigiWyU0ZF0gY2FsbF9wdXRfcmVzdWx0XHRcdCAlcyIsIGxvY2F0aW9uLCBy
ZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wVmFsdWVQcm9m
aWxpbmcob3V0LCBpdCk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGlu
ZShvdXQsIGxvY2F0aW9uKTsKKyAgICAgICAgICAgIGR1bXBWYWx1ZVByb2ZpbGluZyhvdXQsIGl0
LCBoYXNQcmludGVkUHJvZmlsaW5nKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2Ugb3BfcmV0X29iamVjdF9vcl90aGlzOiB7CiAgICAgICAgICAgICBpbnQgcjAg
PSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVy
YW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gY29uc3RydWN0b3JfcmV0XHRcdCAl
cyAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJO
YW1lKGV4ZWMsIHIxKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFu
ZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBjYXNlIG9wX2NvbnN0cnVjdDogewpAQCAtMTQyOCwxNCArMTM4NywxMiBAQCB2b2lk
IENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBpbnQgcjEg
PSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBjb3VudCA9ICgrK2l0KS0+dS5v
cGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gc3RyY2F0XHRcdCAlcywgJXMs
ICVkIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCByZWdpc3Rlck5h
bWUoZXhlYywgcjEpLmRhdGEoKSwgY291bnQpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29t
bWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICBjYXNlIG9wX3RvX3ByaW1pdGl2ZTogewogICAgICAgICAgICAgaW50IHIw
ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3Bl
cmFuZDsKICAgICAgICAgICAgIG91dC5wcmludGYoIlslNGRdIHRvX3ByaW1pdGl2ZVx0ICVzLCAl
cyIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSwgcmVnaXN0ZXJOYW1l
KGV4ZWMsIHIxKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5l
d0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAg
ICAgICBjYXNlIG9wX2dldF9wbmFtZXM6IHsKQEAgLTE0NDUsNyArMTQwMiw2IEBAIHZvaWQgQ29k
ZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0KICAgICAgICAgICAgIGludCByMyA9IGl0
WzRdLnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBvZmZzZXQgPSBpdFs1XS51Lm9wZXJhbmQ7
CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBnZXRfcG5hbWVzXHQgJXMsICVzLCAlcywg
JXMsICVkKC0+JWQpIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpLCBy
ZWdpc3Rlck5hbWUoZXhlYywgcjEpLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIyKS5kYXRh
KCksIHJlZ2lzdGVyTmFtZShleGVjLCByMykuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zm
c2V0KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9j
YXRpb24pOwogICAgICAgICAgICAgaXQgKz0gT1BDT0RFX0xFTkdUSChvcF9nZXRfcG5hbWVzKSAt
IDE7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMTQ1NywxOSArMTQxMywxNiBA
QCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtCiAgICAgICAgICAgICBp
bnQgaXRlciA9IGl0WzVdLnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCBvZmZzZXQgPSBpdFs2
XS51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBuZXh0X3BuYW1lXHQg
JXMsICVzLCAlcywgJXMsICVzLCAlZCgtPiVkKSIsIGxvY2F0aW9uLCByZWdpc3Rlck5hbWUoZXhl
YywgZGVzdCkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgYmFzZSkuZGF0YSgpLCByZWdpc3Rl
ck5hbWUoZXhlYywgaSkuZGF0YSgpLCByZWdpc3Rlck5hbWUoZXhlYywgc2l6ZSkuZGF0YSgpLCBy
ZWdpc3Rlck5hbWUoZXhlYywgaXRlcikuZGF0YSgpLCBvZmZzZXQsIGxvY2F0aW9uICsgb2Zmc2V0
KTsKLSAgICAgICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRp
b24pOwogICAgICAgICAgICAgaXQgKz0gT1BDT0RFX0xFTkdUSChvcF9uZXh0X3BuYW1lKSAtIDE7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX3B1c2hfd2l0
aF9zY29wZTogewogICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAg
ICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBwdXNoX3dpdGhfc2NvcGVcdCAlcyIsIGxvY2F0aW9u
LCByZWdpc3Rlck5hbWUoZXhlYywgcjApLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNv
ZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcG9wX3Njb3BlOiB7CiAgICAgICAgICAgICBvdXQu
cHJpbnRmKCJbJTRkXSBwb3Bfc2NvcGUiLCBsb2NhdGlvbik7Ci0gICAgICAgICAgICBkdW1wQnl0
ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHVzaF9uYW1lX3Njb3BlOiB7CkBAIC0xNDc3
LDMzICsxNDMwLDI4IEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0K
ICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgdW5z
aWduZWQgYXR0cmlidXRlcyA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgb3V0LnBy
aW50ZigiWyU0ZF0gcHVzaF9uYW1lX3Njb3BlIFx0JXMsICVzLCAldSIsIGxvY2F0aW9uLCBpZE5h
bWUoaWQwLCBtX2lkZW50aWZpZXJzW2lkMF0pLmRhdGEoKSwgcmVnaXN0ZXJOYW1lKGV4ZWMsIHIx
KS5kYXRhKCksIGF0dHJpYnV0ZXMpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFu
ZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBjYXNlIG9wX2ptcF9zY29wZXM6IHsKICAgICAgICAgICAgIGludCBzY29wZURlbHRh
ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gKCsraXQpLT51
Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBqbXBfc2NvcGVzXHReJWQs
ICVkKC0+JWQpIiwgbG9jYXRpb24sIHNjb3BlRGVsdGEsIG9mZnNldCwgbG9jYXRpb24gKyBvZmZz
ZXQpOwotICAgICAgICAgICAgZHVtcEJ5dGVjb2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2Nh
dGlvbik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2Nh
dGNoOiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAg
ICAgIG91dC5wcmludGYoIlslNGRdIGNhdGNoXHRcdCAlcyIsIGxvY2F0aW9uLCByZWdpc3Rlck5h
bWUoZXhlYywgcjApLmRhdGEoKSk7Ci0gICAgICAgICAgICBkdW1wQnl0ZWNvZGVDb21tZW50QW5k
TmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAg
ICAgICAgIGNhc2Ugb3BfdGhyb3c6IHsKICAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5v
cGVyYW5kOwogICAgICAgICAgICAgb3V0LnByaW50ZigiWyU0ZF0gdGhyb3dcdFx0ICVzIiwgbG9j
YXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpKTsKLSAgICAgICAgICAgIGR1bXBC
eXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF90aHJvd19zdGF0aWNfZXJyb3I6IHsKICAg
ICAgICAgICAgIGludCBrMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IGsx
ID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSB0aHJv
d19zdGF0aWNfZXJyb3JcdCAlcywgJXMiLCBsb2NhdGlvbiwgY29uc3RhbnROYW1lKGV4ZWMsIGsw
LCBnZXRDb25zdGFudChrMCkpLmRhdGEoKSwgazEgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKLSAgICAg
ICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9kZWJ1ZzogewpAQCAt
MTUxMiwyNSArMTQ2MCwyMSBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3Ry
ZWFtCiAgICAgICAgICAgICBpbnQgbGFzdExpbmUgPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAg
ICAgICAgIGludCBjb2x1bW4gPSAoKytpdCktPnUub3BlcmFuZDsKICAgICAgICAgICAgIG91dC5w
cmludGYoIlslNGRdIGRlYnVnXHRcdCAlcywgJWQsICVkLCAlZCIsIGxvY2F0aW9uLCBkZWJ1Z0hv
b2tOYW1lKGRlYnVnSG9va0lEKSwgZmlyc3RMaW5lLCBsYXN0TGluZSwgY29sdW1uKTsKLSAgICAg
ICAgICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9wcm9maWxlX3dpbGxf
Y2FsbDogewogICAgICAgICAgICAgaW50IGZ1bmN0aW9uID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAg
ICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBwcm9maWxlX3dpbGxfY2FsbCAlcyIsIGxvY2F0
aW9uLCByZWdpc3Rlck5hbWUoZXhlYywgZnVuY3Rpb24pLmRhdGEoKSk7Ci0gICAgICAgICAgICBk
dW1wQnl0ZWNvZGVDb21tZW50QW5kTmV3TGluZShvdXQsIGxvY2F0aW9uKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugb3BfcHJvZmlsZV9kaWRfY2FsbDogewog
ICAgICAgICAgICAgaW50IGZ1bmN0aW9uID0gKCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAg
ICBvdXQucHJpbnRmKCJbJTRkXSBwcm9maWxlX2RpZF9jYWxsXHQgJXMiLCBsb2NhdGlvbiwgcmVn
aXN0ZXJOYW1lKGV4ZWMsIGZ1bmN0aW9uKS5kYXRhKCkpOwotICAgICAgICAgICAgZHVtcEJ5dGVj
b2RlQ29tbWVudEFuZE5ld0xpbmUob3V0LCBsb2NhdGlvbik7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgICAgICBjYXNlIG9wX2VuZDogewogICAgICAgICAgICAgaW50IHIwID0g
KCsraXQpLT51Lm9wZXJhbmQ7CiAgICAgICAgICAgICBvdXQucHJpbnRmKCJbJTRkXSBlbmRcdFx0
ICVzIiwgbG9jYXRpb24sIHJlZ2lzdGVyTmFtZShleGVjLCByMCkuZGF0YSgpKTsKLSAgICAgICAg
ICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRpb24pOwogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIH0KICNpZiBFTkFCTEUoTExJTlRfQ19MT09QKQpAQCAtMTUz
OCw2ICsxNDgyLDEzIEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wQnl0ZWNvZGUoUHJpbnRTdHJlYW0K
ICAgICAgICAgICAgIEFTU0VSVChmYWxzZSk7IC8vIFdlIHNob3VsZCBuZXZlciBnZXQgaGVyZS4K
ICNlbmRpZgogICAgIH0KKworI2lmIEVOQUJMRShWQUxVRV9QUk9GSUxFUikKKyAgICBkdW1wUmFy
ZUNhc2VQcm9maWxlKG91dCwgInJhcmUgY2FzZTogIiwgcmFyZUNhc2VQcm9maWxlRm9yQnl0ZWNv
ZGVPZmZzZXQobG9jYXRpb24pLCBoYXNQcmludGVkUHJvZmlsaW5nKTsKKyAgICBkdW1wUmFyZUNh
c2VQcm9maWxlKG91dCwgInNwZWNpYWwgZmFzdCBjYXNlOiAiLCBzcGVjaWFsRmFzdENhc2VQcm9m
aWxlRm9yQnl0ZWNvZGVPZmZzZXQobG9jYXRpb24pLCBoYXNQcmludGVkUHJvZmlsaW5nKTsKKyNl
bmRpZgorICAgIAorICAgIGR1bXBCeXRlY29kZUNvbW1lbnRBbmROZXdMaW5lKG91dCwgbG9jYXRp
b24pOwogfQogCiB2b2lkIENvZGVCbG9jazo6ZHVtcEJ5dGVjb2RlKFByaW50U3RyZWFtJiBvdXQs
IHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0NvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlQmxvY2suaAkocmV2aXNpb24gMTM3ODM0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC03MDcsNyArNzA3
LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJhcmVDYXNlUHJvZmlsZSogcmFyZUNhc2VQ
cm9maWxlKGludCBpbmRleCkgeyByZXR1cm4gJm1fcmFyZUNhc2VQcm9maWxlc1tpbmRleF07IH0K
ICAgICAgICAgUmFyZUNhc2VQcm9maWxlKiByYXJlQ2FzZVByb2ZpbGVGb3JCeXRlY29kZU9mZnNl
dChpbnQgYnl0ZWNvZGVPZmZzZXQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBiaW5h
cnlTZWFyY2g8UmFyZUNhc2VQcm9maWxlLCBpbnQ+KAorICAgICAgICAgICAgcmV0dXJuIHRyeUJp
bmFyeVNlYXJjaDxSYXJlQ2FzZVByb2ZpbGUsIGludD4oCiAgICAgICAgICAgICAgICAgbV9yYXJl
Q2FzZVByb2ZpbGVzLCBtX3JhcmVDYXNlUHJvZmlsZXMuc2l6ZSgpLCBieXRlY29kZU9mZnNldCwK
ICAgICAgICAgICAgICAgICBnZXRSYXJlQ2FzZVByb2ZpbGVCeXRlY29kZU9mZnNldCk7CiAgICAg
ICAgIH0KQEAgLTczNyw3ICs3MzcsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgUmFyZUNh
c2VQcm9maWxlKiBzcGVjaWFsRmFzdENhc2VQcm9maWxlKGludCBpbmRleCkgeyByZXR1cm4gJm1f
c3BlY2lhbEZhc3RDYXNlUHJvZmlsZXNbaW5kZXhdOyB9CiAgICAgICAgIFJhcmVDYXNlUHJvZmls
ZSogc3BlY2lhbEZhc3RDYXNlUHJvZmlsZUZvckJ5dGVjb2RlT2Zmc2V0KGludCBieXRlY29kZU9m
ZnNldCkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGJpbmFyeVNlYXJjaDxSYXJlQ2Fz
ZVByb2ZpbGUsIGludD4oCisgICAgICAgICAgICByZXR1cm4gdHJ5QmluYXJ5U2VhcmNoPFJhcmVD
YXNlUHJvZmlsZSwgaW50PigKICAgICAgICAgICAgICAgICBtX3NwZWNpYWxGYXN0Q2FzZVByb2Zp
bGVzLCBtX3NwZWNpYWxGYXN0Q2FzZVByb2ZpbGVzLnNpemUoKSwgYnl0ZWNvZGVPZmZzZXQsCiAg
ICAgICAgICAgICAgICAgZ2V0UmFyZUNhc2VQcm9maWxlQnl0ZWNvZGVPZmZzZXQpOwogICAgICAg
ICB9CkBAIC0xMTg3LDggKzExODcsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGVudW0g
Q2FjaGVEdW1wTW9kZSB7IER1bXBDYWNoZXMsIERvbnREdW1wQ2FjaGVzIH07CiAgICAgICAgIHZv
aWQgcHJpbnRDYWxsT3AoUHJpbnRTdHJlYW0mLCBFeGVjU3RhdGUqLCBpbnQgbG9jYXRpb24sIGNv
bnN0IEluc3RydWN0aW9uKiYsIGNvbnN0IGNoYXIqIG9wLCBDYWNoZUR1bXBNb2RlKTsKICAgICAg
ICAgdm9pZCBwcmludFB1dEJ5SWRPcChQcmludFN0cmVhbSYsIEV4ZWNTdGF0ZSosIGludCBsb2Nh
dGlvbiwgY29uc3QgSW5zdHJ1Y3Rpb24qJiwgY29uc3QgY2hhciogb3ApOwotICAgICAgICB2b2lk
IGR1bXBWYWx1ZVByb2ZpbGluZyhQcmludFN0cmVhbSYsIGNvbnN0IEluc3RydWN0aW9uKiYpOwot
ICAgICAgICB2b2lkIGR1bXBBcnJheVByb2ZpbGluZyhQcmludFN0cmVhbSYsIGNvbnN0IEluc3Ry
dWN0aW9uKiYpOworICAgICAgICB2b2lkIGJlZ2luRHVtcFByb2ZpbGluZyhQcmludFN0cmVhbSYs
IGJvb2wmIGhhc1ByaW50ZWRQcm9maWxpbmcpOworICAgICAgICB2b2lkIGR1bXBWYWx1ZVByb2Zp
bGluZyhQcmludFN0cmVhbSYsIGNvbnN0IEluc3RydWN0aW9uKiYsIGJvb2wmIGhhc1ByaW50ZWRQ
cm9maWxpbmcpOworICAgICAgICB2b2lkIGR1bXBBcnJheVByb2ZpbGluZyhQcmludFN0cmVhbSYs
IGNvbnN0IEluc3RydWN0aW9uKiYsIGJvb2wmIGhhc1ByaW50ZWRQcm9maWxpbmcpOworI2lmIEVO
QUJMRShWQUxVRV9QUk9GSUxFUikKKyAgICAgICAgdm9pZCBkdW1wUmFyZUNhc2VQcm9maWxlKFBy
aW50U3RyZWFtJiwgY29uc3QgY2hhciogbmFtZSwgUmFyZUNhc2VQcm9maWxlKiwgYm9vbCYgaGFz
UHJpbnRlZFByb2ZpbGluZyk7CisjZW5kaWYKIAogICAgICAgICB2b2lkIHZpc2l0U3RydWN0dXJl
cyhTbG90VmlzaXRvciYsIEluc3RydWN0aW9uKiB2UEMpOwogICAgICAgICAK
</data>
<flag name="review"
          id="196618"
          type_id="1"
          status="+"
          setter="ggaren"
    />
    <flag name="commit-queue"
          id="196623"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>