<?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>101872</bug_id>
          
          <creation_ts>2012-11-11 16:09:28 -0800</creation_ts>
          <short_desc>NetworkProcess: Use an accurate shouldContentSniff value when creating ResourceHandles</short_desc>
          <delta_ts>2012-11-13 20:36:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>98537</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <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>763911</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-11 16:09:28 -0800</bug_when>
    <thetext>NetworkProcess: Use accurate shouldContentSniff and RemoteNetworkingContext values when creating ResourceHandles</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763924</commentid>
    <comment_count>1</comment_count>
      <attachid>173526</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-11 16:29:19 -0800</bug_when>
    <thetext>Created attachment 173526
Patch v1

This patch should work nicely.

We might have to rethink the RemoteNetworkingContext messaging if it becomes problematic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763927</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-11 16:31:53 -0800</bug_when>
    <thetext>Attachment 173526 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebKit2/NetworkProcess/mac/RemoteNetworkingContext.h:44:  The parameter name &quot;connection&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763932</commentid>
    <comment_count>3</comment_count>
      <attachid>173526</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-11-11 17:03:54 -0800</bug_when>
    <thetext>Comment on attachment 173526
Patch v1

r- since I don&apos;t think the RemoteNetworkingContext needs a connection pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763934</commentid>
    <comment_count>4</comment_count>
      <attachid>173528</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-11 17:16:15 -0800</bug_when>
    <thetext>Created attachment 173528
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764704</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-12 12:55:38 -0800</bug_when>
    <thetext>Alexey and I discussed the RemoteNetworkingContext change in person.  Repurposing this bug to be just about content sniffing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764707</commentid>
    <comment_count>6</comment_count>
      <attachid>173696</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-12 12:57:52 -0800</bug_when>
    <thetext>Created attachment 173696
Patch v3 - Just content sniffing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764725</commentid>
    <comment_count>7</comment_count>
      <attachid>173696</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-11-12 13:10:39 -0800</bug_when>
    <thetext>Comment on attachment 173696
Patch v3 - Just content sniffing

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

&gt; Source/WebKit2/NetworkProcess/NetworkResourceLoadScheduler.h:29
&gt; +#include &lt;WebCore/ResourceLoaderOptions.h&gt;

I&apos;m not sure if it&apos;s correct to use ResourceLoaderOptions in network process. There is no ResourceLoader here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764751</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-12 13:31:55 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 173696 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173696&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/NetworkProcess/NetworkResourceLoadScheduler.h:29
&gt; &gt; +#include &lt;WebCore/ResourceLoaderOptions.h&gt;
&gt; 
&gt; I&apos;m not sure if it&apos;s correct to use ResourceLoaderOptions in network process. There is no ResourceLoader here.

I think &quot;ResourceLoaderOptions&quot; is a misnomer for the file, and perhaps it should be called &quot;ResourceLoadingOptions&quot;

That&apos;s the brave new world we&apos;re charting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764793</commentid>
    <comment_count>9</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-11-12 13:58:10 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/134299</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173526</attachid>
            <date>2012-11-11 16:29:19 -0800</date>
            <delta_ts>2012-11-11 17:16:15 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>25291</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlMTEyNTRiLi42NDNiZTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTItMTEtMTEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE5ldHdvcmtQcm9jZXNzOiBVc2UgYWNjdXJhdGUgc2hvdWxkQ29udGVudFNuaWZmIGFuZCBS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dCB2YWx1ZXMgd2hlbiBjcmVhdGluZyBSZXNvdXJjZUhhbmRs
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTg3
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9z
ZSBzaG91bGRTbmlmZkNvbnRlbnQgdG8gcGFzcyBpdCBhbG9uZyB0byB0aGUgTmV0d29ya1Byb2Nl
c3MuCisKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlTG9hZGVyOjpzaG91bGRTbmlmZkNvbnRlbnQpOgorCiAyMDEyLTExLTEwICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENvYWxlc2Nl
IG1haW4gdGhyZWFkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5oCmluZGV4IDU0ZjRkNjAuLjNhMzQyMWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRlci5oCkBAIC0xNDAsNiArMTQwLDcgQEAgcHVibGljOgogICAgIGNv
bnN0IEtVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdC51cmwoKTsgfSAKICAgICBS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGUuZ2V0KCk7IH0K
ICAgICBib29sIHNob3VsZFNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdCB7IHJldHVy
biBtX29wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPT0gU2VuZENhbGxiYWNrczsgfQorICAgIGJv
b2wgc2hvdWxkU25pZmZDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zLnNuaWZmQ29u
dGVudCA9PSBTbmlmZkNvbnRlbnQ7IH0KIAogICAgIGJvb2wgcmVhY2hlZFRlcm1pbmFsU3RhdGUo
KSBjb25zdCB7IHJldHVybiBtX3JlYWNoZWRUZXJtaW5hbFN0YXRlOyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCBjNjc1ODJjLi4yOWMwOTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTItMTEt
MTEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE5ldHdvcmtQ
cm9jZXNzOiBVc2UgYWNjdXJhdGUgc2hvdWxkQ29udGVudFNuaWZmIGFuZCBSZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dCB2YWx1ZXMgd2hlbiBjcmVhdGluZyBSZXNvdXJjZUhhbmRsZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTg3MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW90ZU5ldHdvcmtpbmdD
b250ZXh0IG5vdyBob2xkcyBhIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBXZWJQcm9jZXNzIHNvIC0g
d2hlbiBuZWVkZWQgLSBpdCBjYW4gYXNrIHRoZSBXZWJQcm9jZXNzCisgICAgICAgIGZvciB0aGUg
dmFsdWVzIG9mICJuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyIgYW5kICJsb2NhbEZpbGVDb250ZW50
U25pZmZpbmdFbmFibGVkIgorCisgICAgICAgIFRoZSBXZWJQcm9jZXNzIG5vdyBwYXNzZXMgInNo
b3VsZENvbnRlbnRTbmlmZiIgb3ZlciB0byB0aGUgTmV0d29ya1Byb2Nlc3Mgd2l0aCB0aGUgcmVx
dWVzdHMgc28gaXQgY2FuIGJlIHJlc3BlY3RlZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNjaGVkdWxlTmV0d29ya1JlcXVlc3QpOiBVcGRh
dGUgdG8gaW5jbHVkZSAic2hvdWxkQ29udGVudFNuaWZmIgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtSZXF1ZXN0OjpOZXR3b3JrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSZXF1ZXN0OjpzdGFydCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1JlcXVl
c3QuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JlcXVlc3Q6OmNyZWF0ZSk6CisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVOZXR3
b3JrUmVxdWVzdCk6IFVwZGF0ZSB0byBwYXNzIHRocm91Z2ggInNob3VsZENvbnRlbnRTbmlmZiIK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmg6
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQu
aDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6UmVtb3RlTmV0d29ya2lu
Z0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6bmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5n
Q29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojp1cGRhdGVRdWlya3NBbmRTbmlmZmluZyk6IElm
IHRoZXkndmUgbmV2ZXIgYmVlbiB1cGRhdGVkIGZyb20gdGhlIFdlYlByb2Nlc3MgYmVmb3JlLAor
ICAgICAgICAgIHF1ZXJ5IFdlYlByb2Nlc3MgZm9yIHRoZSBuZWVkc1NpdGVTcGVjaWZpY1F1aXJr
cyBhbmQgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCBmbGFncy4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OnVwZGF0ZVF1aXJrc0FuZFNuaWZm
aW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbjoKKworICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXI6OnNjaGVkdWxlTG9hZCk6IFVwZGF0ZSB0byBwYXNzIHRocm91Z2ggInNob3VsZENv
bnRlbnRTbmlmZiIKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjp1
cGRhdGVRdWlya3NBbmRTbmlmZmluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZFNjaGVkdWxlci5oOgorCiAyMDEyLTExLTEwICBaZW5vIEFsYmlzc2VyICA8
emVub0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF1bV0syXSBVc2UgUUxpYnJhcnlJbmZvIHRv
IHNlYXJjaCBmb3IgZXhlY3V0YWJsZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5k
ZXggZWQwZDkzNC4uMTEzODUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAt
MjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb25TdGFjay5oIgogI2luY2x1ZGUgIk5l
dHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1JlcXVlc3QuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAKQEAgLTEwOSw5ICsx
MTAsOSBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbgogewogfQogCi12b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpzY2hlZHVsZU5ldHdvcmtSZXF1ZXN0KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgdWludDMyX3QgcmVzb3VyY2VMb2FkUHJpb3JpdHksIFJlc291cmNl
TG9hZElkZW50aWZpZXImIHJlc291cmNlTG9hZElkZW50aWZpZXIpCit2b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpzY2hlZHVsZU5ldHdvcmtSZXF1ZXN0KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgdWludDMyX3QgcmVzb3VyY2VMb2FkUHJpb3JpdHksIGJvb2wgc2hv
dWxkQ29udGVudFNuaWZmLCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyJiByZXNvdXJjZUxvYWRJZGVu
dGlmaWVyKQogewotICAgIHJlc291cmNlTG9hZElkZW50aWZpZXIgPSBOZXR3b3JrUHJvY2Vzczo6
c2hhcmVkKCkubmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcigpLnNjaGVkdWxlTmV0d29ya1Jl
cXVlc3QocmVxdWVzdCwgc3RhdGljX2Nhc3Q8UmVzb3VyY2VMb2FkUHJpb3JpdHk+KHJlc291cmNl
TG9hZFByaW9yaXR5KSwgdGhpcyk7CisgICAgcmVzb3VyY2VMb2FkSWRlbnRpZmllciA9IE5ldHdv
cmtQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyKCkuc2NoZWR1
bGVOZXR3b3JrUmVxdWVzdChyZXF1ZXN0LCBzdGF0aWNfY2FzdDxSZXNvdXJjZUxvYWRQcmlvcml0
eT4ocmVzb3VyY2VMb2FkUHJpb3JpdHkpLCBzaG91bGRDb250ZW50U25pZmYgPyBTbmlmZkNvbnRl
bnQgOiBEb05vdFNuaWZmQ29udGVudCwgdGhpcyk7CiB9CiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmFkZExvYWRJblByb2dyZXNzKGNvbnN0IFdlYkNvcmU6OktVUkwmIHVy
bCwgUmVzb3VyY2VMb2FkSWRlbnRpZmllciYgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCmluZGV4IDkxZjAyYWEuLjFkZDFmMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aApAQCAtNzQsNyArNzQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQ
Qzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBP
d25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAgICAgCi0gICAgdm9pZCBzY2hlZHVs
ZU5ldHdvcmtSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIHVpbnQzMl90
IHJlc291cmNlTG9hZFByaW9yaXR5LCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyJik7CisgICAgdm9p
ZCBzY2hlZHVsZU5ldHdvcmtSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IHVpbnQzMl90IHJlc291cmNlTG9hZFByaW9yaXR5LCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwg
UmVzb3VyY2VMb2FkSWRlbnRpZmllciYpOwogICAgIHZvaWQgYWRkTG9hZEluUHJvZ3Jlc3MoY29u
c3QgV2ViQ29yZTo6S1VSTCYsIFJlc291cmNlTG9hZElkZW50aWZpZXImKTsKICAgICB2b2lkIHJl
bW92ZUxvYWRJZGVudGlmaWVyKFJlc291cmNlTG9hZElkZW50aWZpZXIpOwogICAgIHZvaWQgY3Jv
c3NPcmlnaW5SZWRpcmVjdFJlY2VpdmVkKFJlc291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OktVUkwmIHJlZGlyZWN0VVJMKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KaW5kZXggZmFmNDRhNy4uZmZkM2IyOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI4LDcgKzI4LDcgQEAgbWVzc2FnZXMg
LT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgewogICAgIC8vIHRoYXQgd2Ugc3luY2hy
b25vdXNseSBnZXQgYW4gaWRlbnRpZmllciBmb3IgbmV3IFJlc291cmNlTG9hZGVycyBhcyB0aGV5
IGFyZSBjcmVhdGVkLgogICAgIC8vIFRoZXJlJ3MgcG9zc2libGUgUmVzb3VyY2VMb2FkZXIgaWRl
bnRpZmllciByZWZhY3RvcmluZyB0aGF0IGNhbiByZW1vdmUgdGhhdCByZXF1aXJlbWVudC4KICAg
ICAvLyBXZSBtaWdodCBhbHNvIGhhdmUgdGhlIE5ldHdvcmtQcm9jZXNzIGRpdnZ5IHVwIGlkZW50
aWZpZXJzIGluIGJsb2NrcyB0byBlYWNoIFdlYlByb2Nlc3MgYmVmb3JlaGFuZC4KLSAgICBTY2hl
ZHVsZU5ldHdvcmtSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCB1aW50
MzJfdCByZXNvdXJjZUxvYWRQcmlvcml0eSkgLT4gKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50
aWZpZXIpCisgICAgU2NoZWR1bGVOZXR3b3JrUmVxdWVzdChXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdCwgdWludDMyX3QgcmVzb3VyY2VMb2FkUHJpb3JpdHksIGJvb2wgc2hvdWxkQ29u
dGVudFNuaWZmKSAtPiAodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikKICAgICBBZGRM
b2FkSW5Qcm9ncmVzcyhXZWJDb3JlOjpLVVJMIHVybCkgLT4gKHVpbnQ2NF90IHJlc291cmNlTG9h
ZElkZW50aWZpZXIpCiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3VyY2VM
b2FkSWRlbnRpZmllcikKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1JlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1JlcXVlc3QuY3BwCmluZGV4IDBkNjkyMmEuLjY4MDMwYWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVxdWVzdC5jcHAKQEAgLTQ1LDkgKzQ1LDEw
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotTmV0
d29ya1JlcXVlc3Q6Ok5ldHdvcmtSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyogY29ubmVjdGlvbikKK05ldHdvcmtSZXF1ZXN0OjpOZXR3b3Jr
UmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNl
TG9hZElkZW50aWZpZXIgaWRlbnRpZmllciwgQ29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRT
bmlmZmluZ1BvbGljeSwgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGNvbm5lY3Rpb24p
CiAgICAgOiBtX3JlcXVlc3QocmVxdWVzdCkKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVy
KQorICAgICwgbV9jb250ZW50U25pZmZpbmdQb2xpY3koY29udGVudFNuaWZmaW5nUG9saWN5KQog
ICAgICwgbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKQEAgLTY5LDExICs3MCwxMCBAQCB2b2lkIE5ldHdvcmtSZXF1ZXN0OjpzdGFydCgpCiAg
ICAgLy8gRXhwbGljaXQgcmVmKCkgYmFsYW5jZWQgYnkgYSBkZXJlZigpIGluIE5ldHdvcmtSZXF1
ZXN0OjpzdG9wKCkKICAgICByZWYoKTsKICAgICAKLSAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nl
c3MpOiBDcmVhdGUgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQgd2l0aCBhY3R1YWwgc2V0dGluZ3Mu
Ci0gICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVh
dGUoZmFsc2UsIGZhbHNlKTsKKyAgICBtX25ldHdvcmtpbmdDb250ZXh0ID0gUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQ6OmNyZWF0ZShtX2lkZW50aWZpZXIsIG1fY29ubmVjdGlvbi5nZXQoKSk7CiAK
LSAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBQYXNzIGFuIGFjdHVhbCB2YWx1ZSBmb3Ig
c2hvdWxkQ29udGVudFNuaWZmIChYTUxIdHRwUmVxdWVzdCBuZWVkcyB0aGF0KS4KLSAgICBtX2hh
bmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9uZXR3b3JraW5nQ29udGV4dC5nZXQoKSwg
bV9yZXF1ZXN0LCB0aGlzLCBmYWxzZSwgZmFsc2UpOworICAgIC8vIEZJWE1FIChOZXR3b3JrUHJv
Y2Vzcyk6IFBhc3MgYW4gYWN0dWFsIHZhbHVlIGZvciBkZWZlcnNMb2FkaW5nCisgICAgbV9oYW5k
bGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fbmV0d29ya2luZ0NvbnRleHQuZ2V0KCksIG1f
cmVxdWVzdCwgdGhpcywgZmFsc2UgLyogZGVmZXJzTG9hZGluZyAqLywgbV9jb250ZW50U25pZmZp
bmdQb2xpY3kgPT0gU25pZmZDb250ZW50KTsKIH0KIAogc3RhdGljIGJvb2wgc3RvcFJlcXVlc3Rz
Q2FsbGVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1JlcXVlc3QuaAppbmRleCAyNDQ3ODk4Li5mZDM4ZTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXF1ZXN0LmgKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lu
Y2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZUhhbmRsZUNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2Fk
ZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNDQsOSArNDUsOSBAQCB0eXBlZGVmIHVpbnQ2NF90IFJlc291
cmNlTG9hZElkZW50aWZpZXI7CiAKIGNsYXNzIE5ldHdvcmtSZXF1ZXN0IDogcHVibGljIFJlZkNv
dW50ZWQ8TmV0d29ya1JlcXVlc3Q+LCBwdWJsaWMgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3NPYnNlcnZlciwgcHVibGljIFdlYkNvcmU6OlJlc291cmNlSGFuZGxlQ2xpZW50IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmUHRyPE5ldHdvcmtSZXF1ZXN0PiBjcmVhdGUoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50
aWZpZXIsIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBjb25uZWN0aW9uKQorICAgIHN0
YXRpYyBSZWZQdHI8TmV0d29ya1JlcXVlc3Q+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
Q29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSwgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGNvbm5lY3Rpb24pCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IE5ldHdvcmtSZXF1ZXN0KHJlcXVlc3QsIGlkZW50aWZpZXIsIGNvbm5l
Y3Rpb24pKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBOZXR3b3JrUmVxdWVzdChyZXF1
ZXN0LCBpZGVudGlmaWVyLCBjb250ZW50U25pZmZpbmdQb2xpY3ksIGNvbm5lY3Rpb24pKTsKICAg
ICB9CiAgICAgCiAgICAgfk5ldHdvcmtSZXF1ZXN0KCk7CkBAIC05OCw3ICs5OSw3IEBAIHB1Ymxp
YzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIE5ldHdvcmtSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlTG9hZElkZW50aWZpZXIsIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzKik7CisgICAgTmV0d29ya1JlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgV2ViQ29yZTo6Q29udGVudFNu
aWZmaW5nUG9saWN5LCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyopOwogCiAgICAgdm9p
ZCBzY2hlZHVsZVN0b3BPbk1haW5UaHJlYWQoKTsKICAgICBzdGF0aWMgdm9pZCBwZXJmb3JtU3Rv
cHModm9pZCopOwpAQCAtMTEwLDcgKzExMSw3IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8UmVt
b3RlTmV0d29ya2luZ0NvbnRleHQ+IG1fbmV0d29ya2luZ0NvbnRleHQ7CiAgICAgUmVmUHRyPFdl
YkNvcmU6OlJlc291cmNlSGFuZGxlPiBtX2hhbmRsZTsKLQorICAgIFdlYkNvcmU6OkNvbnRlbnRT
bmlmZmluZ1BvbGljeSBtX2NvbnRlbnRTbmlmZmluZ1BvbGljeTsKICAgICBSZWZQdHI8TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fY29ubmVjdGlvbjsKIAogICAgIC8vIEZJWE1FIChO
ZXR3b3JrUHJvY2Vzcyk6IFJlc3BvbnNlIGRhdGEgbGlmZXRpbWUgc2hvdWxkIGJlIG1hbmFnZWQg
b3V0c2lkZSBOZXR3b3JrUmVxdWVzdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKaW5kZXgg
YmNjNWU0NC4uMGQ3NDU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKQEAgLTM4LDcg
KzM4LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpyZXF1ZXN0VGltZXJG
aXJlZChXZWJDb3JlOjpUaW1lcjxOZXR3b3JrUmVzb3UKICAgICBzZXJ2ZVBlbmRpbmdSZXF1ZXN0
cygpOwogfQogCi1SZXNvdXJjZUxvYWRJZGVudGlmaWVyIE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hl
ZHVsZXI6OnNjaGVkdWxlTmV0d29ya1JlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSwgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MqIGNvbm5lY3Rpb24pCitSZXNvdXJjZUxvYWRJZGVudGlmaWVyIE5ldHdvcmtSZXNv
dXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTmV0d29ya1JlcXVlc3QoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSwgQ29udGVudFNu
aWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSwgTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MqIGNvbm5lY3Rpb24pCiB7ICAgIAogICAgIFJlc291cmNlTG9hZElkZW50aWZpZXIg
aWRlbnRpZmllciA9ICsrc19jdXJyZW50UmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKIApAQCAtNDYs
NyArNDYsNyBAQCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hl
ZHVsZXI6OnNjaGVkdWxlTmV0d29ya1JlcXVlc3QoY29ucwogCiAgICAgSG9zdFJlY29yZCogaG9z
dCA9IGhvc3RGb3JVUkwocmVxdWVzdC51cmwoKSwgQ3JlYXRlSWZOb3RGb3VuZCk7CiAgICAgYm9v
bCBoYWRSZXF1ZXN0cyA9IGhvc3QtPmhhc1JlcXVlc3RzKCk7Ci0gICAgaG9zdC0+c2NoZWR1bGUo
TmV0d29ya1JlcXVlc3Q6OmNyZWF0ZShyZXF1ZXN0LCBpZGVudGlmaWVyLCBjb25uZWN0aW9uKSwg
cHJpb3JpdHkpOworICAgIGhvc3QtPnNjaGVkdWxlKE5ldHdvcmtSZXF1ZXN0OjpjcmVhdGUocmVx
dWVzdCwgaWRlbnRpZmllciwgY29udGVudFNuaWZmaW5nUG9saWN5LCBjb25uZWN0aW9uKSwgcHJp
b3JpdHkpOwogICAgIG1faWRlbnRpZmllcnMuYWRkKGlkZW50aWZpZXIsIGhvc3QpOwogCiAgICAg
aWYgKHByaW9yaXR5ID4gUmVzb3VyY2VMb2FkUHJpb3JpdHlMb3cgfHwgIXJlcXVlc3QudXJsKCku
cHJvdG9jb2xJc0luSFRUUEZhbWlseSgpIHx8IChwcmlvcml0eSA9PSBSZXNvdXJjZUxvYWRQcmlv
cml0eUxvdyAmJiAhaGFkUmVxdWVzdHMpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKaW5kZXgg
MGY5OGZmZC4uMmZhOGViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaApAQCAtMjYsNiArMjYs
NyBAQAogI2lmbmRlZiBOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyX2gKICNkZWZpbmUgTmV0
d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcl9oCiAKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
TG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC00
NSw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyKCk7
CiAgICAgCiAgICAgLy8gQWRkcyB0aGUgcmVxdWVzdCB0byB0aGUgcXVldWUgZm9yIGl0cyBob3N0
IGFuZCBjcmVhdGUgYSB1bmlxdWUgaWRlbnRpZmllciBmb3IgaXQuCi0gICAgUmVzb3VyY2VMb2Fk
SWRlbnRpZmllciBzY2hlZHVsZU5ldHdvcmtSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5LCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyopOworICAgIFJlc291cmNlTG9hZElkZW50aWZpZXIgc2NoZWR1bGVOZXR3
b3JrUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpSZXNv
dXJjZUxvYWRQcmlvcml0eSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyopOwogICAgIAogICAgIC8vIENyZWF0ZXMgYSB1bmlxdWUg
aWRlbnRpZmllciBmb3IgYW4gYWxyZWFkeS1pbi1wcm9ncmVzcyBsb2FkLgogICAgIFJlc291cmNl
TG9hZElkZW50aWZpZXIgYWRkTG9hZEluUHJvZ3Jlc3MoY29uc3QgV2ViQ29yZTo6S1VSTCYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdv
cmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQuaAppbmRleCAyYzE4Mjc4Li4wMDM4NDM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2lu
Z0NvbnRleHQuaApAQCAtMzAsMTYgKzMwLDE4IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitj
bGFzcyBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKKwogY2xhc3MgUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQgOiBwdWJsaWMgV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUo
Ym9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgYm9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZp
bmdFbmFibGVkKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
PiBjcmVhdGUodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MqIGNvbm5lY3Rpb24pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBs
b2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQocmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29u
bmVjdGlvbikpOwogICAgIH0KICAgICB2aXJ0dWFsIH5SZW1vdGVOZXR3b3JraW5nQ29udGV4dCgp
OwogCiBwcml2YXRlOgotICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KGJvb2wgbmVlZHNTaXRl
U3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCk7Cisg
ICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGNvbm5lY3Rpb24pOwogCiAgICAgdmly
dHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCBPVkVSUklERTsKIApAQCAtNDgsOCArNTAsMTQgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIE5TT3BlcmF0aW9uUXVldWUgKnNjaGVkdWxlZE9wZXJhdGlv
blF1ZXVlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBP
VkVSUklERTsKIAotICAgIGJvb2wgbV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrczsKLSAgICBib29s
IG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZDsKKyAgICB2b2lkIHVwZGF0ZVF1aXJr
c0FuZFNuaWZmaW5nKCkgY29uc3Q7CisKKyAgICBSZWZQdHI8TmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M+IG1fY29ubmVjdGlvbjsKKworICAgIHVpbnQ2NF90IG1fcmVzb3VyY2VMb2FkSWRl
bnRpZmllcjsKKyAgICBtdXRhYmxlIGJvb2wgbV9oYXNVcGRhdGVkUXVpcmtzQW5kU25pZmZpbmc7
CisgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTmVlZHNTaXRlU3BlY2lmaWNRdWlya3M7CisgICAg
bXV0YWJsZSBib29sIG1fY2FjaGVkTG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZDsKIH07
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1v
dGVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21h
Yy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCA3YjI5NzczLi41MGNmYmVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2lu
Z0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90
ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC0yNiwxNiArMjYsMjEgQEAKICNpbXBvcnQgImNvbmZp
Zy5oIgogI2ltcG9ydCAiUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCIKIAotI2ltcG9ydCAiV2Vi
Q29yZS9SZXNvdXJjZUVycm9yLmgiCisjaW1wb3J0ICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oIgorI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNp
bXBvcnQgIldlYkVycm9ycy5oIgorI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KGJvb2wgbmVlZHNTaXRl
U3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCkKLSAg
ICA6IG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MobmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpCi0g
ICAgLCBtX2xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQobG9jYWxGaWxlQ29udGVudFNu
aWZmaW5nRW5hYmxlZCkKK1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpSZW1vdGVOZXR3b3JraW5n
Q29udGV4dCh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyogY29ubmVjdGlvbikKKyAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9u
KQorICAgICwgbV9yZXNvdXJjZUxvYWRJZGVudGlmaWVyKHJlc291cmNlTG9hZElkZW50aWZpZXIp
CisgICAgLCBtX2hhc1VwZGF0ZWRRdWlya3NBbmRTbmlmZmluZyhmYWxzZSkKKyAgICAsIG1fY2Fj
aGVkTmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoZmFsc2UpCisgICAgLCBtX2NhY2hlZExvY2FsRmls
ZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoZmFsc2UpCiB7CiB9CiAKQEAgLTUwLDEyICs1NSwzNCBA
QCBib29sIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojppc1ZhbGlkKCkgY29uc3QKIAogYm9vbCBS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKSBjb25zdAog
ewotICAgIHJldHVybiBtX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzOworICAgIGlmICghbV9oYXNV
cGRhdGVkUXVpcmtzQW5kU25pZmZpbmcpCisgICAgICAgIHVwZGF0ZVF1aXJrc0FuZFNuaWZmaW5n
KCk7CisgICAgCisgICAgLy8gU2luY2Ugd2Ugb25seSBncmFiIHRoaXMgZmxhZyBmcm9tIHRoZSBX
ZWJQcm9jZXNzIG9uY2UgYW5kIGl0IGNvdWxkIGNoYW5nZSB0aGVyZSwKKyAgICAvLyBpdCBtaWdo
dCBiZSBvdXQgb2YgZGF0ZSBpZiB3ZSBldmVyIHJldXNlIGl0LgorICAgIC8vIFRoaXMgaXMgcHJv
YmFibHkgbm90IGEgcHJvYmxlbSBpbiBwcmFjdGljZSBhcyB0aGUgZmxhZyBpcyBvbmx5IG5lZWRl
ZCBhdCBSZXNvdXJjZUhhbmRsZSBjcmVhdGlvbi4KKyAgICByZXR1cm4gbV9jYWNoZWROZWVkc1Np
dGVTcGVjaWZpY1F1aXJrczsKIH0KIAogYm9vbCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6bG9j
YWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fbG9j
YWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZDsKKyAgICBpZiAoIW1faGFzVXBkYXRlZFF1aXJr
c0FuZFNuaWZmaW5nKQorICAgICAgICB1cGRhdGVRdWlya3NBbmRTbmlmZmluZygpOworCisgICAg
Ly8gU2luY2Ugd2Ugb25seSBncmFiIHRoaXMgZmxhZyBmcm9tIHRoZSBXZWJQcm9jZXNzIG9uY2Ug
YW5kIGl0IGNvdWxkIGNoYW5nZSB0aGVyZSwKKyAgICAvLyBpdCBtaWdodCBiZSBvdXQgb2YgZGF0
ZSBpZiB3ZSBldmVyIHJldXNlIGl0LgorICAgIC8vIFRoaXMgaXMgcHJvYmFibHkgbm90IGEgcHJv
YmxlbSBpbiBwcmFjdGljZSBhcyB0aGUgZmxhZyBpcyBvbmx5IG5lZWRlZCBhdCBSZXNvdXJjZUhh
bmRsZSBjcmVhdGlvbi4KKyAgICByZXR1cm4gbV9jYWNoZWRMb2NhbEZpbGVDb250ZW50U25pZmZp
bmdFbmFibGVkOworfQorCit2b2lkIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojp1cGRhdGVRdWly
a3NBbmRTbmlmZmluZygpIGNvbnN0Cit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24tPmNvbm5lY3Rp
b24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6VXBkYXRl
UXVpcmtzQW5kU25pZmZpbmcobV9yZXNvdXJjZUxvYWRJZGVudGlmaWVyKSwgTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6VXBkYXRlUXVpcmtzQW5kU25pZmZpbmc6OlJlcGx5KG1f
Y2FjaGVkTmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIG1fY2FjaGVkTG9jYWxGaWxlQ29udGVudFNu
aWZmaW5nRW5hYmxlZCksIDApKSB7CisgICAgICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6
IFdoYXQgZG8gd2UgZG8gaWYgd2UgY2FuJ3QgdXBkYXRlIHRoZXNlIGZsYWdzPworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIAorICAgIG1faGFzVXBkYXRlZFF1aXJrc0FuZFNuaWZmaW5nID0g
dHJ1ZTsKIH0KIAogTlNPcGVyYXRpb25RdWV1ZSAqUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnNj
aGVkdWxlZE9wZXJhdGlvblF1ZXVlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAK
aW5kZXggMTU3YTI4NC4uNmVmYTdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAg
LTEwMyw2ICsxMDMsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZEZhaWxS
ZXNvdXJjZUxvYWQoUmVzb3VyY2VMb2FkSWRlbnRpZmllciByZXNvdXIKICAgICBXZWJQcm9jZXNz
OjpzaGFyZWQoKS53ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIoKS5kaWRGYWlsUmVzb3VyY2VMb2Fk
KHJlc291cmNlTG9hZElkZW50aWZpZXIsIGVycm9yKTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb246OnVwZGF0ZVF1aXJrc0FuZFNuaWZmaW5nKFJlc291cmNlTG9hZElkZW50aWZp
ZXIgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgYm9vbCYgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3Ms
IGJvb2wmIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQpCit7CisgICAgV2ViUHJvY2Vz
czo6c2hhcmVkKCkud2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyKCkudXBkYXRlUXVpcmtzQW5kU25p
ZmZpbmcocmVzb3VyY2VMb2FkSWRlbnRpZmllciwgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGxv
Y2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKIAogI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmgKaW5kZXggMTI1OTdlYi4uNDY4YjdlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaApA
QCAtNjMsMTEgKzYzLDEzIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVJ
bnZhbGlkTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6U3RyaW5nUmVmZXJl
bmNlIG1lc3NhZ2VSZWNlaXZlck5hbWUsIENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdl
TmFtZSkgT1ZFUlJJREU7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb25NZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENv
cmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CisgICAgdm9pZCBkaWRSZWNlaXZlU3luY05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImLCBPd25QdHI8Q29yZUlQQzo6TWVzc2Fn
ZUVuY29kZXI+Jik7CiAKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdCh1aW50NjRfdCByZXF1ZXN0
SUQsIFJlc291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2b2lkIGRpZFJlY2Vp
dmVSZXNwb25zZShSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2UoUmVzb3VyY2VMb2FkSWRl
bnRpZmllciwgY29uc3QgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYsIGRvdWJsZSBmaW5pc2hU
aW1lKTsKICAgICB2b2lkIGRpZEZhaWxSZXNvdXJjZUxvYWQoUmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZvaWQgdXBkYXRlUXVpcmtz
QW5kU25pZmZpbmcoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgYm9vbCYgbmVlZHNTaXRlU3BlY2lm
aWNRdWlya3MsIGJvb2wmIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQpOwogCiAgICAg
Ly8gVGhlIGNvbm5lY3Rpb24gZnJvbSB0aGUgd2ViIHByb2Nlc3MgdG8gdGhlIG5ldHdvcmsgcHJv
Y2Vzcy4KICAgICBSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggZWQyNWQyMi4uODAx
MDQ5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0y
OSw2ICsyOSw4IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiB7CiAgICAg
RGlkUmVjZWl2ZVJlc3BvbnNlKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIsIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCiAgICAgRGlkUmVjZWl2ZVJlc291cmNlKHVp
bnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIsIFdlYktpdDo6U2hhcmVhYmxlUmVzb3VyY2U6
OkhhbmRsZSByZXNvdXJjZSwgZG91YmxlIGZpbmlzaFRpbWUpCiAgICAgRGlkRmFpbFJlc291cmNl
TG9hZCh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yIGVycm9yKQorICAgIAorICAgIFVwZGF0ZVF1aXJrc0FuZFNuaWZmaW5nKHVpbnQ2NF90IHJl
c291cmNlTG9hZElkZW50aWZpZXIpIC0+IChib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBi
b29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQpCiB9CiAKICNlbmRpZiAvLyBFTkFC
TEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAppbmRleCA3YWZj
Y2ViLi4wOGUwOGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApAQCAtMzcsNiArMzcs
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlQnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1N1YnJlc291cmNlTG9hZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5o
PgogCkBAIC05NSw3ICs5Niw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hl
ZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9hZGVyLCBSZXNvCiAgICAgICAgIHJl
cXVlc3Quc2V0VVJMKGRhdGFVUkwpOwogICAgIH0KIAotICAgIGlmICghV2ViUHJvY2Vzczo6c2hh
cmVkKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdl
czo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNjaGVkdWxlTmV0d29ya1JlcXVlc3Qo
cmVxdWVzdCwgcHJpb3JpdHkpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OlNjaGVkdWxlTmV0d29ya1JlcXVlc3Q6OlJlcGx5KGlkZW50aWZpZXIpLCAwKSkgeworICAg
IGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlv
bigpLT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNj
aGVkdWxlTmV0d29ya1JlcXVlc3QocmVxdWVzdCwgcHJpb3JpdHksIHJlc291cmNlTG9hZGVyLT5z
aG91bGRTbmlmZkNvbnRlbnQoKSksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6U2NoZWR1bGVOZXR3b3JrUmVxdWVzdDo6UmVwbHkoaWRlbnRpZmllciksIDApKSB7CiAg
ICAgICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IFdoYXQgc2hvdWxkIHdlIGRvIGlmIHRo
aXMgZmFpbHM/CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KQEAgLTIzNyw2
ICsyMzgsMjEgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OmRpZEZhaWxSZXNvdXJj
ZUxvYWQoUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGkKICAgICBsb2FkZXItPmRpZEZhaWwo
ZXJyb3IpOwogfQogCit2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6dXBkYXRlUXVpcmtz
QW5kU25pZmZpbmcoUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sJiBuZWVk
c1NpdGVTcGVjaWZpY1F1aXJrcywgYm9vbCYgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxl
ZCkKK3sKKyAgICBSZXNvdXJjZUxvYWRlciogbG9hZGVyID0gbV9wZW5kaW5nUmVzb3VyY2VMb2Fk
ZXJzLmdldChpZGVudGlmaWVyKS5nZXQoKTsKKyAgICBBU1NFUlQobG9hZGVyKTsKKyAgICAKKyAg
ICBTZXR0aW5ncyogc2V0dGluZ3MgPSBsb2FkZXItPmZyYW1lTG9hZGVyKCktPmZyYW1lKCktPnNl
dHRpbmdzKCk7CisgICAgQVNTRVJUKHNldHRpbmdzKTsKKyAgICAKKyAgICBpZiAoIXNldHRpbmdz
KQorICAgICAgICByZXR1cm47CisKKyAgICBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyA9IHNldHRp
bmdzLT5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpOworICAgIGxvY2FsRmlsZUNvbnRlbnRTbmlm
ZmluZ0VuYWJsZWQgPSBzZXR0aW5ncy0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShORVRXT1JL
X1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKaW5kZXggNjE3YjNlNy4uOWRiMjc1ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNl
TG9hZFNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaApAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc291cmNlKFJl
c291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlQnVmZmVyJiwgZG91
YmxlIGZpbmlzaFRpbWUpOwogICAgIHZvaWQgZGlkRmFpbFJlc291cmNlTG9hZChSZXNvdXJjZUxv
YWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCB1
cGRhdGVRdWlya3NBbmRTbmlmZmluZyhSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBib29sJiBuZWVk
c1NpdGVTcGVjaWZpY1F1aXJrcywgYm9vbCYgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxl
ZCk7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBzY2hlZHVsZUxvYWQoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXIqLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSk7Cg==
</data>
<flag name="review"
          id="188241"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173528</attachid>
            <date>2012-11-11 17:16:15 -0800</date>
            <delta_ts>2012-11-12 12:57:52 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>25038</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlMTEyNTRiLi42NDNiZTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTItMTEtMTEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE5ldHdvcmtQcm9jZXNzOiBVc2UgYWNjdXJhdGUgc2hvdWxkQ29udGVudFNuaWZmIGFuZCBS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dCB2YWx1ZXMgd2hlbiBjcmVhdGluZyBSZXNvdXJjZUhhbmRs
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTg3
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9z
ZSBzaG91bGRTbmlmZkNvbnRlbnQgdG8gcGFzcyBpdCBhbG9uZyB0byB0aGUgTmV0d29ya1Byb2Nl
c3MuCisKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlTG9hZGVyOjpzaG91bGRTbmlmZkNvbnRlbnQpOgorCiAyMDEyLTExLTEwICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENvYWxlc2Nl
IG1haW4gdGhyZWFkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5oCmluZGV4IDU0ZjRkNjAuLjNhMzQyMWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRlci5oCkBAIC0xNDAsNiArMTQwLDcgQEAgcHVibGljOgogICAgIGNv
bnN0IEtVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdC51cmwoKTsgfSAKICAgICBS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9oYW5kbGUuZ2V0KCk7IH0K
ICAgICBib29sIHNob3VsZFNlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdCB7IHJldHVy
biBtX29wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPT0gU2VuZENhbGxiYWNrczsgfQorICAgIGJv
b2wgc2hvdWxkU25pZmZDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9vcHRpb25zLnNuaWZmQ29u
dGVudCA9PSBTbmlmZkNvbnRlbnQ7IH0KIAogICAgIGJvb2wgcmVhY2hlZFRlcm1pbmFsU3RhdGUo
KSBjb25zdCB7IHJldHVybiBtX3JlYWNoZWRUZXJtaW5hbFN0YXRlOyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCBjNjc1ODJjLi5hYjVlMGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTItMTEt
MTEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE5ldHdvcmtQ
cm9jZXNzOiBVc2UgYWNjdXJhdGUgc2hvdWxkQ29udGVudFNuaWZmIGFuZCBSZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dCB2YWx1ZXMgd2hlbiBjcmVhdGluZyBSZXNvdXJjZUhhbmRsZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTg3MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW90ZU5ldHdvcmtpbmdD
b250ZXh0IG5vdyBtZXNzYWdlcyB0aGUgV2ViUHJvY2VzcyBmb3IgdGhlIGN1cnJlbnQgdmFsdWVz
IG9mICJuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyIgYW5kCisgICAgICAgICJsb2NhbEZpbGVDb250
ZW50U25pZmZpbmdFbmFibGVkIgorCisgICAgICAgIFRoZSBXZWJQcm9jZXNzIG5vdyBwYXNzZXMg
InNob3VsZENvbnRlbnRTbmlmZiIgb3ZlciB0byB0aGUgTmV0d29ya1Byb2Nlc3Mgd2l0aCB0aGUg
cmVxdWVzdHMgc28gaXQgY2FuIGJlIHJlc3BlY3RlZC4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNjaGVkdWxlTmV0d29ya1JlcXVlc3QpOiBV
cGRhdGUgdG8gaW5jbHVkZSAic2hvdWxkQ29udGVudFNuaWZmIgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtSZXF1ZXN0OjpOZXR3b3JrUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtSZXF1ZXN0OjpzdGFydCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
cXVlc3QuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1JlcXVlc3Q6OmNyZWF0ZSk6CisKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVO
ZXR3b3JrUmVxdWVzdCk6IFVwZGF0ZSB0byBwYXNzIHRocm91Z2ggInNob3VsZENvbnRlbnRTbmlm
ZiIKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVy
Lmg6CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1t
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6UmVtb3RlTmV0d29y
a2luZ0NvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6
bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dDo6bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojp1cGRhdGVRdWlya3NBbmRTbmlmZmluZyk6
IElmIHRoZXkndmUgbmV2ZXIgYmVlbiB1cGRhdGVkIGZyb20gdGhlIFdlYlByb2Nlc3MgYmVmb3Jl
LAorICAgICAgICAgIHF1ZXJ5IFdlYlByb2Nlc3MgZm9yIHRoZSBuZWVkc1NpdGVTcGVjaWZpY1F1
aXJrcyBhbmQgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCBmbGFncy4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OnVwZGF0ZVF1aXJrc0FuZFNu
aWZmaW5nKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbjoKKworICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9hZCk6IFVwZGF0ZSB0byBwYXNzIHRocm91Z2ggInNob3Vs
ZENvbnRlbnRTbmlmZiIKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVy
Ojp1cGRhdGVRdWlya3NBbmRTbmlmZmluZyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oOgorCiAyMDEyLTExLTEwICBaZW5vIEFsYmlzc2Vy
ICA8emVub0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF1bV0syXSBVc2UgUUxpYnJhcnlJbmZv
IHRvIHNlYXJjaCBmb3IgZXhlY3V0YWJsZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
aW5kZXggZWQwZDkzNC4uMTEzODUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApA
QCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb25TdGFjay5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1JlcXVlc3QuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAKQEAgLTEwOSw5
ICsxMTAsOSBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZl
SW52YWxpZE1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbgogewogfQogCi12b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzY2hlZHVsZU5ldHdvcmtSZXF1ZXN0KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgdWludDMyX3QgcmVzb3VyY2VMb2FkUHJpb3JpdHksIFJlc291
cmNlTG9hZElkZW50aWZpZXImIHJlc291cmNlTG9hZElkZW50aWZpZXIpCit2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpzY2hlZHVsZU5ldHdvcmtSZXF1ZXN0KGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgdWludDMyX3QgcmVzb3VyY2VMb2FkUHJpb3JpdHksIGJvb2wg
c2hvdWxkQ29udGVudFNuaWZmLCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyJiByZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyKQogewotICAgIHJlc291cmNlTG9hZElkZW50aWZpZXIgPSBOZXR3b3JrUHJvY2Vz
czo6c2hhcmVkKCkubmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcigpLnNjaGVkdWxlTmV0d29y
a1JlcXVlc3QocmVxdWVzdCwgc3RhdGljX2Nhc3Q8UmVzb3VyY2VMb2FkUHJpb3JpdHk+KHJlc291
cmNlTG9hZFByaW9yaXR5KSwgdGhpcyk7CisgICAgcmVzb3VyY2VMb2FkSWRlbnRpZmllciA9IE5l
dHdvcmtQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVyKCkuc2No
ZWR1bGVOZXR3b3JrUmVxdWVzdChyZXF1ZXN0LCBzdGF0aWNfY2FzdDxSZXNvdXJjZUxvYWRQcmlv
cml0eT4ocmVzb3VyY2VMb2FkUHJpb3JpdHkpLCBzaG91bGRDb250ZW50U25pZmYgPyBTbmlmZkNv
bnRlbnQgOiBEb05vdFNuaWZmQ29udGVudCwgdGhpcyk7CiB9CiAKIHZvaWQgTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmFkZExvYWRJblByb2dyZXNzKGNvbnN0IFdlYkNvcmU6OktVUkwm
IHVybCwgUmVzb3VyY2VMb2FkSWRlbnRpZmllciYgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oCmluZGV4IDkxZjAyYWEuLjFkZDFmMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaApAQCAtNzQsNyArNzQsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29y
ZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIHZvaWQgZGlk
UmVjZWl2ZVN5bmNOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
LCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZUVuY29kZXI+Jik7CiAgICAgCi0gICAgdm9pZCBzY2hl
ZHVsZU5ldHdvcmtSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIHVpbnQz
Ml90IHJlc291cmNlTG9hZFByaW9yaXR5LCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyJik7CisgICAg
dm9pZCBzY2hlZHVsZU5ldHdvcmtSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIHVpbnQzMl90IHJlc291cmNlTG9hZFByaW9yaXR5LCBib29sIHNob3VsZENvbnRlbnRTbmlm
ZiwgUmVzb3VyY2VMb2FkSWRlbnRpZmllciYpOwogICAgIHZvaWQgYWRkTG9hZEluUHJvZ3Jlc3Mo
Y29uc3QgV2ViQ29yZTo6S1VSTCYsIFJlc291cmNlTG9hZElkZW50aWZpZXImKTsKICAgICB2b2lk
IHJlbW92ZUxvYWRJZGVudGlmaWVyKFJlc291cmNlTG9hZElkZW50aWZpZXIpOwogICAgIHZvaWQg
Y3Jvc3NPcmlnaW5SZWRpcmVjdFJlY2VpdmVkKFJlc291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OktVUkwmIHJlZGlyZWN0VVJMKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZmFmNDRhNy4uZmZkM2IyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI4LDcgKzI4LDcgQEAgbWVzc2Fn
ZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgewogICAgIC8vIHRoYXQgd2Ugc3lu
Y2hyb25vdXNseSBnZXQgYW4gaWRlbnRpZmllciBmb3IgbmV3IFJlc291cmNlTG9hZGVycyBhcyB0
aGV5IGFyZSBjcmVhdGVkLgogICAgIC8vIFRoZXJlJ3MgcG9zc2libGUgUmVzb3VyY2VMb2FkZXIg
aWRlbnRpZmllciByZWZhY3RvcmluZyB0aGF0IGNhbiByZW1vdmUgdGhhdCByZXF1aXJlbWVudC4K
ICAgICAvLyBXZSBtaWdodCBhbHNvIGhhdmUgdGhlIE5ldHdvcmtQcm9jZXNzIGRpdnZ5IHVwIGlk
ZW50aWZpZXJzIGluIGJsb2NrcyB0byBlYWNoIFdlYlByb2Nlc3MgYmVmb3JlaGFuZC4KLSAgICBT
Y2hlZHVsZU5ldHdvcmtSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCB1
aW50MzJfdCByZXNvdXJjZUxvYWRQcmlvcml0eSkgLT4gKHVpbnQ2NF90IHJlc291cmNlTG9hZElk
ZW50aWZpZXIpCisgICAgU2NoZWR1bGVOZXR3b3JrUmVxdWVzdChXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QgcmVxdWVzdCwgdWludDMyX3QgcmVzb3VyY2VMb2FkUHJpb3JpdHksIGJvb2wgc2hvdWxk
Q29udGVudFNuaWZmKSAtPiAodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikKICAgICBB
ZGRMb2FkSW5Qcm9ncmVzcyhXZWJDb3JlOjpLVVJMIHVybCkgLT4gKHVpbnQ2NF90IHJlc291cmNl
TG9hZElkZW50aWZpZXIpCiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3Vy
Y2VMb2FkSWRlbnRpZmllcikKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1JlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1JlcXVlc3QuY3BwCmluZGV4IDBkNjkyMmEuLmRhMzJiMjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVxdWVzdC5jcHAKQEAgLTQ1LDkgKzQ1
LDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
TmV0d29ya1JlcXVlc3Q6Ok5ldHdvcmtSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyLCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyogY29ubmVjdGlvbikKK05ldHdvcmtSZXF1ZXN0OjpOZXR3
b3JrUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291
cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllciwgQ29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRl
bnRTbmlmZmluZ1BvbGljeSwgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGNvbm5lY3Rp
b24pCiAgICAgOiBtX3JlcXVlc3QocmVxdWVzdCkKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlm
aWVyKQorICAgICwgbV9jb250ZW50U25pZmZpbmdQb2xpY3koY29udGVudFNuaWZmaW5nUG9saWN5
KQogICAgICwgbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCiB7CiAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKQEAgLTY5LDExICs3MCwxMCBAQCB2b2lkIE5ldHdvcmtSZXF1ZXN0OjpzdGFydCgp
CiAgICAgLy8gRXhwbGljaXQgcmVmKCkgYmFsYW5jZWQgYnkgYSBkZXJlZigpIGluIE5ldHdvcmtS
ZXF1ZXN0OjpzdG9wKCkKICAgICByZWYoKTsKICAgICAKLSAgICAvLyBGSVhNRSAoTmV0d29ya1By
b2Nlc3MpOiBDcmVhdGUgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQgd2l0aCBhY3R1YWwgc2V0dGlu
Z3MuCi0gICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0Ojpj
cmVhdGUoZmFsc2UsIGZhbHNlKTsKKyAgICBtX25ldHdvcmtpbmdDb250ZXh0ID0gUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSh0aGlzKTsKIAotICAgIC8vIEZJWE1FIChOZXR3b3JrUHJv
Y2Vzcyk6IFBhc3MgYW4gYWN0dWFsIHZhbHVlIGZvciBzaG91bGRDb250ZW50U25pZmYgKFhNTEh0
dHBSZXF1ZXN0IG5lZWRzIHRoYXQpLgotICAgIG1faGFuZGxlID0gUmVzb3VyY2VIYW5kbGU6OmNy
ZWF0ZShtX25ldHdvcmtpbmdDb250ZXh0LmdldCgpLCBtX3JlcXVlc3QsIHRoaXMsIGZhbHNlLCBm
YWxzZSk7CisgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogUGFzcyBhbiBhY3R1YWwgdmFs
dWUgZm9yIGRlZmVyc0xvYWRpbmcKKyAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVh
dGUobV9uZXR3b3JraW5nQ29udGV4dC5nZXQoKSwgbV9yZXF1ZXN0LCB0aGlzLCBmYWxzZSAvKiBk
ZWZlcnNMb2FkaW5nICovLCBtX2NvbnRlbnRTbmlmZmluZ1BvbGljeSA9PSBTbmlmZkNvbnRlbnQp
OwogfQogCiBzdGF0aWMgYm9vbCBzdG9wUmVxdWVzdHNDYWxsZWQgPSBmYWxzZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXF1ZXN0LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVxdWVzdC5oCmluZGV4IDI0NDc4OTgu
LmZkMzhlMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
cXVlc3QuaApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlQ2xpZW50Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlck9wdGlvbnMuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NCw5
ICs0NSw5IEBAIHR5cGVkZWYgdWludDY0X3QgUmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKIAogY2xh
c3MgTmV0d29ya1JlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxOZXR3b3JrUmVxdWVzdD4sIHB1
YmxpYyBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc09ic2VydmVyLCBwdWJsaWMgV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGVDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8TmV0
d29ya1JlcXVlc3Q+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllciwgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MqIGNvbm5lY3Rpb24pCisgICAgc3RhdGljIFJlZlB0cjxOZXR3b3JrUmVxdWVz
dD4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3Vy
Y2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xp
Y3kgY29udGVudFNuaWZmaW5nUG9saWN5LCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyog
Y29ubmVjdGlvbikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgTmV0d29ya1Jl
cXVlc3QocmVxdWVzdCwgaWRlbnRpZmllciwgY29ubmVjdGlvbikpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IE5ldHdvcmtSZXF1ZXN0KHJlcXVlc3QsIGlkZW50aWZpZXIsIGNvbnRlbnRT
bmlmZmluZ1BvbGljeSwgY29ubmVjdGlvbikpOwogICAgIH0KICAgICAKICAgICB+TmV0d29ya1Jl
cXVlc3QoKTsKQEAgLTk4LDcgKzk5LDcgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0g
ICAgTmV0d29ya1JlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3Vy
Y2VMb2FkSWRlbnRpZmllciwgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqKTsKKyAgICBO
ZXR3b3JrUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUxv
YWRJZGVudGlmaWVyLCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKik7CiAKICAgICB2b2lkIHNjaGVkdWxlU3RvcE9uTWFpblRocmVh
ZCgpOwogICAgIHN0YXRpYyB2b2lkIHBlcmZvcm1TdG9wcyh2b2lkKik7CkBAIC0xMTAsNyArMTEx
LDcgQEAgcHJpdmF0ZToKIAogICAgIFJlZlB0cjxSZW1vdGVOZXR3b3JraW5nQ29udGV4dD4gbV9u
ZXR3b3JraW5nQ29udGV4dDsKICAgICBSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU+IG1f
aGFuZGxlOwotCisgICAgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IG1fY29udGVudFNu
aWZmaW5nUG9saWN5OwogICAgIFJlZlB0cjxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4g
bV9jb25uZWN0aW9uOwogCiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogUmVzcG9uc2Ug
ZGF0YSBsaWZldGltZSBzaG91bGQgYmUgbWFuYWdlZCBvdXRzaWRlIE5ldHdvcmtSZXF1ZXN0Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAppbmRleCBiY2M1ZTQ0Li4wZDc0NTQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkU2No
ZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkU2NoZWR1bGVyLmNwcApAQCAtMzgsNyArMzgsNyBAQCB2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRTY2hlZHVsZXI6OnJlcXVlc3RUaW1lckZpcmVkKFdlYkNvcmU6OlRpbWVyPE5ldHdv
cmtSZXNvdQogICAgIHNlcnZlUGVuZGluZ1JlcXVlc3RzKCk7CiB9CiAKLVJlc291cmNlTG9hZElk
ZW50aWZpZXIgTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVOZXR3b3JrUmVx
dWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlTG9hZFByaW9yaXR5
IHByaW9yaXR5LCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyogY29ubmVjdGlvbikKK1Jl
c291cmNlTG9hZElkZW50aWZpZXIgTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1
bGVOZXR3b3JrUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNl
TG9hZFByaW9yaXR5IHByaW9yaXR5LCBDb250ZW50U25pZmZpbmdQb2xpY3kgY29udGVudFNuaWZm
aW5nUG9saWN5LCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyogY29ubmVjdGlvbikKIHsg
ICAgCiAgICAgUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyID0gKytzX2N1cnJlbnRS
ZXNvdXJjZUxvYWRJZGVudGlmaWVyOwogCkBAIC00Niw3ICs0Niw3IEBAIFJlc291cmNlTG9hZElk
ZW50aWZpZXIgTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVOZXR3b3JrUmVx
dWVzdChjb25zCiAKICAgICBIb3N0UmVjb3JkKiBob3N0ID0gaG9zdEZvclVSTChyZXF1ZXN0LnVy
bCgpLCBDcmVhdGVJZk5vdEZvdW5kKTsKICAgICBib29sIGhhZFJlcXVlc3RzID0gaG9zdC0+aGFz
UmVxdWVzdHMoKTsKLSAgICBob3N0LT5zY2hlZHVsZShOZXR3b3JrUmVxdWVzdDo6Y3JlYXRlKHJl
cXVlc3QsIGlkZW50aWZpZXIsIGNvbm5lY3Rpb24pLCBwcmlvcml0eSk7CisgICAgaG9zdC0+c2No
ZWR1bGUoTmV0d29ya1JlcXVlc3Q6OmNyZWF0ZShyZXF1ZXN0LCBpZGVudGlmaWVyLCBjb250ZW50
U25pZmZpbmdQb2xpY3ksIGNvbm5lY3Rpb24pLCBwcmlvcml0eSk7CiAgICAgbV9pZGVudGlmaWVy
cy5hZGQoaWRlbnRpZmllciwgaG9zdCk7CiAKICAgICBpZiAocHJpb3JpdHkgPiBSZXNvdXJjZUxv
YWRQcmlvcml0eUxvdyB8fCAhcmVxdWVzdC51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkg
fHwgKHByaW9yaXR5ID09IFJlc291cmNlTG9hZFByaW9yaXR5TG93ICYmICFoYWRSZXF1ZXN0cykp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRTY2hlZHVsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAppbmRleCAwZjk4ZmZkLi4yZmE4ZWIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkU2No
ZWR1bGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZFNjaGVkdWxlci5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIE5ldHdvcmtSZXNv
dXJjZUxvYWRTY2hlZHVsZXJfaAogI2RlZmluZSBOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVy
X2gKIAorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KQEAgLTQ1LDcgKzQ2LDcgQEAgcHVibGljOgogICAg
IE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIoKTsKICAgICAKICAgICAvLyBBZGRzIHRoZSBy
ZXF1ZXN0IHRvIHRoZSBxdWV1ZSBmb3IgaXRzIGhvc3QgYW5kIGNyZWF0ZSBhIHVuaXF1ZSBpZGVu
dGlmaWVyIGZvciBpdC4KLSAgICBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIHNjaGVkdWxlTmV0d29y
a1JlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkUHJpb3JpdHksIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKik7CisgICAgUmVz
b3VyY2VMb2FkSWRlbnRpZmllciBzY2hlZHVsZU5ldHdvcmtSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5LCBXZWJDb3Jl
OjpDb250ZW50U25pZmZpbmdQb2xpY3ksIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKik7
CiAgICAgCiAgICAgLy8gQ3JlYXRlcyBhIHVuaXF1ZSBpZGVudGlmaWVyIGZvciBhbiBhbHJlYWR5
LWluLXByb2dyZXNzIGxvYWQuCiAgICAgUmVzb3VyY2VMb2FkSWRlbnRpZmllciBhZGRMb2FkSW5Q
cm9ncmVzcyhjb25zdCBXZWJDb3JlOjpLVVJMJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCmluZGV4
IDJjMTgyNzguLjUwNzk5OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0zMCwxNiArMzAs
MTggQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIE5ldHdvcmtSZXF1ZXN0OworCiBj
bGFzcyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dCA6IHB1YmxpYyBXZWJDb3JlOjpOZXR3b3JraW5n
Q29udGV4dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVtb3RlTmV0d29ya2lu
Z0NvbnRleHQ+IGNyZWF0ZShib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2Fs
RmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShOZXR3b3JrUmVxdWVzdCogcmVxdWVzdCkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQobmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3MsIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChyZXF1
ZXN0KSk7CiAgICAgfQogICAgIHZpcnR1YWwgflJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KCk7CiAK
IHByaXZhdGU6Ci0gICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQoYm9vbCBuZWVkc1NpdGVTcGVj
aWZpY1F1aXJrcywgYm9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKTsKKyAgICBS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dChOZXR3b3JrUmVxdWVzdCopOwogCiAgICAgdmlydHVhbCBi
b29sIGlzVmFsaWQoKSBjb25zdCBPVkVSUklERTsKIApAQCAtNDgsOCArNTAsMTMgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIE5TT3BlcmF0aW9uUXVldWUgKnNjaGVkdWxlZE9wZXJhdGlvblF1ZXVl
KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJs
b2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBPVkVSUklE
RTsKIAotICAgIGJvb2wgbV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrczsKLSAgICBib29sIG1fbG9j
YWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZDsKKyAgICB2b2lkIHVwZGF0ZVF1aXJrc0FuZFNu
aWZmaW5nKCkgY29uc3Q7CisKKyAgICBSZWZQdHI8TmV0d29ya1JlcXVlc3Q+IG1fcmVxdWVzdDsK
KworICAgIG11dGFibGUgYm9vbCBtX2hhc1VwZGF0ZWRRdWlya3NBbmRTbmlmZmluZzsKKyAgICBt
dXRhYmxlIGJvb2wgbV9jYWNoZWROZWVkc1NpdGVTcGVjaWZpY1F1aXJrczsKKyAgICBtdXRhYmxl
IGJvb2wgbV9jYWNoZWRMb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkOwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdv
cmtpbmdDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90
ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCmluZGV4IDdiMjk3NzMuLmJhY2FlNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQubW0KQEAgLTI2LDE2ICsyNiwyMSBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAj
aW1wb3J0ICJSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIgogCi0jaW1wb3J0ICJXZWJDb3JlL1Jl
c291cmNlRXJyb3IuaCIKKyNpbXBvcnQgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgi
CisjaW1wb3J0ICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2ltcG9ydCAi
TmV0d29ya1JlcXVlc3QuaCIKICNpbXBvcnQgIldlYkVycm9ycy5oIgorI2ltcG9ydCA8V2ViQ29y
ZS9SZXNvdXJjZUVycm9yLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OlJlbW90ZU5ldHdvcmtpbmdD
b250ZXh0KGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVu
dFNuaWZmaW5nRW5hYmxlZCkKLSAgICA6IG1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MobmVlZHNT
aXRlU3BlY2lmaWNRdWlya3MpCi0gICAgLCBtX2xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJs
ZWQobG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCkKK1JlbW90ZU5ldHdvcmtpbmdDb250
ZXh0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dChOZXR3b3JrUmVxdWVzdCogcmVxdWVzdCkKKyAg
ICA6IG1fcmVxdWVzdChyZXF1ZXN0KQorICAgICwgbV9oYXNVcGRhdGVkUXVpcmtzQW5kU25pZmZp
bmcoZmFsc2UpCisgICAgLCBtX2NhY2hlZE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKGZhbHNlKQor
ICAgICwgbV9jYWNoZWRMb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKGZhbHNlKQogewog
fQogCkBAIC01MCwxMiArNTUsMzggQEAgYm9vbCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6aXNW
YWxpZCgpIGNvbnN0CiAKIGJvb2wgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6Om5lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9uZWVkc1NpdGVTcGVjaWZpY1F1
aXJrczsKKyAgICBpZiAoIW1faGFzVXBkYXRlZFF1aXJrc0FuZFNuaWZmaW5nKQorICAgICAgICB1
cGRhdGVRdWlya3NBbmRTbmlmZmluZygpOworICAgIAorICAgIC8vIFNpbmNlIHdlIG9ubHkgZ3Jh
YiB0aGlzIGZsYWcgZnJvbSB0aGUgV2ViUHJvY2VzcyBvbmNlIGFuZCBpdCBjb3VsZCBjaGFuZ2Ug
dGhlcmUsCisgICAgLy8gaXQgbWlnaHQgYmUgb3V0IG9mIGRhdGUgaWYgd2UgZXZlciByZXVzZSBp
dC4KKyAgICAvLyBUaGlzIGlzIHByb2JhYmx5IG5vdCBhIHByb2JsZW0gaW4gcHJhY3RpY2UgYXMg
dGhlIGZsYWcgaXMgb25seSBuZWVkZWQgYXQgUmVzb3VyY2VIYW5kbGUgY3JlYXRpb24uCisgICAg
cmV0dXJuIG1fY2FjaGVkTmVlZHNTaXRlU3BlY2lmaWNRdWlya3M7CiB9CiAKIGJvb2wgUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQ6OmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSBjb25z
dAogewotICAgIHJldHVybiBtX2xvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQ7CisgICAg
aWYgKCFtX2hhc1VwZGF0ZWRRdWlya3NBbmRTbmlmZmluZykKKyAgICAgICAgdXBkYXRlUXVpcmtz
QW5kU25pZmZpbmcoKTsKKworICAgIC8vIFNpbmNlIHdlIG9ubHkgZ3JhYiB0aGlzIGZsYWcgZnJv
bSB0aGUgV2ViUHJvY2VzcyBvbmNlIGFuZCBpdCBjb3VsZCBjaGFuZ2UgdGhlcmUsCisgICAgLy8g
aXQgbWlnaHQgYmUgb3V0IG9mIGRhdGUgaWYgd2UgZXZlciByZXVzZSBpdC4KKyAgICAvLyBUaGlz
IGlzIHByb2JhYmx5IG5vdCBhIHByb2JsZW0gaW4gcHJhY3RpY2UgYXMgdGhlIGZsYWcgaXMgb25s
eSBuZWVkZWQgYXQgUmVzb3VyY2VIYW5kbGUgY3JlYXRpb24uCisgICAgcmV0dXJuIG1fY2FjaGVk
TG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZDsKK30KKwordm9pZCBSZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dDo6dXBkYXRlUXVpcmtzQW5kU25pZmZpbmcoKSBjb25zdAoreworICAgIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKiBjb25uZWN0aW9uID0gbV9yZXF1ZXN0LT5jb25uZWN0
aW9uVG9XZWJQcm9jZXNzKCk7CisgICAgaWYgKCFjb25uZWN0aW9uKQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAoIWNvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6VXBkYXRlUXVpcmtzQW5kU25pZmZpbmcobV9yZXF1
ZXN0LT5pZGVudGlmaWVyKCkpLCBNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpV
cGRhdGVRdWlya3NBbmRTbmlmZmluZzo6UmVwbHkobV9jYWNoZWROZWVkc1NpdGVTcGVjaWZpY1F1
aXJrcywgbV9jYWNoZWRMb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKSwgMCkpIHsKKyAg
ICAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogV2hhdCBkbyB3ZSBkbyBpZiB3ZSBjYW4n
dCB1cGRhdGUgdGhlc2UgZmxhZ3M/CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisgICAg
bV9oYXNVcGRhdGVkUXVpcmtzQW5kU25pZmZpbmcgPSB0cnVlOwogfQogCiBOU09wZXJhdGlvblF1
ZXVlICpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6c2NoZWR1bGVkT3BlcmF0aW9uUXVldWUoKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCAxNTdhMjg0Li42ZWZhN2M1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMTAzLDYgKzEwMywxMSBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkRmFpbFJlc291cmNlTG9hZChSZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyIHJlc291cgogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLndlYlJlc291cmNlTG9h
ZFNjaGVkdWxlcigpLmRpZEZhaWxSZXNvdXJjZUxvYWQocmVzb3VyY2VMb2FkSWRlbnRpZmllciwg
ZXJyb3IpOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6dXBkYXRlUXVpcmtz
QW5kU25pZmZpbmcoUmVzb3VyY2VMb2FkSWRlbnRpZmllciByZXNvdXJjZUxvYWRJZGVudGlmaWVy
LCBib29sJiBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgYm9vbCYgbG9jYWxGaWxlQ29udGVudFNu
aWZmaW5nRW5hYmxlZCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS53ZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIoKS51cGRhdGVRdWlya3NBbmRTbmlmZmluZyhyZXNvdXJjZUxvYWRJZGVudGlm
aWVyLCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5h
YmxlZCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKE5F
VFdPUktfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCAxMjU5N2ViLi40Njhi
N2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC02MywxMSArNjMsMTMgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwg
Q29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBPVkVSUklERTsKIAogICAgIHZv
aWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZShD
b3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdl
RGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogICAgIHZvaWQg
d2lsbFNlbmRSZXF1ZXN0KHVpbnQ2NF90IHJlcXVlc3RJRCwgUmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlTG9hZElk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2b2lkIGRp
ZFJlY2VpdmVSZXNvdXJjZShSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBTaGFyZWFibGVS
ZXNvdXJjZTo6SGFuZGxlJiwgZG91YmxlIGZpbmlzaFRpbWUpOwogICAgIHZvaWQgZGlkRmFpbFJl
c291cmNlTG9hZChSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJik7CisgICAgdm9pZCB1cGRhdGVRdWlya3NBbmRTbmlmZmluZyhSZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyLCBib29sJiBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgYm9vbCYgbG9jYWxGaWxl
Q29udGVudFNuaWZmaW5nRW5hYmxlZCk7CiAKICAgICAvLyBUaGUgY29ubmVjdGlvbiBmcm9tIHRo
ZSB3ZWIgcHJvY2VzcyB0byB0aGUgbmV0d29yayBwcm9jZXNzLgogICAgIFJlZlB0cjxDb3JlSVBD
OjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbgppbmRleCBlZDI1ZDIyLi44MDEwNDkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI5LDYgKzI5LDggQEAgbWVzc2FnZXMgLT4g
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uIHsKICAgICBEaWRSZWNlaXZlUmVzcG9uc2UodWludDY0
X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNw
b25zZSkKICAgICBEaWRSZWNlaXZlUmVzb3VyY2UodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRp
ZmllciwgV2ViS2l0OjpTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlIHJlc291cmNlLCBkb3VibGUg
ZmluaXNoVGltZSkKICAgICBEaWRGYWlsUmVzb3VyY2VMb2FkKHVpbnQ2NF90IHJlc291cmNlTG9h
ZElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCisgICAgCisgICAgVXBk
YXRlUXVpcmtzQW5kU25pZmZpbmcodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikgLT4g
KGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZm
aW5nRW5hYmxlZCkKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRTY2hlZHVsZXIuY3BwCmluZGV4IDdhZmNjZWIuLjA4ZTA4Y2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9O
ZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VC
dWZmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3VicmVzb3VyY2VMb2FkZXIu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTk1LDcgKzk2LDcgQEAgdm9p
ZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxvYWRlciog
cmVzb3VyY2VMb2FkZXIsIFJlc28KICAgICAgICAgcmVxdWVzdC5zZXRVUkwoZGF0YVVSTCk7CiAg
ICAgfQogCi0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrQ29ubmVjdGlvbigp
LT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6U2NoZWR1bGVOZXR3b3JrUmVxdWVzdChyZXF1ZXN0LCBwcmlvcml0eSksIE1lc3Nh
Z2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6U2NoZWR1bGVOZXR3b3JrUmVxdWVz
dDo6UmVwbHkoaWRlbnRpZmllciksIDApKSB7CisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQo
KS5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6U2NoZWR1bGVOZXR3b3JrUmVxdWVzdChyZXF1
ZXN0LCBwcmlvcml0eSwgcmVzb3VyY2VMb2FkZXItPnNob3VsZFNuaWZmQ29udGVudCgpKSwgTWVz
c2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTY2hlZHVsZU5ldHdvcmtSZXF1
ZXN0OjpSZXBseShpZGVudGlmaWVyKSwgMCkpIHsKICAgICAgICAgLy8gRklYTUUgKE5ldHdvcmtQ
cm9jZXNzKTogV2hhdCBzaG91bGQgd2UgZG8gaWYgdGhpcyBmYWlscz8KICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgfQpAQCAtMjM3LDYgKzIzOCwyMSBAQCB2b2lkIFdlYlJlc291
cmNlTG9hZFNjaGVkdWxlcjo6ZGlkRmFpbFJlc291cmNlTG9hZChSZXNvdXJjZUxvYWRJZGVudGlm
aWVyIGlkZW50aQogICAgIGxvYWRlci0+ZGlkRmFpbChlcnJvcik7CiB9CiAKK3ZvaWQgV2ViUmVz
b3VyY2VMb2FkU2NoZWR1bGVyOjp1cGRhdGVRdWlya3NBbmRTbmlmZmluZyhSZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wmIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29s
JiBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKQoreworICAgIFJlc291cmNlTG9hZGVy
KiBsb2FkZXIgPSBtX3BlbmRpbmdSZXNvdXJjZUxvYWRlcnMuZ2V0KGlkZW50aWZpZXIpLmdldCgp
OworICAgIEFTU0VSVChsb2FkZXIpOworICAgIAorICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IGxv
YWRlci0+ZnJhbWVMb2FkZXIoKS0+ZnJhbWUoKS0+c2V0dGluZ3MoKTsKKyAgICBBU1NFUlQoc2V0
dGluZ3MpOworICAgIAorICAgIGlmICghc2V0dGluZ3MpCisgICAgICAgIHJldHVybjsKKworICAg
IG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0gc2V0dGluZ3MtPm5lZWRzU2l0ZVNwZWNpZmljUXVp
cmtzKCk7CisgICAgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCA9IHNldHRpbmdzLT5s
b2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuaAppbmRleCA2MTdiM2U3Li45ZGIyNzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5o
CkBAIC02MSw2ICs2MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShS
ZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7
CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2UoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VCdWZmZXImLCBkb3VibGUgZmluaXNoVGltZSk7CiAgICAgdm9p
ZCBkaWRGYWlsUmVzb3VyY2VMb2FkKFJlc291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImKTsKKyAgICB2b2lkIHVwZGF0ZVF1aXJrc0FuZFNuaWZmaW5nKFJl
c291cmNlTG9hZElkZW50aWZpZXIsIGJvb2wmIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29s
JiBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKTsKIAogcHJpdmF0ZToKICAgICB2b2lk
IHNjaGVkdWxlTG9hZChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciosIFdlYkNvcmU6OlJlc291cmNl
TG9hZFByaW9yaXR5KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173696</attachid>
            <date>2012-11-12 12:57:52 -0800</date>
            <delta_ts>2012-11-12 13:10:39 -0800</delta_ts>
            <desc>Patch v3 - Just content sniffing</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>15355</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5YzE1OTVhLi5hZDZhOTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTItMTEtMTIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE5ldHdvcmtQcm9jZXNzOiBVc2UgYW4gYWNjdXJhdGUgc2hvdWxkQ29udGVudFNuaWZmIHZh
bHVlIHdoZW4gY3JlYXRpbmcgUmVzb3VyY2VIYW5kbGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE4NzIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBvc2Ugc2hvdWxkU25pZmZDb250ZW50IHRvIHBh
c3MgaXQgYWxvbmcgdG8gdGhlIE5ldHdvcmtQcm9jZXNzLgorCisgICAgICAgICogbG9hZGVyL1Jl
c291cmNlTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6c2hvdWxk
U25pZmZDb250ZW50KToKKwogMjAxMi0xMS0xMiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3
LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzNDIy
My4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKaW5kZXggNTRmNGQ2MC4uM2Ez
NDIxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKQEAgLTE0MCw2ICsx
NDAsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgS1VSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV9y
ZXF1ZXN0LnVybCgpOyB9IAogICAgIFJlc291cmNlSGFuZGxlKiBoYW5kbGUoKSBjb25zdCB7IHJl
dHVybiBtX2hhbmRsZS5nZXQoKTsgfQogICAgIGJvb2wgc2hvdWxkU2VuZFJlc291cmNlTG9hZENh
bGxiYWNrcygpIGNvbnN0IHsgcmV0dXJuIG1fb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9PSBT
ZW5kQ2FsbGJhY2tzOyB9CisgICAgYm9vbCBzaG91bGRTbmlmZkNvbnRlbnQoKSBjb25zdCB7IHJl
dHVybiBtX29wdGlvbnMuc25pZmZDb250ZW50ID09IFNuaWZmQ29udGVudDsgfQogCiAgICAgYm9v
bCByZWFjaGVkVGVybWluYWxTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhY2hlZFRlcm1pbmFs
U3RhdGU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGRjMzE1NzYuLmFmZTkwZmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzMSBAQAorMjAxMi0xMS0xMiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5j
b20+CisKKyAgICAgICAgTmV0d29ya1Byb2Nlc3M6IFVzZSBhbiBhY2N1cmF0ZSBzaG91bGRDb250
ZW50U25pZmYgdmFsdWUgd2hlbiBjcmVhdGluZyBSZXNvdXJjZUhhbmRsZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTg3MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBXZWJQcm9jZXNzIG5vdyBw
YXNzZXMgInNob3VsZENvbnRlbnRTbmlmZiIgb3ZlciB0byB0aGUgTmV0d29ya1Byb2Nlc3Mgd2l0
aCB0aGUgcmVxdWVzdHMgc28gaXQgY2FuIGJlIHJlc3BlY3RlZC4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNjaGVkdWxlTmV0d29ya1JlcXVl
c3QpOiBVcGRhdGUgdG8gcGFzcyB0aHJvdWdoICJzaG91bGRDb250ZW50U25pZmYiCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbjoKKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXF1ZXN0LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1JlcXVlc3Q6Ok5ldHdvcmtSZXF1ZXN0KToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1JlcXVlc3Q6OnN0YXJ0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUmVxdWVzdC5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVxdWVzdDo6Y3Jl
YXRlKToKKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkU2NoZWR1bGVy
OjpzY2hlZHVsZU5ldHdvcmtSZXF1ZXN0KTogVXBkYXRlIHRvIHBhc3MgdGhyb3VnaCAic2hvdWxk
Q29udGVudFNuaWZmIgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmg6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU2No
ZWR1bGVyOjpzY2hlZHVsZUxvYWQpOiBVcGRhdGUgdG8gcGFzcyB0aHJvdWdoICJzaG91bGRDb250
ZW50U25pZmYiCisKIDIwMTItMTEtMTIgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdv
LnNhbnRvc0BpbnRlbC5jb20+CiAKICAgICAgICAgW1dLMl0gSW5kZW50YXRpb24gbml0IG9uIFdl
YlBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBlZDBkOTM0Li4xMTM4NTJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSAiQ29ubmVjdGlvblN0YWNrLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKICNp
bmNsdWRlICJOZXR3b3JrUmVxdWVzdC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2Fk
ZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1J1bkxvb3AuaD4KIApAQCAtMTA5LDkgKzExMCw5IEBAIHZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uCiB7CiB9CiAKLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnNjaGVkdWxlTmV0d29ya1JlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1
aW50MzJfdCByZXNvdXJjZUxvYWRQcmlvcml0eSwgUmVzb3VyY2VMb2FkSWRlbnRpZmllciYgcmVz
b3VyY2VMb2FkSWRlbnRpZmllcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnNjaGVkdWxlTmV0d29ya1JlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCB1
aW50MzJfdCByZXNvdXJjZUxvYWRQcmlvcml0eSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIFJl
c291cmNlTG9hZElkZW50aWZpZXImIHJlc291cmNlTG9hZElkZW50aWZpZXIpCiB7Ci0gICAgcmVz
b3VyY2VMb2FkSWRlbnRpZmllciA9IE5ldHdvcmtQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrUmVz
b3VyY2VMb2FkU2NoZWR1bGVyKCkuc2NoZWR1bGVOZXR3b3JrUmVxdWVzdChyZXF1ZXN0LCBzdGF0
aWNfY2FzdDxSZXNvdXJjZUxvYWRQcmlvcml0eT4ocmVzb3VyY2VMb2FkUHJpb3JpdHkpLCB0aGlz
KTsKKyAgICByZXNvdXJjZUxvYWRJZGVudGlmaWVyID0gTmV0d29ya1Byb2Nlc3M6OnNoYXJlZCgp
Lm5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXIoKS5zY2hlZHVsZU5ldHdvcmtSZXF1ZXN0KHJl
cXVlc3QsIHN0YXRpY19jYXN0PFJlc291cmNlTG9hZFByaW9yaXR5PihyZXNvdXJjZUxvYWRQcmlv
cml0eSksIHNob3VsZENvbnRlbnRTbmlmZiA/IFNuaWZmQ29udGVudCA6IERvTm90U25pZmZDb250
ZW50LCB0aGlzKTsKIH0KIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YWRk
TG9hZEluUHJvZ3Jlc3MoY29uc3QgV2ViQ29yZTo6S1VSTCYgdXJsLCBSZXNvdXJjZUxvYWRJZGVu
dGlmaWVyJiBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggOTFmMDJh
YS4uMWRkMWYxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC03NCw3ICs3NCw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3NNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6
TWVzc2FnZUlELCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNz
YWdlRW5jb2Rlcj4mKTsKICAgICAKLSAgICB2b2lkIHNjaGVkdWxlTmV0d29ya1JlcXVlc3QoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgdWludDMyX3QgcmVzb3VyY2VMb2FkUHJpb3Jp
dHksIFJlc291cmNlTG9hZElkZW50aWZpZXImKTsKKyAgICB2b2lkIHNjaGVkdWxlTmV0d29ya1Jl
cXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgdWludDMyX3QgcmVzb3VyY2VM
b2FkUHJpb3JpdHksIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBSZXNvdXJjZUxvYWRJZGVudGlm
aWVyJik7CiAgICAgdm9pZCBhZGRMb2FkSW5Qcm9ncmVzcyhjb25zdCBXZWJDb3JlOjpLVVJMJiwg
UmVzb3VyY2VMb2FkSWRlbnRpZmllciYpOwogICAgIHZvaWQgcmVtb3ZlTG9hZElkZW50aWZpZXIo
UmVzb3VyY2VMb2FkSWRlbnRpZmllcik7CiAgICAgdm9pZCBjcm9zc09yaWdpblJlZGlyZWN0UmVj
ZWl2ZWQoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6S1VSTCYgcmVkaXJl
Y3RVUkwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRl
eCBmYWY0NGE3Li5mZmQzYjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgpAQCAtMjgsNyArMjgsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyB7CiAgICAgLy8gdGhhdCB3ZSBzeW5jaHJvbm91c2x5IGdldCBhbiBpZGVu
dGlmaWVyIGZvciBuZXcgUmVzb3VyY2VMb2FkZXJzIGFzIHRoZXkgYXJlIGNyZWF0ZWQuCiAgICAg
Ly8gVGhlcmUncyBwb3NzaWJsZSBSZXNvdXJjZUxvYWRlciBpZGVudGlmaWVyIHJlZmFjdG9yaW5n
IHRoYXQgY2FuIHJlbW92ZSB0aGF0IHJlcXVpcmVtZW50LgogICAgIC8vIFdlIG1pZ2h0IGFsc28g
aGF2ZSB0aGUgTmV0d29ya1Byb2Nlc3MgZGl2dnkgdXAgaWRlbnRpZmllcnMgaW4gYmxvY2tzIHRv
IGVhY2ggV2ViUHJvY2VzcyBiZWZvcmVoYW5kLgotICAgIFNjaGVkdWxlTmV0d29ya1JlcXVlc3Qo
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHVpbnQzMl90IHJlc291cmNlTG9hZFBy
aW9yaXR5KSAtPiAodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikKKyAgICBTY2hlZHVs
ZU5ldHdvcmtSZXF1ZXN0KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCB1aW50MzJf
dCByZXNvdXJjZUxvYWRQcmlvcml0eSwgYm9vbCBzaG91bGRDb250ZW50U25pZmYpIC0+ICh1aW50
NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKQogICAgIEFkZExvYWRJblByb2dyZXNzKFdlYkNv
cmU6OktVUkwgdXJsKSAtPiAodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikKICAgICBS
ZW1vdmVMb2FkSWRlbnRpZmllcih1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVxdWVzdC5jcHAKaW5k
ZXggMGQ2OTIyYS4uNTc1MTUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1JlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXF1ZXN0LmNwcApAQCAtNDUsOSArNDUsMTAgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1OZXR3b3JrUmVxdWVzdDo6TmV0d29y
a1JlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJj
ZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIsIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
KiBjb25uZWN0aW9uKQorTmV0d29ya1JlcXVlc3Q6Ok5ldHdvcmtSZXF1ZXN0KGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBDb250ZW50U25pZmZpbmdQb2xpY3kgY29udGVudFNuaWZmaW5nUG9saWN5LCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyogY29ubmVjdGlvbikKICAgICA6IG1fcmVxdWVzdChy
ZXF1ZXN0KQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCisgICAgLCBtX2NvbnRlbnRT
bmlmZmluZ1BvbGljeShjb250ZW50U25pZmZpbmdQb2xpY3kpCiAgICAgLCBtX2Nvbm5lY3Rpb24o
Y29ubmVjdGlvbikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtNzIsOCArNzMs
OCBAQCB2b2lkIE5ldHdvcmtSZXF1ZXN0OjpzdGFydCgpCiAgICAgLy8gRklYTUUgKE5ldHdvcmtQ
cm9jZXNzKTogQ3JlYXRlIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0IHdpdGggYWN0dWFsIHNldHRp
bmdzLgogICAgIG1fbmV0d29ya2luZ0NvbnRleHQgPSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6
Y3JlYXRlKGZhbHNlLCBmYWxzZSk7CiAKLSAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBQ
YXNzIGFuIGFjdHVhbCB2YWx1ZSBmb3Igc2hvdWxkQ29udGVudFNuaWZmIChYTUxIdHRwUmVxdWVz
dCBuZWVkcyB0aGF0KS4KLSAgICBtX2hhbmRsZSA9IFJlc291cmNlSGFuZGxlOjpjcmVhdGUobV9u
ZXR3b3JraW5nQ29udGV4dC5nZXQoKSwgbV9yZXF1ZXN0LCB0aGlzLCBmYWxzZSwgZmFsc2UpOwor
ICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IFBhc3MgYW4gYWN0dWFsIHZhbHVlIGZvciBk
ZWZlcnNMb2FkaW5nCisgICAgbV9oYW5kbGUgPSBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKG1fbmV0
d29ya2luZ0NvbnRleHQuZ2V0KCksIG1fcmVxdWVzdCwgdGhpcywgZmFsc2UgLyogZGVmZXJzTG9h
ZGluZyAqLywgbV9jb250ZW50U25pZmZpbmdQb2xpY3kgPT0gU25pZmZDb250ZW50KTsKIH0KIAog
c3RhdGljIGJvb2wgc3RvcFJlcXVlc3RzQ2FsbGVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVxdWVzdC5oIGIvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1JlcXVlc3QuaAppbmRleCAyNDQ3ODk4Li5mZDM4ZTA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVxdWVz
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXF1ZXN0LmgK
QEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZUNsaWVudC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXJPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZVJlcXVlc3QuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDQsOSArNDUsOSBA
QCB0eXBlZGVmIHVpbnQ2NF90IFJlc291cmNlTG9hZElkZW50aWZpZXI7CiAKIGNsYXNzIE5ldHdv
cmtSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8TmV0d29ya1JlcXVlc3Q+LCBwdWJsaWMgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NPYnNlcnZlciwgcHVibGljIFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPE5ldHdvcmtSZXF1
ZXN0PiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNv
dXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIsIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKiBjb25uZWN0aW9uKQorICAgIHN0YXRpYyBSZWZQdHI8TmV0d29ya1JlcXVlc3Q+IGNyZWF0
ZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlTG9hZElk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRl
bnRTbmlmZmluZ1BvbGljeSwgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGNvbm5lY3Rp
b24pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IE5ldHdvcmtSZXF1ZXN0KHJl
cXVlc3QsIGlkZW50aWZpZXIsIGNvbm5lY3Rpb24pKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBOZXR3b3JrUmVxdWVzdChyZXF1ZXN0LCBpZGVudGlmaWVyLCBjb250ZW50U25pZmZpbmdQ
b2xpY3ksIGNvbm5lY3Rpb24pKTsKICAgICB9CiAgICAgCiAgICAgfk5ldHdvcmtSZXF1ZXN0KCk7
CkBAIC05OCw3ICs5OSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIE5ldHdv
cmtSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlTG9hZElk
ZW50aWZpZXIsIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKik7CisgICAgTmV0d29ya1Jl
cXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VMb2FkSWRlbnRp
ZmllciwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyopOwogCiAgICAgdm9pZCBzY2hlZHVsZVN0b3BPbk1haW5UaHJlYWQoKTsKICAg
ICBzdGF0aWMgdm9pZCBwZXJmb3JtU3RvcHModm9pZCopOwpAQCAtMTEwLDcgKzExMSw3IEBAIHBy
aXZhdGU6CiAKICAgICBSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IG1fbmV0d29ya2lu
Z0NvbnRleHQ7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlJlc291cmNlSGFuZGxlPiBtX2hhbmRsZTsK
LQorICAgIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBtX2NvbnRlbnRTbmlmZmluZ1Bv
bGljeTsKICAgICBSZWZQdHI8TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fY29ubmVj
dGlvbjsKIAogICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IFJlc3BvbnNlIGRhdGEgbGlm
ZXRpbWUgc2hvdWxkIGJlIG1hbmFnZWQgb3V0c2lkZSBOZXR3b3JrUmVxdWVzdC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZFNjaGVkdWxlci5jcHAKaW5kZXggYmNjNWU0NC4uMGQ3NDU0NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZFNjaGVkdWxlci5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyOjpyZXF1ZXN0VGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxOZXR3b3JrUmVzb3UK
ICAgICBzZXJ2ZVBlbmRpbmdSZXF1ZXN0cygpOwogfQogCi1SZXNvdXJjZUxvYWRJZGVudGlmaWVy
IE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTmV0d29ya1JlcXVlc3QoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0
eSwgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGNvbm5lY3Rpb24pCitSZXNvdXJjZUxv
YWRJZGVudGlmaWVyIE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTmV0d29y
a1JlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUxvYWRQcmlv
cml0eSBwcmlvcml0eSwgQ29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGlj
eSwgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIGNvbm5lY3Rpb24pCiB7ICAgIAogICAg
IFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllciA9ICsrc19jdXJyZW50UmVzb3VyY2VM
b2FkSWRlbnRpZmllcjsKIApAQCAtNDYsNyArNDYsNyBAQCBSZXNvdXJjZUxvYWRJZGVudGlmaWVy
IE5ldHdvcmtSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTmV0d29ya1JlcXVlc3QoY29u
cwogCiAgICAgSG9zdFJlY29yZCogaG9zdCA9IGhvc3RGb3JVUkwocmVxdWVzdC51cmwoKSwgQ3Jl
YXRlSWZOb3RGb3VuZCk7CiAgICAgYm9vbCBoYWRSZXF1ZXN0cyA9IGhvc3QtPmhhc1JlcXVlc3Rz
KCk7Ci0gICAgaG9zdC0+c2NoZWR1bGUoTmV0d29ya1JlcXVlc3Q6OmNyZWF0ZShyZXF1ZXN0LCBp
ZGVudGlmaWVyLCBjb25uZWN0aW9uKSwgcHJpb3JpdHkpOworICAgIGhvc3QtPnNjaGVkdWxlKE5l
dHdvcmtSZXF1ZXN0OjpjcmVhdGUocmVxdWVzdCwgaWRlbnRpZmllciwgY29udGVudFNuaWZmaW5n
UG9saWN5LCBjb25uZWN0aW9uKSwgcHJpb3JpdHkpOwogICAgIG1faWRlbnRpZmllcnMuYWRkKGlk
ZW50aWZpZXIsIGhvc3QpOwogCiAgICAgaWYgKHByaW9yaXR5ID4gUmVzb3VyY2VMb2FkUHJpb3Jp
dHlMb3cgfHwgIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpIHx8IChwcmlv
cml0eSA9PSBSZXNvdXJjZUxvYWRQcmlvcml0eUxvdyAmJiAhaGFkUmVxdWVzdHMpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyLmgKaW5kZXggMGY5OGZmZC4uMmZhOGViMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBOZXR3b3JrUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyX2gKICNkZWZpbmUgTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlcl9oCiAKKyNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZGVyT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC00NSw3ICs0Niw3IEBAIHB1YmxpYzoKICAgICBOZXR3b3Jr
UmVzb3VyY2VMb2FkU2NoZWR1bGVyKCk7CiAgICAgCiAgICAgLy8gQWRkcyB0aGUgcmVxdWVzdCB0
byB0aGUgcXVldWUgZm9yIGl0cyBob3N0IGFuZCBjcmVhdGUgYSB1bmlxdWUgaWRlbnRpZmllciBm
b3IgaXQuCi0gICAgUmVzb3VyY2VMb2FkSWRlbnRpZmllciBzY2hlZHVsZU5ldHdvcmtSZXF1ZXN0
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlJlc291cmNlTG9hZFBy
aW9yaXR5LCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyopOworICAgIFJlc291cmNlTG9h
ZElkZW50aWZpZXIgc2NoZWR1bGVOZXR3b3JrUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSwgV2ViQ29yZTo6Q29udGVu
dFNuaWZmaW5nUG9saWN5LCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyopOwogICAgIAog
ICAgIC8vIENyZWF0ZXMgYSB1bmlxdWUgaWRlbnRpZmllciBmb3IgYW4gYWxyZWFkeS1pbi1wcm9n
cmVzcyBsb2FkLgogICAgIFJlc291cmNlTG9hZElkZW50aWZpZXIgYWRkTG9hZEluUHJvZ3Jlc3Mo
Y29uc3QgV2ViQ29yZTo6S1VSTCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oCmluZGV4IDEyNTk3
ZWIuLjJjODEyZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTYzLDYgKzYzLDcgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVy
TmFtZSwgQ29yZUlQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBPVkVSUklERTsKIAog
ICAgIHZvaWQgZGlkUmVjZWl2ZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2UoQ29yZUlQ
Qzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29k
ZXImKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVz
c2FnZShDb3JlSVBDOjpDb25uZWN0aW9uKiwgQ29yZUlQQzo6TWVzc2FnZUlELCBDb3JlSVBDOjpN
ZXNzYWdlRGVjb2RlciYsIE93blB0cjxDb3JlSVBDOjpNZXNzYWdlRW5jb2Rlcj4mKTsKIAogICAg
IHZvaWQgd2lsbFNlbmRSZXF1ZXN0KHVpbnQ2NF90IHJlcXVlc3RJRCwgUmVzb3VyY2VMb2FkSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNl
TG9hZElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291
cmNlTG9hZFNjaGVkdWxlci5jcHAKaW5kZXggN2FmY2NlYi4uMWY2NmVmNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNl
TG9hZFNjaGVkdWxlci5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUJ1
ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJyZXNvdXJjZUxvYWRlci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtOTUsNyArOTYsNyBAQCB2b2lk
IFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyKiBy
ZXNvdXJjZUxvYWRlciwgUmVzbwogICAgICAgICByZXF1ZXN0LnNldFVSTChkYXRhVVJMKTsKICAg
ICB9CiAKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgpLm5ldHdvcmtDb25uZWN0aW9uKCkt
PmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpTY2hlZHVsZU5ldHdvcmtSZXF1ZXN0KHJlcXVlc3QsIHByaW9yaXR5KSwgTWVzc2Fn
ZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTY2hlZHVsZU5ldHdvcmtSZXF1ZXN0
OjpSZXBseShpZGVudGlmaWVyKSwgMCkpIHsKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgp
Lm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTY2hlZHVsZU5ldHdvcmtSZXF1ZXN0KHJlcXVl
c3QsIHByaW9yaXR5LCByZXNvdXJjZUxvYWRlci0+c2hvdWxkU25pZmZDb250ZW50KCkpLCBNZXNz
YWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNjaGVkdWxlTmV0d29ya1JlcXVl
c3Q6OlJlcGx5KGlkZW50aWZpZXIpLCAwKSkgewogICAgICAgICAvLyBGSVhNRSAoTmV0d29ya1By
b2Nlc3MpOiBXaGF0IHNob3VsZCB3ZSBkbyBpZiB0aGlzIGZhaWxzPwogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICB9Cg==
</data>
<flag name="review"
          id="188480"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>