<?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>65778</bug_id>
          
          <creation_ts>2011-08-05 10:52:53 -0700</creation_ts>
          <short_desc>[WebWorkers][chromium] Make statics thread-safe and make sure V8 API accesses correct isolates</short_desc>
          <delta_ts>2011-08-09 12:01:25 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          <dependson>65881</dependson>
          <blocked>61016</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dmitry Lomov">dslomov</reporter>
          <assigned_to name="Dmitry Lomov">dslomov</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dimich</cc>
    
    <cc>dslomov</cc>
    
    <cc>levin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>447284</commentid>
    <comment_count>0</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-08-05 10:52:53 -0700</bug_when>
    <thetext>After attempting to switch WebWorkers in-process and run tests I discovered a bunch of statics that should be made per-isolate and several cases of V8 API accessing the wrong isolate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447288</commentid>
    <comment_count>1</comment_count>
      <attachid>103086</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-08-05 10:57:25 -0700</bug_when>
    <thetext>Created attachment 103086
Fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447298</commentid>
    <comment_count>2</comment_count>
      <attachid>103086</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-05 11:15:17 -0700</bug_when>
    <thetext>Comment on attachment 103086
Fixes.

Attachment 103086 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9310020</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447332</commentid>
    <comment_count>3</comment_count>
      <attachid>103086</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-05 12:18:04 -0700</bug_when>
    <thetext>Comment on attachment 103086
Fixes.

Attachment 103086 did not pass cr-mac-ews (chromium):
Output: http://queues.webkit.org/results/9323039</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447395</commentid>
    <comment_count>4</comment_count>
      <attachid>103102</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-08-05 13:53:38 -0700</bug_when>
    <thetext>Created attachment 103102
Release compilation fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447827</commentid>
    <comment_count>5</comment_count>
      <attachid>103102</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-08-07 20:59:07 -0700</bug_when>
    <thetext>Comment on attachment 103102
Release compilation fixed

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

Just a few things to clear/clean up.

&gt; Source/WebCore/ChangeLog:11
&gt; +        (WebCore::V8BindingPerIsolateData::lazyEventListenerToStringTemplate):

Why are all of these items being moved?

Ideally they would be moved in one change and if any changes were needed, then that would happen in another change.

&gt; Source/WebCore/bindings/v8/V8Binding.h:176
&gt; +        inline AllowAllocation()

Isn&apos;t inline redundant here (since you put the function body in the class definition)?

&gt; Source/WebCore/bindings/v8/V8Binding.h:183
&gt; +        inline ~AllowAllocation()

Ditto.

&gt; Source/WebCore/bindings/v8/V8Binding.h:199
&gt; +      static inline v8::Local&lt;v8::Object&gt; newInstance(v8::Handle&lt;v8::Function&gt;, int argc, v8::Handle&lt;v8::Value&gt; argv[]);

The indentation is following Chromium style as opposed to WebKit style.

&gt; Source/WebCore/bindings/v8/V8LazyEventListener.cpp:143
&gt;                  toStringTemplate = v8::Persistent&lt;v8::FunctionTemplate&gt;::New(v8::FunctionTemplate::New(V8LazyEventListenerToString));

I wonder why this isn&apos;t part of the method lazyEventListenerToStringTemplate.

&gt; Source/WebKit/chromium/ChangeLog:8
&gt; +        * src/BoundObject.cpp:Headers

Would be nice to explain why this change was needed. (Now I see why bur it is still nice to add the info here to make it quicker for people to understand.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448078</commentid>
    <comment_count>6</comment_count>
      <attachid>103102</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-08-08 10:20:15 -0700</bug_when>
    <thetext>Comment on attachment 103102
Release compilation fixed

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

&gt;&gt; Source/WebCore/ChangeLog:11

&gt; 
&gt; Why are all of these items being moved?
&gt; 
&gt; Ideally they would be moved in one change and if any changes were needed, then that would happen in another change.

You mean why AllowAllocation is moved between headers? This is because of the header dependencies (V8Proxy include V8Utilities include V8Bindings include V8Proxy).

Do you insist on splitting class move between headers and change in class into two different patches? I see little reason for that.

&gt;&gt; Source/WebCore/bindings/v8/V8Binding.h:176
&gt;&gt; +        inline AllowAllocation()
&gt; 
&gt; Isn&apos;t inline redundant here (since you put the function body in the class definition)?

You are right - I&apos;ll remove this.

&gt;&gt; Source/WebCore/bindings/v8/V8Binding.h:199
&gt;&gt; +      static inline v8::Local&lt;v8::Object&gt; newInstance(v8::Handle&lt;v8::Function&gt;, int argc, v8::Handle&lt;v8::Value&gt; argv[]);
&gt; 
&gt; The indentation is following Chromium style as opposed to WebKit style.

Will fix

&gt;&gt; Source/WebCore/bindings/v8/V8LazyEventListener.cpp:143
&gt;&gt;                  toStringTemplate = v8::Persistent&lt;v8::FunctionTemplate&gt;::New(v8::FunctionTemplate::New(V8LazyEventListenerToString));
&gt; 
&gt; I wonder why this isn&apos;t part of the method lazyEventListenerToStringTemplate.

V8BindingPerIsolateData does not need to know anything about V8LazyEventListener, other than provide a container for its data. This logic really belongs here.

&gt;&gt; Source/WebKit/chromium/ChangeLog:8
&gt;&gt; +        * src/BoundObject.cpp:Headers
&gt; 
&gt; Would be nice to explain why this change was needed. (Now I see why bur it is still nice to add the info here to make it quicker for people to understand.)

True that) Will add comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448091</commentid>
    <comment_count>7</comment_count>
      <attachid>103263</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-08-08 10:39:19 -0700</bug_when>
    <thetext>Created attachment 103263
CR feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448127</commentid>
    <comment_count>8</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-08-08 11:17:58 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 103102 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=103102&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/ChangeLog:11
&gt; 
&gt; &gt; 
&gt; &gt; Why are all of these items being moved?
&gt; &gt; 
&gt; &gt; Ideally they would be moved in one change and if any changes were needed, then that would happen in another change.
&gt; 
&gt; You mean why AllowAllocation is moved between headers? This is because of the header dependencies (V8Proxy include V8Utilities include V8Bindings include V8Proxy).
&gt; 
&gt; Do you insist on splitting class move between headers and change in class into two different patches? I see little reason for that.

I won&apos;t insist. However, doing this all at once makes it much harder to determine what is being moved vs what is being changed but at the moment and later when someone goes thru diffs to understand what was done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448158</commentid>
    <comment_count>9</comment_count>
      <attachid>103263</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-08 12:11:48 -0700</bug_when>
    <thetext>Comment on attachment 103263
CR feedback

Clearing flags on attachment: 103263

Committed r92619: &lt;http://trac.webkit.org/changeset/92619&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448159</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-08 12:11:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448183</commentid>
    <comment_count>11</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-08-08 12:39:33 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 103102 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=103102&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/WebCore/ChangeLog:11
&gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; Why are all of these items being moved?
&gt; &gt; &gt; 
&gt; &gt; &gt; Ideally they would be moved in one change and if any changes were needed, then that would happen in another change.
&gt; &gt; 
&gt; &gt; You mean why AllowAllocation is moved between headers? This is because of the header dependencies (V8Proxy include V8Utilities include V8Bindings include V8Proxy).
&gt; &gt; 
&gt; &gt; Do you insist on splitting class move between headers and change in class into two different patches? I see little reason for that.
&gt; 
&gt; I won&apos;t insist. However, doing this all at once makes it much harder to determine what is being moved vs what is being changed but at the moment and later when someone goes thru diffs to understand what was done.

Point taken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448301</commentid>
    <comment_count>12</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-08-08 15:16:51 -0700</bug_when>
    <thetext>Patch rolled out due to breaking chromium canary</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448659</commentid>
    <comment_count>13</comment_count>
      <attachid>103370</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-08-09 10:37:23 -0700</bug_when>
    <thetext>Created attachment 103370
Fixed field initialization to unbreak chromium canary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448718</commentid>
    <comment_count>14</comment_count>
      <attachid>103370</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-09 12:01:20 -0700</bug_when>
    <thetext>Comment on attachment 103370
Fixed field initialization to unbreak chromium canary.

Clearing flags on attachment: 103370

Committed r92694: &lt;http://trac.webkit.org/changeset/92694&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448719</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-09 12:01:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103086</attachid>
            <date>2011-08-05 10:57:25 -0700</date>
            <delta_ts>2011-08-05 13:53:38 -0700</delta_ts>
            <desc>Fixes.</desc>
            <filename>65778.patch</filename>
            <type>text/plain</type>
            <size>18590</size>
            <attacher name="Dmitry Lomov">dslomov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwMmFlNDNiLi40NWYxYTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMTEtMDgtMDUgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NzgKKyAgICAg
ICAgW1dlYldvcmtlcnNdW2Nocm9taXVtXSBNYWtlIHN0YXRpY3MgdGhyZWFkLXNhZmUgYW5kIG1h
a2Ugc3VyZSBWOCBBUEkgYWNjZXNzZXMgY29ycmVjdCBpc29sYXRlcy4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRl
c3RzLgorCisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAgICAgIChXZWJD
b3JlOjpWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6bGF6eUV2ZW50TGlzdGVuZXJUb1N0cmluZ1Rl
bXBsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpoaWRk
ZW5Qcm9wZXJ0eU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6VjhCaW5kaW5nUGVySXNvbGF0ZURh
dGE6Omdsb2JhbEhhbmRsZU1hcCk6CisgICAgICAgIChXZWJDb3JlOjpBbGxvd0FsbG9jYXRpb246
OkFsbG93QWxsb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBbGxvd0FsbG9jYXRpb246On5B
bGxvd0FsbG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QWxsb3dBbGxvY2F0aW9uOjpjdXJy
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNhZmVBbGxvY2F0aW9uOjpuZXdJbnN0YW5jZSk6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y3VycmVudEdsb2JhbEhhbmRsZU1hcCk6CisgICAgICAgIChXZWJDb3JlOjplbnVtZXJhdGVH
bG9iYWxIYW5kbGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlY4R0NDb250cm9sbGVyOjpyZWdpc3Rl
ckdsb2JhbEhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpWOEdDQ29udHJvbGxlcjo6dW5yZWdp
c3Rlckdsb2JhbEhhbmRsZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0
eU5hbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhIaWRkZW5Qcm9wZXJ0eU5hbWU6OmNyZWF0
ZVN0cmluZyk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9WOExhenlFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4TGF6eUV2ZW50TGlzdGVuZXI6OnByZXBhcmVMaXN0ZW5lck9iamVjdCk6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvVjhOUE9iamVjdC5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
djgvVjhQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFByb3h5OjpjaGVja05ld0xlZ2Fs
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFV0aWxpdGllcy5oOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6OldvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94
eSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6OmluaXRJ
c29sYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJv
eHkuaDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xsZXI6OnNjaGVkdWxlRXhlY3V0
aW9uVGVybWluYXRpb24pOgorCiAyMDExLTA4LTA1ICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhhcm9u
QG5va2lhLmNvbT4KIAogICAgICAgICBkaXI9YXV0byBuZWVkcyB0byB3b3JrIG9uIHZhbHVlIG9m
IGlucHV0IGFuZCB0ZXh0YXJlYSBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhCaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJp
bmRpbmcuaAppbmRleCA1NDA4ZDNjLi45YThhZGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOEJpbmRpbmcuaApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgIk1hdGhFeHRyYXMuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgor
I2luY2x1ZGUgIlY4R0NDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiVjhIaWRkZW5Qcm9wZXJ0eU5h
bWUuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAogI2luY2x1ZGUgPHY4
Lmg+CkBAIC04NSw2ICs4NywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBtX2xhc3RTdHJpbmdJbXBsOwogICAgIH07CiAKKyAgICBjbGFzcyBBbGxv
d0FsbG9jYXRpb247CisKKyAgICB0eXBlZGVmIEhhc2hNYXA8djg6OlZhbHVlKiwgR2xvYmFsSGFu
ZGxlSW5mbyo+IEdsb2JhbEhhbmRsZU1hcDsKKwogICAgIGNsYXNzIFY4QmluZGluZ1Blcklzb2xh
dGVEYXRhIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBWOEJpbmRpbmdQZXJJc29sYXRl
RGF0YSogY3JlYXRlKHY4OjpJc29sYXRlKik7CkBAIC0xMDcsMTAgKzExMywxOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIFRlbXBsYXRlTWFwJiB0ZW1wbGF0ZU1hcCgpIHsgcmV0dXJu
IG1fdGVtcGxhdGVzOyB9CiAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+JiB0b1N0
cmluZ05hbWUoKSB7IHJldHVybiBtX3RvU3RyaW5nTmFtZTsgfQogICAgICAgICB2ODo6UGVyc2lz
dGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4mIHRvU3RyaW5nVGVtcGxhdGUoKSB7IHJldHVybiBt
X3RvU3RyaW5nVGVtcGxhdGU7IH0KKworICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rp
b25UZW1wbGF0ZT4mIGxhenlFdmVudExpc3RlbmVyVG9TdHJpbmdUZW1wbGF0ZSgpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHJldHVybiBtX2xhenlFdmVudExpc3RlbmVyVG9TdHJpbmdUZW1wbGF0
ZTsKKyAgICAgICAgfQorCiAgICAgICAgIFN0cmluZ0NhY2hlKiBzdHJpbmdDYWNoZSgpIHsgcmV0
dXJuICZtX3N0cmluZ0NhY2hlOyB9CiAKICAgICAgICAgRE9NRGF0YUxpc3QmIGFsbFN0b3Jlcygp
IHsgcmV0dXJuIG1fZG9tRGF0YUxpc3Q7IH0KIAorICAgICAgICBWOEhpZGRlblByb3BlcnR5TmFt
ZSogaGlkZGVuUHJvcGVydHlOYW1lKCkgeyByZXR1cm4gJm1faGlkZGVuUHJvcGVydHlOYW1lOyB9
CisKICAgICAgICAgdm9pZCByZWdpc3RlckRPTURhdGFTdG9yZShET01EYXRhU3RvcmUqIGRvbURh
dGFTdG9yZSkgCiAgICAgICAgIHsKICAgICAgICAgICAgIG1fZG9tRGF0YUxpc3QuYXBwZW5kKGRv
bURhdGFTdG9yZSk7CkBAIC0xMjcsNiArMTQxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICAvLyBET01EYXRhU3RvcmUgaXMgb3duZWQgb3V0c2lkZSBWOEJpbmRpbmdQZXJJc29sYXRl
RGF0YS4KICAgICAgICAgdm9pZCBzZXRET01EYXRhU3RvcmUoRE9NRGF0YVN0b3JlKiBzdG9yZSkg
eyBtX2RvbURhdGFTdG9yZSA9IHN0b3JlOyB9CiAKKyAgICAgICAgR2xvYmFsSGFuZGxlTWFwJiBn
bG9iYWxIYW5kbGVNYXAoKSB7IHJldHVybiBtX2dsb2JhbEhhbmRsZU1hcDsgfQorCiAgICAgcHJp
dmF0ZToKICAgICAgICAgZXhwbGljaXQgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEodjg6Oklzb2xh
dGUqKTsKICAgICAgICAgflY4QmluZGluZ1Blcklzb2xhdGVEYXRhKCk7CkBAIC0xMzUsMTIgKzE1
MSw3MyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFRlbXBsYXRlTWFwIG1fdGVtcGxh
dGVzOwogICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiBtX3RvU3RyaW5nTmFtZTsK
ICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IG1fdG9TdHJpbmdU
ZW1wbGF0ZTsKKyAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IG1f
bGF6eUV2ZW50TGlzdGVuZXJUb1N0cmluZ1RlbXBsYXRlOwogICAgICAgICBTdHJpbmdDYWNoZSBt
X3N0cmluZ0NhY2hlOwogCiAgICAgICAgIERPTURhdGFMaXN0IG1fZG9tRGF0YUxpc3Q7CiAgICAg
ICAgIERPTURhdGFTdG9yZSogbV9kb21EYXRhU3RvcmU7CisKKyAgICAgICAgVjhIaWRkZW5Qcm9w
ZXJ0eU5hbWUgbV9oaWRkZW5Qcm9wZXJ0eU5hbWU7CisKKyAgICAgICAgYm9vbCBtX2N1cnJlbnRB
bGxvY2F0aW9uc0FsbG93ZWQ7CisgICAgICAgIGZyaWVuZCBjbGFzcyBBbGxvd0FsbG9jYXRpb247
CisKKyAgICAgICAgR2xvYmFsSGFuZGxlTWFwIG1fZ2xvYmFsSGFuZGxlTWFwOworICAgIH07CisK
KyAgICBjbGFzcyBBbGxvd0FsbG9jYXRpb24geworICAgIHB1YmxpYzoKKyAgICAgICAgaW5saW5l
IEFsbG93QWxsb2NhdGlvbigpCisgICAgICAgIHsKKyAgICAgICAgICAgIFY4QmluZGluZ1Blcklz
b2xhdGVEYXRhKiBkYXRhID0gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKTsKKyAg
ICAgICAgICAgIG1fcHJldmlvdXMgPSBkYXRhLT5tX2N1cnJlbnRBbGxvY2F0aW9uc0FsbG93ZWQ7
CisgICAgICAgICAgICBkYXRhLT5tX2N1cnJlbnRBbGxvY2F0aW9uc0FsbG93ZWQgPSB0cnVlOwor
ICAgICAgICB9CisKKyAgICAgICAgaW5saW5lIH5BbGxvd0FsbG9jYXRpb24oKQorICAgICAgICB7
CisgICAgICAgICAgICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4QmluZGluZ1Bl
cklzb2xhdGVEYXRhOjpjdXJyZW50KCk7CisgICAgICAgICAgICBkYXRhLT5tX2N1cnJlbnRBbGxv
Y2F0aW9uc0FsbG93ZWQgPSBtX3ByZXZpb3VzOworICAgICAgICB9CisKKyAgICAgICAgc3RhdGlj
IGJvb2wgY3VycmVudCgpIHsgcmV0dXJuIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50
KCktPm1fY3VycmVudEFsbG9jYXRpb25zQWxsb3dlZDsgfQorCisgICAgcHJpdmF0ZToKKyAgICAg
ICAgYm9vbCBtX3ByZXZpb3VzOwogICAgIH07CiAKKyAgICBjbGFzcyBTYWZlQWxsb2NhdGlvbiB7
CisgICAgIHB1YmxpYzoKKyAgICAgIHN0YXRpYyBpbmxpbmUgdjg6OkxvY2FsPHY4OjpPYmplY3Q+
IG5ld0luc3RhbmNlKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPik7CisgICAgICBzdGF0aWMgaW5s
aW5lIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBuZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpPYmpl
Y3RUZW1wbGF0ZT4pOworICAgICAgc3RhdGljIGlubGluZSB2ODo6TG9jYWw8djg6Ok9iamVjdD4g
bmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+LCBpbnQgYXJnYywgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IGFyZ3ZbXSk7CisgICAgfTsKKworICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0
PiBTYWZlQWxsb2NhdGlvbjo6bmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+IGZ1
bmN0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKGZ1bmN0aW9uLklzRW1wdHkoKSkKKyAgICAgICAg
ICAgIHJldHVybiB2ODo6TG9jYWw8djg6Ok9iamVjdD4oKTsKKyAgICAgICAgQWxsb3dBbGxvY2F0
aW9uIGFsbG93OworICAgICAgICByZXR1cm4gZnVuY3Rpb24tPk5ld0luc3RhbmNlKCk7CisgICAg
fQorCisgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IFNhZmVBbGxvY2F0aW9uOjpuZXdJbnN0YW5j
ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4gb2JqZWN0VGVtcGxhdGUpCisgICAgewor
ICAgICAgICBpZiAob2JqZWN0VGVtcGxhdGUuSXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJu
IHY4OjpMb2NhbDx2ODo6T2JqZWN0PigpOworICAgICAgICBBbGxvd0FsbG9jYXRpb24gYWxsb3c7
CisgICAgICAgIHJldHVybiBvYmplY3RUZW1wbGF0ZS0+TmV3SW5zdGFuY2UoKTsKKyAgICB9CisK
KyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gU2FmZUFsbG9jYXRpb246Om5ld0luc3RhbmNlKHY4
OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBmdW5jdGlvbiwgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBhcmd2W10pCisgICAgeworICAgICAgICBpZiAoZnVuY3Rpb24uSXNFbXB0eSgpKQor
ICAgICAgICAgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6T2JqZWN0PigpOworICAgICAgICBBbGxv
d0FsbG9jYXRpb24gYWxsb3c7CisgICAgICAgIHJldHVybiBmdW5jdGlvbi0+TmV3SW5zdGFuY2Uo
YXJnYywgYXJndik7CisgICAgfQorCisKIAogICAgIGVudW0gRXh0ZXJuYWxNb2RlIHsKICAgICAg
ICAgRXh0ZXJuYWxpemUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OEdDQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJv
bGxlci5jcHAKaW5kZXggYjc0MzdkYi4uODcxODBmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcApAQCAtODEsMTkgKzgxLDE4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIC8vICAgIFY4R0NDb250cm9sbGVyOjp1bnJlZ2lzdGVyR2xvYmFsSGFuZGxl
KHR5cGUsIGhvc3QsIGhhbmRsZSk7CiAvLyAjZW5kaWYKIC8vCi10eXBlZGVmIEhhc2hNYXA8djg6
OlZhbHVlKiwgR2xvYmFsSGFuZGxlSW5mbyo+IEdsb2JhbEhhbmRsZU1hcDsKIAotc3RhdGljIEds
b2JhbEhhbmRsZU1hcCYgZ2xvYmFsSGFuZGxlTWFwKCkKK3N0YXRpYyBHbG9iYWxIYW5kbGVNYXAm
IGN1cnJlbnRHbG9iYWxIYW5kbGVNYXAoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoR2xv
YmFsSGFuZGxlTWFwLCBzdGF0aWNHbG9iYWxIYW5kbGVNYXAsICgpKTsKLSAgICByZXR1cm4gc3Rh
dGljR2xvYmFsSGFuZGxlTWFwOworICAgIHJldHVybiBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6
Y3VycmVudCgpLT5nbG9iYWxIYW5kbGVNYXAoKTsKIH0KIAogLy8gVGhlIGZ1bmN0aW9uIGlzIHRo
ZSBwbGFjZSB0byBzZXQgdGhlIGJyZWFrIHBvaW50IHRvIGluc3BlY3QKIC8vIGxpdmUgZ2xvYmFs
IGhhbmRsZXMuIExlYWtzIGFyZSBvZnRlbiBjb21lIGZyb20gbGVha2VkIGdsb2JhbCBoYW5kbGVz
Lgogc3RhdGljIHZvaWQgZW51bWVyYXRlR2xvYmFsSGFuZGxlcygpCiB7Ci0gICAgZm9yIChHbG9i
YWxIYW5kbGVNYXA6Oml0ZXJhdG9yIGl0ID0gZ2xvYmFsSGFuZGxlTWFwKCkuYmVnaW4oKSwgZW5k
ID0gZ2xvYmFsSGFuZGxlTWFwKCkuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgIEdsb2Jh
bEhhbmRsZU1hcCYgZ2xvYmFsSGFuZGxlTWFwID0gY3VycmVudEdsb2JhbEhhbmRsZU1hcCgpOwor
ICAgIGZvciAoR2xvYmFsSGFuZGxlTWFwOjppdGVyYXRvciBpdCA9IGdsb2JhbEhhbmRsZU1hcC5i
ZWdpbigpLCBlbmQgPSBnbG9iYWxIYW5kbGVNYXAuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkgewog
ICAgICAgICBHbG9iYWxIYW5kbGVJbmZvKiBpbmZvID0gaXQtPnNlY29uZDsKICAgICAgICAgVU5V
U0VEX1BBUkFNKGluZm8pOwogICAgICAgICB2ODo6VmFsdWUqIGhhbmRsZSA9IGl0LT5maXJzdDsK
QEAgLTEwMywxNCArMTAyLDE2IEBAIHN0YXRpYyB2b2lkIGVudW1lcmF0ZUdsb2JhbEhhbmRsZXMo
KQogCiB2b2lkIFY4R0NDb250cm9sbGVyOjpyZWdpc3Rlckdsb2JhbEhhbmRsZShHbG9iYWxIYW5k
bGVUeXBlIHR5cGUsIHZvaWQqIGhvc3QsIHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4gaGFuZGxl
KQogewotICAgIEFTU0VSVCghZ2xvYmFsSGFuZGxlTWFwKCkuY29udGFpbnMoKmhhbmRsZSkpOwot
ICAgIGdsb2JhbEhhbmRsZU1hcCgpLnNldCgqaGFuZGxlLCBuZXcgR2xvYmFsSGFuZGxlSW5mbyho
b3N0LCB0eXBlKSk7CisgICAgR2xvYmFsSGFuZGxlTWFwJiBnbG9iYWxIYW5kbGVNYXAgPSBjdXJy
ZW50R2xvYmFsSGFuZGxlTWFwKCk7CisgICAgQVNTRVJUKCFnbG9iYWxIYW5kbGVNYXAuY29udGFp
bnMoKmhhbmRsZSkpOworICAgIGdsb2JhbEhhbmRsZU1hcC5zZXQoKmhhbmRsZSwgbmV3IEdsb2Jh
bEhhbmRsZUluZm8oaG9zdCwgdHlwZSkpOwogfQogCiB2b2lkIFY4R0NDb250cm9sbGVyOjp1bnJl
Z2lzdGVyR2xvYmFsSGFuZGxlKHZvaWQqIGhvc3QsIHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4g
aGFuZGxlKQogewotICAgIEFTU0VSVChnbG9iYWxIYW5kbGVNYXAoKS5jb250YWlucygqaGFuZGxl
KSk7Ci0gICAgR2xvYmFsSGFuZGxlSW5mbyogaW5mbyA9IGdsb2JhbEhhbmRsZU1hcCgpLnRha2Uo
KmhhbmRsZSk7CisgICAgR2xvYmFsSGFuZGxlTWFwJiBnbG9iYWxIYW5kbGVNYXAgPSBjdXJyZW50
R2xvYmFsSGFuZGxlTWFwKCk7CisgICAgQVNTRVJUKGdsb2JhbEhhbmRsZU1hcC5jb250YWlucygq
aGFuZGxlKSk7CisgICAgR2xvYmFsSGFuZGxlSW5mbyogaW5mbyA9IGdsb2JhbEhhbmRsZU1hcC50
YWtlKCpoYW5kbGUpOwogICAgIEFTU0VSVChpbmZvLT5tX2hvc3QgPT0gaG9zdCk7CiAgICAgZGVs
ZXRlIGluZm87CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEhp
ZGRlblByb3BlcnR5TmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEhpZGRl
blByb3BlcnR5TmFtZS5jcHAKaW5kZXggMGY1YTY3NC4uOTNhYzc1MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmNwcApAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlY4SGlkZGVuUHJvcGVy
dHlOYW1lLmgiCiAKKyNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlIDxzdHJpbmcuaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTQyLDggKzQzLDExIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICNkZWZpbmUgVjhfREVGSU5FX1BST1BFUlRZKG5hbWUpIFwKIHY4OjpIYW5kbGU8
djg6OlN0cmluZz4gVjhIaWRkZW5Qcm9wZXJ0eU5hbWU6Om5hbWUoKSBcCiB7IFwKLSAgICBzdGF0
aWMgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4qIHN0cmluZyA9IGNyZWF0ZVN0cmluZygiV2Vi
Q29yZTo6SGlkZGVuUHJvcGVydHk6OiIgVjhfQVNfU1RSSU5HKG5hbWUpKTsgXAotICAgIHJldHVy
biAqc3RyaW5nOyBcCisgICAgVjhIaWRkZW5Qcm9wZXJ0eU5hbWUqIGhpZGRlblByb3BlcnR5TmFt
ZSA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCktPmhpZGRlblByb3BlcnR5TmFt
ZSgpOyBcCisgICAgaWYgKGhpZGRlblByb3BlcnR5TmFtZS0+bV8jI25hbWUuSXNFbXB0eSgpKSB7
IFwKKyAgICAgICAgaGlkZGVuUHJvcGVydHlOYW1lLT5tXyMjbmFtZSA9IGNyZWF0ZVN0cmluZygi
V2ViQ29yZTo6SGlkZGVuUHJvcGVydHk6OiIgVjhfQVNfU1RSSU5HKG5hbWUpKTsgXAorICAgIH0g
XAorICAgIHJldHVybiBoaWRkZW5Qcm9wZXJ0eU5hbWUtPm1fIyNuYW1lOyBcCiB9CiAKIFY4X0hJ
RERFTl9QUk9QRVJUSUVTKFY4X0RFRklORV9QUk9QRVJUWSk7CkBAIC01OSwxMCArNjMsMTAgQEAg
djg6OkhhbmRsZTx2ODo6U3RyaW5nPiBWOEhpZGRlblByb3BlcnR5TmFtZTo6aGlkZGVuUmVmZXJl
bmNlTmFtZShjb25zdCBjaGFyKiBuYW0KICAgICByZXR1cm4gdjg6OlN0cmluZzo6TmV3U3ltYm9s
KHByZWZpeGVkTmFtZS5kYXRhKCksIHN0YXRpY19jYXN0PGludD4ocHJlZml4ZWROYW1lLnNpemUo
KSkpOwogfQogCi12ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiogVjhIaWRkZW5Qcm9wZXJ0eU5h
bWU6OmNyZWF0ZVN0cmluZyhjb25zdCBjaGFyKiBrZXkpCit2ODo6UGVyc2lzdGVudDx2ODo6U3Ry
aW5nPiBWOEhpZGRlblByb3BlcnR5TmFtZTo6Y3JlYXRlU3RyaW5nKGNvbnN0IGNoYXIqIGtleSkK
IHsKICAgICB2ODo6SGFuZGxlU2NvcGUgc2NvcGU7Ci0gICAgcmV0dXJuIG5ldyB2ODo6UGVyc2lz
dGVudDx2ODo6U3RyaW5nPih2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPjo6TmV3KHY4OjpTdHJp
bmc6Ok5ld1N5bWJvbChrZXkpKSk7CisgICAgcmV0dXJuIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJp
bmc+OjpOZXcodjg6OlN0cmluZzo6TmV3U3ltYm9sKGtleSkpOwogfQogCiB9ICAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIaWRk
ZW5Qcm9wZXJ0eU5hbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJv
cGVydHlOYW1lLmgKaW5kZXggN2M0YWFlMC4uNGFjODUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEhpZGRlblByb3BlcnR5TmFtZS5oCkBAIC01NSw3ICs1NSwxMCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpTdHJp
bmc+IGhpZGRlblJlZmVyZW5jZU5hbWUoY29uc3QgY2hhciogbmFtZSk7CiAKICAgICBwcml2YXRl
OgotICAgICAgICBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4qIGNyZWF0ZVN0cmlu
Zyhjb25zdCBjaGFyKiBrZXkpOworICAgICAgICBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OlN0
cmluZz4gY3JlYXRlU3RyaW5nKGNvbnN0IGNoYXIqIGtleSk7CisjZGVmaW5lIFY4X0RFQ0xBUkVf
RklFTEQobmFtZSkgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4gbV8jI25hbWU7CisgICAgICAg
IFY4X0hJRERFTl9QUk9QRVJUSUVTKFY4X0RFQ0xBUkVfRklFTEQpOworI3VuZGVmIFY4X0RFQ0xB
UkVfRklFTEQKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOExhenlFdmVudExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4TGF6eUV2ZW50TGlzdGVuZXIuY3BwCmluZGV4IGU2YTFlODguLjE3MjE4YzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TGF6eUV2ZW50TGlzdGVuZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TGF6eUV2ZW50TGlzdGVuZXIuY3BwCkBA
IC0xMzcsNyArMTM3LDggQEAgdm9pZCBWOExhenlFdmVudExpc3RlbmVyOjpwcmVwYXJlTGlzdGVu
ZXJPYmplY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAgICAgICAgICAgIC8v
IHNvdXJjZSByZXR1cm5lZCAoc29tZXRpbWVzIGEgUmVnRXhwIGlzIGFwcGxpZWQgYXMgd2VsbCkg
Zm9yIHNvbWUKICAgICAgICAgICAgIC8vIG90aGVyIHVzZS4gVGhhdCBmYWlscyBtaXNlcmFibHkg
aWYgdGhlIGFjdHVhbCB3cmFwcGVyIHNvdXJjZSBpcwogICAgICAgICAgICAgLy8gcmV0dXJuZWQu
Ci0gICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5j
dGlvblRlbXBsYXRlPiwgdG9TdHJpbmdUZW1wbGF0ZSwgKCkpOworICAgICAgICAgICAgdjg6OlBl
cnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+JiB0b1N0cmluZ1RlbXBsYXRlID0KKyAgICAg
ICAgICAgICAgICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpLT5sYXp5RXZlbnRM
aXN0ZW5lclRvU3RyaW5nVGVtcGxhdGUoKTsKICAgICAgICAgICAgIGlmICh0b1N0cmluZ1RlbXBs
YXRlLklzRW1wdHkoKSkKICAgICAgICAgICAgICAgICB0b1N0cmluZ1RlbXBsYXRlID0gdjg6OlBl
cnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+OjpOZXcodjg6OkZ1bmN0aW9uVGVtcGxhdGU6
Ok5ldyhWOExhenlFdmVudExpc3RlbmVyVG9TdHJpbmcpKTsKICAgICAgICAgICAgIHY4OjpMb2Nh
bDx2ODo6RnVuY3Rpb24+IHRvU3RyaW5nRnVuY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOE5QT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4TlBPYmplY3QuY3BwCmluZGV4IDM2NjQwYjcuLjY5MTUwNTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TlBPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4TlBPYmplY3QuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAKICNpbmNs
dWRlICJIVE1MUGx1Z0luRWxlbWVudC5oIgogI2luY2x1ZGUgIk5QVjhPYmplY3QuaCIKKyNpbmNs
dWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOERPTU1hcC5oIgogI2luY2x1ZGUgIlY4SFRN
TEFwcGxldEVsZW1lbnQuaCIKICNpbmNsdWRlICJWOEhUTUxFbWJlZEVsZW1lbnQuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKaW5kZXggYTQ3ODg1ZS4uZDIyYjU5MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKQEAgLTEzMiw4ICsxMzIsNiBAQCB0
eXBlZGVmIEhhc2hNYXA8Tm9kZSosIHY4OjpPYmplY3QqPiBET01Ob2RlTWFwOwogdHlwZWRlZiBI
YXNoTWFwPHZvaWQqLCB2ODo6T2JqZWN0Kj4gRE9NT2JqZWN0TWFwOwogdHlwZWRlZiBIYXNoTWFw
PGludCwgdjg6OkZ1bmN0aW9uVGVtcGxhdGUqPiBGdW5jdGlvblRlbXBsYXRlTWFwOwogCi1ib29s
IEFsbG93QWxsb2NhdGlvbjo6bV9jdXJyZW50ID0gZmFsc2U7Ci0KIHN0YXRpYyB2b2lkIGFkZE1l
c3NhZ2VUb0NvbnNvbGUoUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBT
dHJpbmcmIHNvdXJjZUlELCB1bnNpZ25lZCBsaW5lTnVtYmVyKQogewogICAgIEFTU0VSVChwYWdl
KTsKQEAgLTc4Myw3ICs3ODEsNyBAQCB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IFY4UHJveHk6OmN1
cnJlbnRDb250ZXh0KCkKIAogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4UHJveHk6OmNoZWNrTmV3
TGVnYWwoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKLSAgICBpZiAoIUFsbG93QWxsb2Nh
dGlvbjo6bV9jdXJyZW50KQorICAgIGlmICghQWxsb3dBbGxvY2F0aW9uOjpjdXJyZW50KCkpCiAg
ICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFR5cGVFcnJvciwgIklsbGVnYWwgY29uc3RydWN0b3Ii
KTsKIAogICAgIHJldHVybiBhcmdzLlRoaXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OFV0aWxpdGllcy5oCmluZGV4IGMyMTc5NjQuLmJlYTdkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhVdGlsaXRpZXMuaApAQCAtOTUsNTYgKzk1LDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICByZXR1cm4gVjhDYWxsYmFja1R5cGU6OmNyZWF0ZSh2YWx1ZSwgZ2V0U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICB9CiAKLSAgICBjbGFzcyBBbGxvd0FsbG9jYXRp
b24gewotICAgIHB1YmxpYzoKLSAgICAgICAgaW5saW5lIEFsbG93QWxsb2NhdGlvbigpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIG1fcHJldmlvdXMgPSBtX2N1cnJlbnQ7Ci0gICAgICAgICAgICBt
X2N1cnJlbnQgPSB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgaW5saW5lIH5BbGxvd0FsbG9j
YXRpb24oKQotICAgICAgICB7Ci0gICAgICAgICAgICBtX2N1cnJlbnQgPSBtX3ByZXZpb3VzOwot
ICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGljIGJvb2wgbV9jdXJyZW50OwotCi0gICAgcHJpdmF0
ZToKLSAgICAgICAgYm9vbCBtX3ByZXZpb3VzOwotICAgIH07Ci0KLSAgICBjbGFzcyBTYWZlQWxs
b2NhdGlvbiB7Ci0gICAgIHB1YmxpYzoKLSAgICAgIHN0YXRpYyBpbmxpbmUgdjg6OkxvY2FsPHY4
OjpPYmplY3Q+IG5ld0luc3RhbmNlKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPik7Ci0gICAgICBz
dGF0aWMgaW5saW5lIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBuZXdJbnN0YW5jZSh2ODo6SGFuZGxl
PHY4OjpPYmplY3RUZW1wbGF0ZT4pOwotICAgICAgc3RhdGljIGlubGluZSB2ODo6TG9jYWw8djg6
Ok9iamVjdD4gbmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+LCBpbnQgYXJnYywg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSk7Ci0gICAgfTsKLQotICAgIHY4OjpMb2NhbDx2
ODo6T2JqZWN0PiBTYWZlQWxsb2NhdGlvbjo6bmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6RnVu
Y3Rpb24+IGZ1bmN0aW9uKQotICAgIHsKLSAgICAgICAgaWYgKGZ1bmN0aW9uLklzRW1wdHkoKSkK
LSAgICAgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6Ok9iamVjdD4oKTsKLSAgICAgICAgQWxs
b3dBbGxvY2F0aW9uIGFsbG93OwotICAgICAgICByZXR1cm4gZnVuY3Rpb24tPk5ld0luc3RhbmNl
KCk7Ci0gICAgfQotCi0gICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IFNhZmVBbGxvY2F0aW9uOjpu
ZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4gb2JqZWN0VGVtcGxhdGUp
Ci0gICAgewotICAgICAgICBpZiAob2JqZWN0VGVtcGxhdGUuSXNFbXB0eSgpKQotICAgICAgICAg
ICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6T2JqZWN0PigpOwotICAgICAgICBBbGxvd0FsbG9jYXRp
b24gYWxsb3c7Ci0gICAgICAgIHJldHVybiBvYmplY3RUZW1wbGF0ZS0+TmV3SW5zdGFuY2UoKTsK
LSAgICB9Ci0KLSAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gU2FmZUFsbG9jYXRpb246Om5ld0lu
c3RhbmNlKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBmdW5jdGlvbiwgaW50IGFyZ2MsIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBhcmd2W10pCi0gICAgewotICAgICAgICBpZiAoZnVuY3Rpb24uSXNF
bXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6T2JqZWN0PigpOwotICAg
ICAgICBBbGxvd0FsbG9jYXRpb24gYWxsb3c7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbi0+TmV3
SW5zdGFuY2UoYXJnYywgYXJndik7Ci0gICAgfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBWOFV0aWxpdGllc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcAppbmRleCA3ZGNmZDg0
Li5hOWQ2NTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJD
b250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgV29ya2Vy
Q29udGV4dEV4ZWN1dGlvblByb3h5OjpXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkoV29ya2Vy
Q29udGV4dCogd29ya2VyQ28KICAgICA6IG1fd29ya2VyQ29udGV4dCh3b3JrZXJDb250ZXh0KQog
ICAgICwgbV9yZWN1cnNpb24oMCkKIHsKLSAgICBpbml0VjgoKTsKKyAgICBpbml0SXNvbGF0ZSgp
OwogfQogCiBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6On5Xb3JrZXJDb250ZXh0RXhlY3V0
aW9uUHJveHkoKQpAQCAtMTA4LDEyICsxMDgsMTUgQEAgdm9pZCBXb3JrZXJDb250ZXh0RXhlY3V0
aW9uUHJveHk6OmRpc3Bvc2UoKQogICAgIH0KIH0KIAotdm9pZCBXb3JrZXJDb250ZXh0RXhlY3V0
aW9uUHJveHk6OmluaXRWOCgpCit2b2lkIFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6aW5p
dElzb2xhdGUoKQogewogICAgIC8vIFRlbGwgVjggbm90IHRvIGNhbGwgdGhlIGRlZmF1bHQgT09N
IGhhbmRsZXIsIGJpbmRpbmcgY29kZSB3aWxsIGhhbmRsZSBpdC4KICAgICB2ODo6Vjg6Oklnbm9y
ZU91dE9mTWVtb3J5RXhjZXB0aW9uKCk7CiAgICAgdjg6OlY4OjpTZXRGYXRhbEVycm9ySGFuZGxl
cihyZXBvcnRGYXRhbEVycm9ySW5WOCk7CiAKKyAgICB2ODo6Vjg6OlNldEdsb2JhbEdDUHJvbG9n
dWVDYWxsYmFjaygmVjhHQ0NvbnRyb2xsZXI6OmdjUHJvbG9ndWUpOworICAgIHY4OjpWODo6U2V0
R2xvYmFsR0NFcGlsb2d1ZUNhbGxiYWNrKCZWOEdDQ29udHJvbGxlcjo6Z2NFcGlsb2d1ZSk7CisK
ICAgICB2ODo6UmVzb3VyY2VDb25zdHJhaW50cyByZXNvdXJjZV9jb25zdHJhaW50czsKICAgICB1
aW50MzJfdCBoZXJlOwogICAgIHJlc291cmNlX2NvbnN0cmFpbnRzLnNldF9zdGFja19saW1pdCgm
aGVyZSAtIGtXb3JrZXJNYXhTdGFja1NpemUgLyBzaXplb2YodWludDMyX3QqKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJv
eHkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Q
cm94eS5oCmluZGV4IGRlMzI3OTMuLjA1MmZiMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oCkBAIC03Myw3
ICs3Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdjg6OkxvY2FsPHY4OjpDb250
ZXh0PiBjb250ZXh0KCkgeyByZXR1cm4gdjg6OkxvY2FsPHY4OjpDb250ZXh0Pjo6TmV3KG1fY29u
dGV4dCk7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZvaWQgaW5pdFY4KCk7CisgICAgICAg
IHZvaWQgaW5pdElzb2xhdGUoKTsKICAgICAgICAgYm9vbCBpbml0Q29udGV4dElmTmVlZGVkKCk7
CiAgICAgICAgIHZvaWQgZGlzcG9zZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGQ5Y2FiYzIuLjU4NzU4
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlw
dENvbnRyb2xsZXIuY3BwCkBAIC05NCw3ICs5NCw3IEBAIFNjcmlwdFZhbHVlIFdvcmtlclNjcmlw
dENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNvdXJjZUNvZGUs
CiAKIHZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6c2NoZWR1bGVFeGVjdXRpb25UZXJtaW5h
dGlvbigpCiB7Ci0gICAgdjg6OlY4OjpUZXJtaW5hdGVFeGVjdXRpb24oKTsKKyAgICB2ODo6Vjg6
OlRlcm1pbmF0ZUV4ZWN1dGlvbihtX2lzb2xhdGUpOwogfQogCiB2b2lkIFdvcmtlclNjcmlwdENv
bnRyb2xsZXI6OmZvcmJpZEV4ZWN1dGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDQyMWMxZmUuLjA3NTNlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTEtMDgtMDUgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NzgKKyAg
ICAgICAgW1dlYldvcmtlcnNdW2Nocm9taXVtXSBNYWtlIHN0YXRpY3MgdGhyZWFkLXNhZmUgYW5k
IG1ha2Ugc3VyZSBWOCBBUEkgYWNjZXNzZXMgY29ycmVjdCBpc29sYXRlcworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL0JvdW5kT2JqZWN0LmNw
cDpIZWFkZXJzCisKIDIwMTEtMDgtMDQgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLiAgUm9sbGVkIERFUFMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Cb3VuZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9Cb3VuZE9iamVjdC5jcHAKaW5kZXggOTAwOTZjMi4uZDBmNjZhYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQm91bmRPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0JvdW5kT2JqZWN0LmNwcApAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkJvdW5kT2JqZWN0LmgiCiAKKyNp
bmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewo=
</data>
<flag name="commit-queue"
          id="98563"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103102</attachid>
            <date>2011-08-05 13:53:38 -0700</date>
            <delta_ts>2011-08-08 10:39:19 -0700</delta_ts>
            <desc>Release compilation fixed</desc>
            <filename>65778.patch</filename>
            <type>text/plain</type>
            <size>18649</size>
            <attacher name="Dmitry Lomov">dslomov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwYWJkNjhmLi4yNmVhMDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMTEtMDgtMDUgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NzgKKyAgICAg
ICAgW1dlYldvcmtlcnNdW2Nocm9taXVtXSBNYWtlIHN0YXRpY3MgdGhyZWFkLXNhZmUgYW5kIG1h
a2Ugc3VyZSBWOCBBUEkgYWNjZXNzZXMgY29ycmVjdCBpc29sYXRlcy4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRl
c3RzLgorCisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAgICAgIChXZWJD
b3JlOjpWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6bGF6eUV2ZW50TGlzdGVuZXJUb1N0cmluZ1Rl
bXBsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpoaWRk
ZW5Qcm9wZXJ0eU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6VjhCaW5kaW5nUGVySXNvbGF0ZURh
dGE6Omdsb2JhbEhhbmRsZU1hcCk6CisgICAgICAgIChXZWJDb3JlOjpBbGxvd0FsbG9jYXRpb246
OkFsbG93QWxsb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBbGxvd0FsbG9jYXRpb246On5B
bGxvd0FsbG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QWxsb3dBbGxvY2F0aW9uOjpjdXJy
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNhZmVBbGxvY2F0aW9uOjpuZXdJbnN0YW5jZSk6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y3VycmVudEdsb2JhbEhhbmRsZU1hcCk6CisgICAgICAgIChXZWJDb3JlOjplbnVtZXJhdGVH
bG9iYWxIYW5kbGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlY4R0NDb250cm9sbGVyOjpyZWdpc3Rl
ckdsb2JhbEhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpWOEdDQ29udHJvbGxlcjo6dW5yZWdp
c3Rlckdsb2JhbEhhbmRsZSk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0
eU5hbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhIaWRkZW5Qcm9wZXJ0eU5hbWU6OmNyZWF0
ZVN0cmluZyk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy92OC9WOExhenlFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4TGF6eUV2ZW50TGlzdGVuZXI6OnByZXBhcmVMaXN0ZW5lck9iamVjdCk6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvVjhOUE9iamVjdC5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
djgvVjhQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFByb3h5OjpjaGVja05ld0xlZ2Fs
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFV0aWxpdGllcy5oOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6OldvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94
eSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6OmluaXRJ
c29sYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJv
eHkuaDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xsZXI6OnNjaGVkdWxlRXhlY3V0
aW9uVGVybWluYXRpb24pOgorCiAyMDExLTA4LTA1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNj
YUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IENocm9taXVtIGJ1aWxkLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOEJpbmRpbmcuaAppbmRleCA1NDA4ZDNjLi44NjkwNjE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUg
Ik1hdGhFeHRyYXMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlY4
RE9NV3JhcHBlci5oIgorI2luY2x1ZGUgIlY4R0NDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiVjhI
aWRkZW5Qcm9wZXJ0eU5hbWUuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4K
IAogI2luY2x1ZGUgPHY4Lmg+CkBAIC04NSw2ICs4NywxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIFJlZlB0cjxTdHJpbmdJbXBsPiBtX2xhc3RTdHJpbmdJbXBsOwogICAgIH07CiAK
KyAgICBjbGFzcyBBbGxvd0FsbG9jYXRpb247CisKKyNpZm5kZWYgTkRFQlVHCisgICAgdHlwZWRl
ZiBIYXNoTWFwPHY4OjpWYWx1ZSosIEdsb2JhbEhhbmRsZUluZm8qPiBHbG9iYWxIYW5kbGVNYXA7
CisjZW5kaWYKKwogICAgIGNsYXNzIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhIHsKICAgICBwdWJs
aWM6CiAgICAgICAgIHN0YXRpYyBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSogY3JlYXRlKHY4OjpJ
c29sYXRlKik7CkBAIC0xMDcsMTAgKzExNSwxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIFRlbXBsYXRlTWFwJiB0ZW1wbGF0ZU1hcCgpIHsgcmV0dXJuIG1fdGVtcGxhdGVzOyB9CiAg
ICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+JiB0b1N0cmluZ05hbWUoKSB7IHJldHVy
biBtX3RvU3RyaW5nTmFtZTsgfQogICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25U
ZW1wbGF0ZT4mIHRvU3RyaW5nVGVtcGxhdGUoKSB7IHJldHVybiBtX3RvU3RyaW5nVGVtcGxhdGU7
IH0KKworICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4mIGxhenlF
dmVudExpc3RlbmVyVG9TdHJpbmdUZW1wbGF0ZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJl
dHVybiBtX2xhenlFdmVudExpc3RlbmVyVG9TdHJpbmdUZW1wbGF0ZTsKKyAgICAgICAgfQorCiAg
ICAgICAgIFN0cmluZ0NhY2hlKiBzdHJpbmdDYWNoZSgpIHsgcmV0dXJuICZtX3N0cmluZ0NhY2hl
OyB9CiAKICAgICAgICAgRE9NRGF0YUxpc3QmIGFsbFN0b3JlcygpIHsgcmV0dXJuIG1fZG9tRGF0
YUxpc3Q7IH0KIAorICAgICAgICBWOEhpZGRlblByb3BlcnR5TmFtZSogaGlkZGVuUHJvcGVydHlO
YW1lKCkgeyByZXR1cm4gJm1faGlkZGVuUHJvcGVydHlOYW1lOyB9CisKICAgICAgICAgdm9pZCBy
ZWdpc3RlckRPTURhdGFTdG9yZShET01EYXRhU3RvcmUqIGRvbURhdGFTdG9yZSkgCiAgICAgICAg
IHsKICAgICAgICAgICAgIG1fZG9tRGF0YUxpc3QuYXBwZW5kKGRvbURhdGFTdG9yZSk7CkBAIC0x
MjcsNiArMTQzLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gRE9NRGF0YVN0
b3JlIGlzIG93bmVkIG91dHNpZGUgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEuCiAgICAgICAgIHZv
aWQgc2V0RE9NRGF0YVN0b3JlKERPTURhdGFTdG9yZSogc3RvcmUpIHsgbV9kb21EYXRhU3RvcmUg
PSBzdG9yZTsgfQogCisjaWZuZGVmIE5ERUJVRworICAgICAgICBHbG9iYWxIYW5kbGVNYXAmIGds
b2JhbEhhbmRsZU1hcCgpIHsgcmV0dXJuIG1fZ2xvYmFsSGFuZGxlTWFwOyB9CisjZW5kaWYKKwog
ICAgIHByaXZhdGU6CiAgICAgICAgIGV4cGxpY2l0IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhKHY4
OjpJc29sYXRlKik7CiAgICAgICAgIH5WOEJpbmRpbmdQZXJJc29sYXRlRGF0YSgpOwpAQCAtMTM1
LDEyICsxNTUsNzUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBUZW1wbGF0ZU1hcCBt
X3RlbXBsYXRlczsKICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4gbV90b1N0cmlu
Z05hbWU7CiAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiBtX3Rv
U3RyaW5nVGVtcGxhdGU7CisgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBs
YXRlPiBtX2xhenlFdmVudExpc3RlbmVyVG9TdHJpbmdUZW1wbGF0ZTsKICAgICAgICAgU3RyaW5n
Q2FjaGUgbV9zdHJpbmdDYWNoZTsKIAogICAgICAgICBET01EYXRhTGlzdCBtX2RvbURhdGFMaXN0
OwogICAgICAgICBET01EYXRhU3RvcmUqIG1fZG9tRGF0YVN0b3JlOworCisgICAgICAgIFY4SGlk
ZGVuUHJvcGVydHlOYW1lIG1faGlkZGVuUHJvcGVydHlOYW1lOworCisgICAgICAgIGJvb2wgbV9j
dXJyZW50QWxsb2NhdGlvbnNBbGxvd2VkOworICAgICAgICBmcmllbmQgY2xhc3MgQWxsb3dBbGxv
Y2F0aW9uOworCisjaWZuZGVmIE5ERUJVRworICAgICAgICBHbG9iYWxIYW5kbGVNYXAgbV9nbG9i
YWxIYW5kbGVNYXA7CisjZW5kaWYKKyAgICB9OworCisgICAgY2xhc3MgQWxsb3dBbGxvY2F0aW9u
IHsKKyAgICBwdWJsaWM6CisgICAgICAgIGlubGluZSBBbGxvd0FsbG9jYXRpb24oKQorICAgICAg
ICB7CisgICAgICAgICAgICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4QmluZGlu
Z1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCk7CisgICAgICAgICAgICBtX3ByZXZpb3VzID0gZGF0
YS0+bV9jdXJyZW50QWxsb2NhdGlvbnNBbGxvd2VkOworICAgICAgICAgICAgZGF0YS0+bV9jdXJy
ZW50QWxsb2NhdGlvbnNBbGxvd2VkID0gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlubGlu
ZSB+QWxsb3dBbGxvY2F0aW9uKCkKKyAgICAgICAgeworICAgICAgICAgICAgVjhCaW5kaW5nUGVy
SXNvbGF0ZURhdGEqIGRhdGEgPSBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpOwor
ICAgICAgICAgICAgZGF0YS0+bV9jdXJyZW50QWxsb2NhdGlvbnNBbGxvd2VkID0gbV9wcmV2aW91
czsKKyAgICAgICAgfQorCisgICAgICAgIHN0YXRpYyBib29sIGN1cnJlbnQoKSB7IHJldHVybiBW
OEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpLT5tX2N1cnJlbnRBbGxvY2F0aW9uc0Fs
bG93ZWQ7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIGJvb2wgbV9wcmV2aW91czsKICAgICB9
OwogCisgICAgY2xhc3MgU2FmZUFsbG9jYXRpb24geworICAgICBwdWJsaWM6CisgICAgICBzdGF0
aWMgaW5saW5lIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBuZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4
OjpGdW5jdGlvbj4pOworICAgICAgc3RhdGljIGlubGluZSB2ODo6TG9jYWw8djg6Ok9iamVjdD4g
bmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6T2JqZWN0VGVtcGxhdGU+KTsKKyAgICAgIHN0YXRp
YyBpbmxpbmUgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IG5ld0luc3RhbmNlKHY4OjpIYW5kbGU8djg6
OkZ1bmN0aW9uPiwgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10pOworICAg
IH07CisKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gU2FmZUFsbG9jYXRpb246Om5ld0luc3Rh
bmNlKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBmdW5jdGlvbikKKyAgICB7CisgICAgICAgIGlm
IChmdW5jdGlvbi5Jc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpP
YmplY3Q+KCk7CisgICAgICAgIEFsbG93QWxsb2NhdGlvbiBhbGxvdzsKKyAgICAgICAgcmV0dXJu
IGZ1bmN0aW9uLT5OZXdJbnN0YW5jZSgpOworICAgIH0KKworICAgIHY4OjpMb2NhbDx2ODo6T2Jq
ZWN0PiBTYWZlQWxsb2NhdGlvbjo6bmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6T2JqZWN0VGVt
cGxhdGU+IG9iamVjdFRlbXBsYXRlKQorICAgIHsKKyAgICAgICAgaWYgKG9iamVjdFRlbXBsYXRl
LklzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6Ok9iamVjdD4oKTsK
KyAgICAgICAgQWxsb3dBbGxvY2F0aW9uIGFsbG93OworICAgICAgICByZXR1cm4gb2JqZWN0VGVt
cGxhdGUtPk5ld0luc3RhbmNlKCk7CisgICAgfQorCisgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+
IFNhZmVBbGxvY2F0aW9uOjpuZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4gZnVu
Y3Rpb24sIGludCBhcmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdKQorICAgIHsKKyAg
ICAgICAgaWYgKGZ1bmN0aW9uLklzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiB2ODo6TG9j
YWw8djg6Ok9iamVjdD4oKTsKKyAgICAgICAgQWxsb3dBbGxvY2F0aW9uIGFsbG93OworICAgICAg
ICByZXR1cm4gZnVuY3Rpb24tPk5ld0luc3RhbmNlKGFyZ2MsIGFyZ3YpOworICAgIH0KKworCiAK
ICAgICBlbnVtIEV4dGVybmFsTW9kZSB7CiAgICAgICAgIEV4dGVybmFsaXplLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCmluZGV4IGI3NDM3ZGIuLjg3
MTgwZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5j
cHAKQEAgLTgxLDE5ICs4MSwxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyAgICBWOEdDQ29u
dHJvbGxlcjo6dW5yZWdpc3Rlckdsb2JhbEhhbmRsZSh0eXBlLCBob3N0LCBoYW5kbGUpOwogLy8g
I2VuZGlmCiAvLwotdHlwZWRlZiBIYXNoTWFwPHY4OjpWYWx1ZSosIEdsb2JhbEhhbmRsZUluZm8q
PiBHbG9iYWxIYW5kbGVNYXA7CiAKLXN0YXRpYyBHbG9iYWxIYW5kbGVNYXAmIGdsb2JhbEhhbmRs
ZU1hcCgpCitzdGF0aWMgR2xvYmFsSGFuZGxlTWFwJiBjdXJyZW50R2xvYmFsSGFuZGxlTWFwKCkK
IHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEdsb2JhbEhhbmRsZU1hcCwgc3RhdGljR2xvYmFs
SGFuZGxlTWFwLCAoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY0dsb2JhbEhhbmRsZU1hcDsKKyAgICBy
ZXR1cm4gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKS0+Z2xvYmFsSGFuZGxlTWFw
KCk7CiB9CiAKIC8vIFRoZSBmdW5jdGlvbiBpcyB0aGUgcGxhY2UgdG8gc2V0IHRoZSBicmVhayBw
b2ludCB0byBpbnNwZWN0CiAvLyBsaXZlIGdsb2JhbCBoYW5kbGVzLiBMZWFrcyBhcmUgb2Z0ZW4g
Y29tZSBmcm9tIGxlYWtlZCBnbG9iYWwgaGFuZGxlcy4KIHN0YXRpYyB2b2lkIGVudW1lcmF0ZUds
b2JhbEhhbmRsZXMoKQogewotICAgIGZvciAoR2xvYmFsSGFuZGxlTWFwOjppdGVyYXRvciBpdCA9
IGdsb2JhbEhhbmRsZU1hcCgpLmJlZ2luKCksIGVuZCA9IGdsb2JhbEhhbmRsZU1hcCgpLmVuZCgp
OyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICBHbG9iYWxIYW5kbGVNYXAmIGdsb2JhbEhhbmRsZU1h
cCA9IGN1cnJlbnRHbG9iYWxIYW5kbGVNYXAoKTsKKyAgICBmb3IgKEdsb2JhbEhhbmRsZU1hcDo6
aXRlcmF0b3IgaXQgPSBnbG9iYWxIYW5kbGVNYXAuYmVnaW4oKSwgZW5kID0gZ2xvYmFsSGFuZGxl
TWFwLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgR2xvYmFsSGFuZGxlSW5mbyog
aW5mbyA9IGl0LT5zZWNvbmQ7CiAgICAgICAgIFVOVVNFRF9QQVJBTShpbmZvKTsKICAgICAgICAg
djg6OlZhbHVlKiBoYW5kbGUgPSBpdC0+Zmlyc3Q7CkBAIC0xMDMsMTQgKzEwMiwxNiBAQCBzdGF0
aWMgdm9pZCBlbnVtZXJhdGVHbG9iYWxIYW5kbGVzKCkKIAogdm9pZCBWOEdDQ29udHJvbGxlcjo6
cmVnaXN0ZXJHbG9iYWxIYW5kbGUoR2xvYmFsSGFuZGxlVHlwZSB0eXBlLCB2b2lkKiBob3N0LCB2
ODo6UGVyc2lzdGVudDx2ODo6VmFsdWU+IGhhbmRsZSkKIHsKLSAgICBBU1NFUlQoIWdsb2JhbEhh
bmRsZU1hcCgpLmNvbnRhaW5zKCpoYW5kbGUpKTsKLSAgICBnbG9iYWxIYW5kbGVNYXAoKS5zZXQo
KmhhbmRsZSwgbmV3IEdsb2JhbEhhbmRsZUluZm8oaG9zdCwgdHlwZSkpOworICAgIEdsb2JhbEhh
bmRsZU1hcCYgZ2xvYmFsSGFuZGxlTWFwID0gY3VycmVudEdsb2JhbEhhbmRsZU1hcCgpOworICAg
IEFTU0VSVCghZ2xvYmFsSGFuZGxlTWFwLmNvbnRhaW5zKCpoYW5kbGUpKTsKKyAgICBnbG9iYWxI
YW5kbGVNYXAuc2V0KCpoYW5kbGUsIG5ldyBHbG9iYWxIYW5kbGVJbmZvKGhvc3QsIHR5cGUpKTsK
IH0KIAogdm9pZCBWOEdDQ29udHJvbGxlcjo6dW5yZWdpc3Rlckdsb2JhbEhhbmRsZSh2b2lkKiBo
b3N0LCB2ODo6UGVyc2lzdGVudDx2ODo6VmFsdWU+IGhhbmRsZSkKIHsKLSAgICBBU1NFUlQoZ2xv
YmFsSGFuZGxlTWFwKCkuY29udGFpbnMoKmhhbmRsZSkpOwotICAgIEdsb2JhbEhhbmRsZUluZm8q
IGluZm8gPSBnbG9iYWxIYW5kbGVNYXAoKS50YWtlKCpoYW5kbGUpOworICAgIEdsb2JhbEhhbmRs
ZU1hcCYgZ2xvYmFsSGFuZGxlTWFwID0gY3VycmVudEdsb2JhbEhhbmRsZU1hcCgpOworICAgIEFT
U0VSVChnbG9iYWxIYW5kbGVNYXAuY29udGFpbnMoKmhhbmRsZSkpOworICAgIEdsb2JhbEhhbmRs
ZUluZm8qIGluZm8gPSBnbG9iYWxIYW5kbGVNYXAudGFrZSgqaGFuZGxlKTsKICAgICBBU1NFUlQo
aW5mby0+bV9ob3N0ID09IGhvc3QpOwogICAgIGRlbGV0ZSBpbmZvOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuY3BwCmluZGV4IDBm
NWE2NzQuLjkzYWM3NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
SGlkZGVuUHJvcGVydHlOYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OEhpZGRlblByb3BlcnR5TmFtZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJWOEhpZGRlblByb3BlcnR5TmFtZS5oIgogCisjaW5jbHVkZSAiVjhC
aW5kaW5nLmgiCiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
CkBAIC00Miw4ICs0MywxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZGVmaW5lIFY4X0RFRklO
RV9QUk9QRVJUWShuYW1lKSBcCiB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IFY4SGlkZGVuUHJvcGVy
dHlOYW1lOjpuYW1lKCkgXAogeyBcCi0gICAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJp
bmc+KiBzdHJpbmcgPSBjcmVhdGVTdHJpbmcoIldlYkNvcmU6OkhpZGRlblByb3BlcnR5OjoiIFY4
X0FTX1NUUklORyhuYW1lKSk7IFwKLSAgICByZXR1cm4gKnN0cmluZzsgXAorICAgIFY4SGlkZGVu
UHJvcGVydHlOYW1lKiBoaWRkZW5Qcm9wZXJ0eU5hbWUgPSBWOEJpbmRpbmdQZXJJc29sYXRlRGF0
YTo6Y3VycmVudCgpLT5oaWRkZW5Qcm9wZXJ0eU5hbWUoKTsgXAorICAgIGlmIChoaWRkZW5Qcm9w
ZXJ0eU5hbWUtPm1fIyNuYW1lLklzRW1wdHkoKSkgeyBcCisgICAgICAgIGhpZGRlblByb3BlcnR5
TmFtZS0+bV8jI25hbWUgPSBjcmVhdGVTdHJpbmcoIldlYkNvcmU6OkhpZGRlblByb3BlcnR5Ojoi
IFY4X0FTX1NUUklORyhuYW1lKSk7IFwKKyAgICB9IFwKKyAgICByZXR1cm4gaGlkZGVuUHJvcGVy
dHlOYW1lLT5tXyMjbmFtZTsgXAogfQogCiBWOF9ISURERU5fUFJPUEVSVElFUyhWOF9ERUZJTkVf
UFJPUEVSVFkpOwpAQCAtNTksMTAgKzYzLDEwIEBAIHY4OjpIYW5kbGU8djg6OlN0cmluZz4gVjhI
aWRkZW5Qcm9wZXJ0eU5hbWU6OmhpZGRlblJlZmVyZW5jZU5hbWUoY29uc3QgY2hhciogbmFtCiAg
ICAgcmV0dXJuIHY4OjpTdHJpbmc6Ok5ld1N5bWJvbChwcmVmaXhlZE5hbWUuZGF0YSgpLCBzdGF0
aWNfY2FzdDxpbnQ+KHByZWZpeGVkTmFtZS5zaXplKCkpKTsKIH0KIAotdjg6OlBlcnNpc3RlbnQ8
djg6OlN0cmluZz4qIFY4SGlkZGVuUHJvcGVydHlOYW1lOjpjcmVhdGVTdHJpbmcoY29uc3QgY2hh
cioga2V5KQordjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4gVjhIaWRkZW5Qcm9wZXJ0eU5hbWU6
OmNyZWF0ZVN0cmluZyhjb25zdCBjaGFyKiBrZXkpCiB7CiAgICAgdjg6OkhhbmRsZVNjb3BlIHNj
b3BlOwotICAgIHJldHVybiBuZXcgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4odjg6OlBlcnNp
c3RlbnQ8djg6OlN0cmluZz46Ok5ldyh2ODo6U3RyaW5nOjpOZXdTeW1ib2woa2V5KSkpOworICAg
IHJldHVybiB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPjo6TmV3KHY4OjpTdHJpbmc6Ok5ld1N5
bWJvbChrZXkpKTsKIH0KIAogfSAgLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOEhpZGRlblByb3BlcnR5TmFtZS5oCmluZGV4IDdjNGFhZTAu
LjRhYzg1MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SGlkZGVu
UHJvcGVydHlOYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Q
cm9wZXJ0eU5hbWUuaApAQCAtNTUsNyArNTUsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBoaWRkZW5SZWZlcmVuY2VOYW1lKGNv
bnN0IGNoYXIqIG5hbWUpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgc3RhdGljIHY4OjpQZXJz
aXN0ZW50PHY4OjpTdHJpbmc+KiBjcmVhdGVTdHJpbmcoY29uc3QgY2hhcioga2V5KTsKKyAgICAg
ICAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+IGNyZWF0ZVN0cmluZyhjb25zdCBj
aGFyKiBrZXkpOworI2RlZmluZSBWOF9ERUNMQVJFX0ZJRUxEKG5hbWUpIHY4OjpQZXJzaXN0ZW50
PHY4OjpTdHJpbmc+IG1fIyNuYW1lOworICAgICAgICBWOF9ISURERU5fUFJPUEVSVElFUyhWOF9E
RUNMQVJFX0ZJRUxEKTsKKyN1bmRlZiBWOF9ERUNMQVJFX0ZJRUxECiAgICAgfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5lci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOExhenlFdmVudExpc3RlbmVyLmNwcApp
bmRleCBlNmExZTg4Li4xNzIxOGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOExhenlFdmVudExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOExhenlFdmVudExpc3RlbmVyLmNwcApAQCAtMTM3LDcgKzEzNyw4IEBAIHZvaWQgVjhM
YXp5RXZlbnRMaXN0ZW5lcjo6cHJlcGFyZUxpc3RlbmVyT2JqZWN0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQpCiAgICAgICAgICAgICAvLyBzb3VyY2UgcmV0dXJuZWQgKHNvbWV0aW1l
cyBhIFJlZ0V4cCBpcyBhcHBsaWVkIGFzIHdlbGwpIGZvciBzb21lCiAgICAgICAgICAgICAvLyBv
dGhlciB1c2UuIFRoYXQgZmFpbHMgbWlzZXJhYmx5IGlmIHRoZSBhY3R1YWwgd3JhcHBlciBzb3Vy
Y2UgaXMKICAgICAgICAgICAgIC8vIHJldHVybmVkLgotICAgICAgICAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTCh2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4sIHRvU3RyaW5nVGVt
cGxhdGUsICgpKTsKKyAgICAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBs
YXRlPiYgdG9TdHJpbmdUZW1wbGF0ZSA9CisgICAgICAgICAgICAgICAgVjhCaW5kaW5nUGVySXNv
bGF0ZURhdGE6OmN1cnJlbnQoKS0+bGF6eUV2ZW50TGlzdGVuZXJUb1N0cmluZ1RlbXBsYXRlKCk7
CiAgICAgICAgICAgICBpZiAodG9TdHJpbmdUZW1wbGF0ZS5Jc0VtcHR5KCkpCiAgICAgICAgICAg
ICAgICAgdG9TdHJpbmdUZW1wbGF0ZSA9IHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBs
YXRlPjo6TmV3KHY4OjpGdW5jdGlvblRlbXBsYXRlOjpOZXcoVjhMYXp5RXZlbnRMaXN0ZW5lclRv
U3RyaW5nKSk7CiAgICAgICAgICAgICB2ODo6TG9jYWw8djg6OkZ1bmN0aW9uPiB0b1N0cmluZ0Z1
bmN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhOUE9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE5QT2JqZWN0LmNwcAppbmRleCAz
NjY0MGI3Li42OTE1MDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OE5QT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE5QT2JqZWN0
LmNwcApAQCAtMzQsNiArMzQsNyBAQAogCiAjaW5jbHVkZSAiSFRNTFBsdWdJbkVsZW1lbnQuaCIK
ICNpbmNsdWRlICJOUFY4T2JqZWN0LmgiCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVk
ZSAiVjhET01NYXAuaCIKICNpbmNsdWRlICJWOEhUTUxBcHBsZXRFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiVjhIVE1MRW1iZWRFbGVtZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHku
Y3BwCmluZGV4IGE0Nzg4NWUuLmQyMmI1OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
UHJveHkuY3BwCkBAIC0xMzIsOCArMTMyLDYgQEAgdHlwZWRlZiBIYXNoTWFwPE5vZGUqLCB2ODo6
T2JqZWN0Kj4gRE9NTm9kZU1hcDsKIHR5cGVkZWYgSGFzaE1hcDx2b2lkKiwgdjg6Ok9iamVjdCo+
IERPTU9iamVjdE1hcDsKIHR5cGVkZWYgSGFzaE1hcDxpbnQsIHY4OjpGdW5jdGlvblRlbXBsYXRl
Kj4gRnVuY3Rpb25UZW1wbGF0ZU1hcDsKIAotYm9vbCBBbGxvd0FsbG9jYXRpb246Om1fY3VycmVu
dCA9IGZhbHNlOwotCiBzdGF0aWMgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKFBhZ2UqIHBhZ2Us
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCwgdW5zaWduZWQg
bGluZU51bWJlcikKIHsKICAgICBBU1NFUlQocGFnZSk7CkBAIC03ODMsNyArNzgxLDcgQEAgdjg6
OkxvY2FsPHY4OjpDb250ZXh0PiBWOFByb3h5OjpjdXJyZW50Q29udGV4dCgpCiAKIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOFByb3h5OjpjaGVja05ld0xlZ2FsKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyZ3MpCiB7Ci0gICAgaWYgKCFBbGxvd0FsbG9jYXRpb246Om1fY3VycmVudCkKKyAgICBpZiAo
IUFsbG93QWxsb2NhdGlvbjo6Y3VycmVudCgpKQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihU
eXBlRXJyb3IsICJJbGxlZ2FsIGNvbnN0cnVjdG9yIik7CiAKICAgICByZXR1cm4gYXJncy5UaGlz
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGllcy5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuaAppbmRleCBjMjE3OTY0
Li5iZWE3ZDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxp
dGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmgKQEAg
LTk1LDU2ICs5NSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgcmV0dXJuIFY4Q2Fs
bGJhY2tUeXBlOjpjcmVhdGUodmFsdWUsIGdldFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAg
ICAgfQogCi0gICAgY2xhc3MgQWxsb3dBbGxvY2F0aW9uIHsKLSAgICBwdWJsaWM6Ci0gICAgICAg
IGlubGluZSBBbGxvd0FsbG9jYXRpb24oKQotICAgICAgICB7Ci0gICAgICAgICAgICBtX3ByZXZp
b3VzID0gbV9jdXJyZW50OwotICAgICAgICAgICAgbV9jdXJyZW50ID0gdHJ1ZTsKLSAgICAgICAg
fQotCi0gICAgICAgIGlubGluZSB+QWxsb3dBbGxvY2F0aW9uKCkKLSAgICAgICAgewotICAgICAg
ICAgICAgbV9jdXJyZW50ID0gbV9wcmV2aW91czsKLSAgICAgICAgfQotCi0gICAgICAgIHN0YXRp
YyBib29sIG1fY3VycmVudDsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIGJvb2wgbV9wcmV2aW91
czsKLSAgICB9OwotCi0gICAgY2xhc3MgU2FmZUFsbG9jYXRpb24gewotICAgICBwdWJsaWM6Ci0g
ICAgICBzdGF0aWMgaW5saW5lIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBuZXdJbnN0YW5jZSh2ODo6
SGFuZGxlPHY4OjpGdW5jdGlvbj4pOwotICAgICAgc3RhdGljIGlubGluZSB2ODo6TG9jYWw8djg6
Ok9iamVjdD4gbmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6T2JqZWN0VGVtcGxhdGU+KTsKLSAg
ICAgIHN0YXRpYyBpbmxpbmUgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IG5ld0luc3RhbmNlKHY4OjpI
YW5kbGU8djg6OkZ1bmN0aW9uPiwgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2
W10pOwotICAgIH07Ci0KLSAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gU2FmZUFsbG9jYXRpb246
Om5ld0luc3RhbmNlKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBmdW5jdGlvbikKLSAgICB7Ci0g
ICAgICAgIGlmIChmdW5jdGlvbi5Jc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gdjg6Okxv
Y2FsPHY4OjpPYmplY3Q+KCk7Ci0gICAgICAgIEFsbG93QWxsb2NhdGlvbiBhbGxvdzsKLSAgICAg
ICAgcmV0dXJuIGZ1bmN0aW9uLT5OZXdJbnN0YW5jZSgpOwotICAgIH0KLQotICAgIHY4OjpMb2Nh
bDx2ODo6T2JqZWN0PiBTYWZlQWxsb2NhdGlvbjo6bmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6
T2JqZWN0VGVtcGxhdGU+IG9iamVjdFRlbXBsYXRlKQotICAgIHsKLSAgICAgICAgaWYgKG9iamVj
dFRlbXBsYXRlLklzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6Ok9i
amVjdD4oKTsKLSAgICAgICAgQWxsb3dBbGxvY2F0aW9uIGFsbG93OwotICAgICAgICByZXR1cm4g
b2JqZWN0VGVtcGxhdGUtPk5ld0luc3RhbmNlKCk7Ci0gICAgfQotCi0gICAgdjg6OkxvY2FsPHY4
OjpPYmplY3Q+IFNhZmVBbGxvY2F0aW9uOjpuZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpGdW5j
dGlvbj4gZnVuY3Rpb24sIGludCBhcmdjLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdKQot
ICAgIHsKLSAgICAgICAgaWYgKGZ1bmN0aW9uLklzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVy
biB2ODo6TG9jYWw8djg6Ok9iamVjdD4oKTsKLSAgICAgICAgQWxsb3dBbGxvY2F0aW9uIGFsbG93
OwotICAgICAgICByZXR1cm4gZnVuY3Rpb24tPk5ld0luc3RhbmNlKGFyZ2MsIGFyZ3YpOwotICAg
IH0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gVjhVdGlsaXRpZXNfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1
dGlvblByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRF
eGVjdXRpb25Qcm94eS5jcHAKaW5kZXggN2RjZmQ4NC4uYTlkNjU5OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJv
eHkuY3BwCkBAIC04Myw3ICs4Myw3IEBAIFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6V29y
a2VyQ29udGV4dEV4ZWN1dGlvblByb3h5KFdvcmtlckNvbnRleHQqIHdvcmtlckNvCiAgICAgOiBt
X3dvcmtlckNvbnRleHQod29ya2VyQ29udGV4dCkKICAgICAsIG1fcmVjdXJzaW9uKDApCiB7Ci0g
ICAgaW5pdFY4KCk7CisgICAgaW5pdElzb2xhdGUoKTsKIH0KIAogV29ya2VyQ29udGV4dEV4ZWN1
dGlvblByb3h5Ojp+V29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5KCkKQEAgLTEwOCwxMiArMTA4
LDE1IEBAIHZvaWQgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5OjpkaXNwb3NlKCkKICAgICB9
CiB9CiAKLXZvaWQgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5Ojppbml0VjgoKQordm9pZCBX
b3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6OmluaXRJc29sYXRlKCkKIHsKICAgICAvLyBUZWxs
IFY4IG5vdCB0byBjYWxsIHRoZSBkZWZhdWx0IE9PTSBoYW5kbGVyLCBiaW5kaW5nIGNvZGUgd2ls
bCBoYW5kbGUgaXQuCiAgICAgdjg6OlY4OjpJZ25vcmVPdXRPZk1lbW9yeUV4Y2VwdGlvbigpOwog
ICAgIHY4OjpWODo6U2V0RmF0YWxFcnJvckhhbmRsZXIocmVwb3J0RmF0YWxFcnJvckluVjgpOwog
CisgICAgdjg6OlY4OjpTZXRHbG9iYWxHQ1Byb2xvZ3VlQ2FsbGJhY2soJlY4R0NDb250cm9sbGVy
OjpnY1Byb2xvZ3VlKTsKKyAgICB2ODo6Vjg6OlNldEdsb2JhbEdDRXBpbG9ndWVDYWxsYmFjaygm
VjhHQ0NvbnRyb2xsZXI6OmdjRXBpbG9ndWUpOworCiAgICAgdjg6OlJlc291cmNlQ29uc3RyYWlu
dHMgcmVzb3VyY2VfY29uc3RyYWludHM7CiAgICAgdWludDMyX3QgaGVyZTsKICAgICByZXNvdXJj
ZV9jb25zdHJhaW50cy5zZXRfc3RhY2tfbGltaXQoJmhlcmUgLSBrV29ya2VyTWF4U3RhY2tTaXpl
IC8gc2l6ZW9mKHVpbnQzMl90KikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuaAppbmRleCBkZTMyNzkzLi4wNTJm
YjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0
RXhlY3V0aW9uUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJD
b250ZXh0RXhlY3V0aW9uUHJveHkuaApAQCAtNzMsNyArNzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCgpIHsgcmV0dXJuIHY4
OjpMb2NhbDx2ODo6Q29udGV4dD46Ok5ldyhtX2NvbnRleHQpOyB9CiAKICAgICBwcml2YXRlOgot
ICAgICAgICB2b2lkIGluaXRWOCgpOworICAgICAgICB2b2lkIGluaXRJc29sYXRlKCk7CiAgICAg
ICAgIGJvb2wgaW5pdENvbnRleHRJZk5lZWRlZCgpOwogICAgICAgICB2b2lkIGRpc3Bvc2UoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250
cm9sbGVyLmNwcAppbmRleCBkOWNhYmMyLi41ODc1ODJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtOTQsNyAr
OTQsNyBAQCBTY3JpcHRWYWx1ZSBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjb25z
dCBTY3JpcHRTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLAogCiB2b2lkIFdvcmtlclNjcmlwdENvbnRy
b2xsZXI6OnNjaGVkdWxlRXhlY3V0aW9uVGVybWluYXRpb24oKQogewotICAgIHY4OjpWODo6VGVy
bWluYXRlRXhlY3V0aW9uKCk7CisgICAgdjg6OlY4OjpUZXJtaW5hdGVFeGVjdXRpb24obV9pc29s
YXRlKTsKIH0KIAogdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpmb3JiaWRFeGVjdXRpb24o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA1MTFiYTUwLi40NjhjY2M3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDExLTA4LTA1ICBEbWl0cnkg
TG9tb3YgIDxkc2xvbW92QGdvb2dsZS5jb20+CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY1Nzc4CisgICAgICAgIFtXZWJXb3JrZXJzXVtjaHJvbWl1
bV0gTWFrZSBzdGF0aWNzIHRocmVhZC1zYWZlIGFuZCBtYWtlIHN1cmUgVjggQVBJIGFjY2Vzc2Vz
IGNvcnJlY3QgaXNvbGF0ZXMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHNyYy9Cb3VuZE9iamVjdC5jcHA6SGVhZGVycworCiAyMDExLTA4LTA1ICBK
b2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEludHJvZHVj
ZSBhIG5ldyBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldFR5cGUgZm9yIFhIUnMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0JvdW5kT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0JvdW5kT2JqZWN0LmNwcAppbmRleCA5MDA5NmMyLi5kMGY2NmFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Cb3VuZE9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQm91bmRPYmplY3QuY3BwCkBAIC0zMSw2ICsz
MSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQm91bmRPYmplY3QuaCIKIAor
I2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4UHJveHkuaCIKIAogbmFtZXNwYWNl
IFdlYktpdCB7Cg==
</data>
<flag name="review"
          id="98583"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103263</attachid>
            <date>2011-08-08 10:39:19 -0700</date>
            <delta_ts>2011-08-09 10:37:23 -0700</delta_ts>
            <desc>CR feedback</desc>
            <filename>65778.patch</filename>
            <type>text/plain</type>
            <size>18770</size>
            <attacher name="Dmitry Lomov">dslomov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2MGQwZjljLi43MmRhOGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMTEtMDgtMDUgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NzgKKyAgICAg
ICAgW1dlYldvcmtlcnNdW2Nocm9taXVtXSBNYWtlIHN0YXRpY3MgdGhyZWFkLXNhZmUgYW5kIG1h
a2Ugc3VyZSBWOCBBUEkgYWNjZXNzZXMgY29ycmVjdCBpc29sYXRlcy4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRl
c3RzLgorCisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAgICAgIChXZWJD
b3JlOjpWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6bGF6eUV2ZW50TGlzdGVuZXJUb1N0cmluZ1Rl
bXBsYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpoaWRk
ZW5Qcm9wZXJ0eU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6VjhCaW5kaW5nUGVySXNvbGF0ZURh
dGE6Omdsb2JhbEhhbmRsZU1hcCk6CisgICAgICAgIChXZWJDb3JlOjpBbGxvd0FsbG9jYXRpb246
OkFsbG93QWxsb2NhdGlvbik6IE1vdmluZyB0byBWOEJpbmRpbmcuaCBmcm9tIFY4VXRpbGl0aWVz
LmggdG8gcmVzb2x2ZSBoZWFkZXIgZGVwZW5kZW5jeS4KKyAgICAgICAgKFdlYkNvcmU6OkFsbG93
QWxsb2NhdGlvbjo6fkFsbG93QWxsb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBbGxvd0Fs
bG9jYXRpb246OmN1cnJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2FmZUFsbG9jYXRpb246Om5l
d0luc3RhbmNlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjdXJyZW50R2xvYmFsSGFuZGxlTWFwKToKKyAgICAgICAgKFdlYkNv
cmU6OmVudW1lcmF0ZUdsb2JhbEhhbmRsZXMpOgorICAgICAgICAoV2ViQ29yZTo6VjhHQ0NvbnRy
b2xsZXI6OnJlZ2lzdGVyR2xvYmFsSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4R0NDb250
cm9sbGVyOjp1bnJlZ2lzdGVyR2xvYmFsSGFuZGxlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9W
OEhpZGRlblByb3BlcnR5TmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEhpZGRlblByb3Bl
cnR5TmFtZTo6Y3JlYXRlU3RyaW5nKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOEhpZGRlblBy
b3BlcnR5TmFtZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4TGF6eUV2ZW50TGlzdGVuZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhMYXp5RXZlbnRMaXN0ZW5lcjo6cHJlcGFyZUxpc3Rl
bmVyT2JqZWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOE5QT2JqZWN0LmNwcDoKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4UHJveHk6
OmNoZWNrTmV3TGVnYWwpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmg6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6V29ya2VyQ29udGV4
dEV4ZWN1dGlvblByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHRFeGVjdXRp
b25Qcm94eTo6aW5pdElzb2xhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dvcmtlckNvbnRl
eHRFeGVjdXRpb25Qcm94eS5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6
c2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbik6CisKIDIwMTEtMDgtMDggIERhbiBCZXJuc3Rl
aW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBCdWlsZCBmaXguCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4QmluZGluZy5oCmluZGV4IDU0MDhkM2MuLjUzNWQ5YzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSAi
TWF0aEV4dHJhcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSAiVjhE
T01XcmFwcGVyLmgiCisjaW5jbHVkZSAiVjhHQ0NvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJWOEhp
ZGRlblByb3BlcnR5TmFtZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgog
CiAjaW5jbHVkZSA8djguaD4KQEAgLTg1LDYgKzg3LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgUmVmUHRyPFN0cmluZ0ltcGw+IG1fbGFzdFN0cmluZ0ltcGw7CiAgICAgfTsKIAor
ICAgIGNsYXNzIEFsbG93QWxsb2NhdGlvbjsKKworI2lmbmRlZiBOREVCVUcKKyAgICB0eXBlZGVm
IEhhc2hNYXA8djg6OlZhbHVlKiwgR2xvYmFsSGFuZGxlSW5mbyo+IEdsb2JhbEhhbmRsZU1hcDsK
KyNlbmRpZgorCiAgICAgY2xhc3MgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEgewogICAgIHB1Ymxp
YzoKICAgICAgICAgc3RhdGljIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhKiBjcmVhdGUodjg6Oklz
b2xhdGUqKTsKQEAgLTEwNywxMCArMTE1LDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgVGVtcGxhdGVNYXAmIHRlbXBsYXRlTWFwKCkgeyByZXR1cm4gbV90ZW1wbGF0ZXM7IH0KICAg
ICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4mIHRvU3RyaW5nTmFtZSgpIHsgcmV0dXJu
IG1fdG9TdHJpbmdOYW1lOyB9CiAgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRl
bXBsYXRlPiYgdG9TdHJpbmdUZW1wbGF0ZSgpIHsgcmV0dXJuIG1fdG9TdHJpbmdUZW1wbGF0ZTsg
fQorCisgICAgICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiYgbGF6eUV2
ZW50TGlzdGVuZXJUb1N0cmluZ1RlbXBsYXRlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0
dXJuIG1fbGF6eUV2ZW50TGlzdGVuZXJUb1N0cmluZ1RlbXBsYXRlOworICAgICAgICB9CisKICAg
ICAgICAgU3RyaW5nQ2FjaGUqIHN0cmluZ0NhY2hlKCkgeyByZXR1cm4gJm1fc3RyaW5nQ2FjaGU7
IH0KIAogICAgICAgICBET01EYXRhTGlzdCYgYWxsU3RvcmVzKCkgeyByZXR1cm4gbV9kb21EYXRh
TGlzdDsgfQogCisgICAgICAgIFY4SGlkZGVuUHJvcGVydHlOYW1lKiBoaWRkZW5Qcm9wZXJ0eU5h
bWUoKSB7IHJldHVybiAmbV9oaWRkZW5Qcm9wZXJ0eU5hbWU7IH0KKwogICAgICAgICB2b2lkIHJl
Z2lzdGVyRE9NRGF0YVN0b3JlKERPTURhdGFTdG9yZSogZG9tRGF0YVN0b3JlKSAKICAgICAgICAg
ewogICAgICAgICAgICAgbV9kb21EYXRhTGlzdC5hcHBlbmQoZG9tRGF0YVN0b3JlKTsKQEAgLTEy
Nyw2ICsxNDMsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBET01EYXRhU3Rv
cmUgaXMgb3duZWQgb3V0c2lkZSBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YS4KICAgICAgICAgdm9p
ZCBzZXRET01EYXRhU3RvcmUoRE9NRGF0YVN0b3JlKiBzdG9yZSkgeyBtX2RvbURhdGFTdG9yZSA9
IHN0b3JlOyB9CiAKKyNpZm5kZWYgTkRFQlVHCisgICAgICAgIEdsb2JhbEhhbmRsZU1hcCYgZ2xv
YmFsSGFuZGxlTWFwKCkgeyByZXR1cm4gbV9nbG9iYWxIYW5kbGVNYXA7IH0KKyNlbmRpZgorCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgZXhwbGljaXQgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEodjg6
Oklzb2xhdGUqKTsKICAgICAgICAgflY4QmluZGluZ1Blcklzb2xhdGVEYXRhKCk7CkBAIC0xMzUs
MTIgKzE1NSw3NSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFRlbXBsYXRlTWFwIG1f
dGVtcGxhdGVzOwogICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiBtX3RvU3RyaW5n
TmFtZTsKICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+IG1fdG9T
dHJpbmdUZW1wbGF0ZTsKKyAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxh
dGU+IG1fbGF6eUV2ZW50TGlzdGVuZXJUb1N0cmluZ1RlbXBsYXRlOwogICAgICAgICBTdHJpbmdD
YWNoZSBtX3N0cmluZ0NhY2hlOwogCiAgICAgICAgIERPTURhdGFMaXN0IG1fZG9tRGF0YUxpc3Q7
CiAgICAgICAgIERPTURhdGFTdG9yZSogbV9kb21EYXRhU3RvcmU7CisKKyAgICAgICAgVjhIaWRk
ZW5Qcm9wZXJ0eU5hbWUgbV9oaWRkZW5Qcm9wZXJ0eU5hbWU7CisKKyAgICAgICAgYm9vbCBtX2N1
cnJlbnRBbGxvY2F0aW9uc0FsbG93ZWQ7CisgICAgICAgIGZyaWVuZCBjbGFzcyBBbGxvd0FsbG9j
YXRpb247CisKKyNpZm5kZWYgTkRFQlVHCisgICAgICAgIEdsb2JhbEhhbmRsZU1hcCBtX2dsb2Jh
bEhhbmRsZU1hcDsKKyNlbmRpZgogICAgIH07CiAKKyAgICBjbGFzcyBBbGxvd0FsbG9jYXRpb24g
eworICAgIHB1YmxpYzoKKyAgICAgICAgQWxsb3dBbGxvY2F0aW9uKCkKKyAgICAgICAgeworICAg
ICAgICAgICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGRhdGEgPSBWOEJpbmRpbmdQZXJJc29s
YXRlRGF0YTo6Y3VycmVudCgpOworICAgICAgICAgICAgbV9wcmV2aW91cyA9IGRhdGEtPm1fY3Vy
cmVudEFsbG9jYXRpb25zQWxsb3dlZDsKKyAgICAgICAgICAgIGRhdGEtPm1fY3VycmVudEFsbG9j
YXRpb25zQWxsb3dlZCA9IHRydWU7CisgICAgICAgIH0KKworICAgICAgICB+QWxsb3dBbGxvY2F0
aW9uKCkKKyAgICAgICAgeworICAgICAgICAgICAgVjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGRh
dGEgPSBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpOworICAgICAgICAgICAgZGF0
YS0+bV9jdXJyZW50QWxsb2NhdGlvbnNBbGxvd2VkID0gbV9wcmV2aW91czsKKyAgICAgICAgfQor
CisgICAgICAgIHN0YXRpYyBib29sIGN1cnJlbnQoKSB7IHJldHVybiBWOEJpbmRpbmdQZXJJc29s
YXRlRGF0YTo6Y3VycmVudCgpLT5tX2N1cnJlbnRBbGxvY2F0aW9uc0FsbG93ZWQ7IH0KKworICAg
IHByaXZhdGU6CisgICAgICAgIGJvb2wgbV9wcmV2aW91czsKKyAgICB9OworCisgICAgY2xhc3Mg
U2FmZUFsbG9jYXRpb24geworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIGlubGluZSB2ODo6
TG9jYWw8djg6Ok9iamVjdD4gbmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+KTsK
KyAgICAgICAgc3RhdGljIGlubGluZSB2ODo6TG9jYWw8djg6Ok9iamVjdD4gbmV3SW5zdGFuY2Uo
djg6OkhhbmRsZTx2ODo6T2JqZWN0VGVtcGxhdGU+KTsKKyAgICAgICAgc3RhdGljIGlubGluZSB2
ODo6TG9jYWw8djg6Ok9iamVjdD4gbmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+
LCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSk7CisgICAgfTsKKworICAg
IHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBTYWZlQWxsb2NhdGlvbjo6bmV3SW5zdGFuY2Uodjg6Okhh
bmRsZTx2ODo6RnVuY3Rpb24+IGZ1bmN0aW9uKQorICAgIHsKKyAgICAgICAgaWYgKGZ1bmN0aW9u
LklzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6Ok9iamVjdD4oKTsK
KyAgICAgICAgQWxsb3dBbGxvY2F0aW9uIGFsbG93OworICAgICAgICByZXR1cm4gZnVuY3Rpb24t
Pk5ld0luc3RhbmNlKCk7CisgICAgfQorCisgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IFNhZmVB
bGxvY2F0aW9uOjpuZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4gb2Jq
ZWN0VGVtcGxhdGUpCisgICAgeworICAgICAgICBpZiAob2JqZWN0VGVtcGxhdGUuSXNFbXB0eSgp
KQorICAgICAgICAgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6T2JqZWN0PigpOworICAgICAgICBB
bGxvd0FsbG9jYXRpb24gYWxsb3c7CisgICAgICAgIHJldHVybiBvYmplY3RUZW1wbGF0ZS0+TmV3
SW5zdGFuY2UoKTsKKyAgICB9CisKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gU2FmZUFsbG9j
YXRpb246Om5ld0luc3RhbmNlKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBmdW5jdGlvbiwgaW50
IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10pCisgICAgeworICAgICAgICBpZiAo
ZnVuY3Rpb24uSXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6T2Jq
ZWN0PigpOworICAgICAgICBBbGxvd0FsbG9jYXRpb24gYWxsb3c7CisgICAgICAgIHJldHVybiBm
dW5jdGlvbi0+TmV3SW5zdGFuY2UoYXJnYywgYXJndik7CisgICAgfQorCisKIAogICAgIGVudW0g
RXh0ZXJuYWxNb2RlIHsKICAgICAgICAgRXh0ZXJuYWxpemUsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKaW5kZXggYjc0MzdkYi4uODcxODBmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcApAQCAtODEs
MTkgKzgxLDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vICAgIFY4R0NDb250cm9sbGVyOjp1
bnJlZ2lzdGVyR2xvYmFsSGFuZGxlKHR5cGUsIGhvc3QsIGhhbmRsZSk7CiAvLyAjZW5kaWYKIC8v
Ci10eXBlZGVmIEhhc2hNYXA8djg6OlZhbHVlKiwgR2xvYmFsSGFuZGxlSW5mbyo+IEdsb2JhbEhh
bmRsZU1hcDsKIAotc3RhdGljIEdsb2JhbEhhbmRsZU1hcCYgZ2xvYmFsSGFuZGxlTWFwKCkKK3N0
YXRpYyBHbG9iYWxIYW5kbGVNYXAmIGN1cnJlbnRHbG9iYWxIYW5kbGVNYXAoKQogewotICAgIERF
RklORV9TVEFUSUNfTE9DQUwoR2xvYmFsSGFuZGxlTWFwLCBzdGF0aWNHbG9iYWxIYW5kbGVNYXAs
ICgpKTsKLSAgICByZXR1cm4gc3RhdGljR2xvYmFsSGFuZGxlTWFwOworICAgIHJldHVybiBWOEJp
bmRpbmdQZXJJc29sYXRlRGF0YTo6Y3VycmVudCgpLT5nbG9iYWxIYW5kbGVNYXAoKTsKIH0KIAog
Ly8gVGhlIGZ1bmN0aW9uIGlzIHRoZSBwbGFjZSB0byBzZXQgdGhlIGJyZWFrIHBvaW50IHRvIGlu
c3BlY3QKIC8vIGxpdmUgZ2xvYmFsIGhhbmRsZXMuIExlYWtzIGFyZSBvZnRlbiBjb21lIGZyb20g
bGVha2VkIGdsb2JhbCBoYW5kbGVzLgogc3RhdGljIHZvaWQgZW51bWVyYXRlR2xvYmFsSGFuZGxl
cygpCiB7Ci0gICAgZm9yIChHbG9iYWxIYW5kbGVNYXA6Oml0ZXJhdG9yIGl0ID0gZ2xvYmFsSGFu
ZGxlTWFwKCkuYmVnaW4oKSwgZW5kID0gZ2xvYmFsSGFuZGxlTWFwKCkuZW5kKCk7IGl0ICE9IGVu
ZDsgKytpdCkgeworICAgIEdsb2JhbEhhbmRsZU1hcCYgZ2xvYmFsSGFuZGxlTWFwID0gY3VycmVu
dEdsb2JhbEhhbmRsZU1hcCgpOworICAgIGZvciAoR2xvYmFsSGFuZGxlTWFwOjppdGVyYXRvciBp
dCA9IGdsb2JhbEhhbmRsZU1hcC5iZWdpbigpLCBlbmQgPSBnbG9iYWxIYW5kbGVNYXAuZW5kKCk7
IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBHbG9iYWxIYW5kbGVJbmZvKiBpbmZvID0gaXQt
PnNlY29uZDsKICAgICAgICAgVU5VU0VEX1BBUkFNKGluZm8pOwogICAgICAgICB2ODo6VmFsdWUq
IGhhbmRsZSA9IGl0LT5maXJzdDsKQEAgLTEwMywxNCArMTAyLDE2IEBAIHN0YXRpYyB2b2lkIGVu
dW1lcmF0ZUdsb2JhbEhhbmRsZXMoKQogCiB2b2lkIFY4R0NDb250cm9sbGVyOjpyZWdpc3Rlckds
b2JhbEhhbmRsZShHbG9iYWxIYW5kbGVUeXBlIHR5cGUsIHZvaWQqIGhvc3QsIHY4OjpQZXJzaXN0
ZW50PHY4OjpWYWx1ZT4gaGFuZGxlKQogewotICAgIEFTU0VSVCghZ2xvYmFsSGFuZGxlTWFwKCku
Y29udGFpbnMoKmhhbmRsZSkpOwotICAgIGdsb2JhbEhhbmRsZU1hcCgpLnNldCgqaGFuZGxlLCBu
ZXcgR2xvYmFsSGFuZGxlSW5mbyhob3N0LCB0eXBlKSk7CisgICAgR2xvYmFsSGFuZGxlTWFwJiBn
bG9iYWxIYW5kbGVNYXAgPSBjdXJyZW50R2xvYmFsSGFuZGxlTWFwKCk7CisgICAgQVNTRVJUKCFn
bG9iYWxIYW5kbGVNYXAuY29udGFpbnMoKmhhbmRsZSkpOworICAgIGdsb2JhbEhhbmRsZU1hcC5z
ZXQoKmhhbmRsZSwgbmV3IEdsb2JhbEhhbmRsZUluZm8oaG9zdCwgdHlwZSkpOwogfQogCiB2b2lk
IFY4R0NDb250cm9sbGVyOjp1bnJlZ2lzdGVyR2xvYmFsSGFuZGxlKHZvaWQqIGhvc3QsIHY4OjpQ
ZXJzaXN0ZW50PHY4OjpWYWx1ZT4gaGFuZGxlKQogewotICAgIEFTU0VSVChnbG9iYWxIYW5kbGVN
YXAoKS5jb250YWlucygqaGFuZGxlKSk7Ci0gICAgR2xvYmFsSGFuZGxlSW5mbyogaW5mbyA9IGds
b2JhbEhhbmRsZU1hcCgpLnRha2UoKmhhbmRsZSk7CisgICAgR2xvYmFsSGFuZGxlTWFwJiBnbG9i
YWxIYW5kbGVNYXAgPSBjdXJyZW50R2xvYmFsSGFuZGxlTWFwKCk7CisgICAgQVNTRVJUKGdsb2Jh
bEhhbmRsZU1hcC5jb250YWlucygqaGFuZGxlKSk7CisgICAgR2xvYmFsSGFuZGxlSW5mbyogaW5m
byA9IGdsb2JhbEhhbmRsZU1hcC50YWtlKCpoYW5kbGUpOwogICAgIEFTU0VSVChpbmZvLT5tX2hv
c3QgPT0gaG9zdCk7CiAgICAgZGVsZXRlIGluZm87CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEhpZGRlblByb3BlcnR5TmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOEhpZGRlblByb3BlcnR5TmFtZS5jcHAKaW5kZXggMGY1YTY3NC4uOTNh
Yzc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9w
ZXJ0eU5hbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJv
cGVydHlOYW1lLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIlY4SGlkZGVuUHJvcGVydHlOYW1lLmgiCiAKKyNpbmNsdWRlICJWOEJpbmRpbmcuaCIK
ICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTQyLDgg
KzQzLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNkZWZpbmUgVjhfREVGSU5FX1BST1BFUlRZ
KG5hbWUpIFwKIHY4OjpIYW5kbGU8djg6OlN0cmluZz4gVjhIaWRkZW5Qcm9wZXJ0eU5hbWU6Om5h
bWUoKSBcCiB7IFwKLSAgICBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4qIHN0cmlu
ZyA9IGNyZWF0ZVN0cmluZygiV2ViQ29yZTo6SGlkZGVuUHJvcGVydHk6OiIgVjhfQVNfU1RSSU5H
KG5hbWUpKTsgXAotICAgIHJldHVybiAqc3RyaW5nOyBcCisgICAgVjhIaWRkZW5Qcm9wZXJ0eU5h
bWUqIGhpZGRlblByb3BlcnR5TmFtZSA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50
KCktPmhpZGRlblByb3BlcnR5TmFtZSgpOyBcCisgICAgaWYgKGhpZGRlblByb3BlcnR5TmFtZS0+
bV8jI25hbWUuSXNFbXB0eSgpKSB7IFwKKyAgICAgICAgaGlkZGVuUHJvcGVydHlOYW1lLT5tXyMj
bmFtZSA9IGNyZWF0ZVN0cmluZygiV2ViQ29yZTo6SGlkZGVuUHJvcGVydHk6OiIgVjhfQVNfU1RS
SU5HKG5hbWUpKTsgXAorICAgIH0gXAorICAgIHJldHVybiBoaWRkZW5Qcm9wZXJ0eU5hbWUtPm1f
IyNuYW1lOyBcCiB9CiAKIFY4X0hJRERFTl9QUk9QRVJUSUVTKFY4X0RFRklORV9QUk9QRVJUWSk7
CkBAIC01OSwxMCArNjMsMTAgQEAgdjg6OkhhbmRsZTx2ODo6U3RyaW5nPiBWOEhpZGRlblByb3Bl
cnR5TmFtZTo6aGlkZGVuUmVmZXJlbmNlTmFtZShjb25zdCBjaGFyKiBuYW0KICAgICByZXR1cm4g
djg6OlN0cmluZzo6TmV3U3ltYm9sKHByZWZpeGVkTmFtZS5kYXRhKCksIHN0YXRpY19jYXN0PGlu
dD4ocHJlZml4ZWROYW1lLnNpemUoKSkpOwogfQogCi12ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5n
PiogVjhIaWRkZW5Qcm9wZXJ0eU5hbWU6OmNyZWF0ZVN0cmluZyhjb25zdCBjaGFyKiBrZXkpCit2
ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiBWOEhpZGRlblByb3BlcnR5TmFtZTo6Y3JlYXRlU3Ry
aW5nKGNvbnN0IGNoYXIqIGtleSkKIHsKICAgICB2ODo6SGFuZGxlU2NvcGUgc2NvcGU7Ci0gICAg
cmV0dXJuIG5ldyB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPih2ODo6UGVyc2lzdGVudDx2ODo6
U3RyaW5nPjo6TmV3KHY4OjpTdHJpbmc6Ok5ld1N5bWJvbChrZXkpKSk7CisgICAgcmV0dXJuIHY4
OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+OjpOZXcodjg6OlN0cmluZzo6TmV3U3ltYm9sKGtleSkp
OwogfQogCiB9ICAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmgKaW5kZXggN2M0YWFlMC4uNGFjODUyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0eU5h
bWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEhpZGRlblByb3BlcnR5TmFt
ZS5oCkBAIC01NSw3ICs1NSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IGhpZGRlblJlZmVyZW5jZU5hbWUoY29uc3QgY2hhciog
bmFtZSk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6
OlN0cmluZz4qIGNyZWF0ZVN0cmluZyhjb25zdCBjaGFyKiBrZXkpOworICAgICAgICBzdGF0aWMg
djg6OlBlcnNpc3RlbnQ8djg6OlN0cmluZz4gY3JlYXRlU3RyaW5nKGNvbnN0IGNoYXIqIGtleSk7
CisjZGVmaW5lIFY4X0RFQ0xBUkVfRklFTEQobmFtZSkgdjg6OlBlcnNpc3RlbnQ8djg6OlN0cmlu
Zz4gbV8jI25hbWU7CisgICAgICAgIFY4X0hJRERFTl9QUk9QRVJUSUVTKFY4X0RFQ0xBUkVfRklF
TEQpOworI3VuZGVmIFY4X0RFQ0xBUkVfRklFTEQKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOExhenlFdmVudExpc3RlbmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TGF6eUV2ZW50TGlzdGVuZXIuY3BwCmluZGV4IGU2YTFl
ODguLjE3MjE4YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TGF6
eUV2ZW50TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TGF6
eUV2ZW50TGlzdGVuZXIuY3BwCkBAIC0xMzcsNyArMTM3LDggQEAgdm9pZCBWOExhenlFdmVudExp
c3RlbmVyOjpwcmVwYXJlTGlzdGVuZXJPYmplY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCkKICAgICAgICAgICAgIC8vIHNvdXJjZSByZXR1cm5lZCAoc29tZXRpbWVzIGEgUmVnRXhw
IGlzIGFwcGxpZWQgYXMgd2VsbCkgZm9yIHNvbWUKICAgICAgICAgICAgIC8vIG90aGVyIHVzZS4g
VGhhdCBmYWlscyBtaXNlcmFibHkgaWYgdGhlIGFjdHVhbCB3cmFwcGVyIHNvdXJjZSBpcwogICAg
ICAgICAgICAgLy8gcmV0dXJuZWQuCi0gICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKHY4
OjpQZXJzaXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiwgdG9TdHJpbmdUZW1wbGF0ZSwgKCkp
OworICAgICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+JiB0b1N0
cmluZ1RlbXBsYXRlID0KKyAgICAgICAgICAgICAgICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6
Y3VycmVudCgpLT5sYXp5RXZlbnRMaXN0ZW5lclRvU3RyaW5nVGVtcGxhdGUoKTsKICAgICAgICAg
ICAgIGlmICh0b1N0cmluZ1RlbXBsYXRlLklzRW1wdHkoKSkKICAgICAgICAgICAgICAgICB0b1N0
cmluZ1RlbXBsYXRlID0gdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+OjpOZXco
djg6OkZ1bmN0aW9uVGVtcGxhdGU6Ok5ldyhWOExhenlFdmVudExpc3RlbmVyVG9TdHJpbmcpKTsK
ICAgICAgICAgICAgIHY4OjpMb2NhbDx2ODo6RnVuY3Rpb24+IHRvU3RyaW5nRnVuY3Rpb247CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE5QT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TlBPYmplY3QuY3BwCmluZGV4IDM2NjQwYjcuLjY5
MTUwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TlBPYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TlBPYmplY3QuY3BwCkBAIC0z
NCw2ICszNCw3IEBACiAKICNpbmNsdWRlICJIVE1MUGx1Z0luRWxlbWVudC5oIgogI2luY2x1ZGUg
Ik5QVjhPYmplY3QuaCIKKyNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOERPTU1h
cC5oIgogI2luY2x1ZGUgIlY4SFRNTEFwcGxldEVsZW1lbnQuaCIKICNpbmNsdWRlICJWOEhUTUxF
bWJlZEVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
UHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKaW5kZXgg
YTQ3ODg1ZS4uZDIyYjU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAK
QEAgLTEzMiw4ICsxMzIsNiBAQCB0eXBlZGVmIEhhc2hNYXA8Tm9kZSosIHY4OjpPYmplY3QqPiBE
T01Ob2RlTWFwOwogdHlwZWRlZiBIYXNoTWFwPHZvaWQqLCB2ODo6T2JqZWN0Kj4gRE9NT2JqZWN0
TWFwOwogdHlwZWRlZiBIYXNoTWFwPGludCwgdjg6OkZ1bmN0aW9uVGVtcGxhdGUqPiBGdW5jdGlv
blRlbXBsYXRlTWFwOwogCi1ib29sIEFsbG93QWxsb2NhdGlvbjo6bV9jdXJyZW50ID0gZmFsc2U7
Ci0KIHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoUGFnZSogcGFnZSwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlELCB1bnNpZ25lZCBsaW5lTnVtYmVy
KQogewogICAgIEFTU0VSVChwYWdlKTsKQEAgLTc4Myw3ICs3ODEsNyBAQCB2ODo6TG9jYWw8djg6
OkNvbnRleHQ+IFY4UHJveHk6OmN1cnJlbnRDb250ZXh0KCkKIAogdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4UHJveHk6OmNoZWNrTmV3TGVnYWwoY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsK
LSAgICBpZiAoIUFsbG93QWxsb2NhdGlvbjo6bV9jdXJyZW50KQorICAgIGlmICghQWxsb3dBbGxv
Y2F0aW9uOjpjdXJyZW50KCkpCiAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKFR5cGVFcnJvciwg
IklsbGVnYWwgY29uc3RydWN0b3IiKTsKIAogICAgIHJldHVybiBhcmdzLlRoaXMoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOFV0aWxpdGllcy5oCmluZGV4IGMyMTc5NjQuLmJlYTdkMGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuaApAQCAtOTUsNTYgKzk1
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICByZXR1cm4gVjhDYWxsYmFja1R5cGU6
OmNyZWF0ZSh2YWx1ZSwgZ2V0U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICB9CiAKLSAg
ICBjbGFzcyBBbGxvd0FsbG9jYXRpb24gewotICAgIHB1YmxpYzoKLSAgICAgICAgaW5saW5lIEFs
bG93QWxsb2NhdGlvbigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIG1fcHJldmlvdXMgPSBtX2N1
cnJlbnQ7Ci0gICAgICAgICAgICBtX2N1cnJlbnQgPSB0cnVlOwotICAgICAgICB9Ci0KLSAgICAg
ICAgaW5saW5lIH5BbGxvd0FsbG9jYXRpb24oKQotICAgICAgICB7Ci0gICAgICAgICAgICBtX2N1
cnJlbnQgPSBtX3ByZXZpb3VzOwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGljIGJvb2wgbV9j
dXJyZW50OwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgYm9vbCBtX3ByZXZpb3VzOwotICAgIH07
Ci0KLSAgICBjbGFzcyBTYWZlQWxsb2NhdGlvbiB7Ci0gICAgIHB1YmxpYzoKLSAgICAgIHN0YXRp
YyBpbmxpbmUgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IG5ld0luc3RhbmNlKHY4OjpIYW5kbGU8djg6
OkZ1bmN0aW9uPik7Ci0gICAgICBzdGF0aWMgaW5saW5lIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBu
ZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4pOwotICAgICAgc3RhdGlj
IGlubGluZSB2ODo6TG9jYWw8djg6Ok9iamVjdD4gbmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6
RnVuY3Rpb24+LCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSk7Ci0gICAg
fTsKLQotICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBTYWZlQWxsb2NhdGlvbjo6bmV3SW5zdGFu
Y2Uodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+IGZ1bmN0aW9uKQotICAgIHsKLSAgICAgICAgaWYg
KGZ1bmN0aW9uLklzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiB2ODo6TG9jYWw8djg6Ok9i
amVjdD4oKTsKLSAgICAgICAgQWxsb3dBbGxvY2F0aW9uIGFsbG93OwotICAgICAgICByZXR1cm4g
ZnVuY3Rpb24tPk5ld0luc3RhbmNlKCk7Ci0gICAgfQotCi0gICAgdjg6OkxvY2FsPHY4OjpPYmpl
Y3Q+IFNhZmVBbGxvY2F0aW9uOjpuZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1w
bGF0ZT4gb2JqZWN0VGVtcGxhdGUpCi0gICAgewotICAgICAgICBpZiAob2JqZWN0VGVtcGxhdGUu
SXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6T2JqZWN0PigpOwot
ICAgICAgICBBbGxvd0FsbG9jYXRpb24gYWxsb3c7Ci0gICAgICAgIHJldHVybiBvYmplY3RUZW1w
bGF0ZS0+TmV3SW5zdGFuY2UoKTsKLSAgICB9Ci0KLSAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4g
U2FmZUFsbG9jYXRpb246Om5ld0luc3RhbmNlKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPiBmdW5j
dGlvbiwgaW50IGFyZ2MsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10pCi0gICAgewotICAg
ICAgICBpZiAoZnVuY3Rpb24uSXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuIHY4OjpMb2Nh
bDx2ODo6T2JqZWN0PigpOwotICAgICAgICBBbGxvd0FsbG9jYXRpb24gYWxsb3c7Ci0gICAgICAg
IHJldHVybiBmdW5jdGlvbi0+TmV3SW5zdGFuY2UoYXJnYywgYXJndik7Ci0gICAgfQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBWOFV0aWxpdGllc19oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHku
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblBy
b3h5LmNwcAppbmRleCA3ZGNmZDg0Li5hOWQ2NTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAKQEAg
LTgzLDcgKzgzLDcgQEAgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5OjpXb3JrZXJDb250ZXh0
RXhlY3V0aW9uUHJveHkoV29ya2VyQ29udGV4dCogd29ya2VyQ28KICAgICA6IG1fd29ya2VyQ29u
dGV4dCh3b3JrZXJDb250ZXh0KQogICAgICwgbV9yZWN1cnNpb24oMCkKIHsKLSAgICBpbml0Vjgo
KTsKKyAgICBpbml0SXNvbGF0ZSgpOwogfQogCiBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6
On5Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkoKQpAQCAtMTA4LDEyICsxMDgsMTUgQEAgdm9p
ZCBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6OmRpc3Bvc2UoKQogICAgIH0KIH0KIAotdm9p
ZCBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6OmluaXRWOCgpCit2b2lkIFdvcmtlckNvbnRl
eHRFeGVjdXRpb25Qcm94eTo6aW5pdElzb2xhdGUoKQogewogICAgIC8vIFRlbGwgVjggbm90IHRv
IGNhbGwgdGhlIGRlZmF1bHQgT09NIGhhbmRsZXIsIGJpbmRpbmcgY29kZSB3aWxsIGhhbmRsZSBp
dC4KICAgICB2ODo6Vjg6Oklnbm9yZU91dE9mTWVtb3J5RXhjZXB0aW9uKCk7CiAgICAgdjg6OlY4
OjpTZXRGYXRhbEVycm9ySGFuZGxlcihyZXBvcnRGYXRhbEVycm9ySW5WOCk7CiAKKyAgICB2ODo6
Vjg6OlNldEdsb2JhbEdDUHJvbG9ndWVDYWxsYmFjaygmVjhHQ0NvbnRyb2xsZXI6OmdjUHJvbG9n
dWUpOworICAgIHY4OjpWODo6U2V0R2xvYmFsR0NFcGlsb2d1ZUNhbGxiYWNrKCZWOEdDQ29udHJv
bGxlcjo6Z2NFcGlsb2d1ZSk7CisKICAgICB2ODo6UmVzb3VyY2VDb25zdHJhaW50cyByZXNvdXJj
ZV9jb25zdHJhaW50czsKICAgICB1aW50MzJfdCBoZXJlOwogICAgIHJlc291cmNlX2NvbnN0cmFp
bnRzLnNldF9zdGFja19saW1pdCgmaGVyZSAtIGtXb3JrZXJNYXhTdGFja1NpemUgLyBzaXplb2Yo
dWludDMyX3QqKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3Jr
ZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dv
cmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oCmluZGV4IGRlMzI3OTMuLjA1MmZiMzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Q
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVj
dXRpb25Qcm94eS5oCkBAIC03Myw3ICs3Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBjb250ZXh0KCkgeyByZXR1cm4gdjg6OkxvY2FsPHY4
OjpDb250ZXh0Pjo6TmV3KG1fY29udGV4dCk7IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHZv
aWQgaW5pdFY4KCk7CisgICAgICAgIHZvaWQgaW5pdElzb2xhdGUoKTsKICAgICAgICAgYm9vbCBp
bml0Q29udGV4dElmTmVlZGVkKCk7CiAgICAgICAgIHZvaWQgZGlzcG9zZSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3Bw
CmluZGV4IGQ5Y2FiYzIuLjU4NzU4MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC05NCw3ICs5NCw3IEBAIFNj
cmlwdFZhbHVlIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNv
dXJjZUNvZGUmIHNvdXJjZUNvZGUsCiAKIHZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxlcjo6c2No
ZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbigpCiB7Ci0gICAgdjg6OlY4OjpUZXJtaW5hdGVFeGVj
dXRpb24oKTsKKyAgICB2ODo6Vjg6OlRlcm1pbmF0ZUV4ZWN1dGlvbihtX2lzb2xhdGUpOwogfQog
CiB2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmZvcmJpZEV4ZWN1dGlvbigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IGYzMThhMDEuLjFhZGNhYzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDgtMDUgIERtaXRyeSBMb21vdiAgPGRz
bG9tb3ZAZ29vZ2xlLmNvbT4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjU3NzgKKyAgICAgICAgW1dlYldvcmtlcnNdW2Nocm9taXVtXSBNYWtlIHN0
YXRpY3MgdGhyZWFkLXNhZmUgYW5kIG1ha2Ugc3VyZSBWOCBBUEkgYWNjZXNzZXMgY29ycmVjdCBp
c29sYXRlcworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogc3JjL0JvdW5kT2JqZWN0LmNwcDogQWxsb3dBbGxvY2F0aW9uIG1vdmVkIGZyb20gVjhVdGls
aXRpZXMuaCB0byBWOEJpbmRpbmcuaAorCiAyMDExLTA4LTA1ICBQYXZlbCBGZWxkbWFuICA8cGZl
bGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGltcGxlbWVudCBk
b2NrL3VuZG9jayBpbiBXZWJLaXQyIHdpdGhvdXQgZ2V0dGluZyBpbnRvIFdlYkNvcmUuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Cb3VuZE9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Cb3VuZE9iamVjdC5jcHAKaW5kZXggOTAwOTZjMi4uZDBm
NjZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQm91bmRPYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0JvdW5kT2JqZWN0LmNwcApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkJvdW5kT2JqZWN0
LmgiCiAKKyNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAKIG5h
bWVzcGFjZSBXZWJLaXQgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103370</attachid>
            <date>2011-08-09 10:37:23 -0700</date>
            <delta_ts>2011-08-09 12:01:20 -0700</delta_ts>
            <desc>Fixed field initialization to unbreak chromium canary.</desc>
            <filename>65778.patch</filename>
            <type>text/plain</type>
            <size>19577</size>
            <attacher name="Dmitry Lomov">dslomov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkOTllNjUxLi4xNzQ1ZDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQg
QEAKKzIwMTEtMDgtMDkgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU3NzgKKyAgICAg
ICAgW1dlYldvcmtlcnNdW2Nocm9taXVtXSBNYWtlIHN0YXRpY3MgdGhyZWFkLXNhZmUgYW5kIG1h
a2Ugc3VyZSBWOCBBUEkgYWNjZXNzZXMgY29ycmVjdCBpc29sYXRlcy4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRl
c3RzLgorCisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSk6
CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpW
OEJpbmRpbmdQZXJJc29sYXRlRGF0YTo6bGF6eUV2ZW50TGlzdGVuZXJUb1N0cmluZ1RlbXBsYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpoaWRkZW5Qcm9w
ZXJ0eU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6VjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6Omds
b2JhbEhhbmRsZU1hcCk6CisgICAgICAgIChXZWJDb3JlOjpBbGxvd0FsbG9jYXRpb246OkFsbG93
QWxsb2NhdGlvbik6TW92aW5nIHRvIFY4QmluZGluZy5oIGZyb20gVjhVdGlsaXRpZXMuaCB0byBy
ZXNvbHZlIGhlYWRlciBkZXBlbmRlbmN5LgorICAgICAgICAoV2ViQ29yZTo6QWxsb3dBbGxvY2F0
aW9uOjp+QWxsb3dBbGxvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFsbG93QWxsb2NhdGlv
bjo6Y3VycmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTYWZlQWxsb2NhdGlvbjo6bmV3SW5zdGFu
Y2UpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4R0NDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmN1cnJlbnRHbG9iYWxIYW5kbGVNYXApOgorICAgICAgICAoV2ViQ29yZTo6ZW51
bWVyYXRlR2xvYmFsSGFuZGxlcyk6CisgICAgICAgIChXZWJDb3JlOjpWOEdDQ29udHJvbGxlcjo6
cmVnaXN0ZXJHbG9iYWxIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6VjhHQ0NvbnRyb2xsZXI6
OnVucmVnaXN0ZXJHbG9iYWxIYW5kbGUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4SGlkZGVu
UHJvcGVydHlOYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SGlkZGVuUHJvcGVydHlOYW1l
OjpjcmVhdGVTdHJpbmcpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlO
YW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpWOEhpZGRlblByb3BlcnR5TmFtZTo6VjhIaWRkZW5Q
cm9wZXJ0eU5hbWUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4TGF6eUV2ZW50TGlzdGVuZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhMYXp5RXZlbnRMaXN0ZW5lcjo6cHJlcGFyZUxpc3Rl
bmVyT2JqZWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOE5QT2JqZWN0LmNwcDoKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4UHJveHk6
OmNoZWNrTmV3TGVnYWwpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4VXRpbGl0aWVzLmg6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6V29ya2VyQ29udGV4
dEV4ZWN1dGlvblByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHRFeGVjdXRp
b25Qcm94eTo6aW5pdElzb2xhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dvcmtlckNvbnRl
eHRFeGVjdXRpb25Qcm94eS5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1dvcmtlclNjcmlwdENv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6
c2NoZWR1bGVFeGVjdXRpb25UZXJtaW5hdGlvbik6CisKIDIwMTEtMDgtMDkgIFN0ZXZlIEJsb2Nr
ICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAgIEphdmEgQnJpZGdlIGxlYWtzIGxv
Y2FsIHJlZmVyZW5jZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
QmluZGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuY3BwCmlu
ZGV4IDI2NzNlMzEuLjE3OTIzNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4QmluZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5k
aW5nLmNwcApAQCAtNTEsNiArNTEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFY4QmluZGlu
Z1Blcklzb2xhdGVEYXRhOjpWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSh2ODo6SXNvbGF0ZSogaXNv
bGF0ZSkKICAgICA6IG1fZG9tRGF0YVN0b3JlKDApCisgICAgLCBtX2N1cnJlbnRBbGxvY2F0aW9u
c0FsbG93ZWQoZmFsc2UpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4QmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5n
LmgKaW5kZXggNTQwOGQzYy4uNTM1ZDljMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhCaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhC
aW5kaW5nLmgKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlICJNYXRoRXh0cmFzLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJWOERPTVdyYXBwZXIuaCIKKyNpbmNs
dWRlICJWOEdDQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIlY4SGlkZGVuUHJvcGVydHlOYW1lLmgi
CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKICNpbmNsdWRlIDx2OC5oPgpA
QCAtODUsNiArODcsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBSZWZQdHI8U3Ry
aW5nSW1wbD4gbV9sYXN0U3RyaW5nSW1wbDsKICAgICB9OwogCisgICAgY2xhc3MgQWxsb3dBbGxv
Y2F0aW9uOworCisjaWZuZGVmIE5ERUJVRworICAgIHR5cGVkZWYgSGFzaE1hcDx2ODo6VmFsdWUq
LCBHbG9iYWxIYW5kbGVJbmZvKj4gR2xvYmFsSGFuZGxlTWFwOworI2VuZGlmCisKICAgICBjbGFz
cyBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMg
VjhCaW5kaW5nUGVySXNvbGF0ZURhdGEqIGNyZWF0ZSh2ODo6SXNvbGF0ZSopOwpAQCAtMTA3LDEw
ICsxMTUsMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBUZW1wbGF0ZU1hcCYgdGVt
cGxhdGVNYXAoKSB7IHJldHVybiBtX3RlbXBsYXRlczsgfQogICAgICAgICB2ODo6UGVyc2lzdGVu
dDx2ODo6U3RyaW5nPiYgdG9TdHJpbmdOYW1lKCkgeyByZXR1cm4gbV90b1N0cmluZ05hbWU7IH0K
ICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+JiB0b1N0cmluZ1Rl
bXBsYXRlKCkgeyByZXR1cm4gbV90b1N0cmluZ1RlbXBsYXRlOyB9CisKKyAgICAgICAgdjg6OlBl
cnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+JiBsYXp5RXZlbnRMaXN0ZW5lclRvU3RyaW5n
VGVtcGxhdGUoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbV9sYXp5RXZlbnRMaXN0
ZW5lclRvU3RyaW5nVGVtcGxhdGU7CisgICAgICAgIH0KKwogICAgICAgICBTdHJpbmdDYWNoZSog
c3RyaW5nQ2FjaGUoKSB7IHJldHVybiAmbV9zdHJpbmdDYWNoZTsgfQogCiAgICAgICAgIERPTURh
dGFMaXN0JiBhbGxTdG9yZXMoKSB7IHJldHVybiBtX2RvbURhdGFMaXN0OyB9CiAKKyAgICAgICAg
VjhIaWRkZW5Qcm9wZXJ0eU5hbWUqIGhpZGRlblByb3BlcnR5TmFtZSgpIHsgcmV0dXJuICZtX2hp
ZGRlblByb3BlcnR5TmFtZTsgfQorCiAgICAgICAgIHZvaWQgcmVnaXN0ZXJET01EYXRhU3RvcmUo
RE9NRGF0YVN0b3JlKiBkb21EYXRhU3RvcmUpIAogICAgICAgICB7CiAgICAgICAgICAgICBtX2Rv
bURhdGFMaXN0LmFwcGVuZChkb21EYXRhU3RvcmUpOwpAQCAtMTI3LDYgKzE0MywxMCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIERPTURhdGFTdG9yZSBpcyBvd25lZCBvdXRzaWRl
IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhLgogICAgICAgICB2b2lkIHNldERPTURhdGFTdG9yZShE
T01EYXRhU3RvcmUqIHN0b3JlKSB7IG1fZG9tRGF0YVN0b3JlID0gc3RvcmU7IH0KIAorI2lmbmRl
ZiBOREVCVUcKKyAgICAgICAgR2xvYmFsSGFuZGxlTWFwJiBnbG9iYWxIYW5kbGVNYXAoKSB7IHJl
dHVybiBtX2dsb2JhbEhhbmRsZU1hcDsgfQorI2VuZGlmCisKICAgICBwcml2YXRlOgogICAgICAg
ICBleHBsaWNpdCBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSh2ODo6SXNvbGF0ZSopOwogICAgICAg
ICB+VjhCaW5kaW5nUGVySXNvbGF0ZURhdGEoKTsKQEAgLTEzNSwxMiArMTU1LDc1IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgVGVtcGxhdGVNYXAgbV90ZW1wbGF0ZXM7CiAgICAgICAg
IHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+IG1fdG9TdHJpbmdOYW1lOwogICAgICAgICB2ODo6
UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gbV90b1N0cmluZ1RlbXBsYXRlOworICAg
ICAgICB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4gbV9sYXp5RXZlbnRMaXN0
ZW5lclRvU3RyaW5nVGVtcGxhdGU7CiAgICAgICAgIFN0cmluZ0NhY2hlIG1fc3RyaW5nQ2FjaGU7
CiAKICAgICAgICAgRE9NRGF0YUxpc3QgbV9kb21EYXRhTGlzdDsKICAgICAgICAgRE9NRGF0YVN0
b3JlKiBtX2RvbURhdGFTdG9yZTsKKworICAgICAgICBWOEhpZGRlblByb3BlcnR5TmFtZSBtX2hp
ZGRlblByb3BlcnR5TmFtZTsKKworICAgICAgICBib29sIG1fY3VycmVudEFsbG9jYXRpb25zQWxs
b3dlZDsKKyAgICAgICAgZnJpZW5kIGNsYXNzIEFsbG93QWxsb2NhdGlvbjsKKworI2lmbmRlZiBO
REVCVUcKKyAgICAgICAgR2xvYmFsSGFuZGxlTWFwIG1fZ2xvYmFsSGFuZGxlTWFwOworI2VuZGlm
CiAgICAgfTsKIAorICAgIGNsYXNzIEFsbG93QWxsb2NhdGlvbiB7CisgICAgcHVibGljOgorICAg
ICAgICBBbGxvd0FsbG9jYXRpb24oKQorICAgICAgICB7CisgICAgICAgICAgICBWOEJpbmRpbmdQ
ZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCk7
CisgICAgICAgICAgICBtX3ByZXZpb3VzID0gZGF0YS0+bV9jdXJyZW50QWxsb2NhdGlvbnNBbGxv
d2VkOworICAgICAgICAgICAgZGF0YS0+bV9jdXJyZW50QWxsb2NhdGlvbnNBbGxvd2VkID0gdHJ1
ZTsKKyAgICAgICAgfQorCisgICAgICAgIH5BbGxvd0FsbG9jYXRpb24oKQorICAgICAgICB7Cisg
ICAgICAgICAgICBWOEJpbmRpbmdQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4QmluZGluZ1Blcklz
b2xhdGVEYXRhOjpjdXJyZW50KCk7CisgICAgICAgICAgICBkYXRhLT5tX2N1cnJlbnRBbGxvY2F0
aW9uc0FsbG93ZWQgPSBtX3ByZXZpb3VzOworICAgICAgICB9CisKKyAgICAgICAgc3RhdGljIGJv
b2wgY3VycmVudCgpIHsgcmV0dXJuIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCkt
Pm1fY3VycmVudEFsbG9jYXRpb25zQWxsb3dlZDsgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAg
Ym9vbCBtX3ByZXZpb3VzOworICAgIH07CisKKyAgICBjbGFzcyBTYWZlQWxsb2NhdGlvbiB7Cisg
ICAgcHVibGljOgorICAgICAgICBzdGF0aWMgaW5saW5lIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBu
ZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4pOworICAgICAgICBzdGF0aWMgaW5s
aW5lIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBuZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpPYmpl
Y3RUZW1wbGF0ZT4pOworICAgICAgICBzdGF0aWMgaW5saW5lIHY4OjpMb2NhbDx2ODo6T2JqZWN0
PiBuZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4sIGludCBhcmdjLCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gYXJndltdKTsKKyAgICB9OworCisgICAgdjg6OkxvY2FsPHY4OjpPYmpl
Y3Q+IFNhZmVBbGxvY2F0aW9uOjpuZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4g
ZnVuY3Rpb24pCisgICAgeworICAgICAgICBpZiAoZnVuY3Rpb24uSXNFbXB0eSgpKQorICAgICAg
ICAgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6T2JqZWN0PigpOworICAgICAgICBBbGxvd0FsbG9j
YXRpb24gYWxsb3c7CisgICAgICAgIHJldHVybiBmdW5jdGlvbi0+TmV3SW5zdGFuY2UoKTsKKyAg
ICB9CisKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gU2FmZUFsbG9jYXRpb246Om5ld0luc3Rh
bmNlKHY4OjpIYW5kbGU8djg6Ok9iamVjdFRlbXBsYXRlPiBvYmplY3RUZW1wbGF0ZSkKKyAgICB7
CisgICAgICAgIGlmIChvYmplY3RUZW1wbGF0ZS5Jc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1
cm4gdjg6OkxvY2FsPHY4OjpPYmplY3Q+KCk7CisgICAgICAgIEFsbG93QWxsb2NhdGlvbiBhbGxv
dzsKKyAgICAgICAgcmV0dXJuIG9iamVjdFRlbXBsYXRlLT5OZXdJbnN0YW5jZSgpOworICAgIH0K
KworICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBTYWZlQWxsb2NhdGlvbjo6bmV3SW5zdGFuY2Uo
djg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+IGZ1bmN0aW9uLCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGFyZ3ZbXSkKKyAgICB7CisgICAgICAgIGlmIChmdW5jdGlvbi5Jc0VtcHR5KCkp
CisgICAgICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpPYmplY3Q+KCk7CisgICAgICAgIEFs
bG93QWxsb2NhdGlvbiBhbGxvdzsKKyAgICAgICAgcmV0dXJuIGZ1bmN0aW9uLT5OZXdJbnN0YW5j
ZShhcmdjLCBhcmd2KTsKKyAgICB9CisKKwogCiAgICAgZW51bSBFeHRlcm5hbE1vZGUgewogICAg
ICAgICBFeHRlcm5hbGl6ZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4R0NDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4R0NDb250
cm9sbGVyLmNwcAppbmRleCBiNzQzN2RiLi44NzE4MGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCkBAIC04MSwxOSArODEsMTggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogLy8gICAgVjhHQ0NvbnRyb2xsZXI6OnVucmVnaXN0ZXJHbG9iYWxIYW5k
bGUodHlwZSwgaG9zdCwgaGFuZGxlKTsKIC8vICNlbmRpZgogLy8KLXR5cGVkZWYgSGFzaE1hcDx2
ODo6VmFsdWUqLCBHbG9iYWxIYW5kbGVJbmZvKj4gR2xvYmFsSGFuZGxlTWFwOwogCi1zdGF0aWMg
R2xvYmFsSGFuZGxlTWFwJiBnbG9iYWxIYW5kbGVNYXAoKQorc3RhdGljIEdsb2JhbEhhbmRsZU1h
cCYgY3VycmVudEdsb2JhbEhhbmRsZU1hcCgpCiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChH
bG9iYWxIYW5kbGVNYXAsIHN0YXRpY0dsb2JhbEhhbmRsZU1hcCwgKCkpOwotICAgIHJldHVybiBz
dGF0aWNHbG9iYWxIYW5kbGVNYXA7CisgICAgcmV0dXJuIFY4QmluZGluZ1Blcklzb2xhdGVEYXRh
OjpjdXJyZW50KCktPmdsb2JhbEhhbmRsZU1hcCgpOwogfQogCiAvLyBUaGUgZnVuY3Rpb24gaXMg
dGhlIHBsYWNlIHRvIHNldCB0aGUgYnJlYWsgcG9pbnQgdG8gaW5zcGVjdAogLy8gbGl2ZSBnbG9i
YWwgaGFuZGxlcy4gTGVha3MgYXJlIG9mdGVuIGNvbWUgZnJvbSBsZWFrZWQgZ2xvYmFsIGhhbmRs
ZXMuCiBzdGF0aWMgdm9pZCBlbnVtZXJhdGVHbG9iYWxIYW5kbGVzKCkKIHsKLSAgICBmb3IgKEds
b2JhbEhhbmRsZU1hcDo6aXRlcmF0b3IgaXQgPSBnbG9iYWxIYW5kbGVNYXAoKS5iZWdpbigpLCBl
bmQgPSBnbG9iYWxIYW5kbGVNYXAoKS5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgR2xv
YmFsSGFuZGxlTWFwJiBnbG9iYWxIYW5kbGVNYXAgPSBjdXJyZW50R2xvYmFsSGFuZGxlTWFwKCk7
CisgICAgZm9yIChHbG9iYWxIYW5kbGVNYXA6Oml0ZXJhdG9yIGl0ID0gZ2xvYmFsSGFuZGxlTWFw
LmJlZ2luKCksIGVuZCA9IGdsb2JhbEhhbmRsZU1hcC5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7
CiAgICAgICAgIEdsb2JhbEhhbmRsZUluZm8qIGluZm8gPSBpdC0+c2Vjb25kOwogICAgICAgICBV
TlVTRURfUEFSQU0oaW5mbyk7CiAgICAgICAgIHY4OjpWYWx1ZSogaGFuZGxlID0gaXQtPmZpcnN0
OwpAQCAtMTAzLDE0ICsxMDIsMTYgQEAgc3RhdGljIHZvaWQgZW51bWVyYXRlR2xvYmFsSGFuZGxl
cygpCiAKIHZvaWQgVjhHQ0NvbnRyb2xsZXI6OnJlZ2lzdGVyR2xvYmFsSGFuZGxlKEdsb2JhbEhh
bmRsZVR5cGUgdHlwZSwgdm9pZCogaG9zdCwgdjg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPiBoYW5k
bGUpCiB7Ci0gICAgQVNTRVJUKCFnbG9iYWxIYW5kbGVNYXAoKS5jb250YWlucygqaGFuZGxlKSk7
Ci0gICAgZ2xvYmFsSGFuZGxlTWFwKCkuc2V0KCpoYW5kbGUsIG5ldyBHbG9iYWxIYW5kbGVJbmZv
KGhvc3QsIHR5cGUpKTsKKyAgICBHbG9iYWxIYW5kbGVNYXAmIGdsb2JhbEhhbmRsZU1hcCA9IGN1
cnJlbnRHbG9iYWxIYW5kbGVNYXAoKTsKKyAgICBBU1NFUlQoIWdsb2JhbEhhbmRsZU1hcC5jb250
YWlucygqaGFuZGxlKSk7CisgICAgZ2xvYmFsSGFuZGxlTWFwLnNldCgqaGFuZGxlLCBuZXcgR2xv
YmFsSGFuZGxlSW5mbyhob3N0LCB0eXBlKSk7CiB9CiAKIHZvaWQgVjhHQ0NvbnRyb2xsZXI6OnVu
cmVnaXN0ZXJHbG9iYWxIYW5kbGUodm9pZCogaG9zdCwgdjg6OlBlcnNpc3RlbnQ8djg6OlZhbHVl
PiBoYW5kbGUpCiB7Ci0gICAgQVNTRVJUKGdsb2JhbEhhbmRsZU1hcCgpLmNvbnRhaW5zKCpoYW5k
bGUpKTsKLSAgICBHbG9iYWxIYW5kbGVJbmZvKiBpbmZvID0gZ2xvYmFsSGFuZGxlTWFwKCkudGFr
ZSgqaGFuZGxlKTsKKyAgICBHbG9iYWxIYW5kbGVNYXAmIGdsb2JhbEhhbmRsZU1hcCA9IGN1cnJl
bnRHbG9iYWxIYW5kbGVNYXAoKTsKKyAgICBBU1NFUlQoZ2xvYmFsSGFuZGxlTWFwLmNvbnRhaW5z
KCpoYW5kbGUpKTsKKyAgICBHbG9iYWxIYW5kbGVJbmZvKiBpbmZvID0gZ2xvYmFsSGFuZGxlTWFw
LnRha2UoKmhhbmRsZSk7CiAgICAgQVNTRVJUKGluZm8tPm1faG9zdCA9PSBob3N0KTsKICAgICBk
ZWxldGUgaW5mbzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
SGlkZGVuUHJvcGVydHlOYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SGlk
ZGVuUHJvcGVydHlOYW1lLmNwcAppbmRleCAwZjVhNjc0Li45M2FjNzUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEhpZGRlblByb3BlcnR5TmFtZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Qcm9wZXJ0eU5hbWUuY3BwCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVjhIaWRkZW5Qcm9w
ZXJ0eU5hbWUuaCIKIAorI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgPHN0cmluZy5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNDIsOCArNDMsMTEgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogI2RlZmluZSBWOF9ERUZJTkVfUFJPUEVSVFkobmFtZSkgXAogdjg6OkhhbmRs
ZTx2ODo6U3RyaW5nPiBWOEhpZGRlblByb3BlcnR5TmFtZTo6bmFtZSgpIFwKIHsgXAotICAgIHN0
YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiogc3RyaW5nID0gY3JlYXRlU3RyaW5nKCJX
ZWJDb3JlOjpIaWRkZW5Qcm9wZXJ0eTo6IiBWOF9BU19TVFJJTkcobmFtZSkpOyBcCi0gICAgcmV0
dXJuICpzdHJpbmc7IFwKKyAgICBWOEhpZGRlblByb3BlcnR5TmFtZSogaGlkZGVuUHJvcGVydHlO
YW1lID0gVjhCaW5kaW5nUGVySXNvbGF0ZURhdGE6OmN1cnJlbnQoKS0+aGlkZGVuUHJvcGVydHlO
YW1lKCk7IFwKKyAgICBpZiAoaGlkZGVuUHJvcGVydHlOYW1lLT5tXyMjbmFtZS5Jc0VtcHR5KCkp
IHsgXAorICAgICAgICBoaWRkZW5Qcm9wZXJ0eU5hbWUtPm1fIyNuYW1lID0gY3JlYXRlU3RyaW5n
KCJXZWJDb3JlOjpIaWRkZW5Qcm9wZXJ0eTo6IiBWOF9BU19TVFJJTkcobmFtZSkpOyBcCisgICAg
fSBcCisgICAgcmV0dXJuIGhpZGRlblByb3BlcnR5TmFtZS0+bV8jI25hbWU7IFwKIH0KIAogVjhf
SElEREVOX1BST1BFUlRJRVMoVjhfREVGSU5FX1BST1BFUlRZKTsKQEAgLTU5LDEwICs2MywxMCBA
QCB2ODo6SGFuZGxlPHY4OjpTdHJpbmc+IFY4SGlkZGVuUHJvcGVydHlOYW1lOjpoaWRkZW5SZWZl
cmVuY2VOYW1lKGNvbnN0IGNoYXIqIG5hbQogICAgIHJldHVybiB2ODo6U3RyaW5nOjpOZXdTeW1i
b2wocHJlZml4ZWROYW1lLmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50PihwcmVmaXhlZE5hbWUuc2l6
ZSgpKSk7CiB9CiAKLXY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+KiBWOEhpZGRlblByb3BlcnR5
TmFtZTo6Y3JlYXRlU3RyaW5nKGNvbnN0IGNoYXIqIGtleSkKK3Y4OjpQZXJzaXN0ZW50PHY4OjpT
dHJpbmc+IFY4SGlkZGVuUHJvcGVydHlOYW1lOjpjcmVhdGVTdHJpbmcoY29uc3QgY2hhcioga2V5
KQogewogICAgIHY4OjpIYW5kbGVTY29wZSBzY29wZTsKLSAgICByZXR1cm4gbmV3IHY4OjpQZXJz
aXN0ZW50PHY4OjpTdHJpbmc+KHY4OjpQZXJzaXN0ZW50PHY4OjpTdHJpbmc+OjpOZXcodjg6OlN0
cmluZzo6TmV3U3ltYm9sKGtleSkpKTsKKyAgICByZXR1cm4gdjg6OlBlcnNpc3RlbnQ8djg6OlN0
cmluZz46Ok5ldyh2ODo6U3RyaW5nOjpOZXdTeW1ib2woa2V5KSk7CiB9CiAKIH0gIC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEhp
ZGRlblByb3BlcnR5TmFtZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhIaWRkZW5Q
cm9wZXJ0eU5hbWUuaAppbmRleCA3YzRhYWUwLi5kZWJhNGE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOEhpZGRlblByb3BlcnR5TmFtZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SGlkZGVuUHJvcGVydHlOYW1lLmgKQEAgLTQ4LDYgKzQ4LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgVjhIaWRkZW5Qcm9wZXJ0eU5hbWUg
ewogICAgIHB1YmxpYzoKKyAgICAgICAgVjhIaWRkZW5Qcm9wZXJ0eU5hbWUoKSB7IH0KICNkZWZp
bmUgVjhfREVDTEFSRV9QUk9QRVJUWShuYW1lKSBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6U3RyaW5n
PiBuYW1lKCk7CiAgICAgICAgIFY4X0hJRERFTl9QUk9QRVJUSUVTKFY4X0RFQ0xBUkVfUFJPUEVS
VFkpOwogI3VuZGVmIFY4X0RFQ0xBUkVfUFJPUEVSVFkKQEAgLTU1LDcgKzU2LDEwIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlN0cmluZz4gaGlk
ZGVuUmVmZXJlbmNlTmFtZShjb25zdCBjaGFyKiBuYW1lKTsKIAogICAgIHByaXZhdGU6Ci0gICAg
ICAgIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiogY3JlYXRlU3RyaW5nKGNvbnN0
IGNoYXIqIGtleSk7CisgICAgICAgIHN0YXRpYyB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiBj
cmVhdGVTdHJpbmcoY29uc3QgY2hhcioga2V5KTsKKyNkZWZpbmUgVjhfREVDTEFSRV9GSUVMRChu
YW1lKSB2ODo6UGVyc2lzdGVudDx2ODo6U3RyaW5nPiBtXyMjbmFtZTsKKyAgICAgICAgVjhfSElE
REVOX1BST1BFUlRJRVMoVjhfREVDTEFSRV9GSUVMRCk7CisjdW5kZWYgVjhfREVDTEFSRV9GSUVM
RAogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
TGF6eUV2ZW50TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhMYXp5
RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggZTZhMWU4OC4uMTcyMThjMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5lci5jcHAKQEAgLTEzNyw3
ICsxMzcsOCBAQCB2b2lkIFY4TGF6eUV2ZW50TGlzdGVuZXI6OnByZXBhcmVMaXN0ZW5lck9iamVj
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogICAgICAgICAgICAgLy8gc291cmNl
IHJldHVybmVkIChzb21ldGltZXMgYSBSZWdFeHAgaXMgYXBwbGllZCBhcyB3ZWxsKSBmb3Igc29t
ZQogICAgICAgICAgICAgLy8gb3RoZXIgdXNlLiBUaGF0IGZhaWxzIG1pc2VyYWJseSBpZiB0aGUg
YWN0dWFsIHdyYXBwZXIgc291cmNlIGlzCiAgICAgICAgICAgICAvLyByZXR1cm5lZC4KLSAgICAg
ICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwodjg6OlBlcnNpc3RlbnQ8djg6OkZ1bmN0aW9uVGVt
cGxhdGU+LCB0b1N0cmluZ1RlbXBsYXRlLCAoKSk7CisgICAgICAgICAgICB2ODo6UGVyc2lzdGVu
dDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT4mIHRvU3RyaW5nVGVtcGxhdGUgPQorICAgICAgICAgICAg
ICAgIFY4QmluZGluZ1Blcklzb2xhdGVEYXRhOjpjdXJyZW50KCktPmxhenlFdmVudExpc3RlbmVy
VG9TdHJpbmdUZW1wbGF0ZSgpOwogICAgICAgICAgICAgaWYgKHRvU3RyaW5nVGVtcGxhdGUuSXNF
bXB0eSgpKQogICAgICAgICAgICAgICAgIHRvU3RyaW5nVGVtcGxhdGUgPSB2ODo6UGVyc2lzdGVu
dDx2ODo6RnVuY3Rpb25UZW1wbGF0ZT46Ok5ldyh2ODo6RnVuY3Rpb25UZW1wbGF0ZTo6TmV3KFY4
TGF6eUV2ZW50TGlzdGVuZXJUb1N0cmluZykpOwogICAgICAgICAgICAgdjg6OkxvY2FsPHY4OjpG
dW5jdGlvbj4gdG9TdHJpbmdGdW5jdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4TlBPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhO
UE9iamVjdC5jcHAKaW5kZXggMzY2NDBiNy4uNjkxNTA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhOUE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhOUE9iamVjdC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKIAogI2luY2x1ZGUgIkhU
TUxQbHVnSW5FbGVtZW50LmgiCiAjaW5jbHVkZSAiTlBWOE9iamVjdC5oIgorI2luY2x1ZGUgIlY4
QmluZGluZy5oIgogI2luY2x1ZGUgIlY4RE9NTWFwLmgiCiAjaW5jbHVkZSAiVjhIVE1MQXBwbGV0
RWxlbWVudC5oIgogI2luY2x1ZGUgIlY4SFRNTEVtYmVkRWxlbWVudC5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOFByb3h5LmNwcAppbmRleCBhNDc4ODVlLi5kMjJiNTkzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcApAQCAtMTMyLDggKzEzMiw2IEBAIHR5cGVkZWYg
SGFzaE1hcDxOb2RlKiwgdjg6Ok9iamVjdCo+IERPTU5vZGVNYXA7CiB0eXBlZGVmIEhhc2hNYXA8
dm9pZCosIHY4OjpPYmplY3QqPiBET01PYmplY3RNYXA7CiB0eXBlZGVmIEhhc2hNYXA8aW50LCB2
ODo6RnVuY3Rpb25UZW1wbGF0ZSo+IEZ1bmN0aW9uVGVtcGxhdGVNYXA7CiAKLWJvb2wgQWxsb3dB
bGxvY2F0aW9uOjptX2N1cnJlbnQgPSBmYWxzZTsKLQogc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRv
Q29uc29sZShQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c291cmNlSUQsIHVuc2lnbmVkIGxpbmVOdW1iZXIpCiB7CiAgICAgQVNTRVJUKHBhZ2UpOwpAQCAt
NzgzLDcgKzc4MSw3IEBAIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gVjhQcm94eTo6Y3VycmVudENv
bnRleHQoKQogCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhQcm94eTo6Y2hlY2tOZXdMZWdhbChj
b25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewotICAgIGlmICghQWxsb3dBbGxvY2F0aW9uOjpt
X2N1cnJlbnQpCisgICAgaWYgKCFBbGxvd0FsbG9jYXRpb246OmN1cnJlbnQoKSkKICAgICAgICAg
cmV0dXJuIHRocm93RXJyb3IoVHlwZUVycm9yLCAiSWxsZWdhbCBjb25zdHJ1Y3RvciIpOwogCiAg
ICAgcmV0dXJuIGFyZ3MuVGhpcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhVdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4VXRpbGl0
aWVzLmgKaW5kZXggYzIxNzk2NC4uYmVhN2QwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhVdGlsaXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOFV0aWxpdGllcy5oCkBAIC05NSw1NiArOTUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHJldHVybiBWOENhbGxiYWNrVHlwZTo6Y3JlYXRlKHZhbHVlLCBnZXRTY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpOwogICAgIH0KIAotICAgIGNsYXNzIEFsbG93QWxsb2NhdGlvbiB7Ci0g
ICAgcHVibGljOgotICAgICAgICBpbmxpbmUgQWxsb3dBbGxvY2F0aW9uKCkKLSAgICAgICAgewot
ICAgICAgICAgICAgbV9wcmV2aW91cyA9IG1fY3VycmVudDsKLSAgICAgICAgICAgIG1fY3VycmVu
dCA9IHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpbmxpbmUgfkFsbG93QWxsb2NhdGlvbigp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIG1fY3VycmVudCA9IG1fcHJldmlvdXM7Ci0gICAgICAg
IH0KLQotICAgICAgICBzdGF0aWMgYm9vbCBtX2N1cnJlbnQ7Ci0KLSAgICBwcml2YXRlOgotICAg
ICAgICBib29sIG1fcHJldmlvdXM7Ci0gICAgfTsKLQotICAgIGNsYXNzIFNhZmVBbGxvY2F0aW9u
IHsKLSAgICAgcHVibGljOgotICAgICAgc3RhdGljIGlubGluZSB2ODo6TG9jYWw8djg6Ok9iamVj
dD4gbmV3SW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+KTsKLSAgICAgIHN0YXRpYyBp
bmxpbmUgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IG5ld0luc3RhbmNlKHY4OjpIYW5kbGU8djg6Ok9i
amVjdFRlbXBsYXRlPik7Ci0gICAgICBzdGF0aWMgaW5saW5lIHY4OjpMb2NhbDx2ODo6T2JqZWN0
PiBuZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4sIGludCBhcmdjLCB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gYXJndltdKTsKLSAgICB9OwotCi0gICAgdjg6OkxvY2FsPHY4OjpPYmpl
Y3Q+IFNhZmVBbGxvY2F0aW9uOjpuZXdJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4g
ZnVuY3Rpb24pCi0gICAgewotICAgICAgICBpZiAoZnVuY3Rpb24uSXNFbXB0eSgpKQotICAgICAg
ICAgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6T2JqZWN0PigpOwotICAgICAgICBBbGxvd0FsbG9j
YXRpb24gYWxsb3c7Ci0gICAgICAgIHJldHVybiBmdW5jdGlvbi0+TmV3SW5zdGFuY2UoKTsKLSAg
ICB9Ci0KLSAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gU2FmZUFsbG9jYXRpb246Om5ld0luc3Rh
bmNlKHY4OjpIYW5kbGU8djg6Ok9iamVjdFRlbXBsYXRlPiBvYmplY3RUZW1wbGF0ZSkKLSAgICB7
Ci0gICAgICAgIGlmIChvYmplY3RUZW1wbGF0ZS5Jc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1
cm4gdjg6OkxvY2FsPHY4OjpPYmplY3Q+KCk7Ci0gICAgICAgIEFsbG93QWxsb2NhdGlvbiBhbGxv
dzsKLSAgICAgICAgcmV0dXJuIG9iamVjdFRlbXBsYXRlLT5OZXdJbnN0YW5jZSgpOwotICAgIH0K
LQotICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBTYWZlQWxsb2NhdGlvbjo6bmV3SW5zdGFuY2Uo
djg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+IGZ1bmN0aW9uLCBpbnQgYXJnYywgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGFyZ3ZbXSkKLSAgICB7Ci0gICAgICAgIGlmIChmdW5jdGlvbi5Jc0VtcHR5KCkp
Ci0gICAgICAgICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpPYmplY3Q+KCk7Ci0gICAgICAgIEFs
bG93QWxsb2NhdGlvbiBhbGxvdzsKLSAgICAgICAgcmV0dXJuIGZ1bmN0aW9uLT5OZXdJbnN0YW5j
ZShhcmdjLCBhcmd2KTsKLSAgICB9Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIFY4VXRpbGl0aWVzX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCmluZGV4IDdkY2ZkODQuLmE5ZDY1
OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRF
eGVjdXRpb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2Vy
Q29udGV4dEV4ZWN1dGlvblByb3h5LmNwcApAQCAtODMsNyArODMsNyBAQCBXb3JrZXJDb250ZXh0
RXhlY3V0aW9uUHJveHk6OldvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eShXb3JrZXJDb250ZXh0
KiB3b3JrZXJDbwogICAgIDogbV93b3JrZXJDb250ZXh0KHdvcmtlckNvbnRleHQpCiAgICAgLCBt
X3JlY3Vyc2lvbigwKQogewotICAgIGluaXRWOCgpOworICAgIGluaXRJc29sYXRlKCk7CiB9CiAK
IFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6fldvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94
eSgpCkBAIC0xMDgsMTIgKzEwOCwxNSBAQCB2b2lkIFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94
eTo6ZGlzcG9zZSgpCiAgICAgfQogfQogCi12b2lkIFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94
eTo6aW5pdFY4KCkKK3ZvaWQgV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5Ojppbml0SXNvbGF0
ZSgpCiB7CiAgICAgLy8gVGVsbCBWOCBub3QgdG8gY2FsbCB0aGUgZGVmYXVsdCBPT00gaGFuZGxl
ciwgYmluZGluZyBjb2RlIHdpbGwgaGFuZGxlIGl0LgogICAgIHY4OjpWODo6SWdub3JlT3V0T2ZN
ZW1vcnlFeGNlcHRpb24oKTsKICAgICB2ODo6Vjg6OlNldEZhdGFsRXJyb3JIYW5kbGVyKHJlcG9y
dEZhdGFsRXJyb3JJblY4KTsKIAorICAgIHY4OjpWODo6U2V0R2xvYmFsR0NQcm9sb2d1ZUNhbGxi
YWNrKCZWOEdDQ29udHJvbGxlcjo6Z2NQcm9sb2d1ZSk7CisgICAgdjg6OlY4OjpTZXRHbG9iYWxH
Q0VwaWxvZ3VlQ2FsbGJhY2soJlY4R0NDb250cm9sbGVyOjpnY0VwaWxvZ3VlKTsKKwogICAgIHY4
OjpSZXNvdXJjZUNvbnN0cmFpbnRzIHJlc291cmNlX2NvbnN0cmFpbnRzOwogICAgIHVpbnQzMl90
IGhlcmU7CiAgICAgcmVzb3VyY2VfY29uc3RyYWludHMuc2V0X3N0YWNrX2xpbWl0KCZoZXJlIC0g
a1dvcmtlck1heFN0YWNrU2l6ZSAvIHNpemVvZih1aW50MzJfdCopKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmgK
aW5kZXggZGUzMjc5My4uMDUyZmIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmgKQEAgLTczLDcgKzczLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IGNv
bnRleHQoKSB7IHJldHVybiB2ODo6TG9jYWw8djg6OkNvbnRleHQ+OjpOZXcobV9jb250ZXh0KTsg
fQogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgdm9pZCBpbml0VjgoKTsKKyAgICAgICAgdm9pZCBp
bml0SXNvbGF0ZSgpOwogICAgICAgICBib29sIGluaXRDb250ZXh0SWZOZWVkZWQoKTsKICAgICAg
ICAgdm9pZCBkaXNwb3NlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggZDljYWJjMi4uNTg3NTgyZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJv
bGxlci5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgU2NyaXB0VmFsdWUgV29ya2VyU2NyaXB0Q29udHJv
bGxlcjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSwKIAogdm9p
ZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpzY2hlZHVsZUV4ZWN1dGlvblRlcm1pbmF0aW9uKCkK
IHsKLSAgICB2ODo6Vjg6OlRlcm1pbmF0ZUV4ZWN1dGlvbigpOworICAgIHY4OjpWODo6VGVybWlu
YXRlRXhlY3V0aW9uKG1faXNvbGF0ZSk7CiB9CiAKIHZvaWQgV29ya2VyU2NyaXB0Q29udHJvbGxl
cjo6Zm9yYmlkRXhlY3V0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggY2E4Zjc1
Mi4uMzBhZTI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxMS0wOC0wOSAgRG1pdHJ5IExvbW92ICA8ZHNsb21vdkBnb29nbGUuY29tPgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTc3OAorICAgICAgICBb
V2ViV29ya2Vyc11bY2hyb21pdW1dIE1ha2Ugc3RhdGljcyB0aHJlYWQtc2FmZSBhbmQgbWFrZSBz
dXJlIFY4IEFQSSBhY2Nlc3NlcyBjb3JyZWN0IGlzb2xhdGVzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvQm91bmRPYmplY3QuY3BwOgorCiAy
MDExLTA4LTA5ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFtjaHJvbWl1bV0gcmVtb3ZlIHRlbXBvcmFyeSAjZGVmaW5lIGZyb20gV2ViVVJMUmVxdWVz
dC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Cb3VuZE9iamVjdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Cb3VuZE9iamVjdC5jcHAKaW5kZXggOTAw
OTZjMi4uZDBmNjZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQm91
bmRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0JvdW5kT2JqZWN0
LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkJv
dW5kT2JqZWN0LmgiCiAKKyNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJWOFByb3h5
LmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>