<?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>72960</bug_id>
          
          <creation_ts>2011-11-22 08:16:47 -0800</creation_ts>
          <short_desc>Allow JSC heuristics to be set on the command-line</short_desc>
          <delta_ts>2014-02-05 10:51:25 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>UNCONFIRMED</bug_status>
          <resolution></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>
          <dependson>74498</dependson>
          <blocked>72962</blocked>
    
    <blocked>74510</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Andy Wingo">wingo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>507618</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Wingo">wingo</who>
    <bug_when>2011-11-22 08:16:47 -0800</bug_when>
    <thetext>Allow JSC heuristics to be set on the command-line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507621</commentid>
    <comment_count>1</comment_count>
      <attachid>116230</attachid>
    <who name="Andy Wingo">wingo</who>
    <bug_when>2011-11-22 08:23:26 -0800</bug_when>
    <thetext>Created attachment 116230
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>507623</commentid>
    <comment_count>2</comment_count>
      <attachid>116231</attachid>
    <who name="Andy Wingo">wingo</who>
    <bug_when>2011-11-22 08:24:55 -0800</bug_when>
    <thetext>Created attachment 116231
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509159</commentid>
    <comment_count>3</comment_count>
      <attachid>116616</attachid>
    <who name="Andy Wingo">wingo</who>
    <bug_when>2011-11-25 07:24:10 -0800</bug_when>
    <thetext>Created attachment 116616
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509160</commentid>
    <comment_count>4</comment_count>
    <who name="Andy Wingo">wingo</who>
    <bug_when>2011-11-25 07:25:31 -0800</bug_when>
    <thetext>Previous patch defined BadValue as one of the enumerated values, but that is #defined by xlib.   Change to InvalidValue.  Terrible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510869</commentid>
    <comment_count>5</comment_count>
      <attachid>116988</attachid>
    <who name="Andy Wingo">wingo</who>
    <bug_when>2011-11-29 09:51:26 -0800</bug_when>
    <thetext>Created attachment 116988
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510876</commentid>
    <comment_count>6</comment_count>
    <who name="Andy Wingo">wingo</who>
    <bug_when>2011-11-29 09:57:26 -0800</bug_when>
    <thetext>New patch folds in support for boolean flags without values, e.g. --dump-bytecode / --no-dump-bytecode, and refactors support for parsing values from environment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510975</commentid>
    <comment_count>7</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-11-29 12:00:25 -0800</bug_when>
    <thetext>This seems useful for development purposes, but we ship a copy of jsc with the system, and I doubt we want to add this interface in customer releases.  Clearly we don&apos;t want to restrict this to debug builds, since a key use of these switches may be performance testing, but I think there may be a define that will distinguish between release &amp; production builds.  Let me look into this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510979</commentid>
    <comment_count>8</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-11-29 12:05:27 -0800</bug_when>
    <thetext>Actually, better still, I&apos;ll cc bdash!

Mark, is there a #define that will distinguish development release build from production builds?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511028</commentid>
    <comment_count>9</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2011-11-29 12:55:01 -0800</bug_when>
    <thetext>There’s not.

I’m a little skeptical of the value of this patch though. These heuristics are infrequently changed. In the rare even that someone wants to experiment with tuning them it’s straightforward to tweak the constants in the source.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511542</commentid>
    <comment_count>10</comment_count>
    <who name="Andy Wingo">wingo</who>
    <bug_when>2011-11-30 02:08:10 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; I’m a little skeptical of the value of this patch though. These heuristics are infrequently changed. In the rare even that someone wants to experiment with tuning them it’s straightforward to tweak the constants in the source.

This is a good argument with the current set of heuristics.  But with future boolean flags, I think that command-line integration is a lot more convincing.  Two examples: the JVM flags:

  http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html

and the V8 flags:

  http://paste.lisp.org/display/126181

If your main concern is the specific interface offered by jsc, another option would be to create another binary.  WDYT?  I think it&apos;s useful to have these options in JSC proper, but there is definitely room to disagree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520864</commentid>
    <comment_count>11</comment_count>
      <attachid>119206</attachid>
    <who name="Andy Wingo">wingo</who>
    <bug_when>2011-12-14 05:13:18 -0800</bug_when>
    <thetext>Created attachment 119206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976825</commentid>
    <comment_count>12</comment_count>
      <attachid>119206</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-02-05 10:51:25 -0800</bug_when>
    <thetext>Comment on attachment 119206
Patch

Clearing review flag on patches from before 2014. If this patch is still relevant, please reset the r? flag.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116230</attachid>
            <date>2011-11-22 08:23:26 -0800</date>
            <delta_ts>2011-11-22 08:24:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72960-20111122172324.patch</filename>
            <type>text/plain</type>
            <size>15079</size>
            <attacher name="Andy Wingo">wingo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwOTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
Y2Q0ZDBkNDcxZGJlZWNjZmUxYTgxYTVhMzQwYjZmZGUxNWM1NjMxLi4wYmNjMTE4OGNlODdiMjBh
ZWNkMTMzMTRiMzZkYWY3ZmYxYzM3ZjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyNiBAQAogMjAxMS0xMS0yMiAgQW5keSBXaW5nbyAgPHdpbmdvQGlnYWxpYS5jb20+CiAK
KyAgICAgICAgQWxsb3cgSlNDIGhldXJpc3RpY3MgdG8gYmUgc2V0IG9uIHRoZSBjb21tYW5kLWxp
bmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTYw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqc2Mu
Y3BwOgorICAgICAgICAocHJpbnREZWJ1Z1VzYWdlU3RhdGVtZW50KToKKyAgICAgICAgKHByaW50
VXNhZ2VTdGF0ZW1lbnQpOgorICAgICAgICAocGFyc2VBcmd1bWVudHMpOiBBZGQgLS1oZWxwLWRl
YnVnLCB3aGljaCBwcmludHMgb3V0IGhldXJpc3RpY3MKKyAgICAgICAgdGhhdCBjYW4gYmUgc2V0
IGF0IHJ1bnRpbWUuCisKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuY3BwOgorICAgICAgICAo
SlNDOjpPcHRpb25zOjpwYXJzZUFyZyk6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OnBhcnNlQ29t
bWFuZExpbmVBcmcpOgorICAgICAgICAoSlNDOjpPcHRpb25zOjppbml0aWFsaXplT3B0aW9ucyk6
CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmg6IEFkZCBhbiAib3B0aW9uLW5hbWUiIHRvIGFs
bCBvZiB0aGUgb3B0aW9ucywKKyAgICAgICAgY3VycmVudGx5IHVzZWQgd2hlbiBwYXJzaW5nIGNv
bW1hbmQtbGluZSBhcmd1bWVudHMuICBBZGQgYW4KKyAgICAgICAgaW50ZXJmYWNlIHRvIHNldCBv
cHRpb25zIGZyb20gY29tbWFuZC1saW5lIGFyZ3VtZW50cy4KKworMjAxMS0xMS0yMiAgQW5keSBX
aW5nbyAgPHdpbmdvQGlnYWxpYS5jb20+CisKICAgICAgICAgVXNlIG1vcmUgbWFjcm9sb2d5IGlu
IEpTQzo6T3B0aW9ucwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzI5MzgKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCAzNmQzZjdhMDVhNWZlMTM2OGIy
OWZkNWY4ZjFkNWY5Y2IyNTllOGQyLi43YTI3MGJkZjc3MGRjMzRiZjVkMjhlYTU1MTczMzA4OWUy
ZWExN2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtNTMyLDE2ICs1MzIsMzAgQEAgc3RhdGlj
IHZvaWQgcnVuSW50ZXJhY3RpdmUoR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgcHJp
bnRmKCJcbiIpOwogfQogCitzdGF0aWMgTk9fUkVUVVJOIHZvaWQgcHJpbnREZWJ1Z1VzYWdlU3Rh
dGVtZW50KEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKK3sKKyAgICBmcHJpbnRmKHN0ZGVyciwg
IkF2YWlsYWJsZSBkZWJ1Z2dpbmcgb3B0aW9uczpcbiIpOworI2RlZmluZSBQUklOVCh0eXBlLCBj
bmFtZSwgZGVmYXVsdF92YWwsIG9wdG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
IGZwcmludGYoc3RkZXJyLCAiICAtLSIgb3B0bmFtZSAiPSIgI3R5cGUgIlxuIik7ICAgICAgICAg
ICAgICAgICAgICAgXAorICAgIGZwcmludGYoc3RkZXJyLCAiICAgICAgICAgICAgICAgIERlZmF1
bHQ6ICIgI2RlZmF1bHRfdmFsICJcbiIpOworICAgIEZPUl9FQUNIX0hFVVJJU1RJQyhQUklOVCkK
KyN1bmRlZiBQUklOVAorCisgICAgY2xlYW51cEdsb2JhbERhdGEoZ2xvYmFsRGF0YSk7CisgICAg
ZXhpdChFWElUX1NVQ0NFU1MpOworfQorCiBzdGF0aWMgTk9fUkVUVVJOIHZvaWQgcHJpbnRVc2Fn
ZVN0YXRlbWVudChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGJvb2wgaGVscCA9IGZhbHNlKQog
ewogICAgIGZwcmludGYoc3RkZXJyLCAiVXNhZ2U6IGpzYyBbb3B0aW9uc10gW2ZpbGVzXSBbLS0g
YXJndW1lbnRzXVxuIik7Ci0gICAgZnByaW50ZihzdGRlcnIsICIgIC1kICAgICAgICAgRHVtcHMg
Ynl0ZWNvZGUgKGRlYnVnIGJ1aWxkcyBvbmx5KVxuIik7Ci0gICAgZnByaW50ZihzdGRlcnIsICIg
IC1lICAgICAgICAgRXZhbHVhdGUgYXJndW1lbnQgYXMgc2NyaXB0IGNvZGVcbiIpOwotICAgIGZw
cmludGYoc3RkZXJyLCAiICAtZiAgICAgICAgIFNwZWNpZmllcyBhIHNvdXJjZSBmaWxlIChkZXBy
ZWNhdGVkKVxuIik7Ci0gICAgZnByaW50ZihzdGRlcnIsICIgIC1ofC0taGVscCAgUHJpbnRzIHRo
aXMgaGVscCBtZXNzYWdlXG4iKTsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLWkgICAgICAgICBF
bmFibGVzIGludGVyYWN0aXZlIG1vZGUgKGRlZmF1bHQgaWYgbm8gZmlsZXMgYXJlIHNwZWNpZmll
ZClcbiIpOworICAgIGZwcmludGYoc3RkZXJyLCAiICAtZCAgICAgICAgICAgIER1bXBzIGJ5dGVj
b2RlIChkZWJ1ZyBidWlsZHMgb25seSlcbiIpOworICAgIGZwcmludGYoc3RkZXJyLCAiICAtZSAg
ICAgICAgICAgIEV2YWx1YXRlIGFyZ3VtZW50IGFzIHNjcmlwdCBjb2RlXG4iKTsKKyAgICBmcHJp
bnRmKHN0ZGVyciwgIiAgLWYgICAgICAgICAgICBTcGVjaWZpZXMgYSBzb3VyY2UgZmlsZSAoZGVw
cmVjYXRlZClcbiIpOworICAgIGZwcmludGYoc3RkZXJyLCAiICAtaHwtLWhlbHAgICAgIFByaW50
cyB0aGlzIGhlbHAgbWVzc2FnZVxuIik7CisgICAgZnByaW50ZihzdGRlcnIsICIgIC0taGVscC1k
ZWJ1ZyAgU2hvdyBhZGRpdGlvbmFsIGRlYnVnZ2luZyBvcHRpb25zXG4iKTsKKyAgICBmcHJpbnRm
KHN0ZGVyciwgIiAgLWkgICAgICAgICAgICBFbmFibGVzIGludGVyYWN0aXZlIG1vZGUgKGRlZmF1
bHQgaWYgbm8gZmlsZXMgYXJlIHNwZWNpZmllZClcbiIpOwogI2lmIEhBVkUoU0lHTkFMX0gpCi0g
ICAgZnByaW50ZihzdGRlcnIsICIgIC1zICAgICAgICAgSW5zdGFsbHMgc2lnbmFsIGhhbmRsZXJz
IHRoYXQgZXhpdCBvbiBhIGNyYXNoIChVbml4IHBsYXRmb3JtcyBvbmx5KVxuIik7CisgICAgZnBy
aW50ZihzdGRlcnIsICIgIC1zICAgICAgICAgICAgSW5zdGFsbHMgc2lnbmFsIGhhbmRsZXJzIHRo
YXQgZXhpdCBvbiBhIGNyYXNoIChVbml4IHBsYXRmb3JtcyBvbmx5KVxuIik7CiAjZW5kaWYKIAog
ICAgIGNsZWFudXBHbG9iYWxEYXRhKGdsb2JhbERhdGEpOwpAQCAtNTUzLDYgKzU2NywyNCBAQCBz
dGF0aWMgdm9pZCBwYXJzZUFyZ3VtZW50cyhpbnQgYXJnYywgY2hhcioqIGFyZ3YsIENvbW1hbmRM
aW5lJiBvcHRpb25zLCBKU0dsb2JhbAogICAgIGludCBpID0gMTsKICAgICBmb3IgKDsgaSA8IGFy
Z2M7ICsraSkgewogICAgICAgICBjb25zdCBjaGFyKiBhcmcgPSBhcmd2W2ldOworICAgICAgICBj
b25zdCBjaGFyKiBuZXh0ID0gKGkgPCBhcmdjKSA/IGFyZ3ZbaSsxXSA6IDA7CisKKyAgICAgICAg
c3dpdGNoIChPcHRpb25zOjpwYXJzZUNvbW1hbmRMaW5lQXJnKGFyZywgbmV4dCkpIHsKKyAgICAg
ICAgY2FzZSBPcHRpb25zOjpOb01hdGNoOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgT3B0aW9uczo6Q29uc3VtZWRPbmVBcmd1bWVudDoKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICBjYXNlIE9wdGlvbnM6OkNvbnN1bWVkVHdvQXJndW1lbnRzOgorICAgICAgICAgICAg
aSsrOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGNhc2UgT3B0aW9uczo6TWlzc2lu
Z1ZhbHVlOgorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogTWlzc2luZyB2YWx1
ZSBmb3Igb3B0aW9uICVzLlxuIiwgYXJnKTsKKyAgICAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJF
KTsKKyAgICAgICAgY2FzZSBPcHRpb25zOjpCYWRWYWx1ZToKKyAgICAgICAgICAgIGZwcmludGYo
c3RkZXJyLCAiRVJST1I6IEJhZCB2YWx1ZSBmb3Igb3B0aW9uICVzLlxuIiwgYXJnKTsKKyAgICAg
ICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmICghc3Ry
Y21wKGFyZywgIi1mIikpIHsKICAgICAgICAgICAgIGlmICgrK2kgPT0gYXJnYykKICAgICAgICAg
ICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KGdsb2JhbERhdGEpOwpAQCAtNTg4LDYgKzYyMCw4
IEBAIHN0YXRpYyB2b2lkIHBhcnNlQXJndW1lbnRzKGludCBhcmdjLCBjaGFyKiogYXJndiwgQ29t
bWFuZExpbmUmIG9wdGlvbnMsIEpTR2xvYmFsCiAgICAgICAgIH0KICAgICAgICAgaWYgKCFzdHJj
bXAoYXJnLCAiLWgiKSB8fCAhc3RyY21wKGFyZywgIi0taGVscCIpKQogICAgICAgICAgICAgcHJp
bnRVc2FnZVN0YXRlbWVudChnbG9iYWxEYXRhLCB0cnVlKTsKKyAgICAgICAgaWYgKCFzdHJjbXAo
YXJnLCAiLS1oZWxwLWRlYnVnIikpCisgICAgICAgICAgICBwcmludERlYnVnVXNhZ2VTdGF0ZW1l
bnQoZ2xvYmFsRGF0YSk7CiAgICAgICAgIG9wdGlvbnMuc2NyaXB0cy5hcHBlbmQoU2NyaXB0KHRy
dWUsIGFyZ3ZbaV0pKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9ucy5jcHAKaW5kZXggNWY2YzliM2NkOTUxODA2NmI1Y2E1Y2I5ODk2Nzg1ZmQ2NDZjMDg2Mi4u
MTg0YjY5NTYzMGViN2ExNWRjYzU1NjQ3NDZiNmMxNjA5Y2U1MTI4MCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRl
ICJPcHRpb25zLmgiCiAKICNpbmNsdWRlIDxsaW1pdHM+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1BhZ2VCbG9jay5oPgogCiAjaWYgT1MoREFSV0lOKSAm
JiBFTkFCTEUoUEFSQUxMRUxfR0MpCkBAIC00NCw3ICs0NSw3IEBACiAKIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgT3B0aW9ucyB7CiAKLSNkZWZpbmUgREVGSU5FKHR5cGUsIGNuYW1lLCBkZWZh
dWx0X3ZhbCkgdHlwZSBjbmFtZTsKKyNkZWZpbmUgREVGSU5FKHR5cGUsIGNuYW1lLCBkZWZhdWx0
X3ZhbCwgb3B0bmFtZSkgdHlwZSBjbmFtZTsKIEZPUl9FQUNIX0hFVVJJU1RJQyhERUZJTkUpCiAj
dW5kZWYgREVGSU5FCiAKQEAgLTg1LDkgKzg2LDc2IEBAIHZvaWQgc2V0SGV1cmlzdGljKFQmIHZh
cmlhYmxlLCBjb25zdCBjaGFyKiBuYW1lLCBVIHZhbHVlKQogI2RlZmluZSBTRVQodmFyaWFibGUs
IHZhbHVlKSB2YXJpYWJsZSA9IHZhbHVlCiAjZW5kaWYKIAorc3RhdGljIGJvb2wgcGFyc2VBcmco
dW5zaWduZWQmIHZhcmlhYmxlLCBTdHJpbmcmIHZhbHVlKQoreworICAgIGJvb2wgb2sgPSB0cnVl
OworICAgIHVuc2lnbmVkIHQgPSB2YWx1ZS50b1VJbnQoJm9rKTsKKyAgICBpZiAob2spCisgICAg
ICAgIHZhcmlhYmxlID0gdDsKKyAgICByZXR1cm4gb2s7Cit9CisKK3N0YXRpYyBpbnQgcGFyc2VB
cmcoaW50MzJfdCYgdmFyaWFibGUsIFN0cmluZyYgdmFsdWUpCit7CisgICAgYm9vbCBvayA9IHRy
dWU7CisgICAgaW50MzJfdCB0ID0gdmFsdWUudG9JbnQoJm9rKTsKKyAgICBpZiAob2spCisgICAg
ICAgIHZhcmlhYmxlID0gdDsKKyAgICByZXR1cm4gb2s7Cit9CisKK3N0YXRpYyBpbnQgcGFyc2VB
cmcoZG91YmxlJiB2YXJpYWJsZSwgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBib29sIG9rID0gdHJ1
ZTsKKyAgICBkb3VibGUgdCA9IHZhbHVlLnRvRG91YmxlKCZvayk7CisgICAgaWYgKG9rKQorICAg
ICAgICB2YXJpYWJsZSA9IHQ7CisgICAgcmV0dXJuIG9rOworfQorCitzdGF0aWMgY29uc3QgY2hh
ciAqYXJnUHJlZml4ID0gIi0tIjsKKworT3B0aW9uUGFyc2VTdGF0dXMgcGFyc2VDb21tYW5kTGlu
ZUFyZyhjb25zdCBjaGFyICpjX2FyZywgY29uc3QgY2hhciAqY19uZXh0KQoreworICAgIFN0cmlu
ZyBhcmcoY19hcmcpOworCisgICAgaWYgKCFhcmcuc3RhcnRzV2l0aChhcmdQcmVmaXgpKQorICAg
ICAgICByZXR1cm4gTm9NYXRjaDsKKworICAgIFN0cmluZyBvcHRpb24gPSBhcmcuc3Vic3RyaW5n
KHN0cmxlbihhcmdQcmVmaXgpLCBhcmcubGVuZ3RoKCkpOworICAgIFN0cmluZyB2YWx1ZTsKKyAg
ICBPcHRpb25QYXJzZVN0YXR1cyBzdWNjZXNzLCBmYWlsdXJlOworCisgICAgc2l6ZV90IGVxdWFs
c1Bvc2l0aW9uID0gb3B0aW9uLmZpbmQoJz0nKTsKKyAgICBpZiAoZXF1YWxzUG9zaXRpb24gPCBv
cHRpb24ubGVuZ3RoKCkpIHsKKyAgICAgICAgc3VjY2VzcyA9IENvbnN1bWVkT25lQXJndW1lbnQ7
CisgICAgICAgIGZhaWx1cmUgPSBCYWRWYWx1ZTsKKyAgICAgICAgdmFsdWUgPSBvcHRpb24uc3Vi
c3RyaW5nKGVxdWFsc1Bvc2l0aW9uICsgMSwgb3B0aW9uLmxlbmd0aCgpKTsKKyAgICAgICAgb3B0
aW9uID0gb3B0aW9uLnN1YnN0cmluZygwLCBlcXVhbHNQb3NpdGlvbik7CisgICAgfSBlbHNlIGlm
IChjX25leHQpIHsKKyAgICAgICAgc3VjY2VzcyA9IENvbnN1bWVkVHdvQXJndW1lbnRzOworICAg
ICAgICBmYWlsdXJlID0gQmFkVmFsdWU7CisgICAgICAgIHZhbHVlID0gY19uZXh0OworICAgIH0g
ZWxzZSB7CisgICAgICAgIHN1Y2Nlc3MgPSBDb25zdW1lZE9uZUFyZ3VtZW50OworICAgICAgICBm
YWlsdXJlID0gTWlzc2luZ1ZhbHVlOworICAgIH0KKworI2RlZmluZSBQQVJTRSh0eXBlLCBjbmFt
ZSwgZGVmYXVsdF92YWwsIG9wdG5hbWUpIFwKKyAgICBpZiAob3B0aW9uID09IG9wdG5hbWUpIHsg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlmIChwYXJzZUFyZyhjbmFtZSwgdmFsdWUp
KSAgICAgICAgICAgICAgXAorICAgICAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7ICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIGZhaWx1cmU7ICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgfQorICAgIEZPUl9FQUNIX0hFVVJJU1RJQyhQQVJTRSk7CisjdW5kZWYgUEFS
U0UKKworICAgIHJldHVybiBOb01hdGNoOworfQorCiB2b2lkIGluaXRpYWxpemVPcHRpb25zKCkK
IHsKLSNkZWZpbmUgSU5JVCh0eXBlLCBjbmFtZSwgZGVmYXVsdF92YWwpIFNFVChjbmFtZSwgZGVm
YXVsdF92YWwpOworI2RlZmluZSBJTklUKHR5cGUsIGNuYW1lLCBkZWZhdWx0X3ZhbCwgb3B0bmFt
ZSkgU0VUKGNuYW1lLCBkZWZhdWx0X3ZhbCk7CiAgICAgRk9SX0VBQ0hfSEVVUklTVElDKElOSVQp
CiAjdW5kZWYgSU5JVAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PcHRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKaW5k
ZXggZjMwMDFjYWFlMDIxYzJmN2QzODM1OTNjMDk0MmMyMjc4ZGMwZTQ5My4uOWNmNGRkODkxNDNi
YWYxMjU2OGFlZjVmNzMwOGE0MmI2Yzk0YzVkZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnMuaApAQCAtNDEsNTMgKzQxLDEwNCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIE9wdGlvbnMgewogLy8gdGFrZSBzbG93IGNhc2UsIGZvciBleGFtcGxlIGZvciBsaW5raW5n
IG9yIGNhY2hpbmcuCiAKICNkZWZpbmUgRk9SX0VBQ0hfSEVVUklTVElDKG0pIFwKLSAgICBtKHVu
c2lnbmVkLCBtYXhpbXVtRXZhbE9wdGltaXphdGlvbkNhbmRpZGF0ZUluc3RydWN0aW9uQ291bnQs
IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSkgXAotICAgIG0odW5zaWduZWQs
IG1heGltdW1Qcm9ncmFtT3B0aW1pemF0aW9uQ2FuZGlkYXRlSW5zdHJ1Y3Rpb25Db3VudCwgc3Rk
OjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKSBcCi0gICAgbSh1bnNpZ25lZCwgbWF4
aW11bUZ1bmN0aW9uRm9yQ2FsbE9wdGltaXphdGlvbkNhbmRpZGF0ZUluc3RydWN0aW9uQ291bnQs
IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSkgXAotICAgIG0odW5zaWduZWQs
IG1heGltdW1GdW5jdGlvbkZvckNvbnN0cnVjdE9wdGltaXphdGlvbkNhbmRpZGF0ZUluc3RydWN0
aW9uQ291bnQsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSkgXAorICAgIG0o
dW5zaWduZWQsIG1heGltdW1FdmFsT3B0aW1pemF0aW9uQ2FuZGlkYXRlSW5zdHJ1Y3Rpb25Db3Vu
dCwgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpLCBcCisgICAgICAibWF4aW11
bS1ldmFsLW9wdGltaXphdGlvbi1jYW5kaWRhdGUtaW5zdHJ1Y3Rpb24tY291bnQiKSBcCisgICAg
bSh1bnNpZ25lZCwgbWF4aW11bVByb2dyYW1PcHRpbWl6YXRpb25DYW5kaWRhdGVJbnN0cnVjdGlv
bkNvdW50LCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCksIFwKKyAgICAgICJt
YXhpbXVtLXByb2dyYW0tb3B0aW1pemF0aW9uLWNhbmRpZGF0ZS1pbnN0cnVjdGlvbi1jb3VudCIp
IFwKKyAgICBtKHVuc2lnbmVkLCBtYXhpbXVtRnVuY3Rpb25Gb3JDYWxsT3B0aW1pemF0aW9uQ2Fu
ZGlkYXRlSW5zdHJ1Y3Rpb25Db3VudCwgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1h
eCgpLCBcCisgICAgICAibWF4aW11bS1mdW5jdGlvbi1mb3ItY2FsbC1vcHRpbWl6YXRpb24tY2Fu
ZGlkYXRlLWluc3RydWN0aW9uLWNvdW50IikgXAorICAgIG0odW5zaWduZWQsIG1heGltdW1GdW5j
dGlvbkZvckNvbnN0cnVjdE9wdGltaXphdGlvbkNhbmRpZGF0ZUluc3RydWN0aW9uQ291bnQsIHN0
ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSwgXAorICAgICAgIm1heGltdW0tZnVu
Y3Rpb24tZm9yLWNvbnN0cnVjdC1vcHRpbWl6YXRpb24tY2FuZGlkYXRlLWluc3RydWN0aW9uLWNv
dW50IikgXAogICAgIFwKLSAgICBtKHVuc2lnbmVkLCBtYXhpbXVtRnVuY3Rpb25Gb3JDYWxsSW5s
aW5lQ2FuZGlkYXRlSW5zdHJ1Y3Rpb25Db3VudCwgMTUwKSBcCi0gICAgbSh1bnNpZ25lZCwgbWF4
aW11bUZ1bmN0aW9uRm9yQ29uc3RydWN0SW5saW5lQ2FuZGlkYXRlSW5zdHJ1Y3Rpb25Db3VudCwg
ODApIFwKKyAgICBtKHVuc2lnbmVkLCBtYXhpbXVtRnVuY3Rpb25Gb3JDYWxsSW5saW5lQ2FuZGlk
YXRlSW5zdHJ1Y3Rpb25Db3VudCwgMTUwLCBcCisgICAgICAibWF4aW11bS1mdW5jdGlvbi1mb3It
Y2FsbC1pbmxpbmUtY2FuZGlkYXRlLWluc3RydWN0aW9uLWNvdW50IikgXAorICAgIG0odW5zaWdu
ZWQsIG1heGltdW1GdW5jdGlvbkZvckNvbnN0cnVjdElubGluZUNhbmRpZGF0ZUluc3RydWN0aW9u
Q291bnQsIDgwLCBcCisgICAgICAibWF4aW11bS1mdW5jdGlvbi1mb3ItY29uc3RydWN0LWlubGlu
ZS1jYW5kaWRhdGUtaW5zdHJ1Y3Rpb24tY291bnQiKSBcCiAgICAgXAotICAgIG0odW5zaWduZWQs
IG1heGltdW1JbmxpbmluZ0RlcHRoLCA1KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
KyAgICBtKHVuc2lnbmVkLCBtYXhpbXVtSW5saW5pbmdEZXB0aCwgNSwgXAorICAgICAgIm1heGlt
dW0taW5saW5pbmctZGVwdGgiKSBcCiAgICAgXAotICAgIG0oaW50MzJfdCwgZXhlY3V0aW9uQ291
bnRlclZhbHVlRm9yT3B0aW1pemVBZnRlcldhcm1VcCwgICAgICAtMTAwMCkgXAotICAgIG0oaW50
MzJfdCwgZXhlY3V0aW9uQ291bnRlclZhbHVlRm9yT3B0aW1pemVBZnRlckxvbmdXYXJtVXAsICAt
NTAwMCkgXAotICAgIG0oaW50MzJfdCwgZXhlY3V0aW9uQ291bnRlclZhbHVlRm9yRG9udE9wdGlt
aXplQW55dGltZVNvb24sICBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptaW4oKSkgXAot
ICAgIG0oaW50MzJfdCwgZXhlY3V0aW9uQ291bnRlclZhbHVlRm9yT3B0aW1pemVTb29uLCAgICAg
ICAgICAgICAtMTAwMCkgXAotICAgIG0oaW50MzJfdCwgZXhlY3V0aW9uQ291bnRlclZhbHVlRm9y
T3B0aW1pemVOZXh0SW52b2NhdGlvbiwgICAwKSBcCisgICAgbShpbnQzMl90LCBleGVjdXRpb25D
b3VudGVyVmFsdWVGb3JPcHRpbWl6ZUFmdGVyV2FybVVwLCAgICAgIC0xMDAwLCBcCisgICAgICAi
ZXhlY3V0aW9uLWNvdW50ZXItdmFsdWUtZm9yLW9wdGltaXplLWFmdGVyLXdhcm0tdXAiKSBcCisg
ICAgbShpbnQzMl90LCBleGVjdXRpb25Db3VudGVyVmFsdWVGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dh
cm1VcCwgIC01MDAwLCBcCisgICAgICAiZXhlY3V0aW9uLWNvdW50ZXItdmFsdWUtZm9yLW9wdGlt
aXplLWFmdGVyLWxvbmctd2FybS11cCIpIFwKKyAgICBtKGludDMyX3QsIGV4ZWN1dGlvbkNvdW50
ZXJWYWx1ZUZvckRvbnRPcHRpbWl6ZUFueXRpbWVTb29uLCAgc3RkOjpudW1lcmljX2xpbWl0czxp
bnQzMl90Pjo6bWluKCksIFwKKyAgICAgICJleGVjdXRpb24tY291bnRlci12YWx1ZS1mb3ItZG9u
dC1vcHRpbWl6ZS1hbnl0aW1lLXNvb24iKSBcCisgICAgbShpbnQzMl90LCBleGVjdXRpb25Db3Vu
dGVyVmFsdWVGb3JPcHRpbWl6ZVNvb24sICAgICAgICAgICAgIC0xMDAwLCBcCisgICAgICAiZXhl
Y3V0aW9uLWNvdW50ZXItdmFsdWUtZm9yLW9wdGltaXplLXNvb24iKSBcCisgICAgbShpbnQzMl90
LCBleGVjdXRpb25Db3VudGVyVmFsdWVGb3JPcHRpbWl6ZU5leHRJbnZvY2F0aW9uLCAgIDAsIFwK
KyAgICAgICJleGVjdXRpb24tY291bnRlci12YWx1ZS1mb3Itb3B0aW1pemUtbmV4dC1pbnZvY2F0
aW9uIikgXAogICAgIFwKLSAgICBtKGludDMyX3QsIGV4ZWN1dGlvbkNvdW50ZXJJbmNyZW1lbnRG
b3JMb29wLCAgICAgICAxKSBcCi0gICAgbShpbnQzMl90LCBleGVjdXRpb25Db3VudGVySW5jcmVt
ZW50Rm9yUmV0dXJuLCAgICAgMTUpIFwKKyAgICBtKGludDMyX3QsIGV4ZWN1dGlvbkNvdW50ZXJJ
bmNyZW1lbnRGb3JMb29wLCAgICAgICAxLCBcCisgICAgICAiZXhlY3V0aW9uLWNvdW50ZXItaW5j
cmVtZW50LWZvci1sb29wIikgXAorICAgIG0oaW50MzJfdCwgZXhlY3V0aW9uQ291bnRlckluY3Jl
bWVudEZvclJldHVybiwgICAgIDE1LCBcCisgICAgICAiZXhlY3V0aW9uLWNvdW50ZXItaW5jcmVt
ZW50LWZvci1yZXR1cm4iKSBcCiAgICAgXAotICAgIG0odW5zaWduZWQsIGRlc2lyZWRTcGVjdWxh
dGl2ZVN1Y2Nlc3NGYWlsUmF0aW8sICAgIDYpIFwKKyAgICBtKHVuc2lnbmVkLCBkZXNpcmVkU3Bl
Y3VsYXRpdmVTdWNjZXNzRmFpbFJhdGlvLCAgICA2LCBcCisgICAgICAiZGVzaXJlZC1zcGVjdWxh
dGl2ZS1zdWNjZXNzLWZhaWwtcmF0aW8iKSBcCiAgICAgXAotICAgIG0odW5zaWduZWQsIGxpa2Vs
eVRvVGFrZVNsb3dDYXNlVGhyZXNob2xkLCAgICAgICAgIDEwMCkgXAotICAgIG0odW5zaWduZWQs
IGNvdWxkVGFrZVNsb3dDYXNlVGhyZXNob2xkLCAgICAgICAgICAgIDEwKSBcCisgICAgbSh1bnNp
Z25lZCwgbGlrZWx5VG9UYWtlU2xvd0Nhc2VUaHJlc2hvbGQsICAgICAgICAgMTAwLCBcCisgICAg
ICAibGlrZWx5LXRvLXRha2Utc2xvdy1jYXNlLXRocmVzaG9sZCIpIFwKKyAgICBtKHVuc2lnbmVk
LCBjb3VsZFRha2VTbG93Q2FzZVRocmVzaG9sZCwgICAgICAgICAgICAxMCwgXAorICAgICAgImNv
dWxkLXRha2Utc2xvdy1jYXNlLXRocmVzaG9sZCIpIFwKICAgICBcCi0gICAgbSh1bnNpZ25lZCwg
bGFyZ2VGYWlsQ291bnRUaHJlc2hvbGRCYXNlLCAgICAgICAgICAgMjApIFwKLSAgICBtKHVuc2ln
bmVkLCBsYXJnZUZhaWxDb3VudFRocmVzaG9sZEJhc2VGb3JMb29wLCAgICAxKSBcCisgICAgbSh1
bnNpZ25lZCwgbGFyZ2VGYWlsQ291bnRUaHJlc2hvbGRCYXNlLCAgICAgICAgICAgMjAsIFwKKyAg
ICAgICJsYXJnZS1mYWlsLWNvdW50LXRocmVzaG9sZC1iYXNlIikgXAorICAgIG0odW5zaWduZWQs
IGxhcmdlRmFpbENvdW50VGhyZXNob2xkQmFzZUZvckxvb3AsICAgIDEsIFwKKyAgICAgICJsYXJn
ZS1mYWlsLWNvdW50LXRocmVzaG9sZC1iYXNlLWZvci1sb29wIikgXAogICAgIFwKLSAgICBtKHVu
c2lnbmVkLCByZW9wdGltaXphdGlvblJldHJ5Q291bnRlck1heCwgICAgICAgICAwKSBcCi0gICAg
bSh1bnNpZ25lZCwgcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJTdGVwLCAgICAgICAgMSkgXAor
ICAgIG0odW5zaWduZWQsIHJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4LCAgICAgICAgIDAs
IFwKKyAgICAgICJyZW9wdGltaXphdGlvbi1yZXRyeS1jb3VudGVyLW1heCIpIFwKKyAgICBtKHVu
c2lnbmVkLCByZW9wdGltaXphdGlvblJldHJ5Q291bnRlclN0ZXAsICAgICAgICAxLCBcCisgICAg
ICAicmVvcHRpbWl6YXRpb24tcmV0cnktY291bnRlci1zdGVwIikgXAogICAgIFwKLSAgICBtKHVu
c2lnbmVkLCBtaW5pbXVtT3B0aW1pemF0aW9uRGVsYXksICAgICAgICAgICAgICAxKSBcCi0gICAg
bSh1bnNpZ25lZCwgbWF4aW11bU9wdGltaXphdGlvbkRlbGF5LCAgICAgICAgICAgICAgNSkgXAot
ICAgIG0oZG91YmxlLCBkZXNpcmVkUHJvZmlsZUxpdmVuZXNzUmF0ZSwgICAgICAgICAgICAgIDAu
NzUpIFwKLSAgICBtKGRvdWJsZSwgZGVzaXJlZFByb2ZpbGVGdWxsbmVzc1JhdGUsICAgICAgICAg
ICAgICAwLjM1KSBcCisgICAgbSh1bnNpZ25lZCwgbWluaW11bU9wdGltaXphdGlvbkRlbGF5LCAg
ICAgICAgICAgICAgMSwgXAorICAgICAgIm1pbmltdW0tb3B0aW1pemF0aW9uLWRlbGF5IikgXAor
ICAgIG0odW5zaWduZWQsIG1heGltdW1PcHRpbWl6YXRpb25EZWxheSwgICAgICAgICAgICAgIDUs
IFwKKyAgICAgICJtYXhpbXVtLW9wdGltaXphdGlvbi1kZWxheSIpIFwKKyAgICBtKGRvdWJsZSwg
ZGVzaXJlZFByb2ZpbGVMaXZlbmVzc1JhdGUsICAgICAgICAgICAgICAwLjc1LCBcCisgICAgICAi
ZGVzaXJlZC1wcm9maWxlLWxpdmVuZXNzLXJhdGUiKSBcCisgICAgbShkb3VibGUsIGRlc2lyZWRQ
cm9maWxlRnVsbG5lc3NSYXRlLCAgICAgICAgICAgICAgMC4zNSwgXAorICAgICAgImRlc2lyZWQt
cHJvZmlsZS1mdWxsbmVzcy1yYXRlIikgXAogICAgIFwKLSAgICBtKHVuc2lnbmVkLCBtaW5pbXVt
TnVtYmVyT2ZTY2Fuc0JldHdlZW5SZWJhbGFuY2UsICAxMDAwMCkgXAotICAgIG0odW5zaWduZWQs
IGdjTWFya1N0YWNrU2VnbWVudFNpemUsICAgICAgICAgICAgICAgIDApIFwKLSAgICBtKHVuc2ln
bmVkLCBtaW5pbXVtTnVtYmVyT2ZDZWxsc1RvS2VlcCwgICAgICAgICAgICAxMCkgXAotICAgIG0o
dW5zaWduZWQsIG1heGltdW1OdW1iZXJPZlNoYXJlZFNlZ21lbnRzLCAgICAgICAgIDMpIFwKLSAg
ICBtKHVuc2lnbmVkLCBzaGFyZWRTdGFja1dha2V1cFRocmVzaG9sZCwgICAgICAgICAgICAxKSBc
Ci0gICAgbSh1bnNpZ25lZCwgbnVtYmVyT2ZHQ01hcmtlcnMsICAgICAgICAgICAgICAgICAgICAg
MCkgXAotICAgIG0odW5zaWduZWQsIG9wYXF1ZVJvb3RNZXJnZVRocmVzaG9sZCwgICAgICAgICAg
ICAgIDEwMDApCisgICAgbSh1bnNpZ25lZCwgbWluaW11bU51bWJlck9mU2NhbnNCZXR3ZWVuUmVi
YWxhbmNlLCAgMTAwMDAsIFwKKyAgICAgICJtaW5pbXVtLW51bWJlci1vZi1zY2Fucy1iZXR3ZWVu
LXJlYmFsYW5jZSIpIFwKKyAgICBtKHVuc2lnbmVkLCBnY01hcmtTdGFja1NlZ21lbnRTaXplLCAg
ICAgICAgICAgICAgICAwLCBcCisgICAgICAiZ2MtbWFyay1zdGFjay1zZWdtZW50LXNpemUiKSBc
CisgICAgbSh1bnNpZ25lZCwgbWluaW11bU51bWJlck9mQ2VsbHNUb0tlZXAsICAgICAgICAgICAg
MTAsIFwKKyAgICAgICJtaW5pbXVtLW51bWJlci1vZi1jZWxscy10by1rZWVwIikgXAorICAgIG0o
dW5zaWduZWQsIG1heGltdW1OdW1iZXJPZlNoYXJlZFNlZ21lbnRzLCAgICAgICAgIDMsIFwKKyAg
ICAgICJtYXhpbXVtLW51bWJlci1vZi1zaGFyZWQtc2VnbWVudHMiKSBcCisgICAgbSh1bnNpZ25l
ZCwgc2hhcmVkU3RhY2tXYWtldXBUaHJlc2hvbGQsICAgICAgICAgICAgMSwgXAorICAgICAgInNo
YXJlZC1zdGFjay13YWtldXAtdGhyZXNob2xkIikgXAorICAgIG0odW5zaWduZWQsIG51bWJlck9m
R0NNYXJrZXJzLCAgICAgICAgICAgICAgICAgICAgIDAsIFwKKyAgICAgICJudW1iZXItb2YtZ2Mt
bWFya2VycyIpIFwKKyAgICBtKHVuc2lnbmVkLCBvcGFxdWVSb290TWVyZ2VUaHJlc2hvbGQsICAg
ICAgICAgICAgICAxMDAwLCBcCisgICAgICAib3BhcXVlLXJvb3QtbWVyZ2UtdGhyZXNob2xkIikK
IAotI2RlZmluZSBERUNMQVJFKHR5cGUsIGNuYW1lLCBkZWZhdWx0X3ZhbCkgZXh0ZXJuIHR5cGUg
Y25hbWU7CisjZGVmaW5lIERFQ0xBUkUodHlwZSwgY25hbWUsIGRlZmF1bHRfdmFsLCBvcHRuYW1l
KSBleHRlcm4gdHlwZSBjbmFtZTsKIEZPUl9FQUNIX0hFVVJJU1RJQyhERUNMQVJFKQogI3VuZGVm
IERFQ0xBUkUKIAorZW51bSBPcHRpb25QYXJzZVN0YXR1cyB7CisgICAgTm9NYXRjaCwKKyAgICBD
b25zdW1lZE9uZUFyZ3VtZW50LAorICAgIENvbnN1bWVkVHdvQXJndW1lbnRzLAorICAgIE1pc3Np
bmdWYWx1ZSwKKyAgICBCYWRWYWx1ZQorfTsKKyAgICAKKy8vIFNldCBhIEpTQyBydW4tdGltZSBv
cHRpb24gZnJvbSBhIGNvbW1hbmQtbGluZSBhcmd1bWVudC4gQm90aCBgLS1mb28gYmFyJyBhbmQK
Ky8vIGAtLWZvbz1iYXInIGZvcm1zIGFyZSBzdXBwb3J0ZWQuCisvLworLy8gT24gc3VjY2Vzcywg
cmV0dXJucyB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBjb25zdW1lZCwgd2hpY2ggd2lsbCBiZSAx
IG9yIDIuCisvLyBPdGhlcndpc2UgcmV0dXJuczoKKy8vICAgIG1pc3NpbmdWYWx1ZSwgaWYgbm8g
dmFsdWUgd2FzIHByZXNlbnQgZm9yIHRoaXMgb3B0aW9uLCB3aGljaAorLy8gICAgICAgaXMgcG9z
c2libGUgaWYgdGhlcmUgd2FzIG5vIE5FWFQgYXJndW1lbnQ7CisvLyAgICBiYWRWYWx1ZSwgaWYg
dGhlIHZhbHVlIGNvdWxkIG5vdCBiZSBwYXJzZWQ7IG9yCisvLyAgICBub01hdGNoLCBpZiBBUkcg
ZGlkIG5vdCBtYXRjaCBhbnkga25vd24gaGV1cmlzdGljLgorLy8KK09wdGlvblBhcnNlU3RhdHVz
IHBhcnNlQ29tbWFuZExpbmVBcmcoY29uc3QgY2hhciAqYXJnLCBjb25zdCBjaGFyICpuZXh0KTsK
IAogdm9pZCBpbml0aWFsaXplT3B0aW9ucygpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116231</attachid>
            <date>2011-11-22 08:24:55 -0800</date>
            <delta_ts>2011-11-25 07:24:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72960-20111122172452.patch</filename>
            <type>text/plain</type>
            <size>14738</size>
            <attacher name="Andy Wingo">wingo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwOTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
Y2Q0ZDBkNDcxZGJlZWNjZmUxYTgxYTVhMzQwYjZmZGUxNWM1NjMxLi4wYmNjMTE4OGNlODdiMjBh
ZWNkMTMzMTRiMzZkYWY3ZmYxYzM3ZjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyNiBAQAogMjAxMS0xMS0yMiAgQW5keSBXaW5nbyAgPHdpbmdvQGlnYWxpYS5jb20+CiAK
KyAgICAgICAgQWxsb3cgSlNDIGhldXJpc3RpY3MgdG8gYmUgc2V0IG9uIHRoZSBjb21tYW5kLWxp
bmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTYw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqc2Mu
Y3BwOgorICAgICAgICAocHJpbnREZWJ1Z1VzYWdlU3RhdGVtZW50KToKKyAgICAgICAgKHByaW50
VXNhZ2VTdGF0ZW1lbnQpOgorICAgICAgICAocGFyc2VBcmd1bWVudHMpOiBBZGQgLS1oZWxwLWRl
YnVnLCB3aGljaCBwcmludHMgb3V0IGhldXJpc3RpY3MKKyAgICAgICAgdGhhdCBjYW4gYmUgc2V0
IGF0IHJ1bnRpbWUuCisKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuY3BwOgorICAgICAgICAo
SlNDOjpPcHRpb25zOjpwYXJzZUFyZyk6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OnBhcnNlQ29t
bWFuZExpbmVBcmcpOgorICAgICAgICAoSlNDOjpPcHRpb25zOjppbml0aWFsaXplT3B0aW9ucyk6
CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmg6IEFkZCBhbiAib3B0aW9uLW5hbWUiIHRvIGFs
bCBvZiB0aGUgb3B0aW9ucywKKyAgICAgICAgY3VycmVudGx5IHVzZWQgd2hlbiBwYXJzaW5nIGNv
bW1hbmQtbGluZSBhcmd1bWVudHMuICBBZGQgYW4KKyAgICAgICAgaW50ZXJmYWNlIHRvIHNldCBv
cHRpb25zIGZyb20gY29tbWFuZC1saW5lIGFyZ3VtZW50cy4KKworMjAxMS0xMS0yMiAgQW5keSBX
aW5nbyAgPHdpbmdvQGlnYWxpYS5jb20+CisKICAgICAgICAgVXNlIG1vcmUgbWFjcm9sb2d5IGlu
IEpTQzo6T3B0aW9ucwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzI5MzgKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCAzNmQzZjdhMDVhNWZlMTM2OGIy
OWZkNWY4ZjFkNWY5Y2IyNTllOGQyLi43YTI3MGJkZjc3MGRjMzRiZjVkMjhlYTU1MTczMzA4OWUy
ZWExN2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtNTMyLDE2ICs1MzIsMzAgQEAgc3RhdGlj
IHZvaWQgcnVuSW50ZXJhY3RpdmUoR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgcHJp
bnRmKCJcbiIpOwogfQogCitzdGF0aWMgTk9fUkVUVVJOIHZvaWQgcHJpbnREZWJ1Z1VzYWdlU3Rh
dGVtZW50KEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKK3sKKyAgICBmcHJpbnRmKHN0ZGVyciwg
IkF2YWlsYWJsZSBkZWJ1Z2dpbmcgb3B0aW9uczpcbiIpOworI2RlZmluZSBQUklOVCh0eXBlLCBj
bmFtZSwgZGVmYXVsdF92YWwsIG9wdG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
IGZwcmludGYoc3RkZXJyLCAiICAtLSIgb3B0bmFtZSAiPSIgI3R5cGUgIlxuIik7ICAgICAgICAg
ICAgICAgICAgICAgXAorICAgIGZwcmludGYoc3RkZXJyLCAiICAgICAgICAgICAgICAgIERlZmF1
bHQ6ICIgI2RlZmF1bHRfdmFsICJcbiIpOworICAgIEZPUl9FQUNIX0hFVVJJU1RJQyhQUklOVCkK
KyN1bmRlZiBQUklOVAorCisgICAgY2xlYW51cEdsb2JhbERhdGEoZ2xvYmFsRGF0YSk7CisgICAg
ZXhpdChFWElUX1NVQ0NFU1MpOworfQorCiBzdGF0aWMgTk9fUkVUVVJOIHZvaWQgcHJpbnRVc2Fn
ZVN0YXRlbWVudChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGJvb2wgaGVscCA9IGZhbHNlKQog
ewogICAgIGZwcmludGYoc3RkZXJyLCAiVXNhZ2U6IGpzYyBbb3B0aW9uc10gW2ZpbGVzXSBbLS0g
YXJndW1lbnRzXVxuIik7Ci0gICAgZnByaW50ZihzdGRlcnIsICIgIC1kICAgICAgICAgRHVtcHMg
Ynl0ZWNvZGUgKGRlYnVnIGJ1aWxkcyBvbmx5KVxuIik7Ci0gICAgZnByaW50ZihzdGRlcnIsICIg
IC1lICAgICAgICAgRXZhbHVhdGUgYXJndW1lbnQgYXMgc2NyaXB0IGNvZGVcbiIpOwotICAgIGZw
cmludGYoc3RkZXJyLCAiICAtZiAgICAgICAgIFNwZWNpZmllcyBhIHNvdXJjZSBmaWxlIChkZXBy
ZWNhdGVkKVxuIik7Ci0gICAgZnByaW50ZihzdGRlcnIsICIgIC1ofC0taGVscCAgUHJpbnRzIHRo
aXMgaGVscCBtZXNzYWdlXG4iKTsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLWkgICAgICAgICBF
bmFibGVzIGludGVyYWN0aXZlIG1vZGUgKGRlZmF1bHQgaWYgbm8gZmlsZXMgYXJlIHNwZWNpZmll
ZClcbiIpOworICAgIGZwcmludGYoc3RkZXJyLCAiICAtZCAgICAgICAgICAgIER1bXBzIGJ5dGVj
b2RlIChkZWJ1ZyBidWlsZHMgb25seSlcbiIpOworICAgIGZwcmludGYoc3RkZXJyLCAiICAtZSAg
ICAgICAgICAgIEV2YWx1YXRlIGFyZ3VtZW50IGFzIHNjcmlwdCBjb2RlXG4iKTsKKyAgICBmcHJp
bnRmKHN0ZGVyciwgIiAgLWYgICAgICAgICAgICBTcGVjaWZpZXMgYSBzb3VyY2UgZmlsZSAoZGVw
cmVjYXRlZClcbiIpOworICAgIGZwcmludGYoc3RkZXJyLCAiICAtaHwtLWhlbHAgICAgIFByaW50
cyB0aGlzIGhlbHAgbWVzc2FnZVxuIik7CisgICAgZnByaW50ZihzdGRlcnIsICIgIC0taGVscC1k
ZWJ1ZyAgU2hvdyBhZGRpdGlvbmFsIGRlYnVnZ2luZyBvcHRpb25zXG4iKTsKKyAgICBmcHJpbnRm
KHN0ZGVyciwgIiAgLWkgICAgICAgICAgICBFbmFibGVzIGludGVyYWN0aXZlIG1vZGUgKGRlZmF1
bHQgaWYgbm8gZmlsZXMgYXJlIHNwZWNpZmllZClcbiIpOwogI2lmIEhBVkUoU0lHTkFMX0gpCi0g
ICAgZnByaW50ZihzdGRlcnIsICIgIC1zICAgICAgICAgSW5zdGFsbHMgc2lnbmFsIGhhbmRsZXJz
IHRoYXQgZXhpdCBvbiBhIGNyYXNoIChVbml4IHBsYXRmb3JtcyBvbmx5KVxuIik7CisgICAgZnBy
aW50ZihzdGRlcnIsICIgIC1zICAgICAgICAgICAgSW5zdGFsbHMgc2lnbmFsIGhhbmRsZXJzIHRo
YXQgZXhpdCBvbiBhIGNyYXNoIChVbml4IHBsYXRmb3JtcyBvbmx5KVxuIik7CiAjZW5kaWYKIAog
ICAgIGNsZWFudXBHbG9iYWxEYXRhKGdsb2JhbERhdGEpOwpAQCAtNTUzLDYgKzU2NywyNCBAQCBz
dGF0aWMgdm9pZCBwYXJzZUFyZ3VtZW50cyhpbnQgYXJnYywgY2hhcioqIGFyZ3YsIENvbW1hbmRM
aW5lJiBvcHRpb25zLCBKU0dsb2JhbAogICAgIGludCBpID0gMTsKICAgICBmb3IgKDsgaSA8IGFy
Z2M7ICsraSkgewogICAgICAgICBjb25zdCBjaGFyKiBhcmcgPSBhcmd2W2ldOworICAgICAgICBj
b25zdCBjaGFyKiBuZXh0ID0gKGkgPCBhcmdjKSA/IGFyZ3ZbaSsxXSA6IDA7CisKKyAgICAgICAg
c3dpdGNoIChPcHRpb25zOjpwYXJzZUNvbW1hbmRMaW5lQXJnKGFyZywgbmV4dCkpIHsKKyAgICAg
ICAgY2FzZSBPcHRpb25zOjpOb01hdGNoOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgT3B0aW9uczo6Q29uc3VtZWRPbmVBcmd1bWVudDoKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICBjYXNlIE9wdGlvbnM6OkNvbnN1bWVkVHdvQXJndW1lbnRzOgorICAgICAgICAgICAg
aSsrOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGNhc2UgT3B0aW9uczo6TWlzc2lu
Z1ZhbHVlOgorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogTWlzc2luZyB2YWx1
ZSBmb3Igb3B0aW9uICVzLlxuIiwgYXJnKTsKKyAgICAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJF
KTsKKyAgICAgICAgY2FzZSBPcHRpb25zOjpCYWRWYWx1ZToKKyAgICAgICAgICAgIGZwcmludGYo
c3RkZXJyLCAiRVJST1I6IEJhZCB2YWx1ZSBmb3Igb3B0aW9uICVzLlxuIiwgYXJnKTsKKyAgICAg
ICAgICAgIGV4aXQoRVhJVF9GQUlMVVJFKTsKKyAgICAgICAgfQorCiAgICAgICAgIGlmICghc3Ry
Y21wKGFyZywgIi1mIikpIHsKICAgICAgICAgICAgIGlmICgrK2kgPT0gYXJnYykKICAgICAgICAg
ICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KGdsb2JhbERhdGEpOwpAQCAtNTg4LDYgKzYyMCw4
IEBAIHN0YXRpYyB2b2lkIHBhcnNlQXJndW1lbnRzKGludCBhcmdjLCBjaGFyKiogYXJndiwgQ29t
bWFuZExpbmUmIG9wdGlvbnMsIEpTR2xvYmFsCiAgICAgICAgIH0KICAgICAgICAgaWYgKCFzdHJj
bXAoYXJnLCAiLWgiKSB8fCAhc3RyY21wKGFyZywgIi0taGVscCIpKQogICAgICAgICAgICAgcHJp
bnRVc2FnZVN0YXRlbWVudChnbG9iYWxEYXRhLCB0cnVlKTsKKyAgICAgICAgaWYgKCFzdHJjbXAo
YXJnLCAiLS1oZWxwLWRlYnVnIikpCisgICAgICAgICAgICBwcmludERlYnVnVXNhZ2VTdGF0ZW1l
bnQoZ2xvYmFsRGF0YSk7CiAgICAgICAgIG9wdGlvbnMuc2NyaXB0cy5hcHBlbmQoU2NyaXB0KHRy
dWUsIGFyZ3ZbaV0pKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0
aW9ucy5jcHAKaW5kZXggNWY2YzliM2NkOTUxODA2NmI1Y2E1Y2I5ODk2Nzg1ZmQ2NDZjMDg2Mi4u
MTg0YjY5NTYzMGViN2ExNWRjYzU1NjQ3NDZiNmMxNjA5Y2U1MTI4MCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRl
ICJPcHRpb25zLmgiCiAKICNpbmNsdWRlIDxsaW1pdHM+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1BhZ2VCbG9jay5oPgogCiAjaWYgT1MoREFSV0lOKSAm
JiBFTkFCTEUoUEFSQUxMRUxfR0MpCkBAIC00NCw3ICs0NSw3IEBACiAKIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgT3B0aW9ucyB7CiAKLSNkZWZpbmUgREVGSU5FKHR5cGUsIGNuYW1lLCBkZWZh
dWx0X3ZhbCkgdHlwZSBjbmFtZTsKKyNkZWZpbmUgREVGSU5FKHR5cGUsIGNuYW1lLCBkZWZhdWx0
X3ZhbCwgb3B0bmFtZSkgdHlwZSBjbmFtZTsKIEZPUl9FQUNIX0hFVVJJU1RJQyhERUZJTkUpCiAj
dW5kZWYgREVGSU5FCiAKQEAgLTg1LDkgKzg2LDc2IEBAIHZvaWQgc2V0SGV1cmlzdGljKFQmIHZh
cmlhYmxlLCBjb25zdCBjaGFyKiBuYW1lLCBVIHZhbHVlKQogI2RlZmluZSBTRVQodmFyaWFibGUs
IHZhbHVlKSB2YXJpYWJsZSA9IHZhbHVlCiAjZW5kaWYKIAorc3RhdGljIGJvb2wgcGFyc2VBcmco
dW5zaWduZWQmIHZhcmlhYmxlLCBTdHJpbmcmIHZhbHVlKQoreworICAgIGJvb2wgb2sgPSB0cnVl
OworICAgIHVuc2lnbmVkIHQgPSB2YWx1ZS50b1VJbnQoJm9rKTsKKyAgICBpZiAob2spCisgICAg
ICAgIHZhcmlhYmxlID0gdDsKKyAgICByZXR1cm4gb2s7Cit9CisKK3N0YXRpYyBpbnQgcGFyc2VB
cmcoaW50MzJfdCYgdmFyaWFibGUsIFN0cmluZyYgdmFsdWUpCit7CisgICAgYm9vbCBvayA9IHRy
dWU7CisgICAgaW50MzJfdCB0ID0gdmFsdWUudG9JbnQoJm9rKTsKKyAgICBpZiAob2spCisgICAg
ICAgIHZhcmlhYmxlID0gdDsKKyAgICByZXR1cm4gb2s7Cit9CisKK3N0YXRpYyBpbnQgcGFyc2VB
cmcoZG91YmxlJiB2YXJpYWJsZSwgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBib29sIG9rID0gdHJ1
ZTsKKyAgICBkb3VibGUgdCA9IHZhbHVlLnRvRG91YmxlKCZvayk7CisgICAgaWYgKG9rKQorICAg
ICAgICB2YXJpYWJsZSA9IHQ7CisgICAgcmV0dXJuIG9rOworfQorCitzdGF0aWMgY29uc3QgY2hh
ciAqYXJnUHJlZml4ID0gIi0tIjsKKworT3B0aW9uUGFyc2VTdGF0dXMgcGFyc2VDb21tYW5kTGlu
ZUFyZyhjb25zdCBjaGFyICpjX2FyZywgY29uc3QgY2hhciAqY19uZXh0KQoreworICAgIFN0cmlu
ZyBhcmcoY19hcmcpOworCisgICAgaWYgKCFhcmcuc3RhcnRzV2l0aChhcmdQcmVmaXgpKQorICAg
ICAgICByZXR1cm4gTm9NYXRjaDsKKworICAgIFN0cmluZyBvcHRpb24gPSBhcmcuc3Vic3RyaW5n
KHN0cmxlbihhcmdQcmVmaXgpLCBhcmcubGVuZ3RoKCkpOworICAgIFN0cmluZyB2YWx1ZTsKKyAg
ICBPcHRpb25QYXJzZVN0YXR1cyBzdWNjZXNzLCBmYWlsdXJlOworCisgICAgc2l6ZV90IGVxdWFs
c1Bvc2l0aW9uID0gb3B0aW9uLmZpbmQoJz0nKTsKKyAgICBpZiAoZXF1YWxzUG9zaXRpb24gPCBv
cHRpb24ubGVuZ3RoKCkpIHsKKyAgICAgICAgc3VjY2VzcyA9IENvbnN1bWVkT25lQXJndW1lbnQ7
CisgICAgICAgIGZhaWx1cmUgPSBCYWRWYWx1ZTsKKyAgICAgICAgdmFsdWUgPSBvcHRpb24uc3Vi
c3RyaW5nKGVxdWFsc1Bvc2l0aW9uICsgMSwgb3B0aW9uLmxlbmd0aCgpKTsKKyAgICAgICAgb3B0
aW9uID0gb3B0aW9uLnN1YnN0cmluZygwLCBlcXVhbHNQb3NpdGlvbik7CisgICAgfSBlbHNlIGlm
IChjX25leHQpIHsKKyAgICAgICAgc3VjY2VzcyA9IENvbnN1bWVkVHdvQXJndW1lbnRzOworICAg
ICAgICBmYWlsdXJlID0gQmFkVmFsdWU7CisgICAgICAgIHZhbHVlID0gY19uZXh0OworICAgIH0g
ZWxzZSB7CisgICAgICAgIHN1Y2Nlc3MgPSBDb25zdW1lZE9uZUFyZ3VtZW50OworICAgICAgICBm
YWlsdXJlID0gTWlzc2luZ1ZhbHVlOworICAgIH0KKworI2RlZmluZSBQQVJTRSh0eXBlLCBjbmFt
ZSwgZGVmYXVsdF92YWwsIG9wdG5hbWUpIFwKKyAgICBpZiAob3B0aW9uID09IG9wdG5hbWUpIHsg
ICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlmIChwYXJzZUFyZyhjbmFtZSwgdmFsdWUp
KSAgICAgICAgICAgICAgXAorICAgICAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7ICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIGZhaWx1cmU7ICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgfQorICAgIEZPUl9FQUNIX0hFVVJJU1RJQyhQQVJTRSk7CisjdW5kZWYgUEFS
U0UKKworICAgIHJldHVybiBOb01hdGNoOworfQorCiB2b2lkIGluaXRpYWxpemVPcHRpb25zKCkK
IHsKLSNkZWZpbmUgSU5JVCh0eXBlLCBjbmFtZSwgZGVmYXVsdF92YWwpIFNFVChjbmFtZSwgZGVm
YXVsdF92YWwpOworI2RlZmluZSBJTklUKHR5cGUsIGNuYW1lLCBkZWZhdWx0X3ZhbCwgb3B0bmFt
ZSkgU0VUKGNuYW1lLCBkZWZhdWx0X3ZhbCk7CiAgICAgRk9SX0VBQ0hfSEVVUklTVElDKElOSVQp
CiAjdW5kZWYgSU5JVAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9PcHRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKaW5k
ZXggZjMwMDFjYWFlMDIxYzJmN2QzODM1OTNjMDk0MmMyMjc4ZGMwZTQ5My4uM2MzNTdhNmM4NzYy
ZTVlOWM3ZTQyZGUzMDA2MzViYjBkOGUxY2Y5OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wdGlvbnMuaApAQCAtNDEsNTMgKzQxLDk3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgT3B0aW9ucyB7CiAvLyB0YWtlIHNsb3cgY2FzZSwgZm9yIGV4YW1wbGUgZm9yIGxpbmtpbmcg
b3IgY2FjaGluZy4KIAogI2RlZmluZSBGT1JfRUFDSF9IRVVSSVNUSUMobSkgXAotICAgIG0odW5z
aWduZWQsIG1heGltdW1FdmFsT3B0aW1pemF0aW9uQ2FuZGlkYXRlSW5zdHJ1Y3Rpb25Db3VudCwg
c3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKSBcCi0gICAgbSh1bnNpZ25lZCwg
bWF4aW11bVByb2dyYW1PcHRpbWl6YXRpb25DYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50LCBzdGQ6
Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkpIFwKLSAgICBtKHVuc2lnbmVkLCBtYXhp
bXVtRnVuY3Rpb25Gb3JDYWxsT3B0aW1pemF0aW9uQ2FuZGlkYXRlSW5zdHJ1Y3Rpb25Db3VudCwg
c3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKSBcCi0gICAgbSh1bnNpZ25lZCwg
bWF4aW11bUZ1bmN0aW9uRm9yQ29uc3RydWN0T3B0aW1pemF0aW9uQ2FuZGlkYXRlSW5zdHJ1Y3Rp
b25Db3VudCwgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKSBcCisgICAgbSh1
bnNpZ25lZCwgbWF4aW11bUV2YWxPcHRpbWl6YXRpb25DYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50
LCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCksIFwKKyAgICAgICJtYXhpbXVt
LWV2YWwtb3B0aW1pemF0aW9uLWNhbmRpZGF0ZS1pbnN0cnVjdGlvbi1jb3VudCIpIFwKKyAgICBt
KHVuc2lnbmVkLCBtYXhpbXVtUHJvZ3JhbU9wdGltaXphdGlvbkNhbmRpZGF0ZUluc3RydWN0aW9u
Q291bnQsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSwgXAorICAgICAgIm1h
eGltdW0tcHJvZ3JhbS1vcHRpbWl6YXRpb24tY2FuZGlkYXRlLWluc3RydWN0aW9uLWNvdW50Iikg
XAorICAgIG0odW5zaWduZWQsIG1heGltdW1GdW5jdGlvbkZvckNhbGxPcHRpbWl6YXRpb25DYW5k
aWRhdGVJbnN0cnVjdGlvbkNvdW50LCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4
KCksIFwKKyAgICAgICJtYXhpbXVtLWZ1bmN0aW9uLWZvci1jYWxsLW9wdGltaXphdGlvbi1jYW5k
aWRhdGUtaW5zdHJ1Y3Rpb24tY291bnQiKSBcCisgICAgbSh1bnNpZ25lZCwgbWF4aW11bUZ1bmN0
aW9uRm9yQ29uc3RydWN0T3B0aW1pemF0aW9uQ2FuZGlkYXRlSW5zdHJ1Y3Rpb25Db3VudCwgc3Rk
OjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpLCBcCisgICAgICAibWF4aW11bS1mdW5j
dGlvbi1mb3ItY29uc3RydWN0LW9wdGltaXphdGlvbi1jYW5kaWRhdGUtaW5zdHJ1Y3Rpb24tY291
bnQiKSBcCiAgICAgXAotICAgIG0odW5zaWduZWQsIG1heGltdW1GdW5jdGlvbkZvckNhbGxJbmxp
bmVDYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50LCAxNTApIFwKLSAgICBtKHVuc2lnbmVkLCBtYXhp
bXVtRnVuY3Rpb25Gb3JDb25zdHJ1Y3RJbmxpbmVDYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50LCA4
MCkgXAorICAgIG0odW5zaWduZWQsIG1heGltdW1GdW5jdGlvbkZvckNhbGxJbmxpbmVDYW5kaWRh
dGVJbnN0cnVjdGlvbkNvdW50LCAxNTAsIFwKKyAgICAgICJtYXhpbXVtLWZ1bmN0aW9uLWZvci1j
YWxsLWlubGluZS1jYW5kaWRhdGUtaW5zdHJ1Y3Rpb24tY291bnQiKSBcCisgICAgbSh1bnNpZ25l
ZCwgbWF4aW11bUZ1bmN0aW9uRm9yQ29uc3RydWN0SW5saW5lQ2FuZGlkYXRlSW5zdHJ1Y3Rpb25D
b3VudCwgODAsIFwKKyAgICAgICJtYXhpbXVtLWZ1bmN0aW9uLWZvci1jb25zdHJ1Y3QtaW5saW5l
LWNhbmRpZGF0ZS1pbnN0cnVjdGlvbi1jb3VudCIpIFwKICAgICBcCi0gICAgbSh1bnNpZ25lZCwg
bWF4aW11bUlubGluaW5nRGVwdGgsIDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgIG0odW5zaWduZWQsIG1heGltdW1JbmxpbmluZ0RlcHRoLCA1LCBcCisgICAgICAibWF4aW11
bS1pbmxpbmluZy1kZXB0aCIpIFwKICAgICBcCi0gICAgbShpbnQzMl90LCBleGVjdXRpb25Db3Vu
dGVyVmFsdWVGb3JPcHRpbWl6ZUFmdGVyV2FybVVwLCAgICAgIC0xMDAwKSBcCi0gICAgbShpbnQz
Ml90LCBleGVjdXRpb25Db3VudGVyVmFsdWVGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCwgIC01
MDAwKSBcCi0gICAgbShpbnQzMl90LCBleGVjdXRpb25Db3VudGVyVmFsdWVGb3JEb250T3B0aW1p
emVBbnl0aW1lU29vbiwgIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1pbigpKSBcCi0g
ICAgbShpbnQzMl90LCBleGVjdXRpb25Db3VudGVyVmFsdWVGb3JPcHRpbWl6ZVNvb24sICAgICAg
ICAgICAgIC0xMDAwKSBcCi0gICAgbShpbnQzMl90LCBleGVjdXRpb25Db3VudGVyVmFsdWVGb3JP
cHRpbWl6ZU5leHRJbnZvY2F0aW9uLCAgIDApIFwKKyAgICBtKGludDMyX3QsIGV4ZWN1dGlvbkNv
dW50ZXJWYWx1ZUZvck9wdGltaXplQWZ0ZXJXYXJtVXAsICAgICAgLTEwMDAsIFwKKyAgICAgICJl
eGVjdXRpb24tY291bnRlci12YWx1ZS1mb3Itb3B0aW1pemUtYWZ0ZXItd2FybS11cCIpIFwKKyAg
ICBtKGludDMyX3QsIGV4ZWN1dGlvbkNvdW50ZXJWYWx1ZUZvck9wdGltaXplQWZ0ZXJMb25nV2Fy
bVVwLCAgLTUwMDAsIFwKKyAgICAgICJleGVjdXRpb24tY291bnRlci12YWx1ZS1mb3Itb3B0aW1p
emUtYWZ0ZXItbG9uZy13YXJtLXVwIikgXAorICAgIG0oaW50MzJfdCwgZXhlY3V0aW9uQ291bnRl
clZhbHVlRm9yRG9udE9wdGltaXplQW55dGltZVNvb24sICBzdGQ6Om51bWVyaWNfbGltaXRzPGlu
dDMyX3Q+OjptaW4oKSwgXAorICAgICAgImV4ZWN1dGlvbi1jb3VudGVyLXZhbHVlLWZvci1kb250
LW9wdGltaXplLWFueXRpbWUtc29vbiIpIFwKKyAgICBtKGludDMyX3QsIGV4ZWN1dGlvbkNvdW50
ZXJWYWx1ZUZvck9wdGltaXplU29vbiwgICAgICAgICAgICAgLTEwMDAsIFwKKyAgICAgICJleGVj
dXRpb24tY291bnRlci12YWx1ZS1mb3Itb3B0aW1pemUtc29vbiIpIFwKKyAgICBtKGludDMyX3Qs
IGV4ZWN1dGlvbkNvdW50ZXJWYWx1ZUZvck9wdGltaXplTmV4dEludm9jYXRpb24sICAgMCwgXAor
ICAgICAgImV4ZWN1dGlvbi1jb3VudGVyLXZhbHVlLWZvci1vcHRpbWl6ZS1uZXh0LWludm9jYXRp
b24iKSBcCiAgICAgXAotICAgIG0oaW50MzJfdCwgZXhlY3V0aW9uQ291bnRlckluY3JlbWVudEZv
ckxvb3AsICAgICAgIDEpIFwKLSAgICBtKGludDMyX3QsIGV4ZWN1dGlvbkNvdW50ZXJJbmNyZW1l
bnRGb3JSZXR1cm4sICAgICAxNSkgXAorICAgIG0oaW50MzJfdCwgZXhlY3V0aW9uQ291bnRlcklu
Y3JlbWVudEZvckxvb3AsICAgICAgIDEsIFwKKyAgICAgICJleGVjdXRpb24tY291bnRlci1pbmNy
ZW1lbnQtZm9yLWxvb3AiKSBcCisgICAgbShpbnQzMl90LCBleGVjdXRpb25Db3VudGVySW5jcmVt
ZW50Rm9yUmV0dXJuLCAgICAgMTUsIFwKKyAgICAgICJleGVjdXRpb24tY291bnRlci1pbmNyZW1l
bnQtZm9yLXJldHVybiIpIFwKICAgICBcCi0gICAgbSh1bnNpZ25lZCwgZGVzaXJlZFNwZWN1bGF0
aXZlU3VjY2Vzc0ZhaWxSYXRpbywgICAgNikgXAorICAgIG0odW5zaWduZWQsIGRlc2lyZWRTcGVj
dWxhdGl2ZVN1Y2Nlc3NGYWlsUmF0aW8sICAgIDYsIFwKKyAgICAgICJkZXNpcmVkLXNwZWN1bGF0
aXZlLXN1Y2Nlc3MtZmFpbC1yYXRpbyIpIFwKICAgICBcCi0gICAgbSh1bnNpZ25lZCwgbGlrZWx5
VG9UYWtlU2xvd0Nhc2VUaHJlc2hvbGQsICAgICAgICAgMTAwKSBcCi0gICAgbSh1bnNpZ25lZCwg
Y291bGRUYWtlU2xvd0Nhc2VUaHJlc2hvbGQsICAgICAgICAgICAgMTApIFwKKyAgICBtKHVuc2ln
bmVkLCBsaWtlbHlUb1Rha2VTbG93Q2FzZVRocmVzaG9sZCwgICAgICAgICAxMDAsIFwKKyAgICAg
ICJsaWtlbHktdG8tdGFrZS1zbG93LWNhc2UtdGhyZXNob2xkIikgXAorICAgIG0odW5zaWduZWQs
IGNvdWxkVGFrZVNsb3dDYXNlVGhyZXNob2xkLCAgICAgICAgICAgIDEwLCBcCisgICAgICAiY291
bGQtdGFrZS1zbG93LWNhc2UtdGhyZXNob2xkIikgXAogICAgIFwKLSAgICBtKHVuc2lnbmVkLCBs
YXJnZUZhaWxDb3VudFRocmVzaG9sZEJhc2UsICAgICAgICAgICAyMCkgXAotICAgIG0odW5zaWdu
ZWQsIGxhcmdlRmFpbENvdW50VGhyZXNob2xkQmFzZUZvckxvb3AsICAgIDEpIFwKKyAgICBtKHVu
c2lnbmVkLCBsYXJnZUZhaWxDb3VudFRocmVzaG9sZEJhc2UsICAgICAgICAgICAyMCwgXAorICAg
ICAgImxhcmdlLWZhaWwtY291bnQtdGhyZXNob2xkLWJhc2UiKSBcCisgICAgbSh1bnNpZ25lZCwg
bGFyZ2VGYWlsQ291bnRUaHJlc2hvbGRCYXNlRm9yTG9vcCwgICAgMSwgXAorICAgICAgImxhcmdl
LWZhaWwtY291bnQtdGhyZXNob2xkLWJhc2UtZm9yLWxvb3AiKSBcCiAgICAgXAotICAgIG0odW5z
aWduZWQsIHJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4LCAgICAgICAgIDApIFwKLSAgICBt
KHVuc2lnbmVkLCByZW9wdGltaXphdGlvblJldHJ5Q291bnRlclN0ZXAsICAgICAgICAxKSBcCisg
ICAgbSh1bnNpZ25lZCwgcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJNYXgsICAgICAgICAgMCwg
XAorICAgICAgInJlb3B0aW1pemF0aW9uLXJldHJ5LWNvdW50ZXItbWF4IikgXAorICAgIG0odW5z
aWduZWQsIHJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyU3RlcCwgICAgICAgIDEsIFwKKyAgICAg
ICJyZW9wdGltaXphdGlvbi1yZXRyeS1jb3VudGVyLXN0ZXAiKSBcCiAgICAgXAotICAgIG0odW5z
aWduZWQsIG1pbmltdW1PcHRpbWl6YXRpb25EZWxheSwgICAgICAgICAgICAgIDEpIFwKLSAgICBt
KHVuc2lnbmVkLCBtYXhpbXVtT3B0aW1pemF0aW9uRGVsYXksICAgICAgICAgICAgICA1KSBcCi0g
ICAgbShkb3VibGUsIGRlc2lyZWRQcm9maWxlTGl2ZW5lc3NSYXRlLCAgICAgICAgICAgICAgMC43
NSkgXAotICAgIG0oZG91YmxlLCBkZXNpcmVkUHJvZmlsZUZ1bGxuZXNzUmF0ZSwgICAgICAgICAg
ICAgIDAuMzUpIFwKKyAgICBtKHVuc2lnbmVkLCBtaW5pbXVtT3B0aW1pemF0aW9uRGVsYXksICAg
ICAgICAgICAgICAxLCBcCisgICAgICAibWluaW11bS1vcHRpbWl6YXRpb24tZGVsYXkiKSBcCisg
ICAgbSh1bnNpZ25lZCwgbWF4aW11bU9wdGltaXphdGlvbkRlbGF5LCAgICAgICAgICAgICAgNSwg
XAorICAgICAgIm1heGltdW0tb3B0aW1pemF0aW9uLWRlbGF5IikgXAorICAgIG0oZG91YmxlLCBk
ZXNpcmVkUHJvZmlsZUxpdmVuZXNzUmF0ZSwgICAgICAgICAgICAgIDAuNzUsIFwKKyAgICAgICJk
ZXNpcmVkLXByb2ZpbGUtbGl2ZW5lc3MtcmF0ZSIpIFwKKyAgICBtKGRvdWJsZSwgZGVzaXJlZFBy
b2ZpbGVGdWxsbmVzc1JhdGUsICAgICAgICAgICAgICAwLjM1LCBcCisgICAgICAiZGVzaXJlZC1w
cm9maWxlLWZ1bGxuZXNzLXJhdGUiKSBcCiAgICAgXAotICAgIG0odW5zaWduZWQsIG1pbmltdW1O
dW1iZXJPZlNjYW5zQmV0d2VlblJlYmFsYW5jZSwgIDEwMDAwKSBcCi0gICAgbSh1bnNpZ25lZCwg
Z2NNYXJrU3RhY2tTZWdtZW50U2l6ZSwgICAgICAgICAgICAgICAgMCkgXAotICAgIG0odW5zaWdu
ZWQsIG1pbmltdW1OdW1iZXJPZkNlbGxzVG9LZWVwLCAgICAgICAgICAgIDEwKSBcCi0gICAgbSh1
bnNpZ25lZCwgbWF4aW11bU51bWJlck9mU2hhcmVkU2VnbWVudHMsICAgICAgICAgMykgXAotICAg
IG0odW5zaWduZWQsIHNoYXJlZFN0YWNrV2FrZXVwVGhyZXNob2xkLCAgICAgICAgICAgIDEpIFwK
LSAgICBtKHVuc2lnbmVkLCBudW1iZXJPZkdDTWFya2VycywgICAgICAgICAgICAgICAgICAgICAw
KSBcCi0gICAgbSh1bnNpZ25lZCwgb3BhcXVlUm9vdE1lcmdlVGhyZXNob2xkLCAgICAgICAgICAg
ICAgMTAwMCkKKyAgICBtKHVuc2lnbmVkLCBtaW5pbXVtTnVtYmVyT2ZTY2Fuc0JldHdlZW5SZWJh
bGFuY2UsICAxMDAwMCwgXAorICAgICAgIm1pbmltdW0tbnVtYmVyLW9mLXNjYW5zLWJldHdlZW4t
cmViYWxhbmNlIikgXAorICAgIG0odW5zaWduZWQsIGdjTWFya1N0YWNrU2VnbWVudFNpemUsICAg
ICAgICAgICAgICAgIDAsIFwKKyAgICAgICJnYy1tYXJrLXN0YWNrLXNlZ21lbnQtc2l6ZSIpIFwK
KyAgICBtKHVuc2lnbmVkLCBtaW5pbXVtTnVtYmVyT2ZDZWxsc1RvS2VlcCwgICAgICAgICAgICAx
MCwgXAorICAgICAgIm1pbmltdW0tbnVtYmVyLW9mLWNlbGxzLXRvLWtlZXAiKSBcCisgICAgbSh1
bnNpZ25lZCwgbWF4aW11bU51bWJlck9mU2hhcmVkU2VnbWVudHMsICAgICAgICAgMywgXAorICAg
ICAgIm1heGltdW0tbnVtYmVyLW9mLXNoYXJlZC1zZWdtZW50cyIpIFwKKyAgICBtKHVuc2lnbmVk
LCBzaGFyZWRTdGFja1dha2V1cFRocmVzaG9sZCwgICAgICAgICAgICAxLCBcCisgICAgICAic2hh
cmVkLXN0YWNrLXdha2V1cC10aHJlc2hvbGQiKSBcCisgICAgbSh1bnNpZ25lZCwgbnVtYmVyT2ZH
Q01hcmtlcnMsICAgICAgICAgICAgICAgICAgICAgMCwgXAorICAgICAgIm51bWJlci1vZi1nYy1t
YXJrZXJzIikgXAorICAgIG0odW5zaWduZWQsIG9wYXF1ZVJvb3RNZXJnZVRocmVzaG9sZCwgICAg
ICAgICAgICAgIDEwMDAsIFwKKyAgICAgICJvcGFxdWUtcm9vdC1tZXJnZS10aHJlc2hvbGQiKQog
Ci0jZGVmaW5lIERFQ0xBUkUodHlwZSwgY25hbWUsIGRlZmF1bHRfdmFsKSBleHRlcm4gdHlwZSBj
bmFtZTsKKyNkZWZpbmUgREVDTEFSRSh0eXBlLCBjbmFtZSwgZGVmYXVsdF92YWwsIG9wdG5hbWUp
IGV4dGVybiB0eXBlIGNuYW1lOwogRk9SX0VBQ0hfSEVVUklTVElDKERFQ0xBUkUpCiAjdW5kZWYg
REVDTEFSRQogCitlbnVtIE9wdGlvblBhcnNlU3RhdHVzIHsKKyAgICBOb01hdGNoLAorICAgIENv
bnN1bWVkT25lQXJndW1lbnQsCisgICAgQ29uc3VtZWRUd29Bcmd1bWVudHMsCisgICAgTWlzc2lu
Z1ZhbHVlLAorICAgIEJhZFZhbHVlCit9OworICAgIAorLy8gU2V0IGEgSlNDIHJ1bi10aW1lIG9w
dGlvbiBmcm9tIGEgY29tbWFuZC1saW5lIGFyZ3VtZW50LiBCb3RoIGAtLWZvbyBiYXInIGFuZAor
Ly8gYC0tZm9vPWJhcicgZm9ybXMgYXJlIHN1cHBvcnRlZC4KKy8vCitPcHRpb25QYXJzZVN0YXR1
cyBwYXJzZUNvbW1hbmRMaW5lQXJnKGNvbnN0IGNoYXIgKmFyZywgY29uc3QgY2hhciAqbmV4dCk7
CiAKIHZvaWQgaW5pdGlhbGl6ZU9wdGlvbnMoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116616</attachid>
            <date>2011-11-25 07:24:10 -0800</date>
            <delta_ts>2011-11-29 09:51:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72960-20111125162408.patch</filename>
            <type>text/plain</type>
            <size>14754</size>
            <attacher name="Andy Wingo">wingo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
OWRiZTRjMGQ4NDgwM2YzMWEyYjY1MDk2ZWFjYzhhNTg3MDZiMWE0Li42MzU4YWM0ODY5N2ZlZDcw
ZDExZTJlYWZmNDAzZjcyN2ZkMGM1MjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyNiBAQAogMjAxMS0xMS0yMiAgQW5keSBXaW5nbyAgPHdpbmdvQGlnYWxpYS5jb20+CiAK
KyAgICAgICAgQWxsb3cgSlNDIGhldXJpc3RpY3MgdG8gYmUgc2V0IG9uIHRoZSBjb21tYW5kLWxp
bmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTYw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqc2Mu
Y3BwOgorICAgICAgICAocHJpbnREZWJ1Z1VzYWdlU3RhdGVtZW50KToKKyAgICAgICAgKHByaW50
VXNhZ2VTdGF0ZW1lbnQpOgorICAgICAgICAocGFyc2VBcmd1bWVudHMpOiBBZGQgLS1oZWxwLWRl
YnVnLCB3aGljaCBwcmludHMgb3V0IGhldXJpc3RpY3MKKyAgICAgICAgdGhhdCBjYW4gYmUgc2V0
IGF0IHJ1bnRpbWUuCisKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuY3BwOgorICAgICAgICAo
SlNDOjpPcHRpb25zOjpwYXJzZUFyZyk6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OnBhcnNlQ29t
bWFuZExpbmVBcmcpOgorICAgICAgICAoSlNDOjpPcHRpb25zOjppbml0aWFsaXplT3B0aW9ucyk6
CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmg6IEFkZCBhbiAib3B0aW9uLW5hbWUiIHRvIGFs
bCBvZiB0aGUgb3B0aW9ucywKKyAgICAgICAgY3VycmVudGx5IHVzZWQgd2hlbiBwYXJzaW5nIGNv
bW1hbmQtbGluZSBhcmd1bWVudHMuICBBZGQgYW4KKyAgICAgICAgaW50ZXJmYWNlIHRvIHNldCBv
cHRpb25zIGZyb20gY29tbWFuZC1saW5lIGFyZ3VtZW50cy4KKworMjAxMS0xMS0yMiAgQW5keSBX
aW5nbyAgPHdpbmdvQGlnYWxpYS5jb20+CisKICAgICAgICAgVXNlIG1vcmUgbWFjcm9sb2d5IGlu
IEpTQzo6T3B0aW9ucwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzI5MzgKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCAzNmQzZjdhMDVhNWZlMTM2OGIy
OWZkNWY4ZjFkNWY5Y2IyNTllOGQyLi41YWY1Zjg4MTAyMTEyOGU5OTQ1MDEwZjMxYmE4ZjVlMTMx
MTgyYTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtNTMyLDE2ICs1MzIsMzAgQEAgc3RhdGlj
IHZvaWQgcnVuSW50ZXJhY3RpdmUoR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAgICAgcHJp
bnRmKCJcbiIpOwogfQogCitzdGF0aWMgTk9fUkVUVVJOIHZvaWQgcHJpbnREZWJ1Z1VzYWdlU3Rh
dGVtZW50KEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSkKK3sKKyAgICBmcHJpbnRmKHN0ZGVyciwg
IkF2YWlsYWJsZSBkZWJ1Z2dpbmcgb3B0aW9uczpcbiIpOworI2RlZmluZSBQUklOVCh0eXBlLCBj
bmFtZSwgZGVmYXVsdF92YWwsIG9wdG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
IGZwcmludGYoc3RkZXJyLCAiICAtLSIgb3B0bmFtZSAiPSIgI3R5cGUgIlxuIik7ICAgICAgICAg
ICAgICAgICAgICAgXAorICAgIGZwcmludGYoc3RkZXJyLCAiICAgICAgICAgICAgICAgIERlZmF1
bHQ6ICIgI2RlZmF1bHRfdmFsICJcbiIpOworICAgIEZPUl9FQUNIX0hFVVJJU1RJQyhQUklOVCkK
KyN1bmRlZiBQUklOVAorCisgICAgY2xlYW51cEdsb2JhbERhdGEoZ2xvYmFsRGF0YSk7CisgICAg
ZXhpdChFWElUX1NVQ0NFU1MpOworfQorCiBzdGF0aWMgTk9fUkVUVVJOIHZvaWQgcHJpbnRVc2Fn
ZVN0YXRlbWVudChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIGJvb2wgaGVscCA9IGZhbHNlKQog
ewogICAgIGZwcmludGYoc3RkZXJyLCAiVXNhZ2U6IGpzYyBbb3B0aW9uc10gW2ZpbGVzXSBbLS0g
YXJndW1lbnRzXVxuIik7Ci0gICAgZnByaW50ZihzdGRlcnIsICIgIC1kICAgICAgICAgRHVtcHMg
Ynl0ZWNvZGUgKGRlYnVnIGJ1aWxkcyBvbmx5KVxuIik7Ci0gICAgZnByaW50ZihzdGRlcnIsICIg
IC1lICAgICAgICAgRXZhbHVhdGUgYXJndW1lbnQgYXMgc2NyaXB0IGNvZGVcbiIpOwotICAgIGZw
cmludGYoc3RkZXJyLCAiICAtZiAgICAgICAgIFNwZWNpZmllcyBhIHNvdXJjZSBmaWxlIChkZXBy
ZWNhdGVkKVxuIik7Ci0gICAgZnByaW50ZihzdGRlcnIsICIgIC1ofC0taGVscCAgUHJpbnRzIHRo
aXMgaGVscCBtZXNzYWdlXG4iKTsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLWkgICAgICAgICBF
bmFibGVzIGludGVyYWN0aXZlIG1vZGUgKGRlZmF1bHQgaWYgbm8gZmlsZXMgYXJlIHNwZWNpZmll
ZClcbiIpOworICAgIGZwcmludGYoc3RkZXJyLCAiICAtZCAgICAgICAgICAgIER1bXBzIGJ5dGVj
b2RlIChkZWJ1ZyBidWlsZHMgb25seSlcbiIpOworICAgIGZwcmludGYoc3RkZXJyLCAiICAtZSAg
ICAgICAgICAgIEV2YWx1YXRlIGFyZ3VtZW50IGFzIHNjcmlwdCBjb2RlXG4iKTsKKyAgICBmcHJp
bnRmKHN0ZGVyciwgIiAgLWYgICAgICAgICAgICBTcGVjaWZpZXMgYSBzb3VyY2UgZmlsZSAoZGVw
cmVjYXRlZClcbiIpOworICAgIGZwcmludGYoc3RkZXJyLCAiICAtaHwtLWhlbHAgICAgIFByaW50
cyB0aGlzIGhlbHAgbWVzc2FnZVxuIik7CisgICAgZnByaW50ZihzdGRlcnIsICIgIC0taGVscC1k
ZWJ1ZyAgU2hvdyBhZGRpdGlvbmFsIGRlYnVnZ2luZyBvcHRpb25zXG4iKTsKKyAgICBmcHJpbnRm
KHN0ZGVyciwgIiAgLWkgICAgICAgICAgICBFbmFibGVzIGludGVyYWN0aXZlIG1vZGUgKGRlZmF1
bHQgaWYgbm8gZmlsZXMgYXJlIHNwZWNpZmllZClcbiIpOwogI2lmIEhBVkUoU0lHTkFMX0gpCi0g
ICAgZnByaW50ZihzdGRlcnIsICIgIC1zICAgICAgICAgSW5zdGFsbHMgc2lnbmFsIGhhbmRsZXJz
IHRoYXQgZXhpdCBvbiBhIGNyYXNoIChVbml4IHBsYXRmb3JtcyBvbmx5KVxuIik7CisgICAgZnBy
aW50ZihzdGRlcnIsICIgIC1zICAgICAgICAgICAgSW5zdGFsbHMgc2lnbmFsIGhhbmRsZXJzIHRo
YXQgZXhpdCBvbiBhIGNyYXNoIChVbml4IHBsYXRmb3JtcyBvbmx5KVxuIik7CiAjZW5kaWYKIAog
ICAgIGNsZWFudXBHbG9iYWxEYXRhKGdsb2JhbERhdGEpOwpAQCAtNTUzLDYgKzU2NywyNCBAQCBz
dGF0aWMgdm9pZCBwYXJzZUFyZ3VtZW50cyhpbnQgYXJnYywgY2hhcioqIGFyZ3YsIENvbW1hbmRM
aW5lJiBvcHRpb25zLCBKU0dsb2JhbAogICAgIGludCBpID0gMTsKICAgICBmb3IgKDsgaSA8IGFy
Z2M7ICsraSkgewogICAgICAgICBjb25zdCBjaGFyKiBhcmcgPSBhcmd2W2ldOworICAgICAgICBj
b25zdCBjaGFyKiBuZXh0ID0gKGkgPCBhcmdjKSA/IGFyZ3ZbaSsxXSA6IDA7CisKKyAgICAgICAg
c3dpdGNoIChPcHRpb25zOjpwYXJzZUNvbW1hbmRMaW5lQXJnKGFyZywgbmV4dCkpIHsKKyAgICAg
ICAgY2FzZSBPcHRpb25zOjpOb01hdGNoOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgT3B0aW9uczo6Q29uc3VtZWRPbmVBcmd1bWVudDoKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICBjYXNlIE9wdGlvbnM6OkNvbnN1bWVkVHdvQXJndW1lbnRzOgorICAgICAgICAgICAg
aSsrOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGNhc2UgT3B0aW9uczo6TWlzc2lu
Z1ZhbHVlOgorICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogTWlzc2luZyB2YWx1
ZSBmb3Igb3B0aW9uICVzLlxuIiwgYXJnKTsKKyAgICAgICAgICAgIGV4aXQoRVhJVF9GQUlMVVJF
KTsKKyAgICAgICAgY2FzZSBPcHRpb25zOjpJbnZhbGlkVmFsdWU6CisgICAgICAgICAgICBmcHJp
bnRmKHN0ZGVyciwgIkVSUk9SOiBCYWQgdmFsdWUgZm9yIG9wdGlvbiAlcy5cbiIsIGFyZyk7Cisg
ICAgICAgICAgICBleGl0KEVYSVRfRkFJTFVSRSk7CisgICAgICAgIH0KKwogICAgICAgICBpZiAo
IXN0cmNtcChhcmcsICItZiIpKSB7CiAgICAgICAgICAgICBpZiAoKytpID09IGFyZ2MpCiAgICAg
ICAgICAgICAgICAgcHJpbnRVc2FnZVN0YXRlbWVudChnbG9iYWxEYXRhKTsKQEAgLTU4OCw2ICs2
MjAsOCBAQCBzdGF0aWMgdm9pZCBwYXJzZUFyZ3VtZW50cyhpbnQgYXJnYywgY2hhcioqIGFyZ3Ys
IENvbW1hbmRMaW5lJiBvcHRpb25zLCBKU0dsb2JhbAogICAgICAgICB9CiAgICAgICAgIGlmICgh
c3RyY21wKGFyZywgIi1oIikgfHwgIXN0cmNtcChhcmcsICItLWhlbHAiKSkKICAgICAgICAgICAg
IHByaW50VXNhZ2VTdGF0ZW1lbnQoZ2xvYmFsRGF0YSwgdHJ1ZSk7CisgICAgICAgIGlmICghc3Ry
Y21wKGFyZywgIi0taGVscC1kZWJ1ZyIpKQorICAgICAgICAgICAgcHJpbnREZWJ1Z1VzYWdlU3Rh
dGVtZW50KGdsb2JhbERhdGEpOwogICAgICAgICBvcHRpb25zLnNjcmlwdHMuYXBwZW5kKFNjcmlw
dCh0cnVlLCBhcmd2W2ldKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PcHRpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnMuY3BwCmluZGV4IDVmNmM5YjNjZDk1MTgwNjZiNWNhNWNiOTg5Njc4NWZkNjQ2YzA4
NjIuLjYyYzA3ODU0ZjI0M2ViZjNiMzJlNjljYTRlM2ViYzBkODRiNzMwZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5j
bHVkZSAiT3B0aW9ucy5oIgogCiAjaW5jbHVkZSA8bGltaXRzPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9QYWdlQmxvY2suaD4KIAogI2lmIE9TKERBUldJ
TikgJiYgRU5BQkxFKFBBUkFMTEVMX0dDKQpAQCAtNDQsNyArNDUsNyBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsgbmFtZXNwYWNlIE9wdGlvbnMgewogCi0jZGVmaW5lIERFRklORSh0eXBlLCBjbmFtZSwg
ZGVmYXVsdF92YWwpIHR5cGUgY25hbWU7CisjZGVmaW5lIERFRklORSh0eXBlLCBjbmFtZSwgZGVm
YXVsdF92YWwsIG9wdG5hbWUpIHR5cGUgY25hbWU7CiBGT1JfRUFDSF9IRVVSSVNUSUMoREVGSU5F
KQogI3VuZGVmIERFRklORQogCkBAIC04NSw5ICs4Niw3NiBAQCB2b2lkIHNldEhldXJpc3RpYyhU
JiB2YXJpYWJsZSwgY29uc3QgY2hhciogbmFtZSwgVSB2YWx1ZSkKICNkZWZpbmUgU0VUKHZhcmlh
YmxlLCB2YWx1ZSkgdmFyaWFibGUgPSB2YWx1ZQogI2VuZGlmCiAKK3N0YXRpYyBib29sIHBhcnNl
QXJnKHVuc2lnbmVkJiB2YXJpYWJsZSwgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBib29sIG9rID0g
dHJ1ZTsKKyAgICB1bnNpZ25lZCB0ID0gdmFsdWUudG9VSW50KCZvayk7CisgICAgaWYgKG9rKQor
ICAgICAgICB2YXJpYWJsZSA9IHQ7CisgICAgcmV0dXJuIG9rOworfQorCitzdGF0aWMgaW50IHBh
cnNlQXJnKGludDMyX3QmIHZhcmlhYmxlLCBTdHJpbmcmIHZhbHVlKQoreworICAgIGJvb2wgb2sg
PSB0cnVlOworICAgIGludDMyX3QgdCA9IHZhbHVlLnRvSW50KCZvayk7CisgICAgaWYgKG9rKQor
ICAgICAgICB2YXJpYWJsZSA9IHQ7CisgICAgcmV0dXJuIG9rOworfQorCitzdGF0aWMgaW50IHBh
cnNlQXJnKGRvdWJsZSYgdmFyaWFibGUsIFN0cmluZyYgdmFsdWUpCit7CisgICAgYm9vbCBvayA9
IHRydWU7CisgICAgZG91YmxlIHQgPSB2YWx1ZS50b0RvdWJsZSgmb2spOworICAgIGlmIChvaykK
KyAgICAgICAgdmFyaWFibGUgPSB0OworICAgIHJldHVybiBvazsKK30KKworc3RhdGljIGNvbnN0
IGNoYXIgKmFyZ1ByZWZpeCA9ICItLSI7CisKK09wdGlvblBhcnNlU3RhdHVzIHBhcnNlQ29tbWFu
ZExpbmVBcmcoY29uc3QgY2hhciAqY19hcmcsIGNvbnN0IGNoYXIgKmNfbmV4dCkKK3sKKyAgICBT
dHJpbmcgYXJnKGNfYXJnKTsKKworICAgIGlmICghYXJnLnN0YXJ0c1dpdGgoYXJnUHJlZml4KSkK
KyAgICAgICAgcmV0dXJuIE5vTWF0Y2g7CisKKyAgICBTdHJpbmcgb3B0aW9uID0gYXJnLnN1YnN0
cmluZyhzdHJsZW4oYXJnUHJlZml4KSwgYXJnLmxlbmd0aCgpKTsKKyAgICBTdHJpbmcgdmFsdWU7
CisgICAgT3B0aW9uUGFyc2VTdGF0dXMgc3VjY2VzcywgZmFpbHVyZTsKKworICAgIHNpemVfdCBl
cXVhbHNQb3NpdGlvbiA9IG9wdGlvbi5maW5kKCc9Jyk7CisgICAgaWYgKGVxdWFsc1Bvc2l0aW9u
IDwgb3B0aW9uLmxlbmd0aCgpKSB7CisgICAgICAgIHN1Y2Nlc3MgPSBDb25zdW1lZE9uZUFyZ3Vt
ZW50OworICAgICAgICBmYWlsdXJlID0gSW52YWxpZFZhbHVlOworICAgICAgICB2YWx1ZSA9IG9w
dGlvbi5zdWJzdHJpbmcoZXF1YWxzUG9zaXRpb24gKyAxLCBvcHRpb24ubGVuZ3RoKCkpOworICAg
ICAgICBvcHRpb24gPSBvcHRpb24uc3Vic3RyaW5nKDAsIGVxdWFsc1Bvc2l0aW9uKTsKKyAgICB9
IGVsc2UgaWYgKGNfbmV4dCkgeworICAgICAgICBzdWNjZXNzID0gQ29uc3VtZWRUd29Bcmd1bWVu
dHM7CisgICAgICAgIGZhaWx1cmUgPSBJbnZhbGlkVmFsdWU7CisgICAgICAgIHZhbHVlID0gY19u
ZXh0OworICAgIH0gZWxzZSB7CisgICAgICAgIHN1Y2Nlc3MgPSBDb25zdW1lZE9uZUFyZ3VtZW50
OworICAgICAgICBmYWlsdXJlID0gTWlzc2luZ1ZhbHVlOworICAgIH0KKworI2RlZmluZSBQQVJT
RSh0eXBlLCBjbmFtZSwgZGVmYXVsdF92YWwsIG9wdG5hbWUpIFwKKyAgICBpZiAob3B0aW9uID09
IG9wdG5hbWUpIHsgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlmIChwYXJzZUFyZyhj
bmFtZSwgdmFsdWUpKSAgICAgICAgICAgICAgXAorICAgICAgICAgICAgcmV0dXJuIHN1Y2Nlc3M7
ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIGZhaWx1cmU7ICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCisgICAgfQorICAgIEZPUl9FQUNIX0hFVVJJU1RJQyhQQVJTRSk7
CisjdW5kZWYgUEFSU0UKKworICAgIHJldHVybiBOb01hdGNoOworfQorCiB2b2lkIGluaXRpYWxp
emVPcHRpb25zKCkKIHsKLSNkZWZpbmUgSU5JVCh0eXBlLCBjbmFtZSwgZGVmYXVsdF92YWwpIFNF
VChjbmFtZSwgZGVmYXVsdF92YWwpOworI2RlZmluZSBJTklUKHR5cGUsIGNuYW1lLCBkZWZhdWx0
X3ZhbCwgb3B0bmFtZSkgU0VUKGNuYW1lLCBkZWZhdWx0X3ZhbCk7CiAgICAgRk9SX0VBQ0hfSEVV
UklTVElDKElOSVQpCiAjdW5kZWYgSU5JVAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PcHRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
cHRpb25zLmgKaW5kZXggZjMwMDFjYWFlMDIxYzJmN2QzODM1OTNjMDk0MmMyMjc4ZGMwZTQ5My4u
ZWVhNzI5NzNmODNiYzhmMWUxYmVhN2RhNzU1ZDk2YWRmNGE3M2Q1OSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaApAQCAtNDEsNTMgKzQxLDk3IEBAIG5hbWVzcGFjZSBK
U0MgeyBuYW1lc3BhY2UgT3B0aW9ucyB7CiAvLyB0YWtlIHNsb3cgY2FzZSwgZm9yIGV4YW1wbGUg
Zm9yIGxpbmtpbmcgb3IgY2FjaGluZy4KIAogI2RlZmluZSBGT1JfRUFDSF9IRVVSSVNUSUMobSkg
XAotICAgIG0odW5zaWduZWQsIG1heGltdW1FdmFsT3B0aW1pemF0aW9uQ2FuZGlkYXRlSW5zdHJ1
Y3Rpb25Db3VudCwgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKSBcCi0gICAg
bSh1bnNpZ25lZCwgbWF4aW11bVByb2dyYW1PcHRpbWl6YXRpb25DYW5kaWRhdGVJbnN0cnVjdGlv
bkNvdW50LCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkpIFwKLSAgICBtKHVu
c2lnbmVkLCBtYXhpbXVtRnVuY3Rpb25Gb3JDYWxsT3B0aW1pemF0aW9uQ2FuZGlkYXRlSW5zdHJ1
Y3Rpb25Db3VudCwgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpKSBcCi0gICAg
bSh1bnNpZ25lZCwgbWF4aW11bUZ1bmN0aW9uRm9yQ29uc3RydWN0T3B0aW1pemF0aW9uQ2FuZGlk
YXRlSW5zdHJ1Y3Rpb25Db3VudCwgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgp
KSBcCisgICAgbSh1bnNpZ25lZCwgbWF4aW11bUV2YWxPcHRpbWl6YXRpb25DYW5kaWRhdGVJbnN0
cnVjdGlvbkNvdW50LCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCksIFwKKyAg
ICAgICJtYXhpbXVtLWV2YWwtb3B0aW1pemF0aW9uLWNhbmRpZGF0ZS1pbnN0cnVjdGlvbi1jb3Vu
dCIpIFwKKyAgICBtKHVuc2lnbmVkLCBtYXhpbXVtUHJvZ3JhbU9wdGltaXphdGlvbkNhbmRpZGF0
ZUluc3RydWN0aW9uQ291bnQsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSwg
XAorICAgICAgIm1heGltdW0tcHJvZ3JhbS1vcHRpbWl6YXRpb24tY2FuZGlkYXRlLWluc3RydWN0
aW9uLWNvdW50IikgXAorICAgIG0odW5zaWduZWQsIG1heGltdW1GdW5jdGlvbkZvckNhbGxPcHRp
bWl6YXRpb25DYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50LCBzdGQ6Om51bWVyaWNfbGltaXRzPHVu
c2lnbmVkPjo6bWF4KCksIFwKKyAgICAgICJtYXhpbXVtLWZ1bmN0aW9uLWZvci1jYWxsLW9wdGlt
aXphdGlvbi1jYW5kaWRhdGUtaW5zdHJ1Y3Rpb24tY291bnQiKSBcCisgICAgbSh1bnNpZ25lZCwg
bWF4aW11bUZ1bmN0aW9uRm9yQ29uc3RydWN0T3B0aW1pemF0aW9uQ2FuZGlkYXRlSW5zdHJ1Y3Rp
b25Db3VudCwgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpLCBcCisgICAgICAi
bWF4aW11bS1mdW5jdGlvbi1mb3ItY29uc3RydWN0LW9wdGltaXphdGlvbi1jYW5kaWRhdGUtaW5z
dHJ1Y3Rpb24tY291bnQiKSBcCiAgICAgXAotICAgIG0odW5zaWduZWQsIG1heGltdW1GdW5jdGlv
bkZvckNhbGxJbmxpbmVDYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50LCAxNTApIFwKLSAgICBtKHVu
c2lnbmVkLCBtYXhpbXVtRnVuY3Rpb25Gb3JDb25zdHJ1Y3RJbmxpbmVDYW5kaWRhdGVJbnN0cnVj
dGlvbkNvdW50LCA4MCkgXAorICAgIG0odW5zaWduZWQsIG1heGltdW1GdW5jdGlvbkZvckNhbGxJ
bmxpbmVDYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50LCAxNTAsIFwKKyAgICAgICJtYXhpbXVtLWZ1
bmN0aW9uLWZvci1jYWxsLWlubGluZS1jYW5kaWRhdGUtaW5zdHJ1Y3Rpb24tY291bnQiKSBcCisg
ICAgbSh1bnNpZ25lZCwgbWF4aW11bUZ1bmN0aW9uRm9yQ29uc3RydWN0SW5saW5lQ2FuZGlkYXRl
SW5zdHJ1Y3Rpb25Db3VudCwgODAsIFwKKyAgICAgICJtYXhpbXVtLWZ1bmN0aW9uLWZvci1jb25z
dHJ1Y3QtaW5saW5lLWNhbmRpZGF0ZS1pbnN0cnVjdGlvbi1jb3VudCIpIFwKICAgICBcCi0gICAg
bSh1bnNpZ25lZCwgbWF4aW11bUlubGluaW5nRGVwdGgsIDUpICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgXAorICAgIG0odW5zaWduZWQsIG1heGltdW1JbmxpbmluZ0RlcHRoLCA1LCBcCisg
ICAgICAibWF4aW11bS1pbmxpbmluZy1kZXB0aCIpIFwKICAgICBcCi0gICAgbShpbnQzMl90LCBl
eGVjdXRpb25Db3VudGVyVmFsdWVGb3JPcHRpbWl6ZUFmdGVyV2FybVVwLCAgICAgIC0xMDAwKSBc
Ci0gICAgbShpbnQzMl90LCBleGVjdXRpb25Db3VudGVyVmFsdWVGb3JPcHRpbWl6ZUFmdGVyTG9u
Z1dhcm1VcCwgIC01MDAwKSBcCi0gICAgbShpbnQzMl90LCBleGVjdXRpb25Db3VudGVyVmFsdWVG
b3JEb250T3B0aW1pemVBbnl0aW1lU29vbiwgIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46
Om1pbigpKSBcCi0gICAgbShpbnQzMl90LCBleGVjdXRpb25Db3VudGVyVmFsdWVGb3JPcHRpbWl6
ZVNvb24sICAgICAgICAgICAgIC0xMDAwKSBcCi0gICAgbShpbnQzMl90LCBleGVjdXRpb25Db3Vu
dGVyVmFsdWVGb3JPcHRpbWl6ZU5leHRJbnZvY2F0aW9uLCAgIDApIFwKKyAgICBtKGludDMyX3Qs
IGV4ZWN1dGlvbkNvdW50ZXJWYWx1ZUZvck9wdGltaXplQWZ0ZXJXYXJtVXAsICAgICAgLTEwMDAs
IFwKKyAgICAgICJleGVjdXRpb24tY291bnRlci12YWx1ZS1mb3Itb3B0aW1pemUtYWZ0ZXItd2Fy
bS11cCIpIFwKKyAgICBtKGludDMyX3QsIGV4ZWN1dGlvbkNvdW50ZXJWYWx1ZUZvck9wdGltaXpl
QWZ0ZXJMb25nV2FybVVwLCAgLTUwMDAsIFwKKyAgICAgICJleGVjdXRpb24tY291bnRlci12YWx1
ZS1mb3Itb3B0aW1pemUtYWZ0ZXItbG9uZy13YXJtLXVwIikgXAorICAgIG0oaW50MzJfdCwgZXhl
Y3V0aW9uQ291bnRlclZhbHVlRm9yRG9udE9wdGltaXplQW55dGltZVNvb24sICBzdGQ6Om51bWVy
aWNfbGltaXRzPGludDMyX3Q+OjptaW4oKSwgXAorICAgICAgImV4ZWN1dGlvbi1jb3VudGVyLXZh
bHVlLWZvci1kb250LW9wdGltaXplLWFueXRpbWUtc29vbiIpIFwKKyAgICBtKGludDMyX3QsIGV4
ZWN1dGlvbkNvdW50ZXJWYWx1ZUZvck9wdGltaXplU29vbiwgICAgICAgICAgICAgLTEwMDAsIFwK
KyAgICAgICJleGVjdXRpb24tY291bnRlci12YWx1ZS1mb3Itb3B0aW1pemUtc29vbiIpIFwKKyAg
ICBtKGludDMyX3QsIGV4ZWN1dGlvbkNvdW50ZXJWYWx1ZUZvck9wdGltaXplTmV4dEludm9jYXRp
b24sICAgMCwgXAorICAgICAgImV4ZWN1dGlvbi1jb3VudGVyLXZhbHVlLWZvci1vcHRpbWl6ZS1u
ZXh0LWludm9jYXRpb24iKSBcCiAgICAgXAotICAgIG0oaW50MzJfdCwgZXhlY3V0aW9uQ291bnRl
ckluY3JlbWVudEZvckxvb3AsICAgICAgIDEpIFwKLSAgICBtKGludDMyX3QsIGV4ZWN1dGlvbkNv
dW50ZXJJbmNyZW1lbnRGb3JSZXR1cm4sICAgICAxNSkgXAorICAgIG0oaW50MzJfdCwgZXhlY3V0
aW9uQ291bnRlckluY3JlbWVudEZvckxvb3AsICAgICAgIDEsIFwKKyAgICAgICJleGVjdXRpb24t
Y291bnRlci1pbmNyZW1lbnQtZm9yLWxvb3AiKSBcCisgICAgbShpbnQzMl90LCBleGVjdXRpb25D
b3VudGVySW5jcmVtZW50Rm9yUmV0dXJuLCAgICAgMTUsIFwKKyAgICAgICJleGVjdXRpb24tY291
bnRlci1pbmNyZW1lbnQtZm9yLXJldHVybiIpIFwKICAgICBcCi0gICAgbSh1bnNpZ25lZCwgZGVz
aXJlZFNwZWN1bGF0aXZlU3VjY2Vzc0ZhaWxSYXRpbywgICAgNikgXAorICAgIG0odW5zaWduZWQs
IGRlc2lyZWRTcGVjdWxhdGl2ZVN1Y2Nlc3NGYWlsUmF0aW8sICAgIDYsIFwKKyAgICAgICJkZXNp
cmVkLXNwZWN1bGF0aXZlLXN1Y2Nlc3MtZmFpbC1yYXRpbyIpIFwKICAgICBcCi0gICAgbSh1bnNp
Z25lZCwgbGlrZWx5VG9UYWtlU2xvd0Nhc2VUaHJlc2hvbGQsICAgICAgICAgMTAwKSBcCi0gICAg
bSh1bnNpZ25lZCwgY291bGRUYWtlU2xvd0Nhc2VUaHJlc2hvbGQsICAgICAgICAgICAgMTApIFwK
KyAgICBtKHVuc2lnbmVkLCBsaWtlbHlUb1Rha2VTbG93Q2FzZVRocmVzaG9sZCwgICAgICAgICAx
MDAsIFwKKyAgICAgICJsaWtlbHktdG8tdGFrZS1zbG93LWNhc2UtdGhyZXNob2xkIikgXAorICAg
IG0odW5zaWduZWQsIGNvdWxkVGFrZVNsb3dDYXNlVGhyZXNob2xkLCAgICAgICAgICAgIDEwLCBc
CisgICAgICAiY291bGQtdGFrZS1zbG93LWNhc2UtdGhyZXNob2xkIikgXAogICAgIFwKLSAgICBt
KHVuc2lnbmVkLCBsYXJnZUZhaWxDb3VudFRocmVzaG9sZEJhc2UsICAgICAgICAgICAyMCkgXAot
ICAgIG0odW5zaWduZWQsIGxhcmdlRmFpbENvdW50VGhyZXNob2xkQmFzZUZvckxvb3AsICAgIDEp
IFwKKyAgICBtKHVuc2lnbmVkLCBsYXJnZUZhaWxDb3VudFRocmVzaG9sZEJhc2UsICAgICAgICAg
ICAyMCwgXAorICAgICAgImxhcmdlLWZhaWwtY291bnQtdGhyZXNob2xkLWJhc2UiKSBcCisgICAg
bSh1bnNpZ25lZCwgbGFyZ2VGYWlsQ291bnRUaHJlc2hvbGRCYXNlRm9yTG9vcCwgICAgMSwgXAor
ICAgICAgImxhcmdlLWZhaWwtY291bnQtdGhyZXNob2xkLWJhc2UtZm9yLWxvb3AiKSBcCiAgICAg
XAotICAgIG0odW5zaWduZWQsIHJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4LCAgICAgICAg
IDApIFwKLSAgICBtKHVuc2lnbmVkLCByZW9wdGltaXphdGlvblJldHJ5Q291bnRlclN0ZXAsICAg
ICAgICAxKSBcCisgICAgbSh1bnNpZ25lZCwgcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJNYXgs
ICAgICAgICAgMCwgXAorICAgICAgInJlb3B0aW1pemF0aW9uLXJldHJ5LWNvdW50ZXItbWF4Iikg
XAorICAgIG0odW5zaWduZWQsIHJlb3B0aW1pemF0aW9uUmV0cnlDb3VudGVyU3RlcCwgICAgICAg
IDEsIFwKKyAgICAgICJyZW9wdGltaXphdGlvbi1yZXRyeS1jb3VudGVyLXN0ZXAiKSBcCiAgICAg
XAotICAgIG0odW5zaWduZWQsIG1pbmltdW1PcHRpbWl6YXRpb25EZWxheSwgICAgICAgICAgICAg
IDEpIFwKLSAgICBtKHVuc2lnbmVkLCBtYXhpbXVtT3B0aW1pemF0aW9uRGVsYXksICAgICAgICAg
ICAgICA1KSBcCi0gICAgbShkb3VibGUsIGRlc2lyZWRQcm9maWxlTGl2ZW5lc3NSYXRlLCAgICAg
ICAgICAgICAgMC43NSkgXAotICAgIG0oZG91YmxlLCBkZXNpcmVkUHJvZmlsZUZ1bGxuZXNzUmF0
ZSwgICAgICAgICAgICAgIDAuMzUpIFwKKyAgICBtKHVuc2lnbmVkLCBtaW5pbXVtT3B0aW1pemF0
aW9uRGVsYXksICAgICAgICAgICAgICAxLCBcCisgICAgICAibWluaW11bS1vcHRpbWl6YXRpb24t
ZGVsYXkiKSBcCisgICAgbSh1bnNpZ25lZCwgbWF4aW11bU9wdGltaXphdGlvbkRlbGF5LCAgICAg
ICAgICAgICAgNSwgXAorICAgICAgIm1heGltdW0tb3B0aW1pemF0aW9uLWRlbGF5IikgXAorICAg
IG0oZG91YmxlLCBkZXNpcmVkUHJvZmlsZUxpdmVuZXNzUmF0ZSwgICAgICAgICAgICAgIDAuNzUs
IFwKKyAgICAgICJkZXNpcmVkLXByb2ZpbGUtbGl2ZW5lc3MtcmF0ZSIpIFwKKyAgICBtKGRvdWJs
ZSwgZGVzaXJlZFByb2ZpbGVGdWxsbmVzc1JhdGUsICAgICAgICAgICAgICAwLjM1LCBcCisgICAg
ICAiZGVzaXJlZC1wcm9maWxlLWZ1bGxuZXNzLXJhdGUiKSBcCiAgICAgXAotICAgIG0odW5zaWdu
ZWQsIG1pbmltdW1OdW1iZXJPZlNjYW5zQmV0d2VlblJlYmFsYW5jZSwgIDEwMDAwKSBcCi0gICAg
bSh1bnNpZ25lZCwgZ2NNYXJrU3RhY2tTZWdtZW50U2l6ZSwgICAgICAgICAgICAgICAgMCkgXAot
ICAgIG0odW5zaWduZWQsIG1pbmltdW1OdW1iZXJPZkNlbGxzVG9LZWVwLCAgICAgICAgICAgIDEw
KSBcCi0gICAgbSh1bnNpZ25lZCwgbWF4aW11bU51bWJlck9mU2hhcmVkU2VnbWVudHMsICAgICAg
ICAgMykgXAotICAgIG0odW5zaWduZWQsIHNoYXJlZFN0YWNrV2FrZXVwVGhyZXNob2xkLCAgICAg
ICAgICAgIDEpIFwKLSAgICBtKHVuc2lnbmVkLCBudW1iZXJPZkdDTWFya2VycywgICAgICAgICAg
ICAgICAgICAgICAwKSBcCi0gICAgbSh1bnNpZ25lZCwgb3BhcXVlUm9vdE1lcmdlVGhyZXNob2xk
LCAgICAgICAgICAgICAgMTAwMCkKKyAgICBtKHVuc2lnbmVkLCBtaW5pbXVtTnVtYmVyT2ZTY2Fu
c0JldHdlZW5SZWJhbGFuY2UsICAxMDAwMCwgXAorICAgICAgIm1pbmltdW0tbnVtYmVyLW9mLXNj
YW5zLWJldHdlZW4tcmViYWxhbmNlIikgXAorICAgIG0odW5zaWduZWQsIGdjTWFya1N0YWNrU2Vn
bWVudFNpemUsICAgICAgICAgICAgICAgIDAsIFwKKyAgICAgICJnYy1tYXJrLXN0YWNrLXNlZ21l
bnQtc2l6ZSIpIFwKKyAgICBtKHVuc2lnbmVkLCBtaW5pbXVtTnVtYmVyT2ZDZWxsc1RvS2VlcCwg
ICAgICAgICAgICAxMCwgXAorICAgICAgIm1pbmltdW0tbnVtYmVyLW9mLWNlbGxzLXRvLWtlZXAi
KSBcCisgICAgbSh1bnNpZ25lZCwgbWF4aW11bU51bWJlck9mU2hhcmVkU2VnbWVudHMsICAgICAg
ICAgMywgXAorICAgICAgIm1heGltdW0tbnVtYmVyLW9mLXNoYXJlZC1zZWdtZW50cyIpIFwKKyAg
ICBtKHVuc2lnbmVkLCBzaGFyZWRTdGFja1dha2V1cFRocmVzaG9sZCwgICAgICAgICAgICAxLCBc
CisgICAgICAic2hhcmVkLXN0YWNrLXdha2V1cC10aHJlc2hvbGQiKSBcCisgICAgbSh1bnNpZ25l
ZCwgbnVtYmVyT2ZHQ01hcmtlcnMsICAgICAgICAgICAgICAgICAgICAgMCwgXAorICAgICAgIm51
bWJlci1vZi1nYy1tYXJrZXJzIikgXAorICAgIG0odW5zaWduZWQsIG9wYXF1ZVJvb3RNZXJnZVRo
cmVzaG9sZCwgICAgICAgICAgICAgIDEwMDAsIFwKKyAgICAgICJvcGFxdWUtcm9vdC1tZXJnZS10
aHJlc2hvbGQiKQogCi0jZGVmaW5lIERFQ0xBUkUodHlwZSwgY25hbWUsIGRlZmF1bHRfdmFsKSBl
eHRlcm4gdHlwZSBjbmFtZTsKKyNkZWZpbmUgREVDTEFSRSh0eXBlLCBjbmFtZSwgZGVmYXVsdF92
YWwsIG9wdG5hbWUpIGV4dGVybiB0eXBlIGNuYW1lOwogRk9SX0VBQ0hfSEVVUklTVElDKERFQ0xB
UkUpCiAjdW5kZWYgREVDTEFSRQogCitlbnVtIE9wdGlvblBhcnNlU3RhdHVzIHsKKyAgICBOb01h
dGNoLAorICAgIENvbnN1bWVkT25lQXJndW1lbnQsCisgICAgQ29uc3VtZWRUd29Bcmd1bWVudHMs
CisgICAgTWlzc2luZ1ZhbHVlLAorICAgIEludmFsaWRWYWx1ZQorfTsKKyAgICAKKy8vIFNldCBh
IEpTQyBydW4tdGltZSBvcHRpb24gZnJvbSBhIGNvbW1hbmQtbGluZSBhcmd1bWVudC4gQm90aCBg
LS1mb28gYmFyJyBhbmQKKy8vIGAtLWZvbz1iYXInIGZvcm1zIGFyZSBzdXBwb3J0ZWQuCisvLwor
T3B0aW9uUGFyc2VTdGF0dXMgcGFyc2VDb21tYW5kTGluZUFyZyhjb25zdCBjaGFyICphcmcsIGNv
bnN0IGNoYXIgKm5leHQpOwogCiB2b2lkIGluaXRpYWxpemVPcHRpb25zKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116988</attachid>
            <date>2011-11-29 09:51:26 -0800</date>
            <delta_ts>2011-12-14 05:13:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72960-20111129185124.patch</filename>
            <type>text/plain</type>
            <size>16613</size>
            <attacher name="Andy Wingo">wingo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAy
OGE1ODQzMTNlNzVjNzQ4YWQyMjdjMGQ1MTNkYmRhZmQwOGVjYjY2Li40YTY4YTVhODRjZTgyNjZl
ZDhiOGJkODc5YzUzMGRlMTc1Y2E2NTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwzMSBAQAogMjAxMS0xMS0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQGlnYWxpYS5jb20+CiAK
KyAgICAgICAgQWxsb3cgSlNDIGhldXJpc3RpY3MgdG8gYmUgc2V0IG9uIHRoZSBjb21tYW5kLWxp
bmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTYw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqc2Mu
Y3BwOgorICAgICAgICAocHJpbnREZWJ1Z1VzYWdlU3RhdGVtZW50KToKKyAgICAgICAgKHByaW50
VXNhZ2VTdGF0ZW1lbnQpOgorICAgICAgICAocGFyc2VBcmd1bWVudHMpOiBBZGQgLS1oZWxwLWRl
YnVnLCB3aGljaCBwcmludHMgb3V0IGhldXJpc3RpY3MKKyAgICAgICAgdGhhdCBjYW4gYmUgc2V0
IGF0IHJ1bnRpbWUuCisKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuY3BwOgorICAgICAgICAo
SlNDOjpPcHRpb25zOjpwYXJzZSk6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OnBhcnNlRmxhZyk6
CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OnBhcnNlQ29tbWFuZExpbmVBcmcpOgorICAgICAgICAo
SlNDOjpPcHRpb25zOjppbml0aWFsaXplT3B0aW9ucyk6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6
OnNldEZyb21FbnZpcm9ubWVudCk6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OnNldE9wdGlvbnNG
cm9tRW52aXJvbm1lbnQpOgorICAgICAgICAoSlNDOjpPcHRpb25zOjppbml0aWFsaXplT3B0aW9u
cyk6IFJlZmFjdG9yIHRoZSBwYXJzZXIgYSBiaXQgdG8KKyAgICAgICAgc2hhcmUgbWVjaGFuaXNt
IGFuZCB1c2UgV1RGU3RyaW5nLgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOiBBZGQgYW4g
Im9wdGlvbi1uYW1lIiB0byBhbGwgb2YgdGhlIG9wdGlvbnMsCisgICAgICAgIGN1cnJlbnRseSB1
c2VkIHdoZW4gcGFyc2luZyBjb21tYW5kLWxpbmUgYXJndW1lbnRzLiAgQWRkIGFuCisgICAgICAg
IGludGVyZmFjZSB0byBzZXQgb3B0aW9ucyBmcm9tIGNvbW1hbmQtbGluZSBhcmd1bWVudHMuCisK
KzIwMTEtMTEtMjkgIEFuZHkgV2luZ28gIDx3aW5nb0BpZ2FsaWEuY29tPgorCiAgICAgICAgIFVz
ZSBtb3JlIG1hY3JvbG9neSBpbiBKU0M6Ok9wdGlvbnMKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTM4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXgg
MzZkM2Y3YTA1YTVmZTEzNjhiMjlmZDVmOGYxZDVmOWNiMjU5ZThkMi4uM2VhNDgyNzM5OTZmZjE4
NTBmODdiZDI3ZWYxZjU0NmMyY2Q0MDY4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTUzMiwx
NiArNTMyLDMwIEBAIHN0YXRpYyB2b2lkIHJ1bkludGVyYWN0aXZlKEdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0KQogICAgIHByaW50ZigiXG4iKTsKIH0KIAorc3RhdGljIE5PX1JFVFVSTiB2b2lk
IHByaW50RGVidWdVc2FnZVN0YXRlbWVudChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCit7Cisg
ICAgZnByaW50ZihzdGRlcnIsICJBdmFpbGFibGUgZGVidWdnaW5nIG9wdGlvbnM6XG4iKTsKKyNk
ZWZpbmUgUFJJTlQodHlwZSwgY25hbWUsIGRlZmF1bHRfdmFsLCBvcHRuYW1lKSAgICAgICAgICAg
ICAgICAgICAgICAgIFwKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS0iIG9wdG5hbWUgIj0iICN0
eXBlICJcbiIpOyAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAg
ICAgICAgICAgICAgICBEZWZhdWx0OiAiICNkZWZhdWx0X3ZhbCAiXG4iKTsKKyAgICBGT1JfRUFD
SF9PUFRJT04oUFJJTlQpCisjdW5kZWYgUFJJTlQKKworICAgIGNsZWFudXBHbG9iYWxEYXRhKGds
b2JhbERhdGEpOworICAgIGV4aXQoRVhJVF9TVUNDRVNTKTsKK30KKwogc3RhdGljIE5PX1JFVFVS
TiB2b2lkIHByaW50VXNhZ2VTdGF0ZW1lbnQoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBib29s
IGhlbHAgPSBmYWxzZSkKIHsKICAgICBmcHJpbnRmKHN0ZGVyciwgIlVzYWdlOiBqc2MgW29wdGlv
bnNdIFtmaWxlc10gWy0tIGFyZ3VtZW50c11cbiIpOwotICAgIGZwcmludGYoc3RkZXJyLCAiICAt
ZCAgICAgICAgIER1bXBzIGJ5dGVjb2RlIChkZWJ1ZyBidWlsZHMgb25seSlcbiIpOwotICAgIGZw
cmludGYoc3RkZXJyLCAiICAtZSAgICAgICAgIEV2YWx1YXRlIGFyZ3VtZW50IGFzIHNjcmlwdCBj
b2RlXG4iKTsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLWYgICAgICAgICBTcGVjaWZpZXMgYSBz
b3VyY2UgZmlsZSAoZGVwcmVjYXRlZClcbiIpOwotICAgIGZwcmludGYoc3RkZXJyLCAiICAtaHwt
LWhlbHAgIFByaW50cyB0aGlzIGhlbHAgbWVzc2FnZVxuIik7Ci0gICAgZnByaW50ZihzdGRlcnIs
ICIgIC1pICAgICAgICAgRW5hYmxlcyBpbnRlcmFjdGl2ZSBtb2RlIChkZWZhdWx0IGlmIG5vIGZp
bGVzIGFyZSBzcGVjaWZpZWQpXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLWQgICAgICAg
ICAgICBEdW1wcyBieXRlY29kZSAoZGVidWcgYnVpbGRzIG9ubHkpXG4iKTsKKyAgICBmcHJpbnRm
KHN0ZGVyciwgIiAgLWUgICAgICAgICAgICBFdmFsdWF0ZSBhcmd1bWVudCBhcyBzY3JpcHQgY29k
ZVxuIik7CisgICAgZnByaW50ZihzdGRlcnIsICIgIC1mICAgICAgICAgICAgU3BlY2lmaWVzIGEg
c291cmNlIGZpbGUgKGRlcHJlY2F0ZWQpXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLWh8
LS1oZWxwICAgICBQcmludHMgdGhpcyBoZWxwIG1lc3NhZ2VcbiIpOworICAgIGZwcmludGYoc3Rk
ZXJyLCAiICAtLWhlbHAtZGVidWcgIFNob3cgYWRkaXRpb25hbCBkZWJ1Z2dpbmcgb3B0aW9uc1xu
Iik7CisgICAgZnByaW50ZihzdGRlcnIsICIgIC1pICAgICAgICAgICAgRW5hYmxlcyBpbnRlcmFj
dGl2ZSBtb2RlIChkZWZhdWx0IGlmIG5vIGZpbGVzIGFyZSBzcGVjaWZpZWQpXG4iKTsKICNpZiBI
QVZFKFNJR05BTF9IKQotICAgIGZwcmludGYoc3RkZXJyLCAiICAtcyAgICAgICAgIEluc3RhbGxz
IHNpZ25hbCBoYW5kbGVycyB0aGF0IGV4aXQgb24gYSBjcmFzaCAoVW5peCBwbGF0Zm9ybXMgb25s
eSlcbiIpOworICAgIGZwcmludGYoc3RkZXJyLCAiICAtcyAgICAgICAgICAgIEluc3RhbGxzIHNp
Z25hbCBoYW5kbGVycyB0aGF0IGV4aXQgb24gYSBjcmFzaCAoVW5peCBwbGF0Zm9ybXMgb25seSlc
biIpOwogI2VuZGlmCiAKICAgICBjbGVhbnVwR2xvYmFsRGF0YShnbG9iYWxEYXRhKTsKQEAgLTU1
Myw2ICs1NjcsMjQgQEAgc3RhdGljIHZvaWQgcGFyc2VBcmd1bWVudHMoaW50IGFyZ2MsIGNoYXIq
KiBhcmd2LCBDb21tYW5kTGluZSYgb3B0aW9ucywgSlNHbG9iYWwKICAgICBpbnQgaSA9IDE7CiAg
ICAgZm9yICg7IGkgPCBhcmdjOyArK2kpIHsKICAgICAgICAgY29uc3QgY2hhciogYXJnID0gYXJn
dltpXTsKKyAgICAgICAgY29uc3QgY2hhciogbmV4dCA9IChpIDwgYXJnYykgPyBhcmd2W2krMV0g
OiAwOworCisgICAgICAgIHN3aXRjaCAoT3B0aW9uczo6cGFyc2VDb21tYW5kTGluZUFyZyhhcmcs
IG5leHQpKSB7CisgICAgICAgIGNhc2UgT3B0aW9uczo6Tm9NYXRjaDoKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIE9wdGlvbnM6OkNvbnN1bWVkT25lQXJndW1lbnQ6CisgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgY2FzZSBPcHRpb25zOjpDb25zdW1lZFR3b0FyZ3VtZW50
czoKKyAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjYXNl
IE9wdGlvbnM6Ok1pc3NpbmdWYWx1ZToKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJS
T1I6IE1pc3NpbmcgdmFsdWUgZm9yIG9wdGlvbiAlcy5cbiIsIGFyZyk7CisgICAgICAgICAgICBl
eGl0KEVYSVRfRkFJTFVSRSk7CisgICAgICAgIGNhc2UgT3B0aW9uczo6SW52YWxpZFZhbHVlOgor
ICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogQmFkIHZhbHVlIGZvciBvcHRpb24g
JXMuXG4iLCBhcmcpOworICAgICAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOworICAgICAgICB9
CisKICAgICAgICAgaWYgKCFzdHJjbXAoYXJnLCAiLWYiKSkgewogICAgICAgICAgICAgaWYgKCsr
aSA9PSBhcmdjKQogICAgICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1lbnQoZ2xvYmFsRGF0
YSk7CkBAIC01ODgsNiArNjIwLDggQEAgc3RhdGljIHZvaWQgcGFyc2VBcmd1bWVudHMoaW50IGFy
Z2MsIGNoYXIqKiBhcmd2LCBDb21tYW5kTGluZSYgb3B0aW9ucywgSlNHbG9iYWwKICAgICAgICAg
fQogICAgICAgICBpZiAoIXN0cmNtcChhcmcsICItaCIpIHx8ICFzdHJjbXAoYXJnLCAiLS1oZWxw
IikpCiAgICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KGdsb2JhbERhdGEsIHRydWUpOwor
ICAgICAgICBpZiAoIXN0cmNtcChhcmcsICItLWhlbHAtZGVidWciKSkKKyAgICAgICAgICAgIHBy
aW50RGVidWdVc2FnZVN0YXRlbWVudChnbG9iYWxEYXRhKTsKICAgICAgICAgb3B0aW9ucy5zY3Jp
cHRzLmFwcGVuZChTY3JpcHQodHJ1ZSwgYXJndltpXSkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAppbmRleCA4OTlmNjZlY2JhNjdiZTdhZWQwYzZh
YzFkMGJlOTY1ODlhMDJlNzJmLi4zODc0N2NiZGQ3MjNlYTkyOWQzODgzZTYyMDY1ZGE3MmQ0ODc3
ZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcApAQCAtMjcs
NiArMjcsNyBAQAogI2luY2x1ZGUgIk9wdGlvbnMuaCIKIAogI2luY2x1ZGUgPGxpbWl0cz4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvUGFnZUJsb2NrLmg+
CiAKICNpZiBPUyhEQVJXSU4pICYmIEVOQUJMRShQQVJBTExFTF9HQykKQEAgLTM5LDU3ICs0MCwx
NTEgQEAKICNpZiBFTkFCTEUoUlVOX1RJTUVfSEVVUklTVElDUykKICNpbmNsdWRlIDxzdGRpby5o
PgogI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNl
bmRpZgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIE9wdGlvbnMgewogCi0jZGVmaW5lIERF
RklORSh0eXBlLCBjbmFtZSwgZGVmYXVsdF92YWwpIHR5cGUgY25hbWU7CisjZGVmaW5lIERFRklO
RSh0eXBlLCBjbmFtZSwgZGVmYXVsdF92YWwsIG9wdG5hbWUpIHR5cGUgY25hbWU7CiBGT1JfRUFD
SF9PUFRJT04oREVGSU5FKQogI3VuZGVmIERFRklORQogCi0jaWYgRU5BQkxFKFJVTl9USU1FX0hF
VVJJU1RJQ1MpCi1zdGF0aWMgYm9vbCBwYXJzZShjb25zdCBjaGFyKiBzdHJpbmcsIGludDMyX3Qm
IHZhbHVlKQorc3RhdGljIGJvb2wgcGFyc2UoYm9vbCYgdmFyaWFibGUsIFN0cmluZyB2YWx1ZSkK
K3sKKyAgICBib29sIG9rID0gdHJ1ZTsKKyAgICBpZiAodmFsdWUgPT0gInRydWUiIHx8IHZhbHVl
ID09ICIxIikKKyAgICAgICAgdmFyaWFibGUgPSB0cnVlOworICAgIGVsc2UgaWYgKHZhbHVlID09
ICJmYWxzZSIgfHwgdmFsdWUgPT0gIjAiKQorICAgICAgICB2YXJpYWJsZSA9IGZhbHNlOworICAg
IGVsc2UKKyAgICAgICAgb2sgPSBmYWxzZTsKKyAgICByZXR1cm4gb2s7Cit9CisKK3N0YXRpYyBi
b29sIHBhcnNlKHVuc2lnbmVkJiB2YXJpYWJsZSwgU3RyaW5nIHZhbHVlKQogewotICAgIHJldHVy
biBzc2NhbmYoc3RyaW5nLCAiJWQiLCAmdmFsdWUpID09IDE7CisgICAgYm9vbCBvayA9IHRydWU7
CisgICAgdW5zaWduZWQgdCA9IHZhbHVlLnRvVUludCgmb2spOworICAgIGlmIChvaykKKyAgICAg
ICAgdmFyaWFibGUgPSB0OworICAgIHJldHVybiBvazsKIH0KIAotc3RhdGljIGJvb2wgcGFyc2Uo
Y29uc3QgY2hhciogc3RyaW5nLCB1bnNpZ25lZCYgdmFsdWUpCitzdGF0aWMgYm9vbCBwYXJzZShp
bnQzMl90JiB2YXJpYWJsZSwgU3RyaW5nIHZhbHVlKQogewotICAgIHJldHVybiBzc2NhbmYoc3Ry
aW5nLCAiJXUiLCAmdmFsdWUpID09IDE7CisgICAgYm9vbCBvayA9IHRydWU7CisgICAgaW50MzJf
dCB0ID0gdmFsdWUudG9JbnQoJm9rKTsKKyAgICBpZiAob2spCisgICAgICAgIHZhcmlhYmxlID0g
dDsKKyAgICByZXR1cm4gb2s7CiB9CiAKLXN0YXRpYyBib29sIHBhcnNlKGNvbnN0IGNoYXIqIHN0
cmluZywgZG91YmxlJiB2YWx1ZSkKK3N0YXRpYyBib29sIHBhcnNlKGRvdWJsZSYgdmFyaWFibGUs
IFN0cmluZyB2YWx1ZSkKK3sKKyAgICBib29sIG9rID0gdHJ1ZTsKKyAgICBkb3VibGUgdCA9IHZh
bHVlLnRvRG91YmxlKCZvayk7CisgICAgaWYgKG9rKQorICAgICAgICB2YXJpYWJsZSA9IHQ7Cisg
ICAgcmV0dXJuIG9rOworfQorCitzdGF0aWMgYm9vbCBwYXJzZUZsYWcoYm9vbCYgdmFyaWFibGUs
IFN0cmluZyBvcHRpb24sIGNvbnN0IGNoYXIgKmVuYWJsZSwgY29uc3QgY2hhciAqZGlzYWJsZSkK
K3sKKyAgICBpZiAob3B0aW9uID09IGVuYWJsZSkKKyAgICAgICAgdmFyaWFibGUgPSB0cnVlOwor
ICAgIGVsc2UgaWYgKG9wdGlvbiA9PSBkaXNhYmxlKQorICAgICAgICB2YXJpYWJsZSA9IGZhbHNl
OworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQor
c3RhdGljIGJvb2wgcGFyc2VGbGFnKHVuc2lnbmVkJiB2YXJpYWJsZSwgU3RyaW5nIG9wdGlvbiwg
Y29uc3QgY2hhciAqZW5hYmxlLCBjb25zdCBjaGFyICpkaXNhYmxlKQoreworICAgIHJldHVybiBm
YWxzZTsKK30KK3N0YXRpYyBib29sIHBhcnNlRmxhZyhpbnQzMl90JiB2YXJpYWJsZSwgU3RyaW5n
IG9wdGlvbiwgY29uc3QgY2hhciAqZW5hYmxlLCBjb25zdCBjaGFyICpkaXNhYmxlKQoreworICAg
IHJldHVybiBmYWxzZTsKK30KK3N0YXRpYyBib29sIHBhcnNlRmxhZyhkb3VibGUmIHZhcmlhYmxl
LCBTdHJpbmcgb3B0aW9uLCBjb25zdCBjaGFyICplbmFibGUsIGNvbnN0IGNoYXIgKmRpc2FibGUp
CiB7Ci0gICAgcmV0dXJuIHNzY2FuZihzdHJpbmcsICIlbGYiLCAmdmFsdWUpID09IDE7CisgICAg
cmV0dXJuIGZhbHNlOwogfQorICAgIAorc3RhdGljIGNvbnN0IGNoYXIgKmFyZ1ByZWZpeCA9ICIt
LSI7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+Ci12b2lkIHNldEhldXJpc3Rp
YyhUJiB2YXJpYWJsZSwgY29uc3QgY2hhciogbmFtZSwgVSB2YWx1ZSkKK09wdGlvblBhcnNlU3Rh
dHVzIHBhcnNlQ29tbWFuZExpbmVBcmcoY29uc3QgY2hhciAqY19hcmcsIGNvbnN0IGNoYXIgKmNf
bmV4dCkKIHsKKyAgICBTdHJpbmcgYXJnKGNfYXJnKTsKKworICAgIGlmICghYXJnLnN0YXJ0c1dp
dGgoYXJnUHJlZml4KSkKKyAgICAgICAgcmV0dXJuIE5vTWF0Y2g7CisKKyAgICBTdHJpbmcgb3B0
aW9uID0gYXJnLnN1YnN0cmluZyhzdHJsZW4oYXJnUHJlZml4KSwgYXJnLmxlbmd0aCgpKTsKKyAg
ICBTdHJpbmcgdmFsdWU7CisgICAgT3B0aW9uUGFyc2VTdGF0dXMgc3VjY2VzcywgZmFpbHVyZTsK
KworI2RlZmluZSBQQVJTRV9GTEFHKHR5cGUsIGNuYW1lLCBkZWZhdWx0X3ZhbCwgb3B0bmFtZSkg
ICAgIFwKKyAgICBpZiAocGFyc2VGbGFnKGNuYW1lLCBvcHRpb24sIG9wdG5hbWUsICJuby0iIG9w
dG5hbWUpKSBcCisgICAgICAgIHJldHVybiBDb25zdW1lZE9uZUFyZ3VtZW50OworICAgIEZPUl9F
QUNIX09QVElPTihQQVJTRV9GTEFHKTsKKyN1bmRlZiBQQVJTRV9GTEFHCisKKyAgICBzaXplX3Qg
ZXF1YWxzUG9zaXRpb24gPSBvcHRpb24uZmluZCgnPScpOworICAgIGlmIChlcXVhbHNQb3NpdGlv
biA8IG9wdGlvbi5sZW5ndGgoKSkgeworICAgICAgICBzdWNjZXNzID0gQ29uc3VtZWRPbmVBcmd1
bWVudDsKKyAgICAgICAgZmFpbHVyZSA9IEludmFsaWRWYWx1ZTsKKyAgICAgICAgdmFsdWUgPSBv
cHRpb24uc3Vic3RyaW5nKGVxdWFsc1Bvc2l0aW9uICsgMSwgb3B0aW9uLmxlbmd0aCgpKTsKKyAg
ICAgICAgb3B0aW9uID0gb3B0aW9uLnN1YnN0cmluZygwLCBlcXVhbHNQb3NpdGlvbik7CisgICAg
fSBlbHNlIGlmIChjX25leHQpIHsKKyAgICAgICAgc3VjY2VzcyA9IENvbnN1bWVkVHdvQXJndW1l
bnRzOworICAgICAgICBmYWlsdXJlID0gSW52YWxpZFZhbHVlOworICAgICAgICB2YWx1ZSA9IGNf
bmV4dDsKKyAgICB9IGVsc2UgeworICAgICAgICBzdWNjZXNzID0gQ29uc3VtZWRPbmVBcmd1bWVu
dDsKKyAgICAgICAgZmFpbHVyZSA9IE1pc3NpbmdWYWx1ZTsKKyAgICB9CisKKyNkZWZpbmUgUEFS
U0UodHlwZSwgY25hbWUsIGRlZmF1bHRfdmFsLCBvcHRuYW1lKSBcCisgICAgaWYgKG9wdGlvbiA9
PSBvcHRuYW1lKSB7ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAocGFyc2UoY25h
bWUsIHZhbHVlKSkgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHJldHVybiBzdWNjZXNz
OyAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBmYWlsdXJlOyAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAorICAgIH0KKyAgICBGT1JfRUFDSF9PUFRJT04oUEFSU0UpOwor
I3VuZGVmIFBBUlNFCisKKyAgICByZXR1cm4gTm9NYXRjaDsKK30KKwordGVtcGxhdGU8dHlwZW5h
bWUgVD4KK3ZvaWQgc2V0RnJvbUVudmlyb25tZW50KFQmIHZhcmlhYmxlLCBjb25zdCBjaGFyKiBu
YW1lKQoreworI2lmIEVOQUJMRShSVU5fVElNRV9IRVVSSVNUSUNTKQogICAgIGNvbnN0IGNoYXIq
IHN0cmluZ1ZhbHVlID0gZ2V0ZW52KG5hbWUpOwotICAgIGlmICghc3RyaW5nVmFsdWUpIHsKLSAg
ICAgICAgdmFyaWFibGUgPSBzYWZlQ2FzdDxUPih2YWx1ZSk7CisgICAgaWYgKCFzdHJpbmdWYWx1
ZSkKICAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAgICBpZiAocGFyc2Uoc3RyaW5nVmFs
dWUsIHZhcmlhYmxlKSkKKyAgICBpZiAocGFyc2UodmFyaWFibGUsIHN0cmluZ1ZhbHVlKSkKICAg
ICAgICAgcmV0dXJuOwotICAgIAogICAgIGZwcmludGYoc3RkZXJyLCAiV0FSTklORzogZmFpbGVk
IHRvIHBhcnNlICVzPSVzXG4iLCBuYW1lLCBzdHJpbmdWYWx1ZSk7Ci0gICAgdmFyaWFibGUgPSBz
YWZlQ2FzdDxUPih2YWx1ZSk7Ci19Ci0KLSNkZWZpbmUgU0VUKHZhcmlhYmxlLCB2YWx1ZSkgc2V0
SGV1cmlzdGljKHZhcmlhYmxlLCAiSlNDXyIgI3ZhcmlhYmxlLCB2YWx1ZSkKLSNlbHNlCi0jZGVm
aW5lIFNFVCh2YXJpYWJsZSwgdmFsdWUpIHZhcmlhYmxlID0gdmFsdWUKICNlbmRpZgorfQogCitz
dGF0aWMgdm9pZCBzZXRPcHRpb25zRnJvbUVudmlyb25tZW50KCkKK3sKKyNkZWZpbmUgU0VUX0ZS
T01fRU5WKHR5cGUsIGNuYW1lLCBkZWZhdWx0X3ZhbCwgb3B0bmFtZSkgXAorICAgIHNldEZyb21F
bnZpcm9ubWVudChjbmFtZSwgI2NuYW1lKTsKKyAgICBGT1JfRUFDSF9PUFRJT04oU0VUX0ZST01f
RU5WKTsKKyN1bmRlZiBTRVRfRlJPTV9FTlYKK30KKyAgICAgICAgICAgIAogdm9pZCBpbml0aWFs
aXplT3B0aW9ucygpCiB7Ci0jZGVmaW5lIElOSVQodHlwZSwgY25hbWUsIGRlZmF1bHRfdmFsKSBT
RVQoY25hbWUsIGRlZmF1bHRfdmFsKTsKLSAgICBGT1JfRUFDSF9PUFRJT04oSU5JVCkKLSN1bmRl
ZiBJTklUCisjZGVmaW5lIElOSVRfREVGQVVMVCh0eXBlLCBjbmFtZSwgZGVmYXVsdF92YWwsIG9w
dG5hbWUpIFwKKyAgICBjbmFtZSA9IGRlZmF1bHRfdmFsOworICAgIEZPUl9FQUNIX09QVElPTihJ
TklUX0RFRkFVTFQpCisjdW5kZWYgSU5JVF9ERUZBVUxUCisKKyAgICBzZXRPcHRpb25zRnJvbUVu
dmlyb25tZW50KCk7CiAKICAgICAvLyBOb3cgd2UgaW5pdGlhbGl6ZSBoZXVyaXN0aWNzIHdob3Nl
IGRlZmF1bHRzIGFyZSBub3Qga25vd24gYXQKICAgICAvLyBjb21waWxlLXRpbWUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKaW5kZXggZWZhMDIxYmU0ZTZiYWQ0NzM2ODY4
OTY3Mjg1NTAxNDc0MDYyMDUzYS4uNzEzYjg2ZDZlZTA2YzllNjM2YTZjMTNhMTBjOTQ0NDNhMGQ5
ZmQxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaApAQCAtMzcsNTMg
KzM3LDk0IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgT3B0aW9ucyB7CiAvLyB0YWtlIHNs
b3cgY2FzZSwgZm9yIGV4YW1wbGUgZm9yIGxpbmtpbmcgb3IgY2FjaGluZy4KIAogI2RlZmluZSBG
T1JfRUFDSF9IRVVSSVNUSUMobSkgXAotICAgIG0odW5zaWduZWQsIG1heGltdW1PcHRpbWl6YXRp
b25DYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50LCAxMDAwKSBcCisgICAgbSh1bnNpZ25lZCwgbWF4
aW11bU9wdGltaXphdGlvbkNhbmRpZGF0ZUluc3RydWN0aW9uQ291bnQsIDEwMDAsIFwKKyAgICAg
ICJtYXhpbXVtLW9wdGltaXphdGlvbi1jYW5kaWRhdGUtaW5zdHJ1Y3Rpb24tY291bnQiKSBcCiAg
ICAgXAotICAgIG0odW5zaWduZWQsIG1heGltdW1GdW5jdGlvbkZvckNhbGxJbmxpbmVDYW5kaWRh
dGVJbnN0cnVjdGlvbkNvdW50LCAxNTApIFwKLSAgICBtKHVuc2lnbmVkLCBtYXhpbXVtRnVuY3Rp
b25Gb3JDb25zdHJ1Y3RJbmxpbmVDYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50LCA4MCkgXAorICAg
IG0odW5zaWduZWQsIG1heGltdW1GdW5jdGlvbkZvckNhbGxJbmxpbmVDYW5kaWRhdGVJbnN0cnVj
dGlvbkNvdW50LCAxNTAsIFwKKyAgICAgICJtYXhpbXVtLWZ1bmN0aW9uLWZvci1jYWxsLWlubGlu
ZS1jYW5kaWRhdGUtaW5zdHJ1Y3Rpb24tY291bnQiKSBcCisgICAgbSh1bnNpZ25lZCwgbWF4aW11
bUZ1bmN0aW9uRm9yQ29uc3RydWN0SW5saW5lQ2FuZGlkYXRlSW5zdHJ1Y3Rpb25Db3VudCwgODAs
IFwKKyAgICAgICJtYXhpbXVtLWZ1bmN0aW9uLWZvci1jb25zdHJ1Y3QtaW5saW5lLWNhbmRpZGF0
ZS1pbnN0cnVjdGlvbi1jb3VudCIpIFwKICAgICBcCi0gICAgbSh1bnNpZ25lZCwgbWF4aW11bUlu
bGluaW5nRGVwdGgsIDUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIG0odW5z
aWduZWQsIG1heGltdW1JbmxpbmluZ0RlcHRoLCA1LCBcCisgICAgICAibWF4aW11bS1pbmxpbmlu
Zy1kZXB0aCIpIFwKICAgICBcCi0gICAgbShpbnQzMl90LCBleGVjdXRpb25Db3VudGVyVmFsdWVG
b3JPcHRpbWl6ZUFmdGVyV2FybVVwLCAgICAgIC0xMDAwKSBcCi0gICAgbShpbnQzMl90LCBleGVj
dXRpb25Db3VudGVyVmFsdWVGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCwgIC01MDAwKSBcCi0g
ICAgbShpbnQzMl90LCBleGVjdXRpb25Db3VudGVyVmFsdWVGb3JEb250T3B0aW1pemVBbnl0aW1l
U29vbiwgIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1pbigpKSBcCi0gICAgbShpbnQz
Ml90LCBleGVjdXRpb25Db3VudGVyVmFsdWVGb3JPcHRpbWl6ZVNvb24sICAgICAgICAgICAgIC0x
MDAwKSBcCi0gICAgbShpbnQzMl90LCBleGVjdXRpb25Db3VudGVyVmFsdWVGb3JPcHRpbWl6ZU5l
eHRJbnZvY2F0aW9uLCAgIDApIFwKKyAgICBtKGludDMyX3QsIGV4ZWN1dGlvbkNvdW50ZXJWYWx1
ZUZvck9wdGltaXplQWZ0ZXJXYXJtVXAsICAgICAgLTEwMDAsIFwKKyAgICAgICJleGVjdXRpb24t
Y291bnRlci12YWx1ZS1mb3Itb3B0aW1pemUtYWZ0ZXItd2FybS11cCIpIFwKKyAgICBtKGludDMy
X3QsIGV4ZWN1dGlvbkNvdW50ZXJWYWx1ZUZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVwLCAgLTUw
MDAsIFwKKyAgICAgICJleGVjdXRpb24tY291bnRlci12YWx1ZS1mb3Itb3B0aW1pemUtYWZ0ZXIt
bG9uZy13YXJtLXVwIikgXAorICAgIG0oaW50MzJfdCwgZXhlY3V0aW9uQ291bnRlclZhbHVlRm9y
RG9udE9wdGltaXplQW55dGltZVNvb24sICBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+Ojpt
aW4oKSwgXAorICAgICAgImV4ZWN1dGlvbi1jb3VudGVyLXZhbHVlLWZvci1kb250LW9wdGltaXpl
LWFueXRpbWUtc29vbiIpIFwKKyAgICBtKGludDMyX3QsIGV4ZWN1dGlvbkNvdW50ZXJWYWx1ZUZv
ck9wdGltaXplU29vbiwgICAgICAgICAgICAgLTEwMDAsIFwKKyAgICAgICJleGVjdXRpb24tY291
bnRlci12YWx1ZS1mb3Itb3B0aW1pemUtc29vbiIpIFwKKyAgICBtKGludDMyX3QsIGV4ZWN1dGlv
bkNvdW50ZXJWYWx1ZUZvck9wdGltaXplTmV4dEludm9jYXRpb24sICAgMCwgXAorICAgICAgImV4
ZWN1dGlvbi1jb3VudGVyLXZhbHVlLWZvci1vcHRpbWl6ZS1uZXh0LWludm9jYXRpb24iKSBcCiAg
ICAgXAotICAgIG0oaW50MzJfdCwgZXhlY3V0aW9uQ291bnRlckluY3JlbWVudEZvckxvb3AsICAg
ICAgIDEpIFwKLSAgICBtKGludDMyX3QsIGV4ZWN1dGlvbkNvdW50ZXJJbmNyZW1lbnRGb3JSZXR1
cm4sICAgICAxNSkgXAorICAgIG0oaW50MzJfdCwgZXhlY3V0aW9uQ291bnRlckluY3JlbWVudEZv
ckxvb3AsICAgICAgIDEsIFwKKyAgICAgICJleGVjdXRpb24tY291bnRlci1pbmNyZW1lbnQtZm9y
LWxvb3AiKSBcCisgICAgbShpbnQzMl90LCBleGVjdXRpb25Db3VudGVySW5jcmVtZW50Rm9yUmV0
dXJuLCAgICAgMTUsIFwKKyAgICAgICJleGVjdXRpb24tY291bnRlci1pbmNyZW1lbnQtZm9yLXJl
dHVybiIpIFwKICAgICBcCi0gICAgbSh1bnNpZ25lZCwgZGVzaXJlZFNwZWN1bGF0aXZlU3VjY2Vz
c0ZhaWxSYXRpbywgICAgNikgXAorICAgIG0odW5zaWduZWQsIGRlc2lyZWRTcGVjdWxhdGl2ZVN1
Y2Nlc3NGYWlsUmF0aW8sICAgIDYsIFwKKyAgICAgICJkZXNpcmVkLXNwZWN1bGF0aXZlLXN1Y2Nl
c3MtZmFpbC1yYXRpbyIpIFwKICAgICBcCi0gICAgbSh1bnNpZ25lZCwgbGlrZWx5VG9UYWtlU2xv
d0Nhc2VUaHJlc2hvbGQsICAgICAgICAgMTAwKSBcCi0gICAgbSh1bnNpZ25lZCwgY291bGRUYWtl
U2xvd0Nhc2VUaHJlc2hvbGQsICAgICAgICAgICAgMTApIFwKKyAgICBtKHVuc2lnbmVkLCBsaWtl
bHlUb1Rha2VTbG93Q2FzZVRocmVzaG9sZCwgICAgICAgICAxMDAsIFwKKyAgICAgICJsaWtlbHkt
dG8tdGFrZS1zbG93LWNhc2UtdGhyZXNob2xkIikgXAorICAgIG0odW5zaWduZWQsIGNvdWxkVGFr
ZVNsb3dDYXNlVGhyZXNob2xkLCAgICAgICAgICAgIDEwLCBcCisgICAgICAiY291bGQtdGFrZS1z
bG93LWNhc2UtdGhyZXNob2xkIikgXAogICAgIFwKLSAgICBtKHVuc2lnbmVkLCBsYXJnZUZhaWxD
b3VudFRocmVzaG9sZEJhc2UsICAgICAgICAgICAyMCkgXAotICAgIG0odW5zaWduZWQsIGxhcmdl
RmFpbENvdW50VGhyZXNob2xkQmFzZUZvckxvb3AsICAgIDEpIFwKKyAgICBtKHVuc2lnbmVkLCBs
YXJnZUZhaWxDb3VudFRocmVzaG9sZEJhc2UsICAgICAgICAgICAyMCwgXAorICAgICAgImxhcmdl
LWZhaWwtY291bnQtdGhyZXNob2xkLWJhc2UiKSBcCisgICAgbSh1bnNpZ25lZCwgbGFyZ2VGYWls
Q291bnRUaHJlc2hvbGRCYXNlRm9yTG9vcCwgICAgMSwgXAorICAgICAgImxhcmdlLWZhaWwtY291
bnQtdGhyZXNob2xkLWJhc2UtZm9yLWxvb3AiKSBcCiAgICAgXAotICAgIG0odW5zaWduZWQsIHJl
b3B0aW1pemF0aW9uUmV0cnlDb3VudGVyTWF4LCAgICAgICAgIDApIFwKLSAgICBtKHVuc2lnbmVk
LCByZW9wdGltaXphdGlvblJldHJ5Q291bnRlclN0ZXAsICAgICAgICAxKSBcCisgICAgbSh1bnNp
Z25lZCwgcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJNYXgsICAgICAgICAgMCwgXAorICAgICAg
InJlb3B0aW1pemF0aW9uLXJldHJ5LWNvdW50ZXItbWF4IikgXAorICAgIG0odW5zaWduZWQsIHJl
b3B0aW1pemF0aW9uUmV0cnlDb3VudGVyU3RlcCwgICAgICAgIDEsIFwKKyAgICAgICJyZW9wdGlt
aXphdGlvbi1yZXRyeS1jb3VudGVyLXN0ZXAiKSBcCiAgICAgXAotICAgIG0odW5zaWduZWQsIG1p
bmltdW1PcHRpbWl6YXRpb25EZWxheSwgICAgICAgICAgICAgIDEpIFwKLSAgICBtKHVuc2lnbmVk
LCBtYXhpbXVtT3B0aW1pemF0aW9uRGVsYXksICAgICAgICAgICAgICA1KSBcCi0gICAgbShkb3Vi
bGUsIGRlc2lyZWRQcm9maWxlTGl2ZW5lc3NSYXRlLCAgICAgICAgICAgICAgMC43NSkgXAotICAg
IG0oZG91YmxlLCBkZXNpcmVkUHJvZmlsZUZ1bGxuZXNzUmF0ZSwgICAgICAgICAgICAgIDAuMzUp
IFwKKyAgICBtKHVuc2lnbmVkLCBtaW5pbXVtT3B0aW1pemF0aW9uRGVsYXksICAgICAgICAgICAg
ICAxLCBcCisgICAgICAibWluaW11bS1vcHRpbWl6YXRpb24tZGVsYXkiKSBcCisgICAgbSh1bnNp
Z25lZCwgbWF4aW11bU9wdGltaXphdGlvbkRlbGF5LCAgICAgICAgICAgICAgNSwgXAorICAgICAg
Im1heGltdW0tb3B0aW1pemF0aW9uLWRlbGF5IikgXAorICAgIG0oZG91YmxlLCBkZXNpcmVkUHJv
ZmlsZUxpdmVuZXNzUmF0ZSwgICAgICAgICAgICAgIDAuNzUsIFwKKyAgICAgICJkZXNpcmVkLXBy
b2ZpbGUtbGl2ZW5lc3MtcmF0ZSIpIFwKKyAgICBtKGRvdWJsZSwgZGVzaXJlZFByb2ZpbGVGdWxs
bmVzc1JhdGUsICAgICAgICAgICAgICAwLjM1LCBcCisgICAgICAiZGVzaXJlZC1wcm9maWxlLWZ1
bGxuZXNzLXJhdGUiKSBcCiAgICAgXAotICAgIG0odW5zaWduZWQsIG1pbmltdW1OdW1iZXJPZlNj
YW5zQmV0d2VlblJlYmFsYW5jZSwgIDEwMDAwKSBcCi0gICAgbSh1bnNpZ25lZCwgZ2NNYXJrU3Rh
Y2tTZWdtZW50U2l6ZSwgICAgICAgICAgICAgICAgMCkgXAotICAgIG0odW5zaWduZWQsIG1pbmlt
dW1OdW1iZXJPZkNlbGxzVG9LZWVwLCAgICAgICAgICAgIDEwKSBcCi0gICAgbSh1bnNpZ25lZCwg
bWF4aW11bU51bWJlck9mU2hhcmVkU2VnbWVudHMsICAgICAgICAgMykgXAotICAgIG0odW5zaWdu
ZWQsIHNoYXJlZFN0YWNrV2FrZXVwVGhyZXNob2xkLCAgICAgICAgICAgIDEpIFwKLSAgICBtKHVu
c2lnbmVkLCBudW1iZXJPZkdDTWFya2VycywgICAgICAgICAgICAgICAgICAgICAwKSBcCi0gICAg
bSh1bnNpZ25lZCwgb3BhcXVlUm9vdE1lcmdlVGhyZXNob2xkLCAgICAgICAgICAgICAgMTAwMCkK
KyAgICBtKHVuc2lnbmVkLCBtaW5pbXVtTnVtYmVyT2ZTY2Fuc0JldHdlZW5SZWJhbGFuY2UsICAx
MDAwMCwgXAorICAgICAgIm1pbmltdW0tbnVtYmVyLW9mLXNjYW5zLWJldHdlZW4tcmViYWxhbmNl
IikgXAorICAgIG0odW5zaWduZWQsIGdjTWFya1N0YWNrU2VnbWVudFNpemUsICAgICAgICAgICAg
ICAgIDAsIFwKKyAgICAgICJnYy1tYXJrLXN0YWNrLXNlZ21lbnQtc2l6ZSIpIFwKKyAgICBtKHVu
c2lnbmVkLCBtaW5pbXVtTnVtYmVyT2ZDZWxsc1RvS2VlcCwgICAgICAgICAgICAxMCwgXAorICAg
ICAgIm1pbmltdW0tbnVtYmVyLW9mLWNlbGxzLXRvLWtlZXAiKSBcCisgICAgbSh1bnNpZ25lZCwg
bWF4aW11bU51bWJlck9mU2hhcmVkU2VnbWVudHMsICAgICAgICAgMywgXAorICAgICAgIm1heGlt
dW0tbnVtYmVyLW9mLXNoYXJlZC1zZWdtZW50cyIpIFwKKyAgICBtKHVuc2lnbmVkLCBzaGFyZWRT
dGFja1dha2V1cFRocmVzaG9sZCwgICAgICAgICAgICAxLCBcCisgICAgICAic2hhcmVkLXN0YWNr
LXdha2V1cC10aHJlc2hvbGQiKSBcCisgICAgbSh1bnNpZ25lZCwgbnVtYmVyT2ZHQ01hcmtlcnMs
ICAgICAgICAgICAgICAgICAgICAgMCwgXAorICAgICAgIm51bWJlci1vZi1nYy1tYXJrZXJzIikg
XAorICAgIG0odW5zaWduZWQsIG9wYXF1ZVJvb3RNZXJnZVRocmVzaG9sZCwgICAgICAgICAgICAg
IDEwMDAsIFwKKyAgICAgICJvcGFxdWUtcm9vdC1tZXJnZS10aHJlc2hvbGQiKQogCiAjZGVmaW5l
IEZPUl9FQUNIX09QVElPTihtKSBcCiAgICAgRk9SX0VBQ0hfSEVVUklTVElDKG0pCiAKLSNkZWZp
bmUgREVDTEFSRSh0eXBlLCBjbmFtZSwgZGVmYXVsdF92YWwpIGV4dGVybiB0eXBlIGNuYW1lOwor
I2RlZmluZSBERUNMQVJFKHR5cGUsIGNuYW1lLCBkZWZhdWx0X3ZhbCwgb3B0bmFtZSkgZXh0ZXJu
IHR5cGUgY25hbWU7CiBGT1JfRUFDSF9PUFRJT04oREVDTEFSRSkKICN1bmRlZiBERUNMQVJFCiAK
K2VudW0gT3B0aW9uUGFyc2VTdGF0dXMgeworICAgIE5vTWF0Y2gsCisgICAgQ29uc3VtZWRPbmVB
cmd1bWVudCwKKyAgICBDb25zdW1lZFR3b0FyZ3VtZW50cywKKyAgICBNaXNzaW5nVmFsdWUsCisg
ICAgSW52YWxpZFZhbHVlCit9OworICAgIAorLy8gU2V0IGEgSlNDIHJ1bi10aW1lIG9wdGlvbiBm
cm9tIGEgY29tbWFuZC1saW5lIGFyZ3VtZW50LiBCb3RoIGAtLWZvbyBiYXInIGFuZAorLy8gYC0t
Zm9vPWJhcicgZm9ybXMgYXJlIHN1cHBvcnRlZC4KKy8vCitPcHRpb25QYXJzZVN0YXR1cyBwYXJz
ZUNvbW1hbmRMaW5lQXJnKGNvbnN0IGNoYXIgKmFyZywgY29uc3QgY2hhciAqbmV4dCk7CiAKIHZv
aWQgaW5pdGlhbGl6ZU9wdGlvbnMoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119206</attachid>
            <date>2011-12-14 05:13:18 -0800</date>
            <delta_ts>2014-02-05 10:51:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72960-20111214141316.patch</filename>
            <type>text/plain</type>
            <size>18358</size>
            <attacher name="Andy Wingo">wingo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAx
NTBjNzcyMTQ0YTIwOTNlZmM2OGFkMmE1MTI1ZmM4MzRmYzg0YWYyLi4wMmQ0ODlkYjk0ZjAwN2Iz
MzRiMGFmZWI0NDczOTI4ODg1NWM5YTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxMS0xMS0yOSAgQW5keSBXaW5nbyAgPHdpbmdvQGlnYWxpYS5jb20+CisK
KyAgICAgICAgQWxsb3cgSlNDIGhldXJpc3RpY3MgdG8gYmUgc2V0IG9uIHRoZSBjb21tYW5kLWxp
bmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcyOTYw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqc2Mu
Y3BwOgorICAgICAgICAocHJpbnREZWJ1Z1VzYWdlU3RhdGVtZW50KToKKyAgICAgICAgKHByaW50
VXNhZ2VTdGF0ZW1lbnQpOgorICAgICAgICAocGFyc2VBcmd1bWVudHMpOiBBZGQgLS1oZWxwLWRl
YnVnLCB3aGljaCBwcmludHMgb3V0IGhldXJpc3RpY3MKKyAgICAgICAgdGhhdCBjYW4gYmUgc2V0
IGF0IHJ1bnRpbWUuCisKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuY3BwOgorICAgICAgICAo
SlNDOjpPcHRpb25zOjpwYXJzZSk6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OnBhcnNlRmxhZyk6
CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OnBhcnNlQ29tbWFuZExpbmVBcmcpOgorICAgICAgICAo
SlNDOjpPcHRpb25zOjppbml0aWFsaXplT3B0aW9ucyk6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6
OnNldEZyb21FbnZpcm9ubWVudCk6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6OnNldE9wdGlvbnNG
cm9tRW52aXJvbm1lbnQpOgorICAgICAgICAoSlNDOjpPcHRpb25zOjppbml0aWFsaXplT3B0aW9u
cyk6IFJlZmFjdG9yIHRoZSBwYXJzZXIgYSBiaXQgdG8KKyAgICAgICAgc2hhcmUgbWVjaGFuaXNt
IGFuZCB1c2UgV1RGU3RyaW5nLgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOiBBZGQgYW4g
Im9wdGlvbi1uYW1lIiB0byBhbGwgb2YgdGhlIG9wdGlvbnMsCisgICAgICAgIGN1cnJlbnRseSB1
c2VkIHdoZW4gcGFyc2luZyBjb21tYW5kLWxpbmUgYXJndW1lbnRzLiAgQWRkIGFuCisgICAgICAg
IGludGVyZmFjZSB0byBzZXQgb3B0aW9ucyBmcm9tIGNvbW1hbmQtbGluZSBhcmd1bWVudHMuCisK
IDIwMTEtMTItMTQgIEFuZHkgV2luZ28gIDx3aW5nb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEVu
c3VyZSBjb25zaXN0ZW50IGhldXJpc3RpY3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggMzZkM2Y3
YTA1YTVmZTEzNjhiMjlmZDVmOGYxZDVmOWNiMjU5ZThkMi4uM2VhNDgyNzM5OTZmZjE4NTBmODdi
ZDI3ZWYxZjU0NmMyY2Q0MDY4OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pz
Yy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKQEAgLTUzMiwxNiArNTMy
LDMwIEBAIHN0YXRpYyB2b2lkIHJ1bkludGVyYWN0aXZlKEdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQogICAgIHByaW50ZigiXG4iKTsKIH0KIAorc3RhdGljIE5PX1JFVFVSTiB2b2lkIHByaW50
RGVidWdVc2FnZVN0YXRlbWVudChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEpCit7CisgICAgZnBy
aW50ZihzdGRlcnIsICJBdmFpbGFibGUgZGVidWdnaW5nIG9wdGlvbnM6XG4iKTsKKyNkZWZpbmUg
UFJJTlQodHlwZSwgY25hbWUsIGRlZmF1bHRfdmFsLCBvcHRuYW1lKSAgICAgICAgICAgICAgICAg
ICAgICAgIFwKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLS0iIG9wdG5hbWUgIj0iICN0eXBlICJc
biIpOyAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgICAgICAg
ICAgICAgICBEZWZhdWx0OiAiICNkZWZhdWx0X3ZhbCAiXG4iKTsKKyAgICBGT1JfRUFDSF9PUFRJ
T04oUFJJTlQpCisjdW5kZWYgUFJJTlQKKworICAgIGNsZWFudXBHbG9iYWxEYXRhKGdsb2JhbERh
dGEpOworICAgIGV4aXQoRVhJVF9TVUNDRVNTKTsKK30KKwogc3RhdGljIE5PX1JFVFVSTiB2b2lk
IHByaW50VXNhZ2VTdGF0ZW1lbnQoSlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhLCBib29sIGhlbHAg
PSBmYWxzZSkKIHsKICAgICBmcHJpbnRmKHN0ZGVyciwgIlVzYWdlOiBqc2MgW29wdGlvbnNdIFtm
aWxlc10gWy0tIGFyZ3VtZW50c11cbiIpOwotICAgIGZwcmludGYoc3RkZXJyLCAiICAtZCAgICAg
ICAgIER1bXBzIGJ5dGVjb2RlIChkZWJ1ZyBidWlsZHMgb25seSlcbiIpOwotICAgIGZwcmludGYo
c3RkZXJyLCAiICAtZSAgICAgICAgIEV2YWx1YXRlIGFyZ3VtZW50IGFzIHNjcmlwdCBjb2RlXG4i
KTsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLWYgICAgICAgICBTcGVjaWZpZXMgYSBzb3VyY2Ug
ZmlsZSAoZGVwcmVjYXRlZClcbiIpOwotICAgIGZwcmludGYoc3RkZXJyLCAiICAtaHwtLWhlbHAg
IFByaW50cyB0aGlzIGhlbHAgbWVzc2FnZVxuIik7Ci0gICAgZnByaW50ZihzdGRlcnIsICIgIC1p
ICAgICAgICAgRW5hYmxlcyBpbnRlcmFjdGl2ZSBtb2RlIChkZWZhdWx0IGlmIG5vIGZpbGVzIGFy
ZSBzcGVjaWZpZWQpXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLWQgICAgICAgICAgICBE
dW1wcyBieXRlY29kZSAoZGVidWcgYnVpbGRzIG9ubHkpXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVy
ciwgIiAgLWUgICAgICAgICAgICBFdmFsdWF0ZSBhcmd1bWVudCBhcyBzY3JpcHQgY29kZVxuIik7
CisgICAgZnByaW50ZihzdGRlcnIsICIgIC1mICAgICAgICAgICAgU3BlY2lmaWVzIGEgc291cmNl
IGZpbGUgKGRlcHJlY2F0ZWQpXG4iKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIiAgLWh8LS1oZWxw
ICAgICBQcmludHMgdGhpcyBoZWxwIG1lc3NhZ2VcbiIpOworICAgIGZwcmludGYoc3RkZXJyLCAi
ICAtLWhlbHAtZGVidWcgIFNob3cgYWRkaXRpb25hbCBkZWJ1Z2dpbmcgb3B0aW9uc1xuIik7Cisg
ICAgZnByaW50ZihzdGRlcnIsICIgIC1pICAgICAgICAgICAgRW5hYmxlcyBpbnRlcmFjdGl2ZSBt
b2RlIChkZWZhdWx0IGlmIG5vIGZpbGVzIGFyZSBzcGVjaWZpZWQpXG4iKTsKICNpZiBIQVZFKFNJ
R05BTF9IKQotICAgIGZwcmludGYoc3RkZXJyLCAiICAtcyAgICAgICAgIEluc3RhbGxzIHNpZ25h
bCBoYW5kbGVycyB0aGF0IGV4aXQgb24gYSBjcmFzaCAoVW5peCBwbGF0Zm9ybXMgb25seSlcbiIp
OworICAgIGZwcmludGYoc3RkZXJyLCAiICAtcyAgICAgICAgICAgIEluc3RhbGxzIHNpZ25hbCBo
YW5kbGVycyB0aGF0IGV4aXQgb24gYSBjcmFzaCAoVW5peCBwbGF0Zm9ybXMgb25seSlcbiIpOwog
I2VuZGlmCiAKICAgICBjbGVhbnVwR2xvYmFsRGF0YShnbG9iYWxEYXRhKTsKQEAgLTU1Myw2ICs1
NjcsMjQgQEAgc3RhdGljIHZvaWQgcGFyc2VBcmd1bWVudHMoaW50IGFyZ2MsIGNoYXIqKiBhcmd2
LCBDb21tYW5kTGluZSYgb3B0aW9ucywgSlNHbG9iYWwKICAgICBpbnQgaSA9IDE7CiAgICAgZm9y
ICg7IGkgPCBhcmdjOyArK2kpIHsKICAgICAgICAgY29uc3QgY2hhciogYXJnID0gYXJndltpXTsK
KyAgICAgICAgY29uc3QgY2hhciogbmV4dCA9IChpIDwgYXJnYykgPyBhcmd2W2krMV0gOiAwOwor
CisgICAgICAgIHN3aXRjaCAoT3B0aW9uczo6cGFyc2VDb21tYW5kTGluZUFyZyhhcmcsIG5leHQp
KSB7CisgICAgICAgIGNhc2UgT3B0aW9uczo6Tm9NYXRjaDoKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIE9wdGlvbnM6OkNvbnN1bWVkT25lQXJndW1lbnQ6CisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgY2FzZSBPcHRpb25zOjpDb25zdW1lZFR3b0FyZ3VtZW50czoKKyAg
ICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBjYXNlIE9wdGlv
bnM6Ok1pc3NpbmdWYWx1ZToKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRVJST1I6IE1p
c3NpbmcgdmFsdWUgZm9yIG9wdGlvbiAlcy5cbiIsIGFyZyk7CisgICAgICAgICAgICBleGl0KEVY
SVRfRkFJTFVSRSk7CisgICAgICAgIGNhc2UgT3B0aW9uczo6SW52YWxpZFZhbHVlOgorICAgICAg
ICAgICAgZnByaW50ZihzdGRlcnIsICJFUlJPUjogQmFkIHZhbHVlIGZvciBvcHRpb24gJXMuXG4i
LCBhcmcpOworICAgICAgICAgICAgZXhpdChFWElUX0ZBSUxVUkUpOworICAgICAgICB9CisKICAg
ICAgICAgaWYgKCFzdHJjbXAoYXJnLCAiLWYiKSkgewogICAgICAgICAgICAgaWYgKCsraSA9PSBh
cmdjKQogICAgICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1lbnQoZ2xvYmFsRGF0YSk7CkBA
IC01ODgsNiArNjIwLDggQEAgc3RhdGljIHZvaWQgcGFyc2VBcmd1bWVudHMoaW50IGFyZ2MsIGNo
YXIqKiBhcmd2LCBDb21tYW5kTGluZSYgb3B0aW9ucywgSlNHbG9iYWwKICAgICAgICAgfQogICAg
ICAgICBpZiAoIXN0cmNtcChhcmcsICItaCIpIHx8ICFzdHJjbXAoYXJnLCAiLS1oZWxwIikpCiAg
ICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KGdsb2JhbERhdGEsIHRydWUpOworICAgICAg
ICBpZiAoIXN0cmNtcChhcmcsICItLWhlbHAtZGVidWciKSkKKyAgICAgICAgICAgIHByaW50RGVi
dWdVc2FnZVN0YXRlbWVudChnbG9iYWxEYXRhKTsKICAgICAgICAgb3B0aW9ucy5zY3JpcHRzLmFw
cGVuZChTY3JpcHQodHJ1ZSwgYXJndltpXSkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcHRpb25zLmNwcAppbmRleCBiOGNhMWVjMTVmZWEzZGJmOGZhYzFiYWQxNzEx
NjI4NGNiMTA1MDBmLi43OTZiNjM1ZWVmY2RjNDg2YmE1ZmFlZDhkMWZiMDIzY2RkNmNhYWQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcApAQCAtMjcsMjQgKzI3
LDMzIEBACiAjaW5jbHVkZSAiT3B0aW9ucy5oIgogCiAjaW5jbHVkZSA8bGltaXRzPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9QYWdlQmxvY2suaD4KIAog
I2lmIE9TKERBUldJTikgJiYgRU5BQkxFKFBBUkFMTEVMX0dDKQogI2luY2x1ZGUgPHN5cy9zeXNj
dGwuaD4KICNlbmRpZgogCisvLyBUaGVyZSBpcyBsb3RzIG9mIGNvbmRpdGlvbmFsIGNvbXBpbGF0
aW9uIGdvaW5nIG9uIGhlcmUsIGFuZCBpdCBpcyB0b28gaGFyZCB0bworLy8gdHJhY2sgd2hpY2gg
c3RhdGljIGZ1bmN0aW9ucyB3aWxsIGJlIHVzZWQgb3Igbm90LiBJbnN0ZWFkLCBqdXN0IHRydXN0
IHRoZQorLy8gY29tcGlsZXIgdG8gbm90IGVtaXQgY29kZSBmb3IgdW51c2VkIHN0YXRpYyBmdW5j
dGlvbnMuCisjaWYgQ09NUElMRVIoR0NDKQorI2RlZmluZSBXVEZfVU5VU0VEIF9fYXR0cmlidXRl
KChfX3VudXNlZF9fKSkKKyNlbHNlCisjZGVmaW5lIFdURl9VTlVTRUQKKyNlbmRpZgorCiAvLyBT
ZXQgdG8gMSB0byBjb250cm9sIHRoZSBoZXVyaXN0aWNzIHVzaW5nIGVudmlyb25tZW50IHZhcmlh
Ymxlcy4KICNkZWZpbmUgRU5BQkxFX1JVTl9USU1FX0hFVVJJU1RJQ1MgMAogCiAjaWYgRU5BQkxF
KFJVTl9USU1FX0hFVVJJU1RJQ1MpCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRs
aWIuaD4KLSNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjZW5kaWYKIAogbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBPcHRpb25zIHsKIAotI2RlZmluZSBERUZJTkUodHlwZSwgY25hbWUs
IGRlZmF1bHRfdmFsKSB0eXBlIGNuYW1lOworI2RlZmluZSBERUZJTkUodHlwZSwgY25hbWUsIGRl
ZmF1bHRfdmFsLCBvcHRuYW1lKSB0eXBlIGNuYW1lOwogRk9SX0VBQ0hfT1BUSU9OKERFRklORSkK
ICN1bmRlZiBERUZJTkUKIApAQCAtODIsNDggKzkxLDE0OSBAQCBzdGF0aWMgdm9pZCBlbnN1cmVD
b25zaXN0ZW5jeSgpCiAgICAgQVNTRVJUKChzdGF0aWNfY2FzdDxpbnQ2NF90PihleGVjdXRpb25D
b3VudGVyVmFsdWVGb3JPcHRpbWl6ZUFmdGVyTG9uZ1dhcm1VcCkgPDwgcmVvcHRpbWl6YXRpb25S
ZXRyeUNvdW50ZXJNYXgpID49IHN0YXRpY19jYXN0PGludDY0X3Q+KHN0ZDo6bnVtZXJpY19saW1p
dHM8aW50MzJfdD46Om1pbigpKSk7CiB9CiAKLSNpZiBFTkFCTEUoUlVOX1RJTUVfSEVVUklTVElD
UykKLXN0YXRpYyBib29sIHBhcnNlKGNvbnN0IGNoYXIqIHN0cmluZywgaW50MzJfdCYgdmFsdWUp
CitzdGF0aWMgYm9vbCBwYXJzZShib29sJiB2YXJpYWJsZSwgU3RyaW5nIHZhbHVlKSBXVEZfVU5V
U0VEOworc3RhdGljIGJvb2wgcGFyc2UoYm9vbCYgdmFyaWFibGUsIFN0cmluZyB2YWx1ZSkKK3sK
KyAgICBib29sIG9rID0gdHJ1ZTsKKyAgICBpZiAodmFsdWUgPT0gInRydWUiIHx8IHZhbHVlID09
ICIxIikKKyAgICAgICAgdmFyaWFibGUgPSB0cnVlOworICAgIGVsc2UgaWYgKHZhbHVlID09ICJm
YWxzZSIgfHwgdmFsdWUgPT0gIjAiKQorICAgICAgICB2YXJpYWJsZSA9IGZhbHNlOworICAgIGVs
c2UKKyAgICAgICAgb2sgPSBmYWxzZTsKKyAgICByZXR1cm4gb2s7Cit9CisKK3N0YXRpYyBib29s
IHBhcnNlKHVuc2lnbmVkJiB2YXJpYWJsZSwgU3RyaW5nIHZhbHVlKQoreworICAgIGJvb2wgb2sg
PSB0cnVlOworICAgIHVuc2lnbmVkIHQgPSB2YWx1ZS50b1VJbnQoJm9rKTsKKyAgICBpZiAob2sp
CisgICAgICAgIHZhcmlhYmxlID0gdDsKKyAgICByZXR1cm4gb2s7Cit9CisKK3N0YXRpYyBib29s
IHBhcnNlKGludDMyX3QmIHZhcmlhYmxlLCBTdHJpbmcgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIHNz
Y2FuZihzdHJpbmcsICIlZCIsICZ2YWx1ZSkgPT0gMTsKKyAgICBib29sIG9rID0gdHJ1ZTsKKyAg
ICBpbnQzMl90IHQgPSB2YWx1ZS50b0ludCgmb2spOworICAgIGlmIChvaykKKyAgICAgICAgdmFy
aWFibGUgPSB0OworICAgIHJldHVybiBvazsKIH0KIAotc3RhdGljIGJvb2wgcGFyc2UoY29uc3Qg
Y2hhciogc3RyaW5nLCB1bnNpZ25lZCYgdmFsdWUpCitzdGF0aWMgYm9vbCBwYXJzZShkb3VibGUm
IHZhcmlhYmxlLCBTdHJpbmcgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIHNzY2FuZihzdHJpbmcsICIl
dSIsICZ2YWx1ZSkgPT0gMTsKKyAgICBib29sIG9rID0gdHJ1ZTsKKyAgICBkb3VibGUgdCA9IHZh
bHVlLnRvRG91YmxlKCZvayk7CisgICAgaWYgKG9rKQorICAgICAgICB2YXJpYWJsZSA9IHQ7Cisg
ICAgcmV0dXJuIG9rOwogfQogCi1zdGF0aWMgYm9vbCBwYXJzZShjb25zdCBjaGFyKiBzdHJpbmcs
IGRvdWJsZSYgdmFsdWUpCitzdGF0aWMgYm9vbCBwYXJzZUZsYWcoYm9vbCYgdmFyaWFibGUsIFN0
cmluZyBvcHRpb24sIGNvbnN0IGNoYXIgKmVuYWJsZSwgY29uc3QgY2hhciAqZGlzYWJsZSkgV1RG
X1VOVVNFRDsKK3N0YXRpYyBib29sIHBhcnNlRmxhZyhib29sJiB2YXJpYWJsZSwgU3RyaW5nIG9w
dGlvbiwgY29uc3QgY2hhciAqZW5hYmxlLCBjb25zdCBjaGFyICpkaXNhYmxlKQoreworICAgIGlm
IChvcHRpb24gPT0gZW5hYmxlKQorICAgICAgICB2YXJpYWJsZSA9IHRydWU7CisgICAgZWxzZSBp
ZiAob3B0aW9uID09IGRpc2FibGUpCisgICAgICAgIHZhcmlhYmxlID0gZmFsc2U7CisgICAgZWxz
ZQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CitzdGF0aWMgYm9v
bCBwYXJzZUZsYWcodW5zaWduZWQmIHZhcmlhYmxlLCBTdHJpbmcgb3B0aW9uLCBjb25zdCBjaGFy
ICplbmFibGUsIGNvbnN0IGNoYXIgKmRpc2FibGUpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQor
c3RhdGljIGJvb2wgcGFyc2VGbGFnKGludDMyX3QmIHZhcmlhYmxlLCBTdHJpbmcgb3B0aW9uLCBj
b25zdCBjaGFyICplbmFibGUsIGNvbnN0IGNoYXIgKmRpc2FibGUpCit7CisgICAgcmV0dXJuIGZh
bHNlOworfQorc3RhdGljIGJvb2wgcGFyc2VGbGFnKGRvdWJsZSYgdmFyaWFibGUsIFN0cmluZyBv
cHRpb24sIGNvbnN0IGNoYXIgKmVuYWJsZSwgY29uc3QgY2hhciAqZGlzYWJsZSkKK3sKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisgICAgCitzdGF0aWMgY29uc3QgY2hhciAqYXJnUHJlZml4ID0gIi0t
IjsKKworT3B0aW9uUGFyc2VTdGF0dXMgcGFyc2VDb21tYW5kTGluZUFyZyhjb25zdCBjaGFyICpj
X2FyZywgY29uc3QgY2hhciAqY19uZXh0KQogewotICAgIHJldHVybiBzc2NhbmYoc3RyaW5nLCAi
JWxmIiwgJnZhbHVlKSA9PSAxOworICAgIFN0cmluZyBhcmcoY19hcmcpOworCisgICAgaWYgKCFh
cmcuc3RhcnRzV2l0aChhcmdQcmVmaXgpKQorICAgICAgICByZXR1cm4gTm9NYXRjaDsKKworICAg
IFN0cmluZyBvcHRpb24gPSBhcmcuc3Vic3RyaW5nKHN0cmxlbihhcmdQcmVmaXgpLCBhcmcubGVu
Z3RoKCkpOworICAgIFN0cmluZyB2YWx1ZTsKKyAgICBPcHRpb25QYXJzZVN0YXR1cyBzdWNjZXNz
LCBmYWlsdXJlOworCisjZGVmaW5lIFBBUlNFX0ZMQUcodHlwZSwgY25hbWUsIGRlZmF1bHRfdmFs
LCBvcHRuYW1lKSAgICAgICBcCisgICAgaWYgKHBhcnNlRmxhZyhjbmFtZSwgb3B0aW9uLCBvcHRu
YW1lLCAibm8tIiBvcHRuYW1lKSkgeyBcCisgICAgICAgIGVuc3VyZUNvbnNpc3RlbmN5KCk7ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBDb25zdW1lZE9u
ZUFyZ3VtZW50OyAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfQorICAgIEZPUl9FQUNI
X09QVElPTihQQVJTRV9GTEFHKTsKKyN1bmRlZiBQQVJTRV9GTEFHCisKKyAgICBzaXplX3QgZXF1
YWxzUG9zaXRpb24gPSBvcHRpb24uZmluZCgnPScpOworICAgIGlmIChlcXVhbHNQb3NpdGlvbiA8
IG9wdGlvbi5sZW5ndGgoKSkgeworICAgICAgICBzdWNjZXNzID0gQ29uc3VtZWRPbmVBcmd1bWVu
dDsKKyAgICAgICAgZmFpbHVyZSA9IEludmFsaWRWYWx1ZTsKKyAgICAgICAgdmFsdWUgPSBvcHRp
b24uc3Vic3RyaW5nKGVxdWFsc1Bvc2l0aW9uICsgMSwgb3B0aW9uLmxlbmd0aCgpKTsKKyAgICAg
ICAgb3B0aW9uID0gb3B0aW9uLnN1YnN0cmluZygwLCBlcXVhbHNQb3NpdGlvbik7CisgICAgfSBl
bHNlIGlmIChjX25leHQpIHsKKyAgICAgICAgc3VjY2VzcyA9IENvbnN1bWVkVHdvQXJndW1lbnRz
OworICAgICAgICBmYWlsdXJlID0gSW52YWxpZFZhbHVlOworICAgICAgICB2YWx1ZSA9IGNfbmV4
dDsKKyAgICB9IGVsc2UgeworICAgICAgICBzdWNjZXNzID0gQ29uc3VtZWRPbmVBcmd1bWVudDsK
KyAgICAgICAgZmFpbHVyZSA9IE1pc3NpbmdWYWx1ZTsKKyAgICB9CisKKyNkZWZpbmUgUEFSU0Uo
dHlwZSwgY25hbWUsIGRlZmF1bHRfdmFsLCBvcHRuYW1lKSBcCisgICAgaWYgKG9wdGlvbiA9PSBv
cHRuYW1lKSB7ICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAocGFyc2UoY25hbWUs
IHZhbHVlKSkgeyAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGVuc3VyZUNvbnNpc3RlbmN5
KCk7ICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICByZXR1cm4gc3VjY2VzczsgICAgICAg
ICAgICAgICAgICAgICAgXAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIGZhaWx1cmU7ICAgICAgICAgICAgICAgICAgICAg
ICAgICBcCisgICAgfQorICAgIEZPUl9FQUNIX09QVElPTihQQVJTRSk7CisjdW5kZWYgUEFSU0UK
KworICAgIHJldHVybiBOb01hdGNoOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBVPgotdm9pZCBzZXRIZXVyaXN0aWMoVCYgdmFyaWFibGUsIGNvbnN0IGNoYXIqIG5hbWUsIFUg
dmFsdWUpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgordm9pZCBzZXRGcm9tRW52aXJvbm1lbnQoVCYg
dmFyaWFibGUsIGNvbnN0IGNoYXIqIG5hbWUpCiB7CisjaWYgRU5BQkxFKFJVTl9USU1FX0hFVVJJ
U1RJQ1MpCiAgICAgY29uc3QgY2hhciogc3RyaW5nVmFsdWUgPSBnZXRlbnYobmFtZSk7Ci0gICAg
aWYgKCFzdHJpbmdWYWx1ZSkgewotICAgICAgICB2YXJpYWJsZSA9IHNhZmVDYXN0PFQ+KHZhbHVl
KTsKKyAgICBpZiAoIXN0cmluZ1ZhbHVlKQogICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIAot
ICAgIGlmIChwYXJzZShzdHJpbmdWYWx1ZSwgdmFyaWFibGUpKQorICAgIGlmIChwYXJzZSh2YXJp
YWJsZSwgc3RyaW5nVmFsdWUpKQogICAgICAgICByZXR1cm47Ci0gICAgCiAgICAgZnByaW50Zihz
dGRlcnIsICJXQVJOSU5HOiBmYWlsZWQgdG8gcGFyc2UgJXM9JXNcbiIsIG5hbWUsIHN0cmluZ1Zh
bHVlKTsKLSAgICB2YXJpYWJsZSA9IHNhZmVDYXN0PFQ+KHZhbHVlKTsKLX0KLQotI2RlZmluZSBT
RVQodmFyaWFibGUsIHZhbHVlKSBzZXRIZXVyaXN0aWModmFyaWFibGUsICJKU0NfIiAjdmFyaWFi
bGUsIHZhbHVlKQotI2Vsc2UKLSNkZWZpbmUgU0VUKHZhcmlhYmxlLCB2YWx1ZSkgdmFyaWFibGUg
PSB2YWx1ZQogI2VuZGlmCit9CiAKK3N0YXRpYyB2b2lkIHNldE9wdGlvbnNGcm9tRW52aXJvbm1l
bnQoKQoreworI2RlZmluZSBTRVRfRlJPTV9FTlYodHlwZSwgY25hbWUsIGRlZmF1bHRfdmFsLCBv
cHRuYW1lKSBcCisgICAgc2V0RnJvbUVudmlyb25tZW50KGNuYW1lLCAjY25hbWUpOworICAgIEZP
Ul9FQUNIX09QVElPTihTRVRfRlJPTV9FTlYpOworI3VuZGVmIFNFVF9GUk9NX0VOVgorfQorICAg
ICAgICAgICAgCiB2b2lkIGluaXRpYWxpemVPcHRpb25zKCkKIHsKLSNkZWZpbmUgSU5JVCh0eXBl
LCBjbmFtZSwgZGVmYXVsdF92YWwpIFNFVChjbmFtZSwgZGVmYXVsdF92YWwpOwotICAgIEZPUl9F
QUNIX09QVElPTihJTklUKQotI3VuZGVmIElOSVQKKyNkZWZpbmUgSU5JVF9ERUZBVUxUKHR5cGUs
IGNuYW1lLCBkZWZhdWx0X3ZhbCwgb3B0bmFtZSkgXAorICAgIGNuYW1lID0gZGVmYXVsdF92YWw7
CisgICAgRk9SX0VBQ0hfT1BUSU9OKElOSVRfREVGQVVMVCkKKyN1bmRlZiBJTklUX0RFRkFVTFQK
KworICAgIHNldE9wdGlvbnNGcm9tRW52aXJvbm1lbnQoKTsKIAogICAgIC8vIE5vdyB3ZSBpbml0
aWFsaXplIGhldXJpc3RpY3Mgd2hvc2UgZGVmYXVsdHMgYXJlIG5vdCBrbm93biBhdAogICAgIC8v
IGNvbXBpbGUtdGltZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L09wdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAppbmRl
eCA2YzFmYjA5OTA5YzUzNjVhYmZkNDgzNTViMjZjYWY1MjZiMTI0NmViLi5kNWZjMzg1MGZlZDA4
NGYwZTI5Y2UxNWM1NjQ5ZGIxM2EwOGVjMTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PcHRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9ucy5oCkBAIC0zNyw1OSArMzcsMTA1IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgT3B0aW9ucyB7CiAvLyB0YWtlIHNsb3cgY2FzZSwgZm9yIGV4YW1wbGUgZm9yIGxpbmtpbmcg
b3IgY2FjaGluZy4KIAogI2RlZmluZSBGT1JfRUFDSF9IRVVSSVNUSUMobSkgXAotICAgIG0odW5z
aWduZWQsIG1heGltdW1PcHRpbWl6YXRpb25DYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50LCAxMDAw
KSBcCisgICAgbSh1bnNpZ25lZCwgbWF4aW11bU9wdGltaXphdGlvbkNhbmRpZGF0ZUluc3RydWN0
aW9uQ291bnQsIDEwMDAsIFwKKyAgICAgICJtYXhpbXVtLW9wdGltaXphdGlvbi1jYW5kaWRhdGUt
aW5zdHJ1Y3Rpb24tY291bnQiKSBcCiAgICAgXAotICAgIG0odW5zaWduZWQsIG1heGltdW1GdW5j
dGlvbkZvckNhbGxJbmxpbmVDYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50LCAxNTApIFwKLSAgICBt
KHVuc2lnbmVkLCBtYXhpbXVtRnVuY3Rpb25Gb3JDb25zdHJ1Y3RJbmxpbmVDYW5kaWRhdGVJbnN0
cnVjdGlvbkNvdW50LCA4MCkgXAorICAgIG0odW5zaWduZWQsIG1heGltdW1GdW5jdGlvbkZvckNh
bGxJbmxpbmVDYW5kaWRhdGVJbnN0cnVjdGlvbkNvdW50LCAxNTAsIFwKKyAgICAgICJtYXhpbXVt
LWZ1bmN0aW9uLWZvci1jYWxsLWlubGluZS1jYW5kaWRhdGUtaW5zdHJ1Y3Rpb24tY291bnQiKSBc
CisgICAgbSh1bnNpZ25lZCwgbWF4aW11bUZ1bmN0aW9uRm9yQ29uc3RydWN0SW5saW5lQ2FuZGlk
YXRlSW5zdHJ1Y3Rpb25Db3VudCwgODAsIFwKKyAgICAgICJtYXhpbXVtLWZ1bmN0aW9uLWZvci1j
b25zdHJ1Y3QtaW5saW5lLWNhbmRpZGF0ZS1pbnN0cnVjdGlvbi1jb3VudCIpIFwKICAgICBcCi0g
ICAgbSh1bnNpZ25lZCwgbWF4aW11bUlubGluaW5nRGVwdGgsIDUpICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAorICAgIG0odW5zaWduZWQsIG1heGltdW1JbmxpbmluZ0RlcHRoLCA1LCBc
CisgICAgICAibWF4aW11bS1pbmxpbmluZy1kZXB0aCIpIFwKICAgICBcCi0gICAgbShpbnQzMl90
LCBleGVjdXRpb25Db3VudGVyVmFsdWVGb3JPcHRpbWl6ZUFmdGVyV2FybVVwLCAgICAgIC0xMDAw
KSBcCi0gICAgbShpbnQzMl90LCBleGVjdXRpb25Db3VudGVyVmFsdWVGb3JPcHRpbWl6ZUFmdGVy
TG9uZ1dhcm1VcCwgIC01MDAwKSBcCi0gICAgbShpbnQzMl90LCBleGVjdXRpb25Db3VudGVyVmFs
dWVGb3JEb250T3B0aW1pemVBbnl0aW1lU29vbiwgIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJf
dD46Om1pbigpKSBcCi0gICAgbShpbnQzMl90LCBleGVjdXRpb25Db3VudGVyVmFsdWVGb3JPcHRp
bWl6ZVNvb24sICAgICAgICAgICAgIC0xMDAwKSBcCi0gICAgbShpbnQzMl90LCBleGVjdXRpb25D
b3VudGVyVmFsdWVGb3JPcHRpbWl6ZU5leHRJbnZvY2F0aW9uLCAgIDApIFwKKyAgICBtKGludDMy
X3QsIGV4ZWN1dGlvbkNvdW50ZXJWYWx1ZUZvck9wdGltaXplQWZ0ZXJXYXJtVXAsICAgICAgLTEw
MDAsIFwKKyAgICAgICJleGVjdXRpb24tY291bnRlci12YWx1ZS1mb3Itb3B0aW1pemUtYWZ0ZXIt
d2FybS11cCIpIFwKKyAgICBtKGludDMyX3QsIGV4ZWN1dGlvbkNvdW50ZXJWYWx1ZUZvck9wdGlt
aXplQWZ0ZXJMb25nV2FybVVwLCAgLTUwMDAsIFwKKyAgICAgICJleGVjdXRpb24tY291bnRlci12
YWx1ZS1mb3Itb3B0aW1pemUtYWZ0ZXItbG9uZy13YXJtLXVwIikgXAorICAgIG0oaW50MzJfdCwg
ZXhlY3V0aW9uQ291bnRlclZhbHVlRm9yRG9udE9wdGltaXplQW55dGltZVNvb24sICBzdGQ6Om51
bWVyaWNfbGltaXRzPGludDMyX3Q+OjptaW4oKSwgXAorICAgICAgImV4ZWN1dGlvbi1jb3VudGVy
LXZhbHVlLWZvci1kb250LW9wdGltaXplLWFueXRpbWUtc29vbiIpIFwKKyAgICBtKGludDMyX3Qs
IGV4ZWN1dGlvbkNvdW50ZXJWYWx1ZUZvck9wdGltaXplU29vbiwgICAgICAgICAgICAgLTEwMDAs
IFwKKyAgICAgICJleGVjdXRpb24tY291bnRlci12YWx1ZS1mb3Itb3B0aW1pemUtc29vbiIpIFwK
KyAgICBtKGludDMyX3QsIGV4ZWN1dGlvbkNvdW50ZXJWYWx1ZUZvck9wdGltaXplTmV4dEludm9j
YXRpb24sICAgMCwgXAorICAgICAgImV4ZWN1dGlvbi1jb3VudGVyLXZhbHVlLWZvci1vcHRpbWl6
ZS1uZXh0LWludm9jYXRpb24iKSBcCiAgICAgXAotICAgIG0oaW50MzJfdCwgZXhlY3V0aW9uQ291
bnRlckluY3JlbWVudEZvckxvb3AsICAgICAgIDEpIFwKLSAgICBtKGludDMyX3QsIGV4ZWN1dGlv
bkNvdW50ZXJJbmNyZW1lbnRGb3JSZXR1cm4sICAgICAxNSkgXAorICAgIG0oaW50MzJfdCwgZXhl
Y3V0aW9uQ291bnRlckluY3JlbWVudEZvckxvb3AsICAgICAgIDEsIFwKKyAgICAgICJleGVjdXRp
b24tY291bnRlci1pbmNyZW1lbnQtZm9yLWxvb3AiKSBcCisgICAgbShpbnQzMl90LCBleGVjdXRp
b25Db3VudGVySW5jcmVtZW50Rm9yUmV0dXJuLCAgICAgMTUsIFwKKyAgICAgICJleGVjdXRpb24t
Y291bnRlci1pbmNyZW1lbnQtZm9yLXJldHVybiIpIFwKICAgICBcCi0gICAgbSh1bnNpZ25lZCwg
ZGVzaXJlZFNwZWN1bGF0aXZlU3VjY2Vzc0ZhaWxSYXRpbywgICAgNikgXAorICAgIG0odW5zaWdu
ZWQsIGRlc2lyZWRTcGVjdWxhdGl2ZVN1Y2Nlc3NGYWlsUmF0aW8sICAgIDYsIFwKKyAgICAgICJk
ZXNpcmVkLXNwZWN1bGF0aXZlLXN1Y2Nlc3MtZmFpbC1yYXRpbyIpIFwKICAgICBcCi0gICAgbShk
b3VibGUsICAgbGlrZWx5VG9UYWtlU2xvd0Nhc2VUaHJlc2hvbGQsICAgICAgICAgMC4xNSkgXAot
ICAgIG0oZG91YmxlLCAgIGNvdWxkVGFrZVNsb3dDYXNlVGhyZXNob2xkLCAgICAgICAgICAgIDAu
MDUpIFwKLSAgICBtKHVuc2lnbmVkLCBsaWtlbHlUb1Rha2VTbG93Q2FzZU1pbmltdW1Db3VudCwg
ICAgICAxMDApIFwKLSAgICBtKHVuc2lnbmVkLCBjb3VsZFRha2VTbG93Q2FzZU1pbmltdW1Db3Vu
dCwgICAgICAgICAxMCkgXAorICAgIG0oZG91YmxlLCBsaWtlbHlUb1Rha2VTbG93Q2FzZVRocmVz
aG9sZCwgICAgICAgICAgIDAuMTUsIFwKKyAgICAgICJsaWtlbHktdG8tdGFrZS1zbG93LWNhc2Ut
dGhyZXNob2xkIikgXAorICAgIG0oZG91YmxlLCBjb3VsZFRha2VTbG93Q2FzZVRocmVzaG9sZCwg
ICAgICAgICAgICAgIDAuMDUsIFwKKyAgICAgICJjb3VsZC10YWtlLXNsb3ctY2FzZS10aHJlc2hv
bGQiKSBcCisgICAgbSh1bnNpZ25lZCwgbGlrZWx5VG9UYWtlU2xvd0Nhc2VNaW5pbXVtQ291bnQs
ICAgICAgMTAwLCBcCisgICAgICAibGlrZWx5LXRvLXRha2Utc2xvdy1jYXNlLW1pbmltdW0tY291
bnQiKSBcCisgICAgbSh1bnNpZ25lZCwgY291bGRUYWtlU2xvd0Nhc2VNaW5pbXVtQ291bnQsICAg
ICAgICAgMTAsIFwKKyAgICAgICJjb3VsZC10YWtlLXNsb3ctY2FzZS1taW5pbXVtLWNvdW50Iikg
XAogICAgIFwKLSAgICBtKGRvdWJsZSwgICBvc3JFeGl0UHJvbWluZW5jZUZvckZyZXF1ZW50RXhp
dFNpdGUsICAwLjMpIFwKKyAgICBtKGRvdWJsZSwgICBvc3JFeGl0UHJvbWluZW5jZUZvckZyZXF1
ZW50RXhpdFNpdGUsICAwLjMsIFwKKyAgICAgICJvc3ItZXhpdC1wcm9taW5lbmNlLWZvci1mcmVx
dWVudC1leGl0LXNpdGUiKSBcCiAgICAgXAotICAgIG0odW5zaWduZWQsIGxhcmdlRmFpbENvdW50
VGhyZXNob2xkQmFzZSwgICAgICAgICAgIDIwKSBcCi0gICAgbSh1bnNpZ25lZCwgbGFyZ2VGYWls
Q291bnRUaHJlc2hvbGRCYXNlRm9yTG9vcCwgICAgMSkgXAorICAgIG0odW5zaWduZWQsIGxhcmdl
RmFpbENvdW50VGhyZXNob2xkQmFzZSwgICAgICAgICAgIDIwLCBcCisgICAgICAibGFyZ2UtZmFp
bC1jb3VudC10aHJlc2hvbGQtYmFzZSIpIFwKKyAgICBtKHVuc2lnbmVkLCBsYXJnZUZhaWxDb3Vu
dFRocmVzaG9sZEJhc2VGb3JMb29wLCAgICAxLCBcCisgICAgICAibGFyZ2UtZmFpbC1jb3VudC10
aHJlc2hvbGQtYmFzZS1mb3ItbG9vcCIpIFwKICAgICBcCi0gICAgbSh1bnNpZ25lZCwgcmVvcHRp
bWl6YXRpb25SZXRyeUNvdW50ZXJNYXgsICAgICAgICAgMzApIFwKLSAgICBtKHVuc2lnbmVkLCBy
ZW9wdGltaXphdGlvblJldHJ5Q291bnRlclN0ZXAsICAgICAgICAxKSBcCisgICAgbSh1bnNpZ25l
ZCwgcmVvcHRpbWl6YXRpb25SZXRyeUNvdW50ZXJNYXgsICAgICAgICAgMzAsIFwKKyAgICAgICJy
ZW9wdGltaXphdGlvbi1yZXRyeS1jb3VudGVyLW1heCIpIFwKKyAgICBtKHVuc2lnbmVkLCByZW9w
dGltaXphdGlvblJldHJ5Q291bnRlclN0ZXAsICAgICAgICAxLCBcCisgICAgICAicmVvcHRpbWl6
YXRpb24tcmV0cnktY291bnRlci1zdGVwIikgXAogICAgIFwKLSAgICBtKHVuc2lnbmVkLCBtaW5p
bXVtT3B0aW1pemF0aW9uRGVsYXksICAgICAgICAgICAgICAxKSBcCi0gICAgbSh1bnNpZ25lZCwg
bWF4aW11bU9wdGltaXphdGlvbkRlbGF5LCAgICAgICAgICAgICAgNSkgXAotICAgIG0oZG91Ymxl
LCBkZXNpcmVkUHJvZmlsZUxpdmVuZXNzUmF0ZSwgICAgICAgICAgICAgIDAuNzUpIFwKLSAgICBt
KGRvdWJsZSwgZGVzaXJlZFByb2ZpbGVGdWxsbmVzc1JhdGUsICAgICAgICAgICAgICAwLjM1KSBc
CisgICAgbSh1bnNpZ25lZCwgbWluaW11bU9wdGltaXphdGlvbkRlbGF5LCAgICAgICAgICAgICAg
MSwgXAorICAgICAgIm1pbmltdW0tb3B0aW1pemF0aW9uLWRlbGF5IikgXAorICAgIG0odW5zaWdu
ZWQsIG1heGltdW1PcHRpbWl6YXRpb25EZWxheSwgICAgICAgICAgICAgIDUsIFwKKyAgICAgICJt
YXhpbXVtLW9wdGltaXphdGlvbi1kZWxheSIpIFwKKyAgICBtKGRvdWJsZSwgZGVzaXJlZFByb2Zp
bGVMaXZlbmVzc1JhdGUsICAgICAgICAgICAgICAwLjc1LCBcCisgICAgICAiZGVzaXJlZC1wcm9m
aWxlLWxpdmVuZXNzLXJhdGUiKSBcCisgICAgbShkb3VibGUsIGRlc2lyZWRQcm9maWxlRnVsbG5l
c3NSYXRlLCAgICAgICAgICAgICAgMC4zNSwgXAorICAgICAgImRlc2lyZWQtcHJvZmlsZS1mdWxs
bmVzcy1yYXRlIikgXAogICAgIFwKLSAgICBtKGRvdWJsZSwgICBkb3VibGVWb3RlUmF0aW9Gb3JE
b3VibGVGb3JtYXQsICAgICAgICAyKSBcCisgICAgbShkb3VibGUsICAgZG91YmxlVm90ZVJhdGlv
Rm9yRG91YmxlRm9ybWF0LCAgICAgICAgMiwgXAorICAgICAgImRvdWJsZS12b3RlLXJhdGlvLWZv
ci1kb3VibGUtZm9ybWF0IikgXAogICAgIFwKLSAgICBtKHVuc2lnbmVkLCBtaW5pbXVtTnVtYmVy
T2ZTY2Fuc0JldHdlZW5SZWJhbGFuY2UsICAxMDAwMCkgXAotICAgIG0odW5zaWduZWQsIGdjTWFy
a1N0YWNrU2VnbWVudFNpemUsICAgICAgICAgICAgICAgIDApIFwKLSAgICBtKHVuc2lnbmVkLCBt
aW5pbXVtTnVtYmVyT2ZDZWxsc1RvS2VlcCwgICAgICAgICAgICAxMCkgXAotICAgIG0odW5zaWdu
ZWQsIG1heGltdW1OdW1iZXJPZlNoYXJlZFNlZ21lbnRzLCAgICAgICAgIDMpIFwKLSAgICBtKHVu
c2lnbmVkLCBzaGFyZWRTdGFja1dha2V1cFRocmVzaG9sZCwgICAgICAgICAgICAxKSBcCi0gICAg
bSh1bnNpZ25lZCwgbnVtYmVyT2ZHQ01hcmtlcnMsICAgICAgICAgICAgICAgICAgICAgMCkgXAot
ICAgIG0odW5zaWduZWQsIG9wYXF1ZVJvb3RNZXJnZVRocmVzaG9sZCwgICAgICAgICAgICAgIDEw
MDApCisgICAgbSh1bnNpZ25lZCwgbWluaW11bU51bWJlck9mU2NhbnNCZXR3ZWVuUmViYWxhbmNl
LCAgMTAwMDAsIFwKKyAgICAgICJtaW5pbXVtLW51bWJlci1vZi1zY2Fucy1iZXR3ZWVuLXJlYmFs
YW5jZSIpIFwKKyAgICBtKHVuc2lnbmVkLCBnY01hcmtTdGFja1NlZ21lbnRTaXplLCAgICAgICAg
ICAgICAgICAwLCBcCisgICAgICAiZ2MtbWFyay1zdGFjay1zZWdtZW50LXNpemUiKSBcCisgICAg
bSh1bnNpZ25lZCwgbWluaW11bU51bWJlck9mQ2VsbHNUb0tlZXAsICAgICAgICAgICAgMTAsIFwK
KyAgICAgICJtaW5pbXVtLW51bWJlci1vZi1jZWxscy10by1rZWVwIikgXAorICAgIG0odW5zaWdu
ZWQsIG1heGltdW1OdW1iZXJPZlNoYXJlZFNlZ21lbnRzLCAgICAgICAgIDMsIFwKKyAgICAgICJt
YXhpbXVtLW51bWJlci1vZi1zaGFyZWQtc2VnbWVudHMiKSBcCisgICAgbSh1bnNpZ25lZCwgc2hh
cmVkU3RhY2tXYWtldXBUaHJlc2hvbGQsICAgICAgICAgICAgMSwgXAorICAgICAgInNoYXJlZC1z
dGFjay13YWtldXAtdGhyZXNob2xkIikgXAorICAgIG0odW5zaWduZWQsIG51bWJlck9mR0NNYXJr
ZXJzLCAgICAgICAgICAgICAgICAgICAgIDAsIFwKKyAgICAgICJudW1iZXItb2YtZ2MtbWFya2Vy
cyIpIFwKKyAgICBtKHVuc2lnbmVkLCBvcGFxdWVSb290TWVyZ2VUaHJlc2hvbGQsICAgICAgICAg
ICAgICAxMDAwLCBcCisgICAgICAib3BhcXVlLXJvb3QtbWVyZ2UtdGhyZXNob2xkIikKIAogI2Rl
ZmluZSBGT1JfRUFDSF9PUFRJT04obSkgXAogICAgIEZPUl9FQUNIX0hFVVJJU1RJQyhtKQogCi0j
ZGVmaW5lIERFQ0xBUkUodHlwZSwgY25hbWUsIGRlZmF1bHRfdmFsKSBleHRlcm4gdHlwZSBjbmFt
ZTsKKyNkZWZpbmUgREVDTEFSRSh0eXBlLCBjbmFtZSwgZGVmYXVsdF92YWwsIG9wdG5hbWUpIGV4
dGVybiB0eXBlIGNuYW1lOwogRk9SX0VBQ0hfT1BUSU9OKERFQ0xBUkUpCiAjdW5kZWYgREVDTEFS
RQogCitlbnVtIE9wdGlvblBhcnNlU3RhdHVzIHsKKyAgICBOb01hdGNoLAorICAgIENvbnN1bWVk
T25lQXJndW1lbnQsCisgICAgQ29uc3VtZWRUd29Bcmd1bWVudHMsCisgICAgTWlzc2luZ1ZhbHVl
LAorICAgIEludmFsaWRWYWx1ZQorfTsKKyAgICAKKy8vIFNldCBhIEpTQyBydW4tdGltZSBvcHRp
b24gZnJvbSBhIGNvbW1hbmQtbGluZSBhcmd1bWVudC4gQm90aCBgLS1mb28gYmFyJyBhbmQKKy8v
IGAtLWZvbz1iYXInIGZvcm1zIGFyZSBzdXBwb3J0ZWQuCisvLworT3B0aW9uUGFyc2VTdGF0dXMg
cGFyc2VDb21tYW5kTGluZUFyZyhjb25zdCBjaGFyICphcmcsIGNvbnN0IGNoYXIgKm5leHQpOwor
CiB2b2lkIGluaXRpYWxpemVPcHRpb25zKCk7CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpPcHRp
b25zCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>