<?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>84449</bug_id>
          
          <creation_ts>2012-04-20 07:17:02 -0700</creation_ts>
          <short_desc>DFG JIT is not ARM EABI compatible</short_desc>
          <delta_ts>2012-05-14 08:34:57 -0700</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>Other</rep_platform>
          <op_sys>Other</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yong Li">yong.li.webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>hojong.han</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>oliver</cc>
    
    <cc>staikos</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>606564</commentid>
    <comment_count>0</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-04-20 07:17:02 -0700</bug_when>
    <thetext>EABI requies that 64-bit integer when being passed as argument must start at an even number register (r0-r1 or r2-r3). But current DFG JIT doesn&apos;t take care of this, and assumes 64-bit integer can be passed through r1, r2.

I have a patch to work around this issue (will submit it soon). But that looks ugly. Any idea about a neat solution?

Also I don&apos;t see DFG boosts performance on sunspider. Actually DFG gives worse result. Any idea about this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606570</commentid>
    <comment_count>1</comment_count>
      <attachid>138093</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-04-20 07:36:51 -0700</bug_when>
    <thetext>Created attachment 138093
the ugly work around

EncodedJSValue is 64-bit integer for JSVALUE32_64. When being passed as argument, an EncodedJSValue is aligned to r0 or r2.

iOS may have its own EABI...

One solution may be splitting EncodedJSValue arguments into 32-bit integers for those DFG operation calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607282</commentid>
    <comment_count>2</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-04-21 15:42:42 -0700</bug_when>
    <thetext>Interesting, looking at the iOS developer docs, this may be a difference on iOS:

http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARMv6FunctionCallingConventions.html#//apple_ref/doc/uid/TP40009021-SW1

    * Large data types (larger than 4 bytes) are 4-byte aligned.

We don&apos;t want to have to duplicate all these method to have two signatures, I guess we could provide a set of wrappers on non-iOS ARM, but the cleanest approach may just be to fix the callOperation interface to align the arguments correctly.  If this degrades performance (by moving augments from registers to the stack) we can always change the order of args to functions affected to compensate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612678</commentid>
    <comment_count>3</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-04-30 09:01:19 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Interesting, looking at the iOS developer docs, this may be a difference on iOS:
&gt; 
&gt; http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARMv6FunctionCallingConventions.html#//apple_ref/doc/uid/TP40009021-SW1
&gt; 
&gt;     * Large data types (larger than 4 bytes) are 4-byte aligned.
&gt; 
&gt; We don&apos;t want to have to duplicate all these method to have two signatures, I guess we could provide a set of wrappers on non-iOS ARM, but the cleanest approach may just be to fix the callOperation interface to align the arguments correctly.  If this degrades performance (by moving augments from registers to the stack) we can always change the order of args to functions affected to compensate.

So how about the patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612704</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-04-30 09:41:20 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; Interesting, looking at the iOS developer docs, this may be a difference on iOS:
&gt; &gt; 
&gt; &gt; http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARMv6FunctionCallingConventions.html#//apple_ref/doc/uid/TP40009021-SW1
&gt; &gt; 
&gt; &gt;     * Large data types (larger than 4 bytes) are 4-byte aligned.
&gt; &gt; 
&gt; &gt; We don&apos;t want to have to duplicate all these method to have two signatures, I guess we could provide a set of wrappers on non-iOS ARM, but the cleanest approach may just be to fix the callOperation interface to align the arguments correctly.  If this degrades performance (by moving augments from registers to the stack) we can always change the order of args to functions affected to compensate.
&gt; 
&gt; So how about the patch?

I like the general approach of your patch.  Let me know when it&apos;s ready to be reviewed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612733</commentid>
    <comment_count>5</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-04-30 10:41:29 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; 
&gt; &gt; So how about the patch?
&gt; 
&gt; I like the general approach of your patch.  Let me know when it&apos;s ready to be reviewed.

Thanks. Sure I&apos;ll upload a ready-for-review patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612898</commentid>
    <comment_count>6</comment_count>
      <attachid>139506</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-04-30 13:21:21 -0700</bug_when>
    <thetext>Created attachment 139506
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612901</commentid>
    <comment_count>7</comment_count>
      <attachid>139506</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-04-30 13:22:55 -0700</bug_when>
    <thetext>Comment on attachment 139506
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=139506&amp;action=review

&gt; Source/JavaScriptCore/dfg/DFGOperations.cpp:102
&gt; +// EncodedJSValue in JSVALUE32_64 is a 64-bit integer. When being compiled in ARM EABI, it must be aligned even-numbered register (r0, r2 or [sp]).

Hm... should be &quot;aligned to&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622666</commentid>
    <comment_count>8</comment_count>
      <attachid>139506</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-05-13 22:47:53 -0700</bug_when>
    <thetext>Comment on attachment 139506
the patch

R=me.  Sorry it took so long to review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622668</commentid>
    <comment_count>9</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-05-13 22:48:15 -0700</bug_when>
    <thetext>*** Bug 86335 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622965</commentid>
    <comment_count>10</comment_count>
      <attachid>139506</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2012-05-14 07:41:52 -0700</bug_when>
    <thetext>Comment on attachment 139506
the patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623011</commentid>
    <comment_count>11</comment_count>
      <attachid>139506</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-14 08:34:51 -0700</bug_when>
    <thetext>Comment on attachment 139506
the patch

Clearing flags on attachment: 139506

Committed r116951: &lt;http://trac.webkit.org/changeset/116951&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623012</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-14 08:34:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138093</attachid>
            <date>2012-04-20 07:36:51 -0700</date>
            <delta_ts>2012-04-30 13:21:21 -0700</delta_ts>
            <desc>the ugly work around</desc>
            <filename>dfgarmeabi.patch</filename>
            <type>text/plain</type>
            <size>13485</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ0NhbGxIZWxwZXJzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NDYWxsSGVscGVycy5oCmluZGV4IDI1NjYw
OGYuLmFhMDhkYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ0Nh
bGxIZWxwZXJzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDQ2FsbEhlbHBl
cnMuaApAQCAtNTA1LDYgKzUwNSwyOSBAQCBwdWJsaWM6CiAKICAgICBBTFdBWVNfSU5MSU5FIHZv
aWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMiBhcmcxLCBUcnVzdGVk
SW1tMzIgYXJnMiwgR1BSUmVnIGFyZzMpCiAgICAgeworICAgICAgICBtb3ZlKGFyZzMsIEdQUklu
Zm86OmFyZ3VtZW50R1BSMyk7CisgICAgICAgIG1vdmUoYXJnMSwgR1BSSW5mbzo6YXJndW1lbnRH
UFIxKTsKKyAgICAgICAgbW92ZShhcmcyLCBHUFJJbmZvOjphcmd1bWVudEdQUjIpOworICAgICAg
ICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjphcmd1bWVudEdQUjAp
OworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVj
U3RhdGUoVHJ1c3RlZEltbTMyIGFyZzEsIEdQUlJlZyBhcmcyLCBUcnVzdGVkSW1tMzIgYXJnMykK
KyAgICB7CisgICAgICAgIG1vdmUoYXJnMiwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKKyAgICAg
ICAgbW92ZShhcmcxLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBtb3ZlKGFyZzMs
IEdQUkluZm86OmFyZ3VtZW50R1BSMyk7CisgICAgICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1l
UmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgfQorCisgICAgQUxXQVlTX0lO
TElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIgYXJnMSwg
R1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczKQorICAgIHsKKyAgICAgICAgc2V0dXBUd29TdHViQXJn
czxHUFJJbmZvOjphcmd1bWVudEdQUjIsIEdQUkluZm86OmFyZ3VtZW50R1BSMz4oYXJnMiwgYXJn
Myk7CisgICAgICAgIG1vdmUoYXJnMSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICAgICAg
bW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIwKTsK
KyAgICB9CisKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKFRydXN0ZWRJbW0zMiBhcmcxLCBUcnVzdGVkSW1tMzIgYXJnMiwgVHJ1c3RlZEltbTMyIGFy
ZzMpCisgICAgewogICAgICAgICBtb3ZlKGFyZzEsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CiAg
ICAgICAgIG1vdmUoYXJnMiwgR1BSSW5mbzo6YXJndW1lbnRHUFIyKTsKICAgICAgICAgbW92ZShh
cmczLCBHUFJJbmZvOjphcmd1bWVudEdQUjMpOwpAQCAtNTQ1LDYgKzU2OCw2MCBAQCBwdWJsaWM6
CiAgICAgICAgIHBva2UoYXJnNCk7CiAgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShhcmcxLCBhcmcyLCBhcmczKTsKICAgICB9CisKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMiBhcmcxLCBHUFJSZWcgYXJnMiwg
R1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0KQorICAgIHsKKyAgICAgICAgcG9rZShhcmc0KTsKKyAg
ICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOworICAg
IH0KKworICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
VHJ1c3RlZEltbTMyIGFyZzEsIEdQUlJlZyBhcmcyLCBHUFJSZWcgYXJnMywgVHJ1c3RlZEltbVB0
ciBhcmc0KQorICAgIHsKKyAgICAgICAgcG9rZShhcmc0KTsKKyAgICAgICAgc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOworICAgIH0KKworICAgIEFMV0FZU19J
TkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMyIGFyZzEs
IEdQUlJlZyBhcmcyLCBUcnVzdGVkSW1tMzIgYXJnMywgVHJ1c3RlZEltbVB0ciBhcmc0KQorICAg
IHsKKyAgICAgICAgcG9rZShhcmc0KTsKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKGFyZzEsIGFyZzIsIGFyZzMpOworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgdm9pZCBz
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBUcnVz
dGVkSW1tMzIgYXJnMywgR1BSUmVnIGFyZzQsIEdQUlJlZyBhcmc1KQorICAgIHsKKyAgICAgICAg
cG9rZShhcmc1LCAxKTsKKyAgICAgICAgcG9rZShhcmc0KTsKKyAgICAgICAgc2V0dXBBcmd1bWVu
dHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOworICAgIH0KKworICAgIEFMV0FZU19J
TkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMyIGFyZzEs
IEdQUlJlZyBhcmcyLCBHUFJSZWcgYXJnMywgR1BSUmVnIGFyZzQsIFRydXN0ZWRJbW1QdHIgYXJn
NSkKKyAgICB7CisgICAgICAgIHBva2UoYXJnNSwgMSk7CisgICAgICAgIHBva2UoYXJnNCk7Cisg
ICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKKyAg
ICB9CisKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KFRydXN0ZWRJbW0zMiBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMsIFRydXN0ZWRJbW0z
MiBhcmc0LCBUcnVzdGVkSW1tMzIgYXJnNSkKKyAgICB7CisgICAgICAgIHBva2UoYXJnNSwgMSk7
CisgICAgICAgIHBva2UoYXJnNCk7CisgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShhcmcxLCBhcmcyLCBhcmczKTsKKyAgICB9CisKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJbW0zMiBhcmcxLCBUcnVzdGVkSW1tMzIg
YXJnMiwgVHJ1c3RlZEltbTMyIGFyZzMsIEdQUlJlZyBhcmc0LCBHUFJSZWcgYXJnNSkKKyAgICB7
CisgICAgICAgIHBva2UoYXJnNSwgMSk7CisgICAgICAgIHBva2UoYXJnNCk7CisgICAgICAgIHNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsKKyAgICB9CisKKyAg
ICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKFRydXN0ZWRJ
bW0zMiBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0LCBHUFJSZWcg
YXJnNSkKKyAgICB7CisgICAgICAgIHBva2UoYXJnNSwgMSk7CisgICAgICAgIHBva2UoYXJnNCk7
CisgICAgICAgIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczKTsK
KyAgICB9CisKICNlbmRpZiAvLyBOVU1CRVJfT0ZfQVJHVU1FTlRfUkVHSVNURVJTID09IDQKIAog
ICAgIHZvaWQgc2V0dXBSZXN1bHRzKEdQUlJlZyBkZXN0QSwgR1BSUmVnIGRlc3RCKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKaW5kZXggNGNjMmU4Ni4uYTBl
YWNiYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25z
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCkBA
IC0xMDAsNiArMTAwLDM2IEBACiAgICAgICAgICJiICIgU1lNQk9MX1NUUklOR19SRUxPQ0FUSU9O
KGZ1bmN0aW9uKSAiV2l0aFJldHVybkFkZHJlc3MiICJcbiIgXAogICAgICk7CiAKKyNpZmRlZiBf
X0FSTV9FQUJJX18KKworI2RlZmluZSBGVU5DVElPTl9XUkFQUEVSX1dJVEhfUkVUVVJOX0FERFJF
U1NfRUpJKGZ1bmN0aW9uKSBcCisgICAgYXNtICggXAorICAgICIudGV4dCIgIlxuIiBcCisgICAg
Ii5hbGlnbiAyIiAiXG4iIFwKKyAgICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhmdW5jdGlvbikg
IlxuIiBcCisgICAgSElERV9TWU1CT0woZnVuY3Rpb24pICJcbiIgXAorICAgICIudGh1bWIiICJc
biIgXAorICAgICIudGh1bWJfZnVuYyAiIFRIVU1CX0ZVTkNfUEFSQU0oZnVuY3Rpb24pICJcbiIg
XAorICAgIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICI6IiAiXG4iIFwKKyAgICAgICAgInN0ciBs
ciwgW3NwLCAjNF0iICJcbiIgXAorICAgICAgICAiYiAiIFNZTUJPTF9TVFJJTkdfUkVMT0NBVElP
TihmdW5jdGlvbikgIldpdGhSZXR1cm5BZGRyZXNzIiAiXG4iIFwKKyAgICApOworCisjZGVmaW5l
IEZVTkNUSU9OX1dSQVBQRVJfV0lUSF9SRVRVUk5fQUREUkVTU19FSkNJKGZ1bmN0aW9uKSBcCisg
ICAgYXNtICggXAorICAgICIudGV4dCIgIlxuIiBcCisgICAgIi5hbGlnbiAyIiAiXG4iIFwKKyAg
ICAiLmdsb2JsICIgU1lNQk9MX1NUUklORyhmdW5jdGlvbikgIlxuIiBcCisgICAgSElERV9TWU1C
T0woZnVuY3Rpb24pICJcbiIgXAorICAgICIudGh1bWIiICJcbiIgXAorICAgICIudGh1bWJfZnVu
YyAiIFRIVU1CX0ZVTkNfUEFSQU0oZnVuY3Rpb24pICJcbiIgXAorICAgIFNZTUJPTF9TVFJJTkco
ZnVuY3Rpb24pICI6IiAiXG4iIFwKKyAgICAgICAgInN0ciBsciwgW3NwLCAjOF0iICJcbiIgXAor
ICAgICAgICAiYiAiIFNZTUJPTF9TVFJJTkdfUkVMT0NBVElPTihmdW5jdGlvbikgIldpdGhSZXR1
cm5BZGRyZXNzIiAiXG4iIFwKKyAgICApOworCisjZWxzZSAvLyAgX19BUk1fRUFCSV9fCisKICNk
ZWZpbmUgRlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVSTl9BRERSRVNTX0VKSShmdW5jdGlvbikg
XAogICAgIGFzbSAoIFwKICAgICAiLnRleHQiICJcbiIgXApAQCAtMTI2LDYgKzE1Niw4IEBACiAg
ICAgICAgICJiICIgU1lNQk9MX1NUUklOR19SRUxPQ0FUSU9OKGZ1bmN0aW9uKSAiV2l0aFJldHVy
bkFkZHJlc3MiICJcbiIgXAogICAgICk7CiAKKyNlbmRpZiAvLyAgX19BUk1fRUFCSV9fCisKICNl
bmRpZgogCiAjZGVmaW5lIFBfRlVOQ1RJT05fV1JBUFBFUl9XSVRIX1JFVFVSTl9BRERSRVNTX0Uo
ZnVuY3Rpb24pIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQuaAppbmRleCAyOTIyOTUxLi45NjIxZmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCkBAIC0xMjcxLDYgKzEyNzEsMTMgQEAgcHJpdmF0ZToK
ICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOwog
ICAgIH0KICNlbHNlCisKKyNpZmRlZiBfX0FSTV9FQUJJX18KKyNkZWZpbmUgRUFCSV9EVU1NWV9B
UkcgICAgICBUcnVzdGVkSW1tMzIoMCksCisjZWxzZQorI2RlZmluZSBFQUJJX0RVTU1ZX0FSRwor
I2VuZGlmCisKICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFpfREZHT3BlcmF0
aW9uX0Qgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBGUFJSZWcgYXJnMSkKICAgICB7CiAgICAg
ICAgIG1faml0LnNldHVwQXJndW1lbnRzKGFyZzEpOwpAQCAtMTMyMCwxMiArMTMyNywxMiBAQCBw
cml2YXRlOgogICAgIH0KICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfREZH
T3BlcmF0aW9uX0VKUCBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHRUYWcsIEdQUlJlZyByZXN1bHRQ
YXlsb2FkLCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCB2b2lkKiBwb2ludGVy
KQogICAgIHsKLSAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzFQ
YXlsb2FkLCBhcmcxVGFnLCBUcnVzdGVkSW1tUHRyKHBvaW50ZXIpKTsKKyAgICAgICAgbV9qaXQu
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfRFVNTVlfQVJHIGFyZzFQYXlsb2FkLCBh
cmcxVGFnLCBUcnVzdGVkSW1tUHRyKHBvaW50ZXIpKTsKICAgICAgICAgcmV0dXJuIGFwcGVuZENh
bGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHRQYXlsb2FkLCBy
ZXN1bHRUYWcpOwogICAgIH0KICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpf
REZHT3BlcmF0aW9uX0VKUCBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHRUYWcsIEdQUlJlZyByZXN1
bHRQYXlsb2FkLCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCBHUFJSZWcgYXJn
MikKICAgICB7Ci0gICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcx
UGF5bG9hZCwgYXJnMVRhZywgYXJnMik7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0
aEV4ZWNTdGF0ZShFQUJJX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRhZywgYXJnMik7CiAg
ICAgICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0UmVzdWx0KG9wZXJh
dGlvbiwgcmVzdWx0UGF5bG9hZCwgcmVzdWx0VGFnKTsKICAgICB9CiAgICAgSklUQ29tcGlsZXI6
OkNhbGwgY2FsbE9wZXJhdGlvbihKX0RGR09wZXJhdGlvbl9FQ0kgb3BlcmF0aW9uLCBHUFJSZWcg
cmVzdWx0VGFnLCBHUFJSZWcgcmVzdWx0UGF5bG9hZCwgR1BSUmVnIGFyZzEsIElkZW50aWZpZXIq
IGlkZW50aWZpZXIpCkBAIC0xMzM1LDIyICsxMzQyLDIyIEBAIHByaXZhdGU6CiAgICAgfQogICAg
IEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9ERkdPcGVyYXRpb25fRUpJIG9wZXJh
dGlvbiwgR1BSUmVnIHJlc3VsdFRhZywgR1BSUmVnIHJlc3VsdFBheWxvYWQsIEdQUlJlZyBhcmcx
VGFnLCBHUFJSZWcgYXJnMVBheWxvYWQsIElkZW50aWZpZXIqIGlkZW50aWZpZXIpCiAgICAgewot
ICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMVBheWxvYWQsIGFy
ZzFUYWcsIFRydXN0ZWRJbW1QdHIoaWRlbnRpZmllcikpOworICAgICAgICBtX2ppdC5zZXR1cEFy
Z3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV9EVU1NWV9BUkcgYXJnMVBheWxvYWQsIGFyZzFUYWcs
IFRydXN0ZWRJbW1QdHIoaWRlbnRpZmllcikpOwogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFdp
dGhFeGNlcHRpb25DaGVja1NldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdFBheWxvYWQsIHJlc3Vs
dFRhZyk7CiAgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9ERkdP
cGVyYXRpb25fRUpJIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdFRhZywgR1BSUmVnIHJlc3VsdFBh
eWxvYWQsIGludDMyX3QgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCBJZGVudGlmaWVyKiBp
ZGVudGlmaWVyKQogICAgIHsKLSAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKGFyZzFQYXlsb2FkLCBUcnVzdGVkSW1tMzIoYXJnMVRhZyksIFRydXN0ZWRJbW1QdHIoaWRl
bnRpZmllcikpOworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFC
SV9EVU1NWV9BUkcgYXJnMVBheWxvYWQsIFRydXN0ZWRJbW0zMihhcmcxVGFnKSwgVHJ1c3RlZElt
bVB0cihpZGVudGlmaWVyKSk7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlv
bkNoZWNrU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0UGF5bG9hZCwgcmVzdWx0VGFnKTsKICAg
ICB9CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0RGR09wZXJhdGlvbl9F
SkEgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0VGFnLCBHUFJSZWcgcmVzdWx0UGF5bG9hZCwgR1BS
UmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9hZCwgR1BSUmVnIGFyZzIpCiAgICAgewotICAg
ICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMVBheWxvYWQsIGFyZzFU
YWcsIGFyZzIpOworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFC
SV9EVU1NWV9BUkcgYXJnMVBheWxvYWQsIGFyZzFUYWcsIGFyZzIpOwogICAgICAgICByZXR1cm4g
YXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdFBh
eWxvYWQsIHJlc3VsdFRhZyk7CiAgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oSl9ERkdPcGVyYXRpb25fRUogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0VGFnLCBHUFJS
ZWcgcmVzdWx0UGF5bG9hZCwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9hZCkKICAg
ICB7Ci0gICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxUGF5bG9h
ZCwgYXJnMVRhZyk7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShF
QUJJX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRhZyk7CiAgICAgICAgIHJldHVybiBhcHBl
bmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0UGF5bG9h
ZCwgcmVzdWx0VGFnKTsKICAgICB9CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlv
bihDX0RGR09wZXJhdGlvbl9FIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCkKQEAgLTEzODAsNyAr
MTM4Nyw3IEBAIHByaXZhdGU6CiAgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oU19ERkdPcGVyYXRpb25fRUogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcg
YXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkKQogICAgIHsKLSAgICAgICAgbV9qaXQuc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzFQYXlsb2FkLCBhcmcxVGFnKTsKKyAgICAgICAgbV9q
aXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfRFVNTVlfQVJHIGFyZzFQYXlsb2Fk
LCBhcmcxVGFnKTsKICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tT
ZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOwogICAgIH0KICAgICBKSVRDb21waWxlcjo6Q2Fs
bCBjYWxsT3BlcmF0aW9uKFNfREZHT3BlcmF0aW9uX0VDQyBvcGVyYXRpb24sIEdQUlJlZyByZXN1
bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikKQEAgLTEzOTAsMjIgKzEzOTcsMjIgQEAgcHJp
dmF0ZToKICAgICB9CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihTX0RGR09w
ZXJhdGlvbl9FSkogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJnMVRhZywgR1BS
UmVnIGFyZzFQYXlsb2FkLCBHUFJSZWcgYXJnMlRhZywgR1BSUmVnIGFyZzJQYXlsb2FkKQogICAg
IHsKLSAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzFQYXlsb2Fk
LCBhcmcxVGFnLCBhcmcyUGF5bG9hZCwgYXJnMlRhZyk7CisgICAgICAgIG1faml0LnNldHVwQXJn
dW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRhZywg
YXJnMlBheWxvYWQsIGFyZzJUYWcpOwogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNl
cHRpb25DaGVja1NldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CiAgICAgfQogICAgIEpJVENv
bXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9ERkdPcGVyYXRpb25fRUpKIG9wZXJhdGlvbiwg
R1BSUmVnIHJlc3VsdFRhZywgR1BSUmVnIHJlc3VsdFBheWxvYWQsIEdQUlJlZyBhcmcxVGFnLCBH
UFJSZWcgYXJnMVBheWxvYWQsIEdQUlJlZyBhcmcyVGFnLCBHUFJSZWcgYXJnMlBheWxvYWQpCiAg
ICAgewotICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMVBheWxv
YWQsIGFyZzFUYWcsIGFyZzJQYXlsb2FkLCBhcmcyVGFnKTsKKyAgICAgICAgbV9qaXQuc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfRFVNTVlfQVJHIGFyZzFQYXlsb2FkLCBhcmcxVGFn
LCBhcmcyUGF5bG9hZCwgYXJnMlRhZyk7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4
Y2VwdGlvbkNoZWNrU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0UGF5bG9hZCwgcmVzdWx0VGFn
KTsKICAgICB9CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0RGR09wZXJh
dGlvbl9FSkogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0VGFnLCBHUFJSZWcgcmVzdWx0UGF5bG9h
ZCwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9hZCwgTWFjcm9Bc3NlbWJsZXI6OlRy
dXN0ZWRJbW0zMiBpbW0pCiAgICAgewotICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoYXJnMVBheWxvYWQsIGFyZzFUYWcsIGltbSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6
OkludDMyVGFnKSk7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShF
QUJJX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRhZywgaW1tLCBUcnVzdGVkSW1tMzIoSlNW
YWx1ZTo6SW50MzJUYWcpKTsKICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9u
Q2hlY2tTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHRQYXlsb2FkLCByZXN1bHRUYWcpOwogICAg
IH0KICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfREZHT3BlcmF0aW9uX0VK
SiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHRUYWcsIEdQUlJlZyByZXN1bHRQYXlsb2FkLCBNYWNy
b0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyIGltbSwgR1BSUmVnIGFyZzJUYWcsIEdQUlJlZyBhcmcy
UGF5bG9hZCkKICAgICB7Ci0gICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0
ZShpbW0sIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZyksIGFyZzJQYXlsb2FkLCBhcmcy
VGFnKTsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfRFVN
TVlfQVJHIGltbSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSwgYXJnMlBheWxvYWQs
IGFyZzJUYWcpOwogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1Nl
dFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdFBheWxvYWQsIHJlc3VsdFRhZyk7CiAgICAgfQogICAg
IEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9ERkdPcGVyYXRpb25fRUNKIG9wZXJh
dGlvbiwgR1BSUmVnIHJlc3VsdFRhZywgR1BSUmVnIHJlc3VsdFBheWxvYWQsIEdQUlJlZyBhcmcx
LCBHUFJSZWcgYXJnMlRhZywgR1BSUmVnIGFyZzJQYXlsb2FkKQpAQCAtMTQyNSwxMiArMTQzMiwx
MiBAQCBwcml2YXRlOgogICAgIH0KICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KFZfREZHT3BlcmF0aW9uX0VKUFAgb3BlcmF0aW9uLCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFy
ZzFQYXlsb2FkLCBHUFJSZWcgYXJnMiwgdm9pZCogcG9pbnRlcikKICAgICB7Ci0gICAgICAgIG1f
aml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxUGF5bG9hZCwgYXJnMVRhZywgYXJn
MiwgVHJ1c3RlZEltbVB0cihwb2ludGVyKSk7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRz
V2l0aEV4ZWNTdGF0ZShFQUJJX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRhZywgYXJnMiwg
VHJ1c3RlZEltbVB0cihwb2ludGVyKSk7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4
Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiAgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oVl9ERkdPcGVyYXRpb25fRUpDSSBvcGVyYXRpb24sIEdQUlJlZyBhcmcxVGFn
LCBHUFJSZWcgYXJnMVBheWxvYWQsIEdQUlJlZyBhcmcyLCBJZGVudGlmaWVyKiBpZGVudGlmaWVy
KQogICAgIHsKLSAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzFQ
YXlsb2FkLCBhcmcxVGFnLCBhcmcyLCBUcnVzdGVkSW1tUHRyKGlkZW50aWZpZXIpKTsKKyAgICAg
ICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfRFVNTVlfQVJHIGFyZzFQ
YXlsb2FkLCBhcmcxVGFnLCBhcmcyLCBUcnVzdGVkSW1tUHRyKGlkZW50aWZpZXIpKTsKICAgICAg
ICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKICAgICB9
CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0RGR09wZXJhdGlvbl9FQ0pK
IG9wZXJhdGlvbiwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyVGFnLCBHUFJSZWcgYXJnMlBheWxv
YWQsIEdQUlJlZyBhcmczVGFnLCBHUFJSZWcgYXJnM1BheWxvYWQpCkBAIC0xNDQwLDE4ICsxNDQ3
LDE5IEBAIHByaXZhdGU6CiAgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oVl9ERkdPcGVyYXRpb25fRVBaSiBvcGVyYXRpb24sIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJn
MiwgR1BSUmVnIGFyZzNUYWcsIEdQUlJlZyBhcmczUGF5bG9hZCkKICAgICB7Ci0gICAgICAgIG1f
aml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczUGF5bG9hZCwg
YXJnM1RhZyk7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcx
LCBhcmcyLCBFQUJJX0RVTU1ZX0FSRyBhcmczUGF5bG9hZCwgYXJnM1RhZyk7CiAgICAgICAgIHJl
dHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiAgICAgfQogICAg
IEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9ERkdPcGVyYXRpb25fRUFaSiBvcGVy
YXRpb24sIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzNUYWcsIEdQUlJlZyBh
cmczUGF5bG9hZCkKICAgICB7Ci0gICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZShhcmcxLCBhcmcyLCBhcmczUGF5bG9hZCwgYXJnM1RhZyk7CisgICAgICAgIC8vIEZJWE1F
OiBJcyB0aGlzIGR1bW15IGFyZyBuZWVkZWQgaGVyZT8KKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIEVBQklfRFVNTVlfQVJHIGFyZzNQYXlsb2Fk
LCBhcmczVGFnKTsKICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2so
b3BlcmF0aW9uKTsKICAgICB9CiAKICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9u
KERfREZHT3BlcmF0aW9uX0VKIG9wZXJhdGlvbiwgRlBSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzFU
YWcsIEdQUlJlZyBhcmcxUGF5bG9hZCkKICAgICB7Ci0gICAgICAgIG1faml0LnNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShhcmcxUGF5bG9hZCwgYXJnMVRhZyk7CisgICAgICAgIG1faml0LnNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJn
MVRhZyk7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0UmVz
dWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139506</attachid>
            <date>2012-04-30 13:21:21 -0700</date>
            <delta_ts>2012-05-14 08:34:51 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>84449.patch</filename>
            <type>text/plain</type>
            <size>15942</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDZhOTA1OGQuLmQ1NGQ5ZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA0LTMwICBZb25nIExpICA8eW9s
aUByaW0uY29tPgorCisgICAgICAgIERGRyBKSVQgZGlkbid0IHdvcmsgd2l0aCBBUk0gRUFCSS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0NDQ5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgMzIt
Yml0IGR1bW15IGFyZ3VtZW50IGZvciBzb21lIGNhbGxPcGVyYXRpb24oKQorICAgICAgICBtZXRo
b2RzIHRvIG1ha2UgaXQgd29yayBmb3IgQVJNIEVBQkkuCisKKyAgICAgICAgKiBkZmcvREZHQ0Nh
bGxIZWxwZXJzLmg6CisgICAgICAgIChKU0M6OkRGRzo6Q0NhbGxIZWxwZXJzOjpzZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUpOgorICAgICAgICAoQ0NhbGxIZWxwZXJzKToKKyAgICAgICAgKiBk
ZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6
CisgICAgICAgIChTcGVjdWxhdGl2ZUpJVCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRp
dmVKSVQ6OmNhbGxPcGVyYXRpb24pOgorCiAyMDEyLTA0LTI1ICBCZW5qYW1pbiBQb3VsYWluICA8
YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgYSB2ZXJzaW9uIG9mIFN0cmluZ0lt
cGw6OmZpbmQoKSB3aXRob3V0IG9mZnNldApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDQ2FsbEhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Q0NhbGxIZWxwZXJzLmgKaW5kZXggMjU2NjA4Zi4uYWEwOGRhMSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDQ2FsbEhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0NDYWxsSGVscGVycy5oCkBAIC01MDUsNiArNTA1LDI5IEBAIHB1Ymxp
YzoKIAogICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUo
VHJ1c3RlZEltbTMyIGFyZzEsIFRydXN0ZWRJbW0zMiBhcmcyLCBHUFJSZWcgYXJnMykKICAgICB7
CisgICAgICAgIG1vdmUoYXJnMywgR1BSSW5mbzo6YXJndW1lbnRHUFIzKTsKKyAgICAgICAgbW92
ZShhcmcxLCBHUFJJbmZvOjphcmd1bWVudEdQUjEpOworICAgICAgICBtb3ZlKGFyZzIsIEdQUklu
Zm86OmFyZ3VtZW50R1BSMik7CisgICAgICAgIG1vdmUoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0
ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgfQorCisgICAgQUxXQVlTX0lOTElORSB2
b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIgYXJnMSwgR1BSUmVn
IGFyZzIsIFRydXN0ZWRJbW0zMiBhcmczKQorICAgIHsKKyAgICAgICAgbW92ZShhcmcyLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjIpOworICAgICAgICBtb3ZlKGFyZzEsIEdQUkluZm86OmFyZ3VtZW50
R1BSMSk7CisgICAgICAgIG1vdmUoYXJnMywgR1BSSW5mbzo6YXJndW1lbnRHUFIzKTsKKyAgICAg
ICAgbW92ZShHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6YXJndW1lbnRHUFIw
KTsKKyAgICB9CisKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKFRydXN0ZWRJbW0zMiBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMpCisgICAg
eworICAgICAgICBzZXR1cFR3b1N0dWJBcmdzPEdQUkluZm86OmFyZ3VtZW50R1BSMiwgR1BSSW5m
bzo6YXJndW1lbnRHUFIzPihhcmcyLCBhcmczKTsKKyAgICAgICAgbW92ZShhcmcxLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjEpOworICAgICAgICBtb3ZlKEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVy
LCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgdm9p
ZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMyIGFyZzEsIFRydXN0ZWRJ
bW0zMiBhcmcyLCBUcnVzdGVkSW1tMzIgYXJnMykKKyAgICB7CiAgICAgICAgIG1vdmUoYXJnMSwg
R1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKICAgICAgICAgbW92ZShhcmcyLCBHUFJJbmZvOjphcmd1
bWVudEdQUjIpOwogICAgICAgICBtb3ZlKGFyZzMsIEdQUkluZm86OmFyZ3VtZW50R1BSMyk7CkBA
IC01NDUsNiArNTY4LDYwIEBAIHB1YmxpYzoKICAgICAgICAgcG9rZShhcmc0KTsKICAgICAgICAg
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOwogICAgIH0KKwor
ICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3Rl
ZEltbTMyIGFyZzEsIEdQUlJlZyBhcmcyLCBHUFJSZWcgYXJnMywgR1BSUmVnIGFyZzQpCisgICAg
eworICAgICAgICBwb2tlKGFyZzQpOworICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3Rh
dGUoYXJnMSwgYXJnMiwgYXJnMyk7CisgICAgfQorCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNl
dHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShUcnVzdGVkSW1tMzIgYXJnMSwgR1BSUmVnIGFyZzIs
IEdQUlJlZyBhcmczLCBUcnVzdGVkSW1tUHRyIGFyZzQpCisgICAgeworICAgICAgICBwb2tlKGFy
ZzQpOworICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgYXJn
Myk7CisgICAgfQorCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShUcnVzdGVkSW1tMzIgYXJnMSwgR1BSUmVnIGFyZzIsIFRydXN0ZWRJbW0zMiBhcmcz
LCBUcnVzdGVkSW1tUHRyIGFyZzQpCisgICAgeworICAgICAgICBwb2tlKGFyZzQpOworICAgICAg
ICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgYXJnMyk7CisgICAgfQor
CisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJS
ZWcgYXJnMSwgR1BSUmVnIGFyZzIsIFRydXN0ZWRJbW0zMiBhcmczLCBHUFJSZWcgYXJnNCwgR1BS
UmVnIGFyZzUpCisgICAgeworICAgICAgICBwb2tlKGFyZzUsIDEpOworICAgICAgICBwb2tlKGFy
ZzQpOworICAgICAgICBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMSwgYXJnMiwgYXJn
Myk7CisgICAgfQorCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShUcnVzdGVkSW1tMzIgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczLCBHUFJS
ZWcgYXJnNCwgVHJ1c3RlZEltbVB0ciBhcmc1KQorICAgIHsKKyAgICAgICAgcG9rZShhcmc1LCAx
KTsKKyAgICAgICAgcG9rZShhcmc0KTsKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKGFyZzEsIGFyZzIsIGFyZzMpOworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgdm9pZCBz
ZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMyIGFyZzEsIEdQUlJlZyBhcmcy
LCBHUFJSZWcgYXJnMywgVHJ1c3RlZEltbTMyIGFyZzQsIFRydXN0ZWRJbW0zMiBhcmc1KQorICAg
IHsKKyAgICAgICAgcG9rZShhcmc1LCAxKTsKKyAgICAgICAgcG9rZShhcmc0KTsKKyAgICAgICAg
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOworICAgIH0KKwor
ICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3Rl
ZEltbTMyIGFyZzEsIFRydXN0ZWRJbW0zMiBhcmcyLCBUcnVzdGVkSW1tMzIgYXJnMywgR1BSUmVn
IGFyZzQsIEdQUlJlZyBhcmc1KQorICAgIHsKKyAgICAgICAgcG9rZShhcmc1LCAxKTsKKyAgICAg
ICAgcG9rZShhcmc0KTsKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEs
IGFyZzIsIGFyZzMpOworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFyZ3Vt
ZW50c1dpdGhFeGVjU3RhdGUoVHJ1c3RlZEltbTMyIGFyZzEsIEdQUlJlZyBhcmcyLCBHUFJSZWcg
YXJnMywgR1BSUmVnIGFyZzQsIEdQUlJlZyBhcmc1KQorICAgIHsKKyAgICAgICAgcG9rZShhcmc1
LCAxKTsKKyAgICAgICAgcG9rZShhcmc0KTsKKyAgICAgICAgc2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOworICAgIH0KKwogI2VuZGlmIC8vIE5VTUJFUl9PRl9B
UkdVTUVOVF9SRUdJU1RFUlMgPT0gNAogCiAgICAgdm9pZCBzZXR1cFJlc3VsdHMoR1BSUmVnIGRl
c3RBLCBHUFJSZWcgZGVzdEIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmNwcAppbmRleCAyZjkzOTI5Li5mOTBlMjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTk5LDYgKzk5LDE2IEBACiAgICAgICAgICJiICIg
U1lNQk9MX1NUUklOR19SRUxPQ0FUSU9OKGZ1bmN0aW9uKSAiV2l0aFJldHVybkFkZHJlc3MiICJc
biIgXAogICAgICk7CiAKKy8vIEVuY29kZWRKU1ZhbHVlIGluIEpTVkFMVUUzMl82NCBpcyBhIDY0
LWJpdCBpbnRlZ2VyLiBXaGVuIGJlaW5nIGNvbXBpbGVkIGluIEFSTSBFQUJJLCBpdCBtdXN0IGJl
IGFsaWduZWQgZXZlbi1udW1iZXJlZCByZWdpc3RlciAocjAsIHIyIG9yIFtzcF0pLgorLy8gQXMg
YSByZXN1bHQsIHJldHVybiBhZGRyZXNzIHdpbGwgYmUgYXQgYSA0LWJ5dGUgZnVydGhlciBsb2Nh
dGlvbiBpbiB0aGUgZm9sbG93aW5nIGNhc2VzLgorI2lmIENPTVBJTEVSX1NVUFBPUlRTKEVBQkkp
ICYmIENQVShBUk0pCisjZGVmaW5lIElOU1RSVUNUSU9OX1NUT1JFX1JFVFVSTl9BRERSRVNTX0VK
SSAic3RyIGxyLCBbc3AsICM0XSIKKyNkZWZpbmUgSU5TVFJVQ1RJT05fU1RPUkVfUkVUVVJOX0FE
RFJFU1NfRUpDSSAic3RyIGxyLCBbc3AsICM4XSIKKyNlbHNlCisjZGVmaW5lIElOU1RSVUNUSU9O
X1NUT1JFX1JFVFVSTl9BRERSRVNTX0VKSSAic3RyIGxyLCBbc3AsICMwXSIKKyNkZWZpbmUgSU5T
VFJVQ1RJT05fU1RPUkVfUkVUVVJOX0FERFJFU1NfRUpDSSAic3RyIGxyLCBbc3AsICM0XSIKKyNl
bmRpZgorCiAjZGVmaW5lIEZVTkNUSU9OX1dSQVBQRVJfV0lUSF9SRVRVUk5fQUREUkVTU19FSkko
ZnVuY3Rpb24pIFwKICAgICBhc20gKCBcCiAgICAgIi50ZXh0IiAiXG4iIFwKQEAgLTEwOCw3ICsx
MTgsNyBAQAogICAgICIudGh1bWIiICJcbiIgXAogICAgICIudGh1bWJfZnVuYyAiIFRIVU1CX0ZV
TkNfUEFSQU0oZnVuY3Rpb24pICJcbiIgXAogICAgIFNZTUJPTF9TVFJJTkcoZnVuY3Rpb24pICI6
IiAiXG4iIFwKLSAgICAgICAgInN0ciBsciwgW3NwLCAjMF0iICJcbiIgXAorICAgICAgICBJTlNU
UlVDVElPTl9TVE9SRV9SRVRVUk5fQUREUkVTU19FSkkgIlxuIiBcCiAgICAgICAgICJiICIgU1lN
Qk9MX1NUUklOR19SRUxPQ0FUSU9OKGZ1bmN0aW9uKSAiV2l0aFJldHVybkFkZHJlc3MiICJcbiIg
XAogICAgICk7CiAKQEAgLTEyMSw3ICsxMzEsNyBAQAogICAgICIudGh1bWIiICJcbiIgXAogICAg
ICIudGh1bWJfZnVuYyAiIFRIVU1CX0ZVTkNfUEFSQU0oZnVuY3Rpb24pICJcbiIgXAogICAgIFNZ
TUJPTF9TVFJJTkcoZnVuY3Rpb24pICI6IiAiXG4iIFwKLSAgICAgICAgInN0ciBsciwgW3NwLCAj
NF0iICJcbiIgXAorICAgICAgICBJTlNUUlVDVElPTl9TVE9SRV9SRVRVUk5fQUREUkVTU19FSkNJ
ICJcbiIgXAogICAgICAgICAiYiAiIFNZTUJPTF9TVFJJTkdfUkVMT0NBVElPTihmdW5jdGlvbikg
IldpdGhSZXR1cm5BZGRyZXNzIiAiXG4iIFwKICAgICApOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggYzNkN2JjMS4uNGU1ODU5NiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMTI2
MCw2ICsxMjYwLDE1IEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVz
dWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKICAgICB9CiAjZWxzZQorCisvLyBFbmNvZGVkSlNWYWx1
ZSBpbiBKU1ZBTFVFMzJfNjQgaXMgYSA2NC1iaXQgaW50ZWdlci4gV2hlbiBiZWluZyBjb21waWxl
ZCBpbiBBUk0gRUFCSSwgaXQgbXVzdCBiZSBhbGlnbmVkIGV2ZW4tbnVtYmVyZWQgcmVnaXN0ZXIg
KHIwLCByMiBvciBbc3BdKS4KKy8vIFRvIGF2b2lkIGFzc2VtYmxpZXMgZnJvbSB1c2luZyB3cm9u
ZyByZWdpc3RlcnMsIGxldCdzIG9jY3VweSByMSBvciByMyB3aXRoIGEgZHVtbXkgYXJndW1lbnQg
d2hlbiBuZWNlc3NhcnkuCisjaWYgQ09NUElMRVJfU1VQUE9SVFMoRUFCSSkgJiYgQ1BVKEFSTSkK
KyNkZWZpbmUgRUFCSV8zMkJJVF9EVU1NWV9BUkcgICAgICBUcnVzdGVkSW1tMzIoMCksCisjZWxz
ZQorI2RlZmluZSBFQUJJXzMyQklUX0RVTU1ZX0FSRworI2VuZGlmCisKICAgICBKSVRDb21waWxl
cjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFpfREZHT3BlcmF0aW9uX0Qgb3BlcmF0aW9uLCBHUFJSZWcg
cmVzdWx0LCBGUFJSZWcgYXJnMSkKICAgICB7CiAgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRz
KGFyZzEpOwpAQCAtMTMwOSwxMiArMTMxOCwxMiBAQCBwcml2YXRlOgogICAgIH0KICAgICBKSVRD
b21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfREZHT3BlcmF0aW9uX0VKUCBvcGVyYXRpb24s
IEdQUlJlZyByZXN1bHRUYWcsIEdQUlJlZyByZXN1bHRQYXlsb2FkLCBHUFJSZWcgYXJnMVRhZywg
R1BSUmVnIGFyZzFQYXlsb2FkLCB2b2lkKiBwb2ludGVyKQogICAgIHsKLSAgICAgICAgbV9qaXQu
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzFQYXlsb2FkLCBhcmcxVGFnLCBUcnVzdGVk
SW1tUHRyKHBvaW50ZXIpKTsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0
YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIGFyZzFQYXlsb2FkLCBhcmcxVGFnLCBUcnVzdGVkSW1t
UHRyKHBvaW50ZXIpKTsKICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hl
Y2tTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHRQYXlsb2FkLCByZXN1bHRUYWcpOwogICAgIH0K
ICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKEpfREZHT3BlcmF0aW9uX0VKUCBv
cGVyYXRpb24sIEdQUlJlZyByZXN1bHRUYWcsIEdQUlJlZyByZXN1bHRQYXlsb2FkLCBHUFJSZWcg
YXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCBHUFJSZWcgYXJnMikKICAgICB7Ci0gICAgICAg
IG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxUGF5bG9hZCwgYXJnMVRhZywg
YXJnMik7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMy
QklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRhZywgYXJnMik7CiAgICAgICAgIHJldHVy
biBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0
UGF5bG9hZCwgcmVzdWx0VGFnKTsKICAgICB9CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9w
ZXJhdGlvbihKX0RGR09wZXJhdGlvbl9FQ0kgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0VGFnLCBH
UFJSZWcgcmVzdWx0UGF5bG9hZCwgR1BSUmVnIGFyZzEsIElkZW50aWZpZXIqIGlkZW50aWZpZXIp
CkBAIC0xMzI0LDIyICsxMzMzLDIyIEBAIHByaXZhdGU6CiAgICAgfQogICAgIEpJVENvbXBpbGVy
OjpDYWxsIGNhbGxPcGVyYXRpb24oSl9ERkdPcGVyYXRpb25fRUpJIG9wZXJhdGlvbiwgR1BSUmVn
IHJlc3VsdFRhZywgR1BSUmVnIHJlc3VsdFBheWxvYWQsIEdQUlJlZyBhcmcxVGFnLCBHUFJSZWcg
YXJnMVBheWxvYWQsIElkZW50aWZpZXIqIGlkZW50aWZpZXIpCiAgICAgewotICAgICAgICBtX2pp
dC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMVBheWxvYWQsIGFyZzFUYWcsIFRydXN0
ZWRJbW1QdHIoaWRlbnRpZmllcikpOworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhF
eGVjU3RhdGUoRUFCSV8zMkJJVF9EVU1NWV9BUkcgYXJnMVBheWxvYWQsIGFyZzFUYWcsIFRydXN0
ZWRJbW1QdHIoaWRlbnRpZmllcikpOwogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNl
cHRpb25DaGVja1NldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdFBheWxvYWQsIHJlc3VsdFRhZyk7
CiAgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9ERkdPcGVyYXRp
b25fRUpJIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdFRhZywgR1BSUmVnIHJlc3VsdFBheWxvYWQs
IGludDMyX3QgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCBJZGVudGlmaWVyKiBpZGVudGlm
aWVyKQogICAgIHsKLSAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFy
ZzFQYXlsb2FkLCBUcnVzdGVkSW1tMzIoYXJnMVRhZyksIFRydXN0ZWRJbW1QdHIoaWRlbnRpZmll
cikpOworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJ
VF9EVU1NWV9BUkcgYXJnMVBheWxvYWQsIFRydXN0ZWRJbW0zMihhcmcxVGFnKSwgVHJ1c3RlZElt
bVB0cihpZGVudGlmaWVyKSk7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlv
bkNoZWNrU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0UGF5bG9hZCwgcmVzdWx0VGFnKTsKICAg
ICB9CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihKX0RGR09wZXJhdGlvbl9F
SkEgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0VGFnLCBHUFJSZWcgcmVzdWx0UGF5bG9hZCwgR1BS
UmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9hZCwgR1BSUmVnIGFyZzIpCiAgICAgewotICAg
ICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMVBheWxvYWQsIGFyZzFU
YWcsIGFyZzIpOworICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFC
SV8zMkJJVF9EVU1NWV9BUkcgYXJnMVBheWxvYWQsIGFyZzFUYWcsIGFyZzIpOwogICAgICAgICBy
ZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldFJlc3VsdChvcGVyYXRpb24sIHJl
c3VsdFBheWxvYWQsIHJlc3VsdFRhZyk7CiAgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oSl9ERkdPcGVyYXRpb25fRUogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0VGFn
LCBHUFJSZWcgcmVzdWx0UGF5bG9hZCwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBhcmcxUGF5bG9h
ZCkKICAgICB7Ci0gICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcx
UGF5bG9hZCwgYXJnMVRhZyk7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNT
dGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRhZyk7CiAgICAgICAg
IHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0UmVzdWx0KG9wZXJhdGlvbiwg
cmVzdWx0UGF5bG9hZCwgcmVzdWx0VGFnKTsKICAgICB9CiAgICAgSklUQ29tcGlsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihDX0RGR09wZXJhdGlvbl9FIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCkK
QEAgLTEzNjksNyArMTM3OCw3IEBAIHByaXZhdGU6CiAgICAgfQogICAgIEpJVENvbXBpbGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oU19ERkdPcGVyYXRpb25fRUogb3BlcmF0aW9uLCBHUFJSZWcgcmVz
dWx0LCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkKQogICAgIHsKLSAgICAgICAg
bV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzFQYXlsb2FkLCBhcmcxVGFnKTsK
KyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVN
TVlfQVJHIGFyZzFQYXlsb2FkLCBhcmcxVGFnKTsKICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxX
aXRoRXhjZXB0aW9uQ2hlY2tTZXRSZXN1bHQob3BlcmF0aW9uLCByZXN1bHQpOwogICAgIH0KICAg
ICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFNfREZHT3BlcmF0aW9uX0VDQyBvcGVy
YXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMikKQEAgLTEzNzks
MjIgKzEzODgsMjIgQEAgcHJpdmF0ZToKICAgICB9CiAgICAgSklUQ29tcGlsZXI6OkNhbGwgY2Fs
bE9wZXJhdGlvbihTX0RGR09wZXJhdGlvbl9FSkogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBH
UFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCBHUFJSZWcgYXJnMlRhZywgR1BSUmVn
IGFyZzJQYXlsb2FkKQogICAgIHsKLSAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhl
Y1N0YXRlKGFyZzFQYXlsb2FkLCBhcmcxVGFnLCBhcmcyUGF5bG9hZCwgYXJnMlRhZyk7CisgICAg
ICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FS
RyBhcmcxUGF5bG9hZCwgYXJnMVRhZywgYXJnMlBheWxvYWQsIGFyZzJUYWcpOwogICAgICAgICBy
ZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldFJlc3VsdChvcGVyYXRpb24sIHJl
c3VsdCk7CiAgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oSl9ERkdP
cGVyYXRpb25fRUpKIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdFRhZywgR1BSUmVnIHJlc3VsdFBh
eWxvYWQsIEdQUlJlZyBhcmcxVGFnLCBHUFJSZWcgYXJnMVBheWxvYWQsIEdQUlJlZyBhcmcyVGFn
LCBHUFJSZWcgYXJnMlBheWxvYWQpCiAgICAgewotICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50
c1dpdGhFeGVjU3RhdGUoYXJnMVBheWxvYWQsIGFyZzFUYWcsIGFyZzJQYXlsb2FkLCBhcmcyVGFn
KTsKKyAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRf
RFVNTVlfQVJHIGFyZzFQYXlsb2FkLCBhcmcxVGFnLCBhcmcyUGF5bG9hZCwgYXJnMlRhZyk7CiAg
ICAgICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrU2V0UmVzdWx0KG9wZXJh
dGlvbiwgcmVzdWx0UGF5bG9hZCwgcmVzdWx0VGFnKTsKICAgICB9CiAgICAgSklUQ29tcGlsZXI6
OkNhbGwgY2FsbE9wZXJhdGlvbihKX0RGR09wZXJhdGlvbl9FSkogb3BlcmF0aW9uLCBHUFJSZWcg
cmVzdWx0VGFnLCBHUFJSZWcgcmVzdWx0UGF5bG9hZCwgR1BSUmVnIGFyZzFUYWcsIEdQUlJlZyBh
cmcxUGF5bG9hZCwgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW0zMiBpbW0pCiAgICAgewotICAg
ICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMVBheWxvYWQsIGFyZzFU
YWcsIGltbSwgVHJ1c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSk7CisgICAgICAgIG1faml0
LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5
bG9hZCwgYXJnMVRhZywgaW1tLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpKTsKICAg
ICAgICAgcmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tTZXRSZXN1bHQob3BlcmF0
aW9uLCByZXN1bHRQYXlsb2FkLCByZXN1bHRUYWcpOwogICAgIH0KICAgICBKSVRDb21waWxlcjo6
Q2FsbCBjYWxsT3BlcmF0aW9uKEpfREZHT3BlcmF0aW9uX0VKSiBvcGVyYXRpb24sIEdQUlJlZyBy
ZXN1bHRUYWcsIEdQUlJlZyByZXN1bHRQYXlsb2FkLCBNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bTMyIGltbSwgR1BSUmVnIGFyZzJUYWcsIEdQUlJlZyBhcmcyUGF5bG9hZCkKICAgICB7Ci0gICAg
ICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShpbW0sIFRydXN0ZWRJbW0zMihK
U1ZhbHVlOjpJbnQzMlRhZyksIGFyZzJQYXlsb2FkLCBhcmcyVGFnKTsKKyAgICAgICAgbV9qaXQu
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIGltbSwgVHJ1
c3RlZEltbTMyKEpTVmFsdWU6OkludDMyVGFnKSwgYXJnMlBheWxvYWQsIGFyZzJUYWcpOwogICAg
ICAgICByZXR1cm4gYXBwZW5kQ2FsbFdpdGhFeGNlcHRpb25DaGVja1NldFJlc3VsdChvcGVyYXRp
b24sIHJlc3VsdFBheWxvYWQsIHJlc3VsdFRhZyk7CiAgICAgfQogICAgIEpJVENvbXBpbGVyOjpD
YWxsIGNhbGxPcGVyYXRpb24oSl9ERkdPcGVyYXRpb25fRUNKIG9wZXJhdGlvbiwgR1BSUmVnIHJl
c3VsdFRhZywgR1BSUmVnIHJlc3VsdFBheWxvYWQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMlRh
ZywgR1BSUmVnIGFyZzJQYXlsb2FkKQpAQCAtMTQxNCwxMiArMTQyMywxMiBAQCBwcml2YXRlOgog
ICAgIH0KICAgICBKSVRDb21waWxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKFZfREZHT3BlcmF0aW9u
X0VKUFAgb3BlcmF0aW9uLCBHUFJSZWcgYXJnMVRhZywgR1BSUmVnIGFyZzFQYXlsb2FkLCBHUFJS
ZWcgYXJnMiwgdm9pZCogcG9pbnRlcikKICAgICB7Ci0gICAgICAgIG1faml0LnNldHVwQXJndW1l
bnRzV2l0aEV4ZWNTdGF0ZShhcmcxUGF5bG9hZCwgYXJnMVRhZywgYXJnMiwgVHJ1c3RlZEltbVB0
cihwb2ludGVyKSk7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShF
QUJJXzMyQklUX0RVTU1ZX0FSRyBhcmcxUGF5bG9hZCwgYXJnMVRhZywgYXJnMiwgVHJ1c3RlZElt
bVB0cihwb2ludGVyKSk7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNo
ZWNrKG9wZXJhdGlvbik7CiAgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oVl9ERkdPcGVyYXRpb25fRUpDSSBvcGVyYXRpb24sIEdQUlJlZyBhcmcxVGFnLCBHUFJSZWcg
YXJnMVBheWxvYWQsIEdQUlJlZyBhcmcyLCBJZGVudGlmaWVyKiBpZGVudGlmaWVyKQogICAgIHsK
LSAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzFQYXlsb2FkLCBh
cmcxVGFnLCBhcmcyLCBUcnVzdGVkSW1tUHRyKGlkZW50aWZpZXIpKTsKKyAgICAgICAgbV9qaXQu
c2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKEVBQklfMzJCSVRfRFVNTVlfQVJHIGFyZzFQYXls
b2FkLCBhcmcxVGFnLCBhcmcyLCBUcnVzdGVkSW1tUHRyKGlkZW50aWZpZXIpKTsKICAgICAgICAg
cmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uKTsKICAgICB9CiAg
ICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihWX0RGR09wZXJhdGlvbl9FQ0pKIG9w
ZXJhdGlvbiwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyVGFnLCBHUFJSZWcgYXJnMlBheWxvYWQs
IEdQUlJlZyBhcmczVGFnLCBHUFJSZWcgYXJnM1BheWxvYWQpCkBAIC0xNDI5LDE4ICsxNDM4LDE4
IEBAIHByaXZhdGU6CiAgICAgfQogICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Vl9ERkdPcGVyYXRpb25fRVBaSiBvcGVyYXRpb24sIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwg
R1BSUmVnIGFyZzNUYWcsIEdQUlJlZyBhcmczUGF5bG9hZCkKICAgICB7Ci0gICAgICAgIG1faml0
LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczUGF5bG9hZCwgYXJn
M1RhZyk7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBh
cmcyLCBFQUJJXzMyQklUX0RVTU1ZX0FSRyBhcmczUGF5bG9hZCwgYXJnM1RhZyk7CiAgICAgICAg
IHJldHVybiBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiAgICAgfQog
ICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oVl9ERkdPcGVyYXRpb25fRUFaSiBv
cGVyYXRpb24sIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzNUYWcsIEdQUlJl
ZyBhcmczUGF5bG9hZCkKICAgICB7Ci0gICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzV2l0aEV4
ZWNTdGF0ZShhcmcxLCBhcmcyLCBhcmczUGF5bG9hZCwgYXJnM1RhZyk7CisgICAgICAgIG1faml0
LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShhcmcxLCBhcmcyLCBFQUJJXzMyQklUX0RVTU1Z
X0FSRyBhcmczUGF5bG9hZCwgYXJnM1RhZyk7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsV2l0
aEV4Y2VwdGlvbkNoZWNrKG9wZXJhdGlvbik7CiAgICAgfQogCiAgICAgSklUQ29tcGlsZXI6OkNh
bGwgY2FsbE9wZXJhdGlvbihEX0RGR09wZXJhdGlvbl9FSiBvcGVyYXRpb24sIEZQUlJlZyByZXN1
bHQsIEdQUlJlZyBhcmcxVGFnLCBHUFJSZWcgYXJnMVBheWxvYWQpCiAgICAgewotICAgICAgICBt
X2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoYXJnMVBheWxvYWQsIGFyZzFUYWcpOwor
ICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50c1dpdGhFeGVjU3RhdGUoRUFCSV8zMkJJVF9EVU1N
WV9BUkcgYXJnMVBheWxvYWQsIGFyZzFUYWcpOwogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFdp
dGhFeGNlcHRpb25DaGVja1NldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CiAgICAgfQogCkBA
IC0xNDU0LDYgKzE0NjMsOSBAQCBwcml2YXRlOgogICAgICAgICBtX2ppdC5zZXR1cEFyZ3VtZW50
cyhhcmcxLCBhcmcyKTsKICAgICAgICAgcmV0dXJuIGFwcGVuZENhbGxTZXRSZXN1bHQob3BlcmF0
aW9uLCByZXN1bHQpOwogICAgIH0KKworI3VuZGVmIEVBQklfMzJCSVRfRFVNTVlfQVJHCisKICNl
bmRpZgogCiAgICAgLy8gVGhlc2UgbWV0aG9kcyBhZGQgY2FsbCBpbnN0cnVjdGlvbnMsIHdpdGgg
b3B0aW9uYWwgZXhjZXB0aW9uIGNoZWNrcyAmIHNldHRpbmcgcmVzdWx0cy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMDBhN2Vh
NS4uYmQ1ZTQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNC0zMCAgWW9uZyBMaSAgPHlv
bGlAcmltLmNvbT4KKworICAgICAgICBERkcgSklUIGlzIG5vdCBBUk0gRUFCSSBjb21wYXRpYmxl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDQ0OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBDT01Q
SUxFUl9TVVBQT1JUUyhFQUJJKSB3aGVuIF9fQVJNX0VBQklfXworICAgICAgICBvciBfX0VBQklf
XyBpcyBkZWZpbmVkLgorCisgICAgICAgICogd3RmL0NvbXBpbGVyLmg6CisKIDIwMTItMDQtMjUg
IEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBh
IHZlcnNpb24gb2YgU3RyaW5nSW1wbDo6ZmluZCgpIHdpdGhvdXQgb2Zmc2V0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9Db21waWxlci5oIGIvU291cmNlL1dURi93dGYvQ29tcGlsZXIuaApp
bmRleCBiOGEwMTkyLi4xZDYzODRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Db21waWxl
ci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmgKQEAgLTI1Miw0ICsyNTIsOSBAQAog
I2VuZGlmCiAjZW5kaWYKIAorLyogQUJJICovCisjaWYgZGVmaW5lZChfX0FSTV9FQUJJX18pIHx8
IGRlZmluZWQoX19FQUJJX18pCisjZGVmaW5lIFdURl9DT01QSUxFUl9TVVBQT1JUU19FQUJJIDEK
KyNlbmRpZgorCiAjZW5kaWYgLyogV1RGX0NvbXBpbGVyX2ggKi8K
</data>

          </attachment>
      

    </bug>

</bugzilla>