<?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>112310</bug_id>
          
          <creation_ts>2013-03-13 19:10:49 -0700</creation_ts>
          <short_desc>Add a mode to ResourceLoader that takes SharedBuffers instead of raw pointers and lengths</short_desc>
          <delta_ts>2013-03-15 13:55:51 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>abarth</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>japhet</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>854860</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-03-13 19:10:49 -0700</bug_when>
    <thetext>Add a mode to ResourceLoader that takes SharedBuffers instead of raw pointers and lengths.

For platforms whose ResourceHandle::didReceiveData implementation gets some sort of buffer object (Mac, CF, qt, soup) this is an optimization that can be used today to avoid at least one data copy in many cases.

For other platforms whose ResourceHandle::didReceiveData implementations get raw pointers and lengths themselves, it is possible that they have options to rewrite their platform layers to use some sort of shared buffer object or introduce special modes to SharedBuffer that could help encapsulate the same thing.

Some day we might be able to get away from the current didReceiveData(char*, int) model entirely and work solely with SharedBuffers...  but we can&apos;t do that today without introducing a &quot;copy into a SharedBuffer&quot; step to those other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854861</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-03-13 19:11:16 -0700</bug_when>
    <thetext>In radar as &lt;rdar://problem/13416953&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854990</commentid>
    <comment_count>2</comment_count>
      <attachid>193073</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-03-13 23:32:16 -0700</bug_when>
    <thetext>Created attachment 193073
Patch v1

Patch to get the EWS ball rolling while I finish up layout tests locally (so far so good)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855005</commentid>
    <comment_count>3</comment_count>
      <attachid>193073</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2013-03-13 23:54:38 -0700</bug_when>
    <thetext>Comment on attachment 193073
Patch v1

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

&gt; Source/WebCore/ChangeLog:18
&gt; +        that can be a much bigger win then simply avoiding a copy.

than, not then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855012</commentid>
    <comment_count>4</comment_count>
      <attachid>193073</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-14 00:08:14 -0700</bug_when>
    <thetext>Comment on attachment 193073
Patch v1

Attachment 193073 did not pass win-ews (win):
Output: http://webkit-commit-queue.appspot.com/results/17180106</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855016</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-03-14 00:20:16 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 193073 [details])
&gt; Attachment 193073 [details] did not pass win-ews (win):
&gt; Output: http://webkit-commit-queue.appspot.com/results/17180106

The failure is bizarre, as it implies willStopBufferingData is not in the ResourceHandleClient base class, which it is...  but oh well.  WIll fix before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855251</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-03-14 09:31:20 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/145820</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193073</attachid>
            <date>2013-03-13 23:32:16 -0700</date>
            <delta_ts>2013-03-14 00:08:14 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>24596</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjYWRmZDBmLi5mOWJkMDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNjcg
QEAKIDIwMTMtMDMtMTMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAg
ICAgIEFkZCBhIG1vZGUgdG8gUmVzb3VyY2VMb2FkZXIgdGhhdCB0YWtlcyBTaGFyZWRCdWZmZXJz
IGluc3RlYWQgb2YgcmF3IHBvaW50ZXJzIGFuZCBsZW5ndGhzLgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTM0MTY5NTM+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTEyMzEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIChObyBpbmRlcGVuZGVudGx5IHRlc3RhYmxlIGNoYW5nZSBpbiBiZWhh
dmlvcikuCisKKyAgICAgICAgTWFueSBvZiB0aGUgdGVzdGVkIHBsYXRmb3JtcyBkZWxpdmVyIGRh
dGEgYnVmZmVycyB0byB0aGVpciBSZXNvdXJjZUhhbmRsZXMgZnJvbSBvYmplY3RzCisgICAgICAg
IHRoYXQgZW5jYXBzdWxhdGUgYSBkYXRhIGJ1ZmZlciBzdWNoIGFzIE5TRGF0YSAoTWFjKSwgQ0ZE
YXRhUmVmIChDRiksIG9yIFFCeXRlQXJyYXkgKHF0KS4KKworICAgICAgICBJZiB0aG9zZSBwbGF0
Zm9ybXMgYWxzbyBhdWdtZW50ZWQgU2hhcmVkQnVmZmVyIHRvIHdyYXAgdGhlaXIgbmF0aXZlIG9i
amVjdCAod2hpY2ggTWFjL0NGIGRvKQorICAgICAgICBhbmQgdGhlcmUgZXhpc3RlZCBSZXNvdXJj
ZUxvYWRlciBjYWxsYmFja3MgdG8gdGFrZSB0aGF0IFNoYXJlZEJ1ZmZlciBpbnN0ZWFkIG9mIHZv
aWQqICsgbGVuZ3RoLAorICAgICAgICB0aGVuIG1hbnkgcmVzb3VyY2UgbG9hZHMgY291bGQgYXZv
aWQgYSB1c2VsZXNzIGNvcHkuCisKKyAgICAgICAgQXQgbGVhc3Qgb24gTWFjLCB0aGVyZSBhcmUg
c29tZSBleHRyZW1lbHkgaW1wb3J0YW50IGJlaGluZC10aGUtc2NlbmVzIG9wdGltaXphdGlvbnMg
Zm9yIE5TL0NGRGF0YQorICAgICAgICB0aGF0IGNhbiBiZSBhIG11Y2ggYmlnZ2VyIHdpbiB0aGVu
IHNpbXBseSBhdm9pZGluZyBhIGNvcHkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIHRoYXQg
U2hhcmVkQnVmZmVyLWJhc2VkIGNhbGxiYWNrIHdpdGggdGhlIGhvcGUgdGhhdCBhbGwgcGxhdGZv
cm1zIGNvdWxkIGZpbmQgYSAKKyAgICAgICAgd2F5IHRvIHVzZSBhIGJ1ZmZlci1lbmNhcHN1bGF0
aW5nIG9iamVjdCBnb2luZyBmb3J3YXJkLCBhbmQgd2UgY291bGQgdGhlcmVmb3JlIGRlcHJlY2F0
ZSB0aGUKKyAgICAgICAgdm9pZCogKyBsZW5ndGggdmVyc2lvbiBvZiBkaWRSZWNlaXZlRGF0YS4K
KworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ2xpZW50OjpkaWRSZWNlaXZlQnVmZmVyKTog
QWRkIGEgZGlkUmVjZWl2ZUJ1ZmZlciBjYWxsYmFjayB0aGF0IHRha2VzIAorICAgICAgICAgIGEg
U2hhcmVkQnVmZmVyIG9iamVjdC4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcGFzc2VzIHJh
dyBieXRlcyArIGxlbmd0aCB0byBkaWRSZWNlaXZlRGF0YS4KKworICAgICAgICAqIGxvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6YWRk
RGF0YU9yQnVmZmVyKTogUmVwbGFjaW5nIGFkZERhdGEoKSwgb3B0aW9uYWxseSBhZGRpbmcgdGhl
IGRhdGEgZnJvbQorICAgICAgICAgIGVpdGhlciBhIGRhdGErbGVuZ3RoIG9yIFNoYXJlZEJ1ZmZl
cgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKTogUGlw
ZSB0byBkaWRSZWNlaXZlRGF0YU9yQnVmZmVyLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXI6OmRpZFJlY2VpdmVCdWZmZXIpOiBQaXBlIHRvIGRpZFJlY2VpdmVEYXRhT3JCdWZmZXIu
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGFPckJ1ZmZl
cik6IFNpbmdsZSBjaG9rZXBvaW50IGZvciByZWNlaXZpbmcgZGF0YS4KKyAgICAgICAgKiBsb2Fk
ZXIvUmVzb3VyY2VMb2FkZXIuaDogQWRkIE9WRVJSSURFIHRvIGFsbCBvZiB0aGUgUmVzb3VyY2VI
YW5kbGVDbGllbnQgbWV0aG9kcyB0byBoZWxwCisgICAgICAgICAgY2F0Y2ggZnV0dXJlIG1pc3Rh
a2VzLiBSZW1vdmUgInZpcnR1YWwiIGZyb20gbWV0aG9kcyB0aGF0IGRpZG4ndCBuZWVkIGl0LiBN
YWtlICJhZGREYXRhIiBpbnRvCisgICAgICAgICAgImFkZERhdGFPckJ1ZmZlciIgYW5kIG1ha2Ug
aXQgcHJpdmF0ZS4KKworICAgICAgICAqIGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6ZGlk
UmVjZWl2ZURhdGEpOiBQaXBlIHRvIGRpZFJlY2VpdmVEYXRhT3JCdWZmZXIuCisgICAgICAgIChX
ZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6ZGlkUmVjZWl2ZUJ1ZmZlcik6IFBp
cGUgdG8gZGlkUmVjZWl2ZURhdGFPckJ1ZmZlci4KKyAgICAgICAgKFdlYkNvcmU6Ok5ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyOjpkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKTogU2luZ2xlIGNob2tl
cG9pbnQgZm9yIHJlY2VpdmluZyBkYXRhLgorICAgICAgICAqIGxvYWRlci9OZXRzY2FwZVBsdWdJ
blN0cmVhbUxvYWRlci5oOgorCisgICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YSk6
IFBpcGUgdG8gZGlkUmVjZWl2ZURhdGFPckJ1ZmZlci4KKyAgICAgICAgKFdlYkNvcmU6OlN1YnJl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKTogUGlwZSB0byBkaWRSZWNlaXZlRGF0YU9y
QnVmZmVyLgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVE
YXRhT3JCdWZmZXIpOiBTaW5nbGUgY2hva2Vwb2ludCBmb3IgcmVjZWl2aW5nIGRhdGEuIEFsc28s
CisgICAgICAgICAgcmVseSBvbiBSZXNvdXJjZUxvYWRlcidzIGJhc2UgaW1wbGVtZW50YXRpb24g
Zm9yIG5vdGlmeWluZyB0aGUgUmVzb3VyY2VMb2FkTm90aWZpZXIuCisgICAgICAgICogbG9hZGVy
L1N1YnJlc291cmNlTG9hZGVyLmg6CisKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VCdWZmZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VCdWZmZXI6OmFwcGVuZCk6IEFkZCBhIG1v
ZGUgdGhhdCBhcHBlbmRzIGEgU2hhcmVkQnVmZmVyLgorICAgICAgICAqIGxvYWRlci9SZXNvdXJj
ZUJ1ZmZlci5oOgorCisgICAgICAgICogcGxhdGZvcm0vY2YvU2hhcmVkQnVmZmVyQ0YuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjptYXliZVRyYW5zZmVyUGxhdGZvcm1EYXRh
KTogRml4IGEgYnVnIHdoZXJlIGFwcGVuZGluZyBkYXRhIHRvIGEgQ0ZEYXRhLWJhY2tlZAorICAg
ICAgICAgIFNoYXJlZEJ1ZmZlciB3b3VsZCByZS1lbnRlciBtYXliZVRyYW5zZmVyUGxhdGZvcm1E
YXRhIGFuZCBibG93IG91dCB0aGUgc3RhY2suCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFu
ZGxlQXNEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVEYXRhOmxlbmd0aFJlY2VpdmVkOl0p
OiBTZW5kIGEgd3JhcHBlZCBOU0RhdGEKKyAgICAgICAgICB0byBkaWRSZWNlaXZlQnVmZmVyKCkg
aW5zdGVhZCBvZiBzZW5kaW5nIGl0cyBjaGFyKiBhbmQgbGVuZ3RoIHRvIGRpZFJlY2VpdmVEYXRh
KCkKKworMjAxMy0wMy0xMyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKICAg
ICAgICAgQWNjb3VudCBmb3IgcmV2aWV3IGZlZWRiYWNrIGluIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMTIyNzkKICAgICAgICAgdGhhdCBJJ2QgbWlzdGFrZW5seSBs
ZWZ0IG91dCBvZiBteSBjb21taXQuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwCmluZGV4IDk2NDNjZDguLjdkZGMxYTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9h
ZGVyLmNwcApAQCAtOTUsMTEgKzk1LDIxIEBAIHZvaWQgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2Fk
ZXI6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwCiAKIHZv
aWQgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIq
IGRhdGEsIGludCBsZW5ndGgsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxv
YWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkKIHsKLSAgICBSZWZQdHI8TmV0c2NhcGVQbHVnSW5TdHJl
YW1Mb2FkZXI+IHByb3RlY3QodGhpcyk7CisgICAgZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihkYXRh
LCBsZW5ndGgsIDAsIGVuY29kZWREYXRhTGVuZ3RoLCBkYXRhUGF5bG9hZFR5cGUpOworfQorCit2
b2lkIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKFBhc3NSZWZQ
dHI8U2hhcmVkQnVmZmVyPiBidWZmZXIsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0
YVBheWxvYWRUeXBlIGRhdGFQYXlsb2FkVHlwZSkKK3sKKyAgICBkaWRSZWNlaXZlRGF0YU9yQnVm
ZmVyKDAsIDAsIGJ1ZmZlciwgZW5jb2RlZERhdGFMZW5ndGgsIGRhdGFQYXlsb2FkVHlwZSk7Cit9
CiAKLSAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZURhdGEodGhpcywgZGF0YSwgbGVuZ3RoKTsKK3Zv
aWQgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6OmRpZFJlY2VpdmVEYXRhT3JCdWZmZXIoY29u
c3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZl
ciwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxv
YWRUeXBlKQoreworICAgIFJlZlB0cjxOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcj4gcHJvdGVj
dCh0aGlzKTsKICAgICAKLSAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoZGF0YSwg
bGVuZ3RoLCBlbmNvZGVkRGF0YUxlbmd0aCwgZGF0YVBheWxvYWRUeXBlKTsKKyAgICBtX2NsaWVu
dC0+ZGlkUmVjZWl2ZURhdGEodGhpcywgYnVmZmVyID8gYnVmZmVyLT5kYXRhKCkgOiBkYXRhLCBi
dWZmZXIgPyBidWZmZXItPnNpemUoKSA6IGxlbmd0aCk7CisKKyAgICBSZXNvdXJjZUxvYWRlcjo6
ZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihkYXRhLCBsZW5ndGgsIGJ1ZmZlciwgZW5jb2RlZERhdGFM
ZW5ndGgsIGRhdGFQYXlsb2FkVHlwZSk7CiB9CiAKIHZvaWQgTmV0c2NhcGVQbHVnSW5TdHJlYW1M
b2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oCmluZGV4IDhmMGZh
NmMuLmMxM2U4ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBs
dWdJblN0cmVhbUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBs
dWdJblN0cmVhbUxvYWRlci5oCkBAIC01OCw2ICs1OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIq
LCBpbnQsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhkb3VibGUgZmluaXNo
VGltZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3VyY2VF
cnJvciYpIE9WRVJSSURFOwogCkBAIC02OCw2ICs2OSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIHdpbGxDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRDYW5jZWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIE9WRVJSSURFOwogCisg
ICAgdm9pZCBkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKGNvbnN0IGNoYXIqLCBpbnQsIFBhc3NSZWZQ
dHI8U2hhcmVkQnVmZmVyPiwgbG9uZyBsb25nIGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9h
ZFR5cGUpOworCiAgICAgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXJDbGllbnQqIG1fY2xpZW50
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5jcHAKaW5kZXggMThl
YmNiMi4uM2RiMDE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
QnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuY3Bw
CkBAIC03MSw2ICs3MSwxMSBAQCB2b2lkIFJlc291cmNlQnVmZmVyOjphcHBlbmQoY29uc3QgY2hh
ciogZGF0YSwgdW5zaWduZWQgc2l6ZSkKICAgICBtX3NoYXJlZEJ1ZmZlci0+YXBwZW5kKGRhdGEs
IHNpemUpOwogfQogCit2b2lkIFJlc291cmNlQnVmZmVyOjphcHBlbmQoU2hhcmVkQnVmZmVyKiBi
dWZmZXIpCit7CisgICAgbV9zaGFyZWRCdWZmZXItPmFwcGVuZChidWZmZXIpOworfQorCiAjaWYg
VVNFKE5FVFdPUktfQ0ZEQVRBX0FSUkFZX0NBTExCQUNLKQogdm9pZCBSZXNvdXJjZUJ1ZmZlcjo6
YXBwZW5kKENGRGF0YVJlZiBkYXRhKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZm
ZXIuaAppbmRleCBjODFiNjQ2Li4xMDAzNjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VCdWZmZXIuaApAQCAtNTUsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlz
RW1wdHkoKSBjb25zdDsKIAogICAgIHZvaWQgYXBwZW5kKGNvbnN0IGNoYXIqLCB1bnNpZ25lZCk7
CisgICAgdm9pZCBhcHBlbmQoU2hhcmVkQnVmZmVyKik7CiAjaWYgVVNFKE5FVFdPUktfQ0ZEQVRB
X0FSUkFZX0NBTExCQUNLKQogICAgIHZvaWQgYXBwZW5kKENGRGF0YVJlZik7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDNmNmNkZmIuLjA2ZDYw
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMjAwLDIw
ICsyMDAsMjQgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6c2V0RGF0YUJ1ZmZlcmluZ1BvbGljeShE
YXRhQnVmZmVyaW5nUG9saWN5IGRhdGFCdWZmZXJpbmdQb2wKIH0KICAgICAKIAotdm9pZCBSZXNv
dXJjZUxvYWRlcjo6YWRkRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBEYXRhUGF5
bG9hZFR5cGUgZGF0YVBheWxvYWRUeXBlKQordm9pZCBSZXNvdXJjZUxvYWRlcjo6YWRkRGF0YU9y
QnVmZmVyKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIFNoYXJlZEJ1ZmZlciogYnVmZmVy
LCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxvYWRUeXBlKQogewogICAgIGlmIChtX29wdGlvbnMu
ZGF0YUJ1ZmZlcmluZ1BvbGljeSA9PSBEb05vdEJ1ZmZlckRhdGEpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGlmIChkYXRhUGF5bG9hZFR5cGUgPT0gRGF0YVBheWxvYWRXaG9sZVJlc291cmNlKSB7
Ci0gICAgICAgIG1fcmVzb3VyY2VEYXRhID0gUmVzb3VyY2VCdWZmZXI6OmNyZWF0ZShkYXRhLCBs
ZW5ndGgpOworICAgICAgICBtX3Jlc291cmNlRGF0YSA9IGJ1ZmZlciA/IFJlc291cmNlQnVmZmVy
OjphZG9wdFNoYXJlZEJ1ZmZlcihidWZmZXIpIDogUmVzb3VyY2VCdWZmZXI6OmNyZWF0ZShkYXRh
LCBsZW5ndGgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgICAgICAKICAgICBpZiAoIW1f
cmVzb3VyY2VEYXRhKQotICAgICAgICBtX3Jlc291cmNlRGF0YSA9IFJlc291cmNlQnVmZmVyOjpj
cmVhdGUoZGF0YSwgbGVuZ3RoKTsKLSAgICBlbHNlCi0gICAgICAgIG1fcmVzb3VyY2VEYXRhLT5h
cHBlbmQoZGF0YSwgbGVuZ3RoKTsKKyAgICAgICAgbV9yZXNvdXJjZURhdGEgPSBidWZmZXIgPyBS
ZXNvdXJjZUJ1ZmZlcjo6YWRvcHRTaGFyZWRCdWZmZXIoYnVmZmVyKSA6IFJlc291cmNlQnVmZmVy
OjpjcmVhdGUoZGF0YSwgbGVuZ3RoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKGJ1ZmZlcikK
KyAgICAgICAgICAgIG1fcmVzb3VyY2VEYXRhLT5hcHBlbmQoYnVmZmVyKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgbV9yZXNvdXJjZURhdGEtPmFwcGVuZChkYXRhLCBsZW5ndGgpOworICAg
IH0KIH0KIAogdm9pZCBSZXNvdXJjZUxvYWRlcjo6Y2xlYXJSZXNvdXJjZURhdGEoKQpAQCAtMjk1
LDE2ICsyOTksMzEgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3Qg
Y2hhciogZGF0YSwgaW50IGxlbmd0aCwgbG9uZyBsb25nIGVuY28KICAgICAvLyBBU1NFUlQoY29u
ID09IGNvbm5lY3Rpb24pOwogICAgIC8vIEFTU0VSVCghbV9yZWFjaGVkVGVybWluYWxTdGF0ZSk7
CiAKKyAgICBkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKGRhdGEsIGxlbmd0aCwgMCwgZW5jb2RlZERh
dGFMZW5ndGgsIGRhdGFQYXlsb2FkVHlwZSk7Cit9CisKK3ZvaWQgUmVzb3VyY2VMb2FkZXI6OmRp
ZFJlY2VpdmVCdWZmZXIoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciwgbG9uZyBsb25n
IGVuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxvYWRUeXBlKQorewor
ICAgIGRpZFJlY2VpdmVEYXRhT3JCdWZmZXIoMCwgMCwgYnVmZmVyLCBlbmNvZGVkRGF0YUxlbmd0
aCwgZGF0YVBheWxvYWRUeXBlKTsKK30KKwordm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2
ZURhdGFPckJ1ZmZlcihjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoLCBQYXNzUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gcHJwQnVmZmVyLCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQ
YXlsb2FkVHlwZSBkYXRhUGF5bG9hZFR5cGUpCit7CisgICAgLy8gVGhpcyBtZXRob2Qgc2hvdWxk
IG9ubHkgZ2V0IGRhdGErbGVuZ3RoICpPUiogYSBTaGFyZWRCdWZmZXIuCisgICAgQVNTRVJUKCFw
cnBCdWZmZXIgfHwgKCFkYXRhICYmICFsZW5ndGgpKTsKKwogICAgIC8vIFByb3RlY3QgdGhpcyBp
biB0aGlzIGRlbGVnYXRlIG1ldGhvZCBzaW5jZSB0aGUgYWRkaXRpb25hbCBwcm9jZXNzaW5nIGNh
biBkbwogICAgIC8vIGFueXRoaW5nIGluY2x1ZGluZyBwb3NzaWJseSBkZXJlZmluZyB0aGlzOyBv
bmUgZXhhbXBsZSBvZiB0aGlzIGlzIFJhZGFyIDMyNjYyMTYuCiAgICAgUmVmUHRyPFJlc291cmNl
TG9hZGVyPiBwcm90ZWN0b3IodGhpcyk7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVy
ID0gcHJwQnVmZmVyOwogCi0gICAgYWRkRGF0YShkYXRhLCBsZW5ndGgsIGRhdGFQYXlsb2FkVHlw
ZSk7CisgICAgYWRkRGF0YU9yQnVmZmVyKGRhdGEsIGxlbmd0aCwgYnVmZmVyLmdldCgpLCBkYXRh
UGF5bG9hZFR5cGUpOworICAgIAogICAgIC8vIEZJWE1FOiBJZiB3ZSBnZXQgYSByZXNvdXJjZSB3
aXRoIG1vcmUgdGhhbiAyQiBieXRlcywgdGhpcyBjb2RlIHdvbid0IGRvIHRoZSByaWdodCB0aGlu
Zy4KICAgICAvLyBIb3dldmVyLCB3aXRoIHRvZGF5J3MgY29tcHV0ZXJzIGFuZCBuZXR3b3JraW5n
IHNwZWVkcywgdGhpcyB3b24ndCBoYXBwZW4gaW4gcHJhY3RpY2UuCiAgICAgLy8gQ291bGQgYmUg
YW4gaXNzdWUgd2l0aCBhIGdpYW50IGxvY2FsIGZpbGUuCiAgICAgaWYgKG1fb3B0aW9ucy5zZW5k
TG9hZENhbGxiYWNrcyA9PSBTZW5kQ2FsbGJhY2tzICYmIG1fZnJhbWUpCi0gICAgICAgIGZyYW1l
TG9hZGVyKCktPm5vdGlmaWVyKCktPmRpZFJlY2VpdmVEYXRhKHRoaXMsIGRhdGEsIGxlbmd0aCwg
c3RhdGljX2Nhc3Q8aW50PihlbmNvZGVkRGF0YUxlbmd0aCkpOworICAgICAgICBmcmFtZUxvYWRl
cigpLT5ub3RpZmllcigpLT5kaWRSZWNlaXZlRGF0YSh0aGlzLCBidWZmZXIgPyBidWZmZXItPmRh
dGEoKSA6IGRhdGEsIGJ1ZmZlciA/IGJ1ZmZlci0+c2l6ZSgpIDogbGVuZ3RoLCBzdGF0aWNfY2Fz
dDxpbnQ+KGVuY29kZWREYXRhTGVuZ3RoKSk7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6Ondp
bGxTdG9wQnVmZmVyaW5nRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQpAQCAtNDY5
LDYgKzQ4OCwxMyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndAogICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVJlc291cmNlRGF0YShjb29raWUpOwogfQogCit2b2lkIFJl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKFJlc291cmNlSGFuZGxlKiwgUGFzc1JlZlB0
cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciwgaW50IGVuY29kZWREYXRhTGVuZ3RoKQoreworICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OndpbGxSZWNlaXZlUmVzb3VyY2VEYXRhKG1fZnJhbWUuZ2V0KCksIGlkZW50aWZpZXIo
KSwgZW5jb2RlZERhdGFMZW5ndGgpOworICAgIGRpZFJlY2VpdmVCdWZmZXIoYnVmZmVyLCBlbmNv
ZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRCeXRlcyk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRSZWNlaXZlUmVzb3VyY2VEYXRhKGNvb2tpZSk7Cit9CisKIHZvaWQgUmVzb3Vy
Y2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgZmluaXNo
VGltZSkKIHsKICAgICBkaWRGaW5pc2hMb2FkaW5nKGZpbmlzaFRpbWUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkZXIuaAppbmRleCA3MzU2ZTc4Li4zMjIxN2U5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaApAQCAtNzMsMTUgKzczLDE2IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZVJlc291cmNlcygpOwogICAgIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YShj
b25zdCBjaGFyKiwgaW50LCBEYXRhUGF5bG9hZFR5cGUpOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxSZXNvdXJjZUJ1ZmZlcj4gcmVzb3VyY2VEYXRhKCk7CisgICAgUGFzc1JlZlB0cjxSZXNvdXJj
ZUJ1ZmZlcj4gcmVzb3VyY2VEYXRhKCk7CiAgICAgdm9pZCBjbGVhclJlc291cmNlRGF0YSgpOwor
ICAgIAogICAgIHZpcnR1YWwgYm9vbCBpc1N1YnJlc291cmNlTG9hZGVyKCk7CiAgICAgCiAgICAg
dmlydHVhbCB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2Vu
ZERhdGEodW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRv
dGFsQnl0ZXNUb0JlU2VudCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRh
KGNvbnN0IGNoYXIqLCBpbnQsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxv
YWRUeXBlKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJ1ZmZlcihQYXNzUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBl
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKGNvbnN0IGNoYXIq
LCBpbnQpIHsgfQogICAgIHZvaWQgd2lsbFN0b3BCdWZmZXJpbmdEYXRhKGNvbnN0IGNoYXIqLCBp
bnQpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1l
KTsKQEAgLTEwMCwzNiArMTAxLDM3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVjZWl2
ZWRDYW5jZWxsYXRpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKIAogICAgIC8v
IFJlc291cmNlSGFuZGxlQ2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVxdWVzdChS
ZXNvdXJjZUhhbmRsZSosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlZGlyZWN0UmVzcG9uc2UpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRTZW5kRGF0YShSZXNvdXJj
ZUhhbmRsZSosIHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9u
ZyB0b3RhbEJ5dGVzVG9CZVNlbnQpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9u
c2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwg
aW50IGVuY29kZWREYXRhTGVuZ3RoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNhY2hl
ZE1ldGFkYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkg
eyBkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEoZGF0YSwgbGVuZ3RoKTsgfQotICAgIHZpcnR1YWwg
dm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIGZpbmlzaFRpbWUp
OwotICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3Vy
Y2VFcnJvciYpOwotICAgIHZpcnR1YWwgdm9pZCB3YXNCbG9ja2VkKFJlc291cmNlSGFuZGxlKik7
Ci0gICAgdmlydHVhbCB2b2lkIGNhbm5vdFNob3dVUkwoUmVzb3VyY2VIYW5kbGUqKTsKLSAgICB2
aXJ0dWFsIHZvaWQgd2lsbFN0b3BCdWZmZXJpbmdEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
Y2hhciogZGF0YSwgaW50IGxlbmd0aCkgeyB3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEoZGF0YSwgbGVu
Z3RoKTsgfSAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVz
b3VyY2VIYW5kbGUqKSB7IHJldHVybiBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgpOyB9Ci0g
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpIHsgZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNoYWxsZW5nZSk7IH0gCi0gICAgdmlydHVh
bCB2b2lkIGRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSkgeyBkaWRDYW5jZWxBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZShjaGFsbGVuZ2UpOyB9IAorICAgIHZpcnR1YWwgdm9pZCB3aWxs
U2VuZFJlcXVlc3QoUmVzb3VyY2VIYW5kbGUqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkU2VuZERhdGEoUmVzb3VyY2VIYW5kbGUqLCB1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNT
ZW50LCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
RGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCBlbmNvZGVkRGF0YUxl
bmd0aCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVCdWZmZXIoUmVzb3Vy
Y2VIYW5kbGUqLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGludCBlbmNvZGVkRGF0YUxlbmd0
aCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShS
ZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpIE9WRVJSSURFIHsg
ZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKGRhdGEsIGxlbmd0aCk7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSBmaW5pc2hUaW1lKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0
IFJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgd2FzQmxvY2tlZChS
ZXNvdXJjZUhhbmRsZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjYW5ub3RTaG93VVJM
KFJlc291cmNlSGFuZGxlKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxTdG9wQnVm
ZmVyaW5nRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgp
IE9WRVJSSURFIHsgd2lsbFN0b3BCdWZmZXJpbmdEYXRhKGRhdGEsIGxlbmd0aCk7IH0gCisgICAg
dmlydHVhbCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFJlc291cmNlSGFuZGxlKikg
T1ZFUlJJREUgeyByZXR1cm4gc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKTsgfQorICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKSBPVkVSUklERSB7
IGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjaGFsbGVuZ2UpOyB9IAorICAgIHZp
cnR1YWwgdm9pZCBkaWRDYW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZXNvdXJjZUhhbmRs
ZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpIE9WRVJSSURFIHsg
ZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoY2hhbGxlbmdlKTsgfSAKICNpZiBVU0Uo
TkVUV09SS19DRkRBVEFfQVJSQVlfQ0FMTEJBQ0spCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVEYXRhQXJyYXkoUmVzb3VyY2VIYW5kbGUqLCBDRkFycmF5UmVmIGRhdGFBcnJheSk7CisgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhQXJyYXkoUmVzb3VyY2VIYW5kbGUqLCBDRkFycmF5
UmVmIGRhdGFBcnJheSkgT1ZFUlJJREU7CiAjZW5kaWYKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFD
RV9BVVRIX0NBTExCQUNLKQotICAgIHZpcnR1YWwgYm9vbCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0
UHJvdGVjdGlvblNwYWNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBw
cm90ZWN0aW9uU3BhY2UpIHsgcmV0dXJuIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9u
U3BhY2UocHJvdGVjdGlvblNwYWNlKTsgfQorICAgIHZpcnR1YWwgYm9vbCBjYW5BdXRoZW50aWNh
dGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUHJvdGVjdGlv
blNwYWNlJiBwcm90ZWN0aW9uU3BhY2UpIE9WRVJSSURFIHsgcmV0dXJuIGNhbkF1dGhlbnRpY2F0
ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UocHJvdGVjdGlvblNwYWNlKTsgfQogI2VuZGlmCi0gICAg
dmlydHVhbCB2b2lkIHJlY2VpdmVkQ2FuY2VsbGF0aW9uKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSkgeyByZWNlaXZlZENhbmNlbGxhdGlv
bihjaGFsbGVuZ2UpOyB9CisgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVkQ2FuY2VsbGF0aW9uKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSkg
T1ZFUlJJREUgeyByZWNlaXZlZENhbmNlbGxhdGlvbihjaGFsbGVuZ2UpOyB9CiAjaWYgUExBVEZP
Uk0oTUFDKQogI2lmIFVTRShDRk5FVFdPUkspCi0gICAgdmlydHVhbCBDRkNhY2hlZFVSTFJlc3Bv
bnNlUmVmIHdpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgQ0ZDYWNoZWRVUkxSZXNw
b25zZVJlZik7CisgICAgdmlydHVhbCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIHdpbGxDYWNoZVJl
c3BvbnNlKFJlc291cmNlSGFuZGxlKiwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZikgT1ZFUlJJREU7
CiAjZWxzZQotICAgIHZpcnR1YWwgTlNDYWNoZWRVUkxSZXNwb25zZSogd2lsbENhY2hlUmVzcG9u
c2UoUmVzb3VyY2VIYW5kbGUqLCBOU0NhY2hlZFVSTFJlc3BvbnNlKik7CisgICAgdmlydHVhbCBO
U0NhY2hlZFVSTFJlc3BvbnNlKiB3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIE5T
Q2FjaGVkVVJMUmVzcG9uc2UqKSBPVkVSUklERTsKICNlbmRpZgogI2VuZGlmIC8vIFBMQVRGT1JN
KE1BQykKICNpZiBQTEFURk9STShXSU4pICYmIFVTRShDRk5FVFdPUkspCiAgICAgLy8gRklYTUU6
IFdpbmRvd3Mgc2hvdWxkIHVzZSB3aWxsQ2FjaGVSZXNwb25zZSAtIDxodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcyNTc+LgotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRD
YWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik7Cisg
ICAgdmlydHVhbCBib29sIHNob3VsZENhY2hlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBDRkNh
Y2hlZFVSTFJlc3BvbnNlUmVmKSBPVkVSUklERTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENIUk9N
SVVNKQogICAgIHZpcnR1YWwgdm9pZCBkaWREb3dubG9hZERhdGEoUmVzb3VyY2VIYW5kbGUqLCBp
bnQpOwpAQCAtMTYyLDYgKzE2NCw4IEBAIHByb3RlY3RlZDoKIAogICAgIGJvb2wgY2FuY2VsbGVk
KCkgY29uc3QgeyByZXR1cm4gbV9jYW5jZWxsZWQ7IH0KIAorICAgIHZvaWQgZGlkUmVjZWl2ZURh
dGFPckJ1ZmZlcihjb25zdCBjaGFyKiwgaW50LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGxv
bmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKTsKKwogICAgIFJlZlB0
cjxSZXNvdXJjZUhhbmRsZT4gbV9oYW5kbGU7CiAgICAgUmVmUHRyPEZyYW1lPiBtX2ZyYW1lOwog
ICAgIFJlZlB0cjxEb2N1bWVudExvYWRlcj4gbV9kb2N1bWVudExvYWRlcjsKQEAgLTE3MSw2ICsx
NzUsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2FuY2VsKGNvbnN0IFJlc291
cmNlRXJyb3ImKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbChjb25zdCBSZXNvdXJj
ZUVycm9yJikgPSAwOwogCisgICAgdm9pZCBhZGREYXRhT3JCdWZmZXIoY29uc3QgY2hhciosIGlu
dCwgU2hhcmVkQnVmZmVyKiwgRGF0YVBheWxvYWRUeXBlKTsKKwogICAgIFJlc291cmNlUmVxdWVz
dCBtX3JlcXVlc3Q7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fb3JpZ2luYWxSZXF1ZXN0OyAvLyBC
ZWZvcmUgcmVkaXJlY3RzLgogICAgIFJlZlB0cjxSZXNvdXJjZUJ1ZmZlcj4gbV9yZXNvdXJjZURh
dGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAppbmRleCAw
YjVlMzg1Li43OWU3NzRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVz
b3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxv
YWRlci5jcHAKQEAgLTIxNSw2ICsyMTUsMTYgQEAgdm9pZCBTdWJyZXNvdXJjZUxvYWRlcjo6ZGlk
UmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogCiB2b2lk
IFN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQg
bGVuZ3RoLCBsb25nIGxvbmcgZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkVHlwZSBkYXRh
UGF5bG9hZFR5cGUpCiB7CisgICAgZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihkYXRhLCBsZW5ndGgs
IDAsIGVuY29kZWREYXRhTGVuZ3RoLCBkYXRhUGF5bG9hZFR5cGUpOworfQorCit2b2lkIFN1YnJl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBi
dWZmZXIsIGxvbmcgbG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlIGRhdGFQ
YXlsb2FkVHlwZSkKK3sKKyAgICBkaWRSZWNlaXZlRGF0YU9yQnVmZmVyKDAsIDAsIGJ1ZmZlciwg
ZW5jb2RlZERhdGFMZW5ndGgsIGRhdGFQYXlsb2FkVHlwZSk7Cit9CisKK3ZvaWQgU3VicmVzb3Vy
Y2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhT3JCdWZmZXIoY29uc3QgY2hhciogZGF0YSwgaW50IGxl
bmd0aCwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHBycEJ1ZmZlciwgbG9uZyBsb25nIGVuY29k
ZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZFR5cGUgZGF0YVBheWxvYWRUeXBlKQorewogICAgIGlm
IChtX3Jlc291cmNlLT5yZXNwb25zZSgpLmh0dHBTdGF0dXNDb2RlKCkgPj0gNDAwICYmICFtX3Jl
c291cmNlLT5zaG91bGRJZ25vcmVIVFRQU3RhdHVzQ29kZUVycm9ycygpKQogICAgICAgICByZXR1
cm47CiAgICAgQVNTRVJUKCFtX3Jlc291cmNlLT5yZXNvdXJjZVRvUmV2YWxpZGF0ZSgpKTsKQEAg
LTIyMywxMSArMjMzLDEyIEBAIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRh
KGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgsIGxvbmcgbG9uZyBlCiAgICAgLy8gUmVmZXJl
bmNlIHRoZSBvYmplY3QgaW4gdGhpcyBtZXRob2Qgc2luY2UgdGhlIGFkZGl0aW9uYWwgcHJvY2Vz
c2luZyBjYW4gZG8KICAgICAvLyBhbnl0aGluZyBpbmNsdWRpbmcgcmVtb3ZpbmcgdGhlIGxhc3Qg
cmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0OyBvbmUgZXhhbXBsZSBvZiB0aGlzIGlzIDMyNjYyMTYu
CiAgICAgUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBwcm90ZWN0KHRoaXMpOwotICAgIGFkZERh
dGEoZGF0YSwgbGVuZ3RoLCBkYXRhUGF5bG9hZFR5cGUpOworICAgIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IGJ1ZmZlciA9IHBycEJ1ZmZlcjsKKyAgICAKKyAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVj
ZWl2ZURhdGFPckJ1ZmZlcihkYXRhLCBsZW5ndGgsIGJ1ZmZlciwgZW5jb2RlZERhdGFMZW5ndGgs
IGRhdGFQYXlsb2FkVHlwZSk7CisKICAgICBpZiAoIW1fbG9hZGluZ011bHRpcGFydENvbnRlbnQp
Ci0gICAgICAgIHNlbmREYXRhVG9SZXNvdXJjZShkYXRhLCBsZW5ndGgpOwotICAgIGlmIChzaG91
bGRTZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkgJiYgbV9mcmFtZSkKLSAgICAgICAgZnJhbWVM
b2FkZXIoKS0+bm90aWZpZXIoKS0+ZGlkUmVjZWl2ZURhdGEodGhpcywgZGF0YSwgbGVuZ3RoLCBz
dGF0aWNfY2FzdDxpbnQ+KGVuY29kZWREYXRhTGVuZ3RoKSk7CisgICAgICAgIHNlbmREYXRhVG9S
ZXNvdXJjZShidWZmZXIgPyBidWZmZXItPmRhdGEoKSA6IGRhdGEsIGJ1ZmZlciA/IGJ1ZmZlci0+
c2l6ZSgpIDogbGVuZ3RoKTsKIH0KIAogYm9vbCBTdWJyZXNvdXJjZUxvYWRlcjo6Y2hlY2tGb3JI
VFRQU3RhdHVzQ29kZUVycm9yKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9T
dWJyZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9h
ZGVyLmgKaW5kZXggZmJlN2RmYy4uYWU2YTA2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1
YnJlc291cmNlTG9hZGVyLmgKQEAgLTYxLDYgKzYxLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IHZvaWQgZGlkU2VuZERhdGEodW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQg
bG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqLCBpbnQsIGxvbmcgbG9u
ZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZUJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGxvbmcg
bG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKGNvbnN0IGNoYXIqLCBpbnQpIE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hU
aW1lKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChjb25zdCBSZXNvdXJjZUVy
cm9yJikgT1ZFUlJJREU7CkBAIC03OSw2ICs4MCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjaGVj
a0ZvckhUVFBTdGF0dXNDb2RlRXJyb3IoKTsKICAgICB2b2lkIHNlbmREYXRhVG9SZXNvdXJjZShj
b25zdCBjaGFyKiwgaW50KTsKIAorICAgIHZvaWQgZGlkUmVjZWl2ZURhdGFPckJ1ZmZlcihjb25z
dCBjaGFyKiwgaW50LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGxvbmcgbG9uZyBlbmNvZGVk
RGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKTsKKwogICAgIGVudW0gU3VicmVzb3VyY2VMb2Fk
ZXJTdGF0ZSB7CiAgICAgICAgIFVuaW5pdGlhbGl6ZWQsCiAgICAgICAgIEluaXRpYWxpemVkLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvU2hhcmVkQnVmZmVyQ0YuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2YvU2hhcmVkQnVmZmVyQ0YuY3BwCmluZGV4IDhh
MWUxMTIuLjlkZGIxMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NmL1No
YXJlZEJ1ZmZlckNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jZi9TaGFyZWRC
dWZmZXJDRi5jcHAKQEAgLTgwLDEwICs4MCwxMiBAQCB2b2lkIFNoYXJlZEJ1ZmZlcjo6bWF5YmVU
cmFuc2ZlclBsYXRmb3JtRGF0YSgpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBBU1NFUlQo
IW1fc2l6ZSk7Ci0gICAgICAgIAotICAgIGFwcGVuZChyZWludGVycHJldF9jYXN0PGNvbnN0IGNo
YXIqPihDRkRhdGFHZXRCeXRlUHRyKG1fY2ZEYXRhLmdldCgpKSksIENGRGF0YUdldExlbmd0aCht
X2NmRGF0YS5nZXQoKSkpOwotICAgICAgICAKLSAgICBtX2NmRGF0YSA9IDA7CisgICAgCisgICAg
Ly8gSGFuZyBvbiB0byB0aGUgbV9jZkRhdGEgcG9pbnRlciBpbiBhIGxvY2FsIHBvaW50ZXIgYXMg
YXBwZW5kKCkgd2lsbCByZS1lbnRlciBtYXliZVRyYW5zZmVyUGxhdGZvcm1EYXRhKCkKKyAgICAv
LyBhbmQgd2UgbmVlZCB0byBtYWtlIHN1cmUgdG8gZWFybHkgcmV0dXJuIHdoZW4gaXQgZG9lcy4K
KyAgICBSZXRhaW5QdHI8Q0ZEYXRhUmVmPiBjZkRhdGEgPSBtX2NmRGF0YS5sZWFrUmVmKCk7CisK
KyAgICBhcHBlbmQocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oQ0ZEYXRhR2V0Qnl0ZVB0
cihjZkRhdGEuZ2V0KCkpKSwgQ0ZEYXRhR2V0TGVuZ3RoKGNmRGF0YS5nZXQoKSkpOwogfQogCiB2
b2lkIFNoYXJlZEJ1ZmZlcjo6Y2xlYXJQbGF0Zm9ybURhdGEoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCmluZGV4IGNk
MDg4MDMuLjRiYTY2NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYg
UmVzb3VyY2VIYW5kbGVDbGllbnRfaAogI2RlZmluZSBSZXNvdXJjZUhhbmRsZUNsaWVudF9oCiAK
KyNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAg
LTg2LDcgKzg3LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lk
IGRpZFNlbmREYXRhKFJlc291cmNlSGFuZGxlKiwgdW5zaWduZWQgbG9uZyBsb25nIC8qYnl0ZXNT
ZW50Ki8sIHVuc2lnbmVkIGxvbmcgbG9uZyAvKnRvdGFsQnl0ZXNUb0JlU2VudCovKSB7IH0KIAog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIHsgfQorICAgICAgICAKICAgICAgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50
IC8qZW5jb2RlZERhdGFMZW5ndGgqLykgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlQnVmZmVyKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBidWZmZXIsIGludCBlbmNvZGVkRGF0YUxlbmd0aCkKKyAgICAgICAgeworICAgICAgICAgICAg
ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLCBidWZmZXItPmRhdGEoKSwgYnVmZmVyLT5zaXplKCksIGVu
Y29kZWREYXRhTGVuZ3RoKTsKKyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIq
LCBpbnQpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJj
ZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLykgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIHsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5k
bGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhh
bmRsZU1hYy5tbQppbmRleCAzZjZkNDBjLi4xNDRlZWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQpAQCAt
NzU2LDcgKzc1Niw3IEBAIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29u
bmVjdGlvbiBkaWRSZWNlaXZlRGF0YTooTlNEYXRhICopZGF0YSBsCiAgICAgLy8gRklYTUU6IGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTc5MwogICAgIC8vIC0xIG1l
YW5zIHdlIGRvIG5vdCBwcm92aWRlIGFueSBkYXRhIGFib3V0IHRyYW5zZmVyIHNpemUgdG8gaW5z
cGVjdG9yIHNvIGl0IHdvdWxkIHVzZQogICAgIC8vIENvbnRlbnQtTGVuZ3RoIGhlYWRlcnMgb3Ig
Y29udGVudCBzaXplIHRvIHNob3cgdHJhbnNmZXIgc2l6ZS4KLSAgICBtX2hhbmRsZS0+Y2xpZW50
KCktPmRpZFJlY2VpdmVEYXRhKG1faGFuZGxlLCAoY29uc3QgY2hhciopW2RhdGEgYnl0ZXNdLCBb
ZGF0YSBsZW5ndGhdLCAtMSk7CisgICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlQnVm
ZmVyKG1faGFuZGxlLCBTaGFyZWRCdWZmZXI6OndyYXBOU0RhdGEoZGF0YSksIC0xKTsKIH0KIAog
LSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIHdpbGxTdG9w
QnVmZmVyaW5nRGF0YTooTlNEYXRhICopZGF0YQo=
</data>
<flag name="review"
          id="214488"
          type_id="1"
          status="+"
          setter="aestes"
    />
    <flag name="commit-queue"
          id="214495"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>