<?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>118292</bug_id>
          
          <creation_ts>2013-07-02 04:47:04 -0700</creation_ts>
          <short_desc>Move SVGTests attributes parsing to SVGGraphicsElement</short_desc>
          <delta_ts>2013-07-03 01:04:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>fmalita</cc>
    
    <cc>krit</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>pdr</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>schenney</cc>
    
    <cc>thorton</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>905336</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-07-02 04:47:04 -0700</bug_when>
    <thetext>Move SVGTests attributes parsing to SVGGraphicsElement instead of doing this in each of its subclasses. SVGGraphicsElement is now the one subclassing SVGTests after r152167.

Corresponding Blink CL:
https://codereview.chromium.org/18328007/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905350</commentid>
    <comment_count>1</comment_count>
      <attachid>205894</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-07-02 05:10:31 -0700</bug_when>
    <thetext>Created attachment 205894
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905540</commentid>
    <comment_count>2</comment_count>
      <attachid>205894</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-07-02 12:20:41 -0700</bug_when>
    <thetext>Comment on attachment 205894
Patch

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

Some questions to the patch.

&gt; Source/WebCore/svg/SVGSVGElement.cpp:255
&gt; +bool SVGSVGElement::isSupportedAttribute(const QualifiedName&amp; attrName)
&gt; +{
&gt; +    DEFINE_STATIC_LOCAL(HashSet&lt;QualifiedName&gt;, supportedAttributes, ());
&gt; +    if (supportedAttributes.isEmpty()) {
&gt; +        SVGExternalResourcesRequired::addSupportedAttributes(supportedAttributes);
&gt; +        SVGFitToViewBox::addSupportedAttributes(supportedAttributes);
&gt; +        SVGLangSpace::addSupportedAttributes(supportedAttributes);
&gt; +        SVGZoomAndPan::addSupportedAttributes(supportedAttributes);
&gt; +        supportedAttributes.add(SVGNames::xAttr);
&gt; +        supportedAttributes.add(SVGNames::yAttr);
&gt; +        supportedAttributes.add(SVGNames::widthAttr);
&gt; +        supportedAttributes.add(SVGNames::heightAttr);
&gt; +        supportedAttributes.add(SVGNames::onzoomAttr);
&gt; +        supportedAttributes.add(HTMLNames::onabortAttr);
&gt; +        supportedAttributes.add(HTMLNames::onerrorAttr);
&gt; +        supportedAttributes.add(HTMLNames::onunloadAttr);
&gt; +        supportedAttributes.add(HTMLNames::onresizeAttr);
&gt; +        supportedAttributes.add(HTMLNames::onscrollAttr);
&gt; +    }
&gt; +    return supportedAttributes.contains&lt;SVGAttributeHashTranslator&gt;(attrName);

Can you explain this? Why did you add these elements here? They were not removed anywhere else and are not part of SVGTest. Weren&apos;t they part of SVGLocatable? Should also be described in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905557</commentid>
    <comment_count>3</comment_count>
      <attachid>205894</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-07-02 13:06:28 -0700</bug_when>
    <thetext>Comment on attachment 205894
Patch

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

&gt;&gt; Source/WebCore/svg/SVGSVGElement.cpp:255
&gt;&gt; +    return supportedAttributes.contains&lt;SVGAttributeHashTranslator&gt;(attrName);
&gt; 
&gt; Can you explain this? Why did you add these elements here? They were not removed anywhere else and are not part of SVGTest. Weren&apos;t they part of SVGLocatable? Should also be described in the ChangeLog.

I was registering supported attributes and forwarding handling to the parent class in parseAttribute() and svgAttributeChanged() if the attribute is not supported. This is similar to other SVG classes.

However, the real issue is that SVGSVGElement::svgAttributeChanged() falls back to calling SVGStyledElement::svgAttributeChanged() instead of SVGGraphicsElement::svgAttributeChanged() when the attribute is not supported. I will fix SVGSVGElement::svgAttributeChanged() instead and reupload a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905564</commentid>
    <comment_count>4</comment_count>
      <attachid>205941</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-07-02 13:19:28 -0700</bug_when>
    <thetext>Created attachment 205941
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905598</commentid>
    <comment_count>5</comment_count>
      <attachid>205941</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-07-02 15:28:45 -0700</bug_when>
    <thetext>Comment on attachment 205941
Patch

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

Is our test coverage for this good?

&gt; Source/WebCore/svg/SVGGraphicsElement.cpp:119
&gt; +    } else if (SVGTests::parseAttribute(name, value)) {
&gt; +        return;
&gt;      }

WebKit coding style would make this a separate if statement (&quot;no else after return&quot;) and no braces around the single line &quot;return&quot; if body.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905709</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-07-03 00:03:57 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 205941 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=205941&amp;action=review
&gt; 
&gt; Is our test coverage for this good?

Based on my grep&apos;ing, yes, test coverage seems good for this.

&gt; 
&gt; &gt; Source/WebCore/svg/SVGGraphicsElement.cpp:119
&gt; &gt; +    } else if (SVGTests::parseAttribute(name, value)) {
&gt; &gt; +        return;
&gt; &gt;      }
&gt; 
&gt; WebKit coding style would make this a separate if statement (&quot;no else after return&quot;) and no braces around the single line &quot;return&quot; if body.

Right, will fix and reupload.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905710</commentid>
    <comment_count>7</comment_count>
      <attachid>205971</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-07-03 00:04:50 -0700</bug_when>
    <thetext>Created attachment 205971
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905723</commentid>
    <comment_count>8</comment_count>
      <attachid>205971</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-03 01:04:37 -0700</bug_when>
    <thetext>Comment on attachment 205971
Patch for landing

Clearing flags on attachment: 205971

Committed r152343: &lt;http://trac.webkit.org/changeset/152343&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>905724</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-03 01:04:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205894</attachid>
            <date>2013-07-02 05:10:31 -0700</date>
            <delta_ts>2013-07-02 13:19:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118292-20130702150826.patch</filename>
            <type>text/plain</type>
            <size>27951</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Q1ZWQ2Y2M3NjMxMDA4
NGQ4ZTNjZTllYmNjOTJiZmZlODQzMDU1MS4uYjRjMjA0OWUzYWU3OGRkODQxMWQ3N2YxNmJjNGU1
MTNlNDc1NzFlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEzLTA3LTAyICBDaHJp
c3RvcGhlIER1bWV6ICA8Y2guZHVtZXpAc2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBNb3Zl
IFNWR1Rlc3RzIGF0dHJpYnV0ZXMgcGFyc2luZyB0byBTVkdHcmFwaGljc0VsZW1lbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODI5MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgU1ZHVGVzdHMg
YXR0cmlidXRlcyBwYXJzaW5nIHRvIFNWR0dyYXBoaWNzRWxlbWVudCBpbnN0ZWFkIG9mIGRvaW5n
CisgICAgICAgIHRoaXMgaW4gZWFjaCBvZiBpdHMgc3ViY2xhc3Nlcy4gU1ZHR3JhcGhpY3NFbGVt
ZW50IGlzIG5vdyB0aGUgb25lCisgICAgICAgIHN1YmNsYXNzaW5nIFNWR1Rlc3RzIGFmdGVyIHIx
NTIxNjcuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAg
ICAgICAgKiBzdmcvU1ZHQUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQUVsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQ2lyY2xlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ2lyY2xlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQ2lyY2xlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6
CisgICAgICAgICogc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdDbGlwUGF0aEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0NsaXBQYXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2
Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGxpcHNlRWxl
bWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxsaXBz
ZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsbGlwc2VF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRm9yZWlnbk9iamVjdEVsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvcmVpZ25P
YmplY3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb3Jl
aWduT2JqZWN0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NW
R0dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0dFbGVtZW50Ojppc1N1cHBvcnRl
ZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdHRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQp
OgorICAgICAgICAqIHN2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHR3JhcGhpY3NFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdHcmFwaGljc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0dyYXBoaWNzRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAg
ICogc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUVs
ZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdl
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHTGluZUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGluZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpbmVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdMaW5lRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6
CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BhdGhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQYXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0
aEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdQb2x5RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6aXNTdXBwb3J0ZWRB
dHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9seUVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKToKKyAgICAgICAgKiBzdmcvU1ZHUmVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUmVjdEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1JlY3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdSZWN0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1NW
R0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6aXNTdXBwb3J0
ZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZCk6CisgICAgICAgICogc3ZnL1NWR1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZH
VXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50Ojppc1N1cHBv
cnRlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKToKKwogMjAxMy0wNy0wMiAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIEZpeCBjYXN0LWFsaWduIHdhcm5pbmdzIGluIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVs
ZW1lbnQuY3BwCmluZGV4IGEwMGU4OGEwOTQ4NDAxYTM1Y2FiNDQ3ZmUxMDM4NjEyMTYxMTE1ODQu
LjE0OGYwNWRmZTNhOTIzYTAzY2M4YTZiNzlkYzIzMWRlNzc1YjQzMzggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FFbGVtZW50LmNwcApAQCAtOTIsNyArOTIsNiBAQCBib29sIFNWR0FFbGVtZW50Ojppc1N1
cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0
ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAgICAg
ICAgU1ZHVVJJUmVmZXJlbmNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJp
YnV0ZXMpOwotICAgICAgICBTVkdUZXN0czo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0
ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1
dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAg
ICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6dGFyZ2V0QXR0cik7CkBAIC0x
MTQsOCArMTEzLDYgQEAgdm9pZCBTVkdBRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJgogCiAgICAgaWYgKFNWR1VSSVJl
ZmVyZW5jZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKQogICAgICAgICByZXR1cm47Ci0g
ICAgaWYgKFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkpCi0gICAgICAgIHJl
dHVybjsKICAgICBpZiAoU1ZHTGFuZ1NwYWNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkp
CiAgICAgICAgIHJldHVybjsKICAgICBpZiAoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6
cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVs
ZW1lbnQuY3BwCmluZGV4IGFlOGU0MDBkZDdiZTMxMTJmNWY1M2JmYWEwNjUxYjllNmU1MDZhZTAu
LmQzMGEyNjlmMmY3YTNmZjlmODc2NWMyNzA2ZmVhYWNiOThjYjI5MTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAKQEAgLTY5LDcgKzY5LDYgQEAgYm9vbCBTVkdDaXJj
bGVFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4s
IHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5p
c0VtcHR5KCkpIHsKLSAgICAgICAgU1ZHVGVzdHM6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3Vw
cG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0
cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsK
ICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmN4QXR0cik7CkBAIC05
MSw4ICs5MCw3IEBAIHZvaWQgU1ZHQ2lyY2xlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyCiAgICAgICAgIHNldEN5QmFzZVZh
bHVlKFNWR0xlbmd0aDo6Y29uc3RydWN0KExlbmd0aE1vZGVIZWlnaHQsIHZhbHVlLCBwYXJzZUVy
cm9yKSk7CiAgICAgZWxzZSBpZiAobmFtZSA9PSBTVkdOYW1lczo6ckF0dHIpCiAgICAgICAgIHNl
dFJCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZU90aGVyLCB2YWx1ZSwg
cGFyc2VFcnJvciwgRm9yYmlkTmVnYXRpdmVMZW5ndGhzKSk7Ci0gICAgZWxzZSBpZiAoU1ZHVGVz
dHM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKQotICAgICAgICAgICAgIHx8IFNWR0xhbmdT
cGFjZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpCisgICAgZWxzZSBpZiAoU1ZHTGFuZ1Nw
YWNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkKICAgICAgICAgICAgICB8fCBTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkpIHsKICAg
ICB9IGVsc2UKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0xMTYsOSArMTE0LDYg
QEAgdm9pZCBTVkdDaXJjbGVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIGlmIChpc0xlbmd0aEF0dHJpYnV0ZSkKICAgICAgICAg
dXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5mb3JtYXRpb24oKTsKIAotICAgIGlmIChTVkdUZXN0czo6
aGFuZGxlQXR0cmlidXRlQ2hhbmdlKHRoaXMsIGF0dHJOYW1lKSkKLSAgICAgICAgcmV0dXJuOwot
CiAgICAgUmVuZGVyU1ZHU2hhcGUqIHJlbmRlcmVyID0gdG9SZW5kZXJTVkdTaGFwZSh0aGlzLT5y
ZW5kZXJlcigpKTsKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCmluZGV4IGQ3NGQ5ZDkxMGUwZGU5Mjk4
OGRiN2MyNjhiMDU2M2U1NWQyMDU1NzIuLmIwOWI5YTAyOWRkODM1ZTM1YTBhZTc3ZGZhN2U1MWM2
ODY2YmVkNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCkBA
IC02MSw3ICs2MSw2IEBAIGJvb2wgU1ZHQ2xpcFBhdGhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsK
ICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgU1ZHVGVz
dHM6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAg
IFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVz
KTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0
cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5hZGQoU1ZHTmFtZXM6OmNsaXBQYXRoVW5pdHNBdHRyKTsKQEAgLTgzLDggKzgyLDYgQEAgdm9p
ZCBTVkdDbGlwUGF0aEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21pY1MKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChT
VkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKQotICAgICAgICByZXR1cm47CiAg
ICAgaWYgKFNWR0xhbmdTcGFjZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKQogICAgICAg
ICByZXR1cm47CiAgICAgaWYgKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0
cmlidXRlKG5hbWUsIHZhbHVlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdF
bGxpcHNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQu
Y3BwCmluZGV4IDFmZTMzODI3ZjJiOWRhZWQ0YTc5Y2YyM2NhMjNhYjc4YTA5MGNlMDEuLjBmYjlj
MjQ4YWExZmUyZDAwMjFkOTJlYWE4NzUxOTRiZmMzNTQyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0VsbGlwc2VFbGVtZW50LmNwcApAQCAtNzAsNyArNzAsNiBAQCBib29sIFNWR0VsbGlwc2VF
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1
cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgU1ZHVGVzdHM6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9y
dGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmli
dXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAg
ICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmN4QXR0cik7CkBAIC05NSw4
ICs5NCw3IEBAIHZvaWQgU1ZHRWxsaXBzZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0CiAgICAgICAgIHNldFJ4QmFzZVZhbHVl
KFNWR0xlbmd0aDo6Y29uc3RydWN0KExlbmd0aE1vZGVXaWR0aCwgdmFsdWUsIHBhcnNlRXJyb3Is
IEZvcmJpZE5lZ2F0aXZlTGVuZ3RocykpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6
OnJ5QXR0cikKICAgICAgICAgc2V0UnlCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVu
Z3RoTW9kZUhlaWdodCwgdmFsdWUsIHBhcnNlRXJyb3IsIEZvcmJpZE5lZ2F0aXZlTGVuZ3Rocykp
OwotICAgIGVsc2UgaWYgKFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkKLSAg
ICAgICAgICAgICB8fCBTVkdMYW5nU3BhY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKQor
ICAgIGVsc2UgaWYgKFNWR0xhbmdTcGFjZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpCiAg
ICAgICAgICAgICAgfHwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1
dGUobmFtZSwgdmFsdWUpKSB7CiAgICAgfSBlbHNlCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpAQCAtMTIwLDkgKzExOCw2IEBAIHZvaWQgU1ZHRWxsaXBzZUVsZW1lbnQ6OnN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAKICAgICBpZiAoaXNM
ZW5ndGhBdHRyaWJ1dGUpCiAgICAgICAgIHVwZGF0ZVJlbGF0aXZlTGVuZ3Roc0luZm9ybWF0aW9u
KCk7Ci0gCi0gICAgaWYgKFNWR1Rlc3RzOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2UodGhpcywgYXR0
ck5hbWUpKQotICAgICAgICByZXR1cm47CiAKICAgICBSZW5kZXJTVkdTaGFwZSogcmVuZGVyZXIg
PSB0b1JlbmRlclNWR1NoYXBlKHRoaXMtPnJlbmRlcmVyKCkpOwogICAgIGlmICghcmVuZGVyZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAppbmRl
eCBlODFjOGQzMmI2MTBmMjkwZGNmNjliZjM0OWUyYzk4YmI3NjczYWM1Li5lY2ExYmQyY2VhOWZl
NGZjOWVlOGQ2ZjIyMjk2ZGViNzI3YjU4ZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKQEAgLTczLDcgKzczLDYgQEAgYm9vbCBTVkdGb3Jl
aWduT2JqZWN0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVk
TmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmli
dXRlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgU1ZHVGVzdHM6OmFkZFN1cHBvcnRlZEF0dHJpYnV0
ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9y
dGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1
dGVzKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnhBdHRyKTsK
QEAgLTk4LDggKzk3LDcgQEAgdm9pZCBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXQKICAgICAgICAgc2V0V2lk
dGhCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZVdpZHRoLCB2YWx1ZSwg
cGFyc2VFcnJvcikpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmhlaWdodEF0dHIp
CiAgICAgICAgIHNldEhlaWdodEJhc2VWYWx1ZShTVkdMZW5ndGg6OmNvbnN0cnVjdChMZW5ndGhN
b2RlSGVpZ2h0LCB2YWx1ZSwgcGFyc2VFcnJvcikpOwotICAgIGVsc2UgaWYgKFNWR1Rlc3RzOjpw
YXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkKLSAgICAgICAgICAgICAgIHx8IFNWR0xhbmdTcGFj
ZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpCisgICAgZWxzZSBpZiAoU1ZHTGFuZ1NwYWNl
OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkKICAgICAgICAgICAgICAgIHx8IFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKSkgewogICAg
IH0gZWxzZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTEyNCw5ICsxMjIsNiBA
QCB2b2lkIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIGlmIChpc0xlbmd0aEF0dHJpYnV0ZSkKICAg
ICAgICAgdXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5mb3JtYXRpb24oKTsKIAotICAgIGlmIChTVkdU
ZXN0czo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlKHRoaXMsIGF0dHJOYW1lKSkKLSAgICAgICAgcmV0
dXJuOwotCiAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigp
KQogICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBhcmVudFJlc291
cmNlSW52YWxpZGF0aW9uKHJlbmRlcmVyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3Bw
CmluZGV4IDNmMWFjMzIyZTU2OWIwN2YwOTMzNGRmMjA5M2QxYWNhNTk1MDBkMDcuLmU2YWQxNGZi
Y2ZkNzE3OWNlOGY1YjU0NTE5OWE2NmQ3NWIyNWZjNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVt
ZW50LmNwcApAQCAtNTUsNyArNTUsNiBAQCBib29sIFNWR0dFbGVtZW50Ojppc1N1cHBvcnRlZEF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICBERUZJTkVfU1RB
VElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgp
KTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgU1ZH
VGVzdHM6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAg
ICAgIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1
dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVk
QXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICB9CkBAIC02OSw4ICs2OCw2IEBA
IHZvaWQgU1ZHR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21pY1N0cmluZyYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlm
IChTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKQotICAgICAgICByZXR1cm47
CiAgICAgaWYgKFNWR0xhbmdTcGFjZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKQogICAg
ICAgICByZXR1cm47CiAgICAgaWYgKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNl
QXR0cmlidXRlKG5hbWUsIHZhbHVlKSkKQEAgLTg3LDkgKzg0LDYgQEAgdm9pZCBTVkdHRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAg
ICB9CiAKICAgICBTVkdFbGVtZW50SW5zdGFuY2U6OkludmFsaWRhdGlvbkd1YXJkIGludmFsaWRh
dGlvbkd1YXJkKHRoaXMpOwotICAgIAotICAgIGlmIChTVkdUZXN0czo6aGFuZGxlQXR0cmlidXRl
Q2hhbmdlKHRoaXMsIGF0dHJOYW1lKSkKLSAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKFJlbmRl
ck9iamVjdCogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQogICAgICAgICBSZW5kZXJTVkdS
ZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uKHJlbmRl
cmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHAKaW5kZXggMTRh
ZDRmNDliNzMyM2IyNTgzYjA4ZjI5NjJkN2IwNzM5M2NkMzAxMi4uMDc1NWMxOWQ0N2YzYjQxZmY1
YzE0ZmEyN2Y3MWYwMmVlNTNjNzI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0dyYXBoaWNzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNz
RWxlbWVudC5jcHAKQEAgLTk0LDggKzk0LDEwIEBAIEFmZmluZVRyYW5zZm9ybSogU1ZHR3JhcGhp
Y3NFbGVtZW50OjpzdXBwbGVtZW50YWxUcmFuc2Zvcm0oKQogYm9vbCBTVkdHcmFwaGljc0VsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9y
dGVkQXR0cmlidXRlcywgKCkpOwotICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHko
KSkKKyAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgU1ZH
VGVzdHM6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAg
ICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp0cmFuc2Zvcm1BdHRyKTsKKyAg
ICB9CiAgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRl
SGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIApAQCAtMTEyLDYgKzExNCw4IEBAIHZvaWQg
U1ZHR3JhcGhpY3NFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9taWNTCiAgICAgICAgIGRldGFjaEFuaW1hdGVkVHJhbnNmb3JtTGlzdFdy
YXBwZXJzKG5ld0xpc3Quc2l6ZSgpKTsKICAgICAgICAgc2V0VHJhbnNmb3JtQmFzZVZhbHVlKG5l
d0xpc3QpOwogICAgICAgICByZXR1cm47CisgICAgfSBlbHNlIGlmIChTVkdUZXN0czo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpKSB7CisgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTEyNiw2ICsxMzAsOSBAQCB2b2lkIFNWR0dyYXBoaWNz
RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKIAogICAgIFNWR0VsZW1lbnRJbnN0YW5jZTo6SW52YWxpZGF0aW9uR3VhcmQgaW52YWxpZGF0
aW9uR3VhcmQodGhpcyk7CiAKKyAgICBpZiAoU1ZHVGVzdHM6OmhhbmRsZUF0dHJpYnV0ZUNoYW5n
ZSh0aGlzLCBhdHRyTmFtZSkpCisgICAgICAgIHJldHVybjsKKwogICAgIFJlbmRlck9iamVjdCog
b2JqZWN0ID0gcmVuZGVyZXIoKTsKICAgICBpZiAoIW9iamVjdCkKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAppbmRleCAyZjk0MjcxOTEyMGMzODc0
NzcxNzUxYzg2NDAzZjQzZmY3OGFmODcyLi4zYmJmZmUzYTRmNTVmMTYzMWU1MDAwMzM2OGIyNDg2
NWQ2NGMzY2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcApAQCAtNzcs
NyArNzcsNiBAQCBib29sIFNWR0ltYWdlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChI
YXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYg
KHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFNWR1Rlc3RzOjphZGRT
dXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdMYW5n
U3BhY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAg
ICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMo
c3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR1VSSVJlZmVyZW5jZTo6YWRkU3VwcG9y
dGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKQEAgLTEyNSw4ICsxMjQsNyBAQCB2
b2lkIFNWR0ltYWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbWljU3RyaQogICAgICAgICBzZXRXaWR0aEJhc2VWYWx1ZShTVkdMZW5n
dGg6OmNvbnN0cnVjdChMZW5ndGhNb2RlV2lkdGgsIHZhbHVlLCBwYXJzZUVycm9yLCBGb3JiaWRO
ZWdhdGl2ZUxlbmd0aHMpKTsKICAgICBlbHNlIGlmIChuYW1lID09IFNWR05hbWVzOjpoZWlnaHRB
dHRyKQogICAgICAgICBzZXRIZWlnaHRCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVu
Z3RoTW9kZUhlaWdodCwgdmFsdWUsIHBhcnNlRXJyb3IsIEZvcmJpZE5lZ2F0aXZlTGVuZ3Rocykp
OwotICAgIGVsc2UgaWYgKFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkKLSAg
ICAgICAgICAgICB8fCBTVkdMYW5nU3BhY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKQor
ICAgIGVsc2UgaWYgKFNWR0xhbmdTcGFjZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpCiAg
ICAgICAgICAgICAgfHwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1
dGUobmFtZSwgdmFsdWUpCiAgICAgICAgICAgICAgfHwgU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0
dHJpYnV0ZShuYW1lLCB2YWx1ZSkpIHsKICAgICB9IGVsc2UKQEAgLTE1Miw5ICsxNTAsNiBAQCB2
b2lkIFNWR0ltYWdlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyTmFtZSkKICAgICBpZiAoaXNMZW5ndGhBdHRyaWJ1dGUpCiAgICAgICAgIHVwZGF0
ZVJlbGF0aXZlTGVuZ3Roc0luZm9ybWF0aW9uKCk7CiAKLSAgICBpZiAoU1ZHVGVzdHM6OmhhbmRs
ZUF0dHJpYnV0ZUNoYW5nZSh0aGlzLCBhdHRyTmFtZSkpCi0gICAgICAgIHJldHVybjsKLQogICAg
IGlmIChTVkdVUklSZWZlcmVuY2U6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAg
ICAgIG1faW1hZ2VMb2FkZXIudXBkYXRlRnJvbUVsZW1lbnRJZ25vcmluZ1ByZXZpb3VzRXJyb3Io
KTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xp
bmVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAKaW5k
ZXggOGYyM2YxOWQwYTg0ZDEwOGVlYmZhYWU4MmJkODA3NzM0NmRmZWU5Yi4uYWM3Yzk5Y2NiZDBm
YjhhZDRjMjY3ODYwNGNjZTZlYWUzZDQ3MWEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xpbmVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVs
ZW1lbnQuY3BwCkBAIC02OSw3ICs2OSw2IEBAIGJvb2wgU1ZHTGluZUVsZW1lbnQ6OmlzU3VwcG9y
dGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewogICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRl
cywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewotICAgICAg
ICBTVkdUZXN0czo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsK
ICAgICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0
dHJpYnV0ZXMpOwogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBw
b3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6eDFBdHRyKTsKQEAgLTk0LDggKzkzLDcgQEAgdm9pZCBT
VkdMaW5lRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbWljU3RyaW4KICAgICAgICAgc2V0WDJCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25z
dHJ1Y3QoTGVuZ3RoTW9kZVdpZHRoLCB2YWx1ZSwgcGFyc2VFcnJvcikpOwogICAgIGVsc2UgaWYg
KG5hbWUgPT0gU1ZHTmFtZXM6OnkyQXR0cikKICAgICAgICAgc2V0WTJCYXNlVmFsdWUoU1ZHTGVu
Z3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZUhlaWdodCwgdmFsdWUsIHBhcnNlRXJyb3IpKTsKLSAg
ICBlbHNlIGlmIChTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpCi0gICAgICAg
ICAgICAgfHwgU1ZHTGFuZ1NwYWNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkKKyAgICBl
bHNlIGlmIChTVkdMYW5nU3BhY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKQogICAgICAg
ICAgICAgIHx8IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKG5h
bWUsIHZhbHVlKSkgewogICAgIH0gZWxzZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
QEAgLTEyMCw5ICsxMTgsNiBAQCB2b2lkIFNWR0xpbmVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIGlmIChpc0xlbmd0aEF0dHJp
YnV0ZSkKICAgICAgICAgdXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5mb3JtYXRpb24oKTsKIAotICAg
IGlmIChTVkdUZXN0czo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlKHRoaXMsIGF0dHJOYW1lKSkKLSAg
ICAgICAgcmV0dXJuOwotCiAgICAgUmVuZGVyU1ZHU2hhcGUqIHJlbmRlcmVyID0gdG9SZW5kZXJT
VkdTaGFwZSh0aGlzLT5yZW5kZXJlcigpKTsKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAppbmRleCA4MWEzZTY1OGQ3
ODE1NjAzZTE3MjQ2Nzc5YmRjMjg0Nzk0M2M4YzdlLi5kNmRhMzNhODBiZDUzYWUwMGIwZDAwNzcy
MGViYjFiYTdlNWY2MWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKQEAg
LTIwOCw3ICsyMDgsNiBAQCBib29sIFNWR1BhdGhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAg
ICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgU1ZHVGVzdHM6
OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNW
R0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsK
ICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmli
dXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoU1ZHTmFtZXM6OmRBdHRyKTsKQEAgLTIzNyw4ICsyMzYsNiBAQCB2b2lkIFNWR1BhdGhFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
aWNTdHJpbgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKFNWR1Rlc3RzOjpwYXJz
ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkpCi0gICAgICAgIHJldHVybjsKICAgICBpZiAoU1ZHTGFu
Z1NwYWNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybjsKICAg
ICBpZiAoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwg
dmFsdWUpKQpAQCAtMjU1LDkgKzI1Miw2IEBAIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgfQogCiAgICAg
U1ZHRWxlbWVudEluc3RhbmNlOjpJbnZhbGlkYXRpb25HdWFyZCBpbnZhbGlkYXRpb25HdWFyZCh0
aGlzKTsKLSAgICAKLSAgICBpZiAoU1ZHVGVzdHM6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZSh0aGlz
LCBhdHRyTmFtZSkpCi0gICAgICAgIHJldHVybjsKIAogICAgIFJlbmRlclNWR1BhdGgqIHJlbmRl
cmVyID0gdG9SZW5kZXJTVkdQYXRoKHRoaXMtPnJlbmRlcmVyKCkpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BvbHlFbGVtZW50LmNwcAppbmRleCAzYWNmMGI3ODA2NTI2OGIyZjU2NGMzZjc3YWUyY2U4
YjE2ZGJmNjNmLi5mZDVjNjUyZjE2OTgzOWNmMTI0YTRlZTMyNDQ4YmQ3YmMwZTE0YjVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAKQEAgLTY5LDcgKzY5LDYgQEAgYm9vbCBT
VkdQb2x5RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5h
bWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0
ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFNWR1Rlc3RzOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVz
KHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBvcnRl
ZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRl
cyk7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpwb2ludHNBdHRy
KTsKQEAgLTk2LDggKzk1LDYgQEAgdm9pZCBTVkdQb2x5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW4KICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIGlmIChTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFs
dWUpKQotICAgICAgICByZXR1cm47CiAgICAgaWYgKFNWR0xhbmdTcGFjZTo6cGFyc2VBdHRyaWJ1
dGUobmFtZSwgdmFsdWUpKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKSkKQEAgLTExNCw5ICsx
MTEsNiBAQCB2b2lkIFNWR1BvbHlFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIH0KIAogICAgIFNWR0VsZW1lbnRJbnN0YW5jZTo6
SW52YWxpZGF0aW9uR3VhcmQgaW52YWxpZGF0aW9uR3VhcmQodGhpcyk7Ci0gICAgCi0gICAgaWYg
KFNWR1Rlc3RzOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2UodGhpcywgYXR0ck5hbWUpKQotICAgICAg
ICByZXR1cm47CiAKICAgICBSZW5kZXJTVkdTaGFwZSogcmVuZGVyZXIgPSB0b1JlbmRlclNWR1No
YXBlKHRoaXMtPnJlbmRlcmVyKCkpOwogICAgIGlmICghcmVuZGVyZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1JlY3RFbGVtZW50LmNwcAppbmRleCA4MGZhMjJjZjQzNjc1NmViZjEzMDhlZjkzMjMxMzRm
NzdmOTBhODkxLi5kNzIyOGM5MmI5OTZiZjIyZDIwZjZjNDUxM2UzYmRkMWY0MzdjMDY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAKQEAgLTc1LDcgKzc1LDYgQEAgYm9vbCBT
VkdSZWN0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5h
bWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0
ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFNWR1Rlc3RzOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVz
KHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBvcnRl
ZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRl
cyk7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp4QXR0cik7CkBA
IC0xMDYsOCArMTA1LDcgQEAgdm9pZCBTVkdSZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW4KICAgICAgICAgc2V0V2lk
dGhCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZVdpZHRoLCB2YWx1ZSwg
cGFyc2VFcnJvciwgRm9yYmlkTmVnYXRpdmVMZW5ndGhzKSk7CiAgICAgZWxzZSBpZiAobmFtZSA9
PSBTVkdOYW1lczo6aGVpZ2h0QXR0cikKICAgICAgICAgc2V0SGVpZ2h0QmFzZVZhbHVlKFNWR0xl
bmd0aDo6Y29uc3RydWN0KExlbmd0aE1vZGVIZWlnaHQsIHZhbHVlLCBwYXJzZUVycm9yLCBGb3Ji
aWROZWdhdGl2ZUxlbmd0aHMpKTsKLSAgICBlbHNlIGlmIChTVkdUZXN0czo6cGFyc2VBdHRyaWJ1
dGUobmFtZSwgdmFsdWUpCi0gICAgICAgICAgICAgfHwgU1ZHTGFuZ1NwYWNlOjpwYXJzZUF0dHJp
YnV0ZShuYW1lLCB2YWx1ZSkKKyAgICBlbHNlIGlmIChTVkdMYW5nU3BhY2U6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKQogICAgICAgICAgICAgIHx8IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKSkgewogICAgIH0gZWxzZQogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTEzNCw5ICsxMzIsNiBAQCB2b2lkIFNWR1JlY3RF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1l
KQogICAgIGlmIChpc0xlbmd0aEF0dHJpYnV0ZSkKICAgICAgICAgdXBkYXRlUmVsYXRpdmVMZW5n
dGhzSW5mb3JtYXRpb24oKTsKIAotICAgIGlmIChTVkdUZXN0czo6aGFuZGxlQXR0cmlidXRlQ2hh
bmdlKHRoaXMsIGF0dHJOYW1lKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgUmVuZGVyU1ZHU2hh
cGUqIHJlbmRlcmVyID0gdG9SZW5kZXJTVkdTaGFwZSh0aGlzLT5yZW5kZXJlcigpKTsKICAgICBp
ZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVu
dC5jcHAKaW5kZXggN2JkMTUyYzU2NzUzNjY3NDgzYzI4NGQ2NzEyYWEzN2IxZjk3OGEwMS4uODM5
N2ZiZTE0MWE3YzhmMjRlYzk4ODFjOGE5OTU3MTVmNzM1MzJiOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTVkdFbGVtZW50LmNwcApAQCAtMjMzLDggKzIzMywzNSBAQCB2b2lkIFNWR1NWR0VsZW1lbnQ6
OnVwZGF0ZUN1cnJlbnRUcmFuc2xhdGUoKQogICAgICAgICBkb2N1bWVudCgpLT5yZW5kZXJlcigp
LT5yZXBhaW50KCk7CiB9CiAKK2Jvb2wgU1ZHU1ZHRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCit7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7Cisg
ICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0
cmlidXRlcyk7CisgICAgICAgIFNWR0ZpdFRvVmlld0JveDo6YWRkU3VwcG9ydGVkQXR0cmlidXRl
cyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKKyAgICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0
ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOworICAgICAgICBTVkdab29tQW5kUGFu
OjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOworICAgICAgICBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6eEF0dHIpOworICAgICAgICBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6eUF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmFkZChTVkdOYW1lczo6d2lkdGhBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5hZGQoU1ZHTmFtZXM6OmhlaWdodEF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmFkZChTVkdOYW1lczo6b256b29tQXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuYWRkKEhUTUxOYW1lczo6b25hYm9ydEF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmFkZChIVE1MTmFtZXM6Om9uZXJyb3JBdHRyKTsKKyAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5hZGQoSFRNTE5hbWVzOjpvbnVubG9hZEF0dHIpOworICAgICAgICBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmFkZChIVE1MTmFtZXM6Om9ucmVzaXplQXR0cik7CisgICAgICAgIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuYWRkKEhUTUxOYW1lczo6b25zY3JvbGxBdHRyKTsKKyAgICB9CisgICAgcmV0dXJu
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+
KGF0dHJOYW1lKTsKK30KKwogdm9pZCBTVkdTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogeworICAg
IGlmICghaXNTdXBwb3J0ZWRBdHRyaWJ1dGUobmFtZSkpIHsKKyAgICAgICAgU1ZHR3JhcGhpY3NF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKICAgICBTVkdQYXJzaW5nRXJyb3IgcGFyc2VFcnJvciA9IE5vRXJyb3I7CiAKICAgICBp
ZiAoIW5lYXJlc3RWaWV3cG9ydEVsZW1lbnQoKSkgewpAQCAtMjY4LDggKzI5NSw3IEBAIHZvaWQg
U1ZHU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbWljU3RyaW5nCiAgICAgICAgIHNldFdpZHRoQmFzZVZhbHVlKFNWR0xlbmd0aDo6
Y29uc3RydWN0KExlbmd0aE1vZGVXaWR0aCwgdmFsdWUsIHBhcnNlRXJyb3IsIEZvcmJpZE5lZ2F0
aXZlTGVuZ3RocykpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmhlaWdodEF0dHIp
CiAgICAgICAgIHNldEhlaWdodEJhc2VWYWx1ZShTVkdMZW5ndGg6OmNvbnN0cnVjdChMZW5ndGhN
b2RlSGVpZ2h0LCB2YWx1ZSwgcGFyc2VFcnJvciwgRm9yYmlkTmVnYXRpdmVMZW5ndGhzKSk7Ci0g
ICAgZWxzZSBpZiAoU1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKQotICAgICAg
ICAgICAgICAgfHwgU1ZHTGFuZ1NwYWNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkKKyAg
ICBlbHNlIGlmIChTVkdMYW5nU3BhY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKQogICAg
ICAgICAgICAgICAgfHwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1
dGUobmFtZSwgdmFsdWUpCiAgICAgICAgICAgICAgICB8fCBTVkdGaXRUb1ZpZXdCb3g6OnBhcnNl
QXR0cmlidXRlKHRoaXMsIG5hbWUsIHZhbHVlKQogICAgICAgICAgICAgICAgfHwgU1ZHWm9vbUFu
ZFBhbjo6cGFyc2VBdHRyaWJ1dGUodGhpcywgbmFtZSwgdmFsdWUpKSB7CkBAIC0yODAsNyArMzA2
LDEyIEBAIHZvaWQgU1ZHU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nCiB9CiAKIHZvaWQgU1ZHU1ZHRWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKLXsgCit7
CisgICAgaWYgKCFpc1N1cHBvcnRlZEF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKKyAgICAgICAgU1ZH
R3JhcGhpY3NFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKwogICAgIGJvb2wgdXBkYXRlUmVsYXRpdmVMZW5ndGhzT3JWaWV3Qm94
ID0gZmFsc2U7CiAgICAgYm9vbCB3aWR0aENoYW5nZWQgPSBhdHRyTmFtZSA9PSBTVkdOYW1lczo6
d2lkdGhBdHRyOwogICAgIGlmICh3aWR0aENoYW5nZWQKQEAgLTMwNiw4ICszMzcsNiBAQCB2b2lk
IFNWR1NWR0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCiAgICAgfQogCiAgICAgU1ZHRWxlbWVudEluc3RhbmNlOjpJbnZhbGlkYXRpb25H
dWFyZCBpbnZhbGlkYXRpb25HdWFyZCh0aGlzKTsKLSAgICBpZiAoU1ZHVGVzdHM6OmhhbmRsZUF0
dHJpYnV0ZUNoYW5nZSh0aGlzLCBhdHRyTmFtZSkpCi0gICAgICAgIHJldHVybjsKIAogICAgIGlm
ICh1cGRhdGVSZWxhdGl2ZUxlbmd0aHNPclZpZXdCb3gKICAgICAgICAgfHwgU1ZHTGFuZ1NwYWNl
Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1NWR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgK
aW5kZXggNmNmYjcwMjQ0MGFlNmI0NmRlMDdmZjdkZGQ4MjUwODg0MDI1MmYwYS4uNmYzYTY2M2Zk
M2Y0NTA0OWY3ZGU3ODcwZDdlY2NhOWRmNjJkMDhlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxl
bWVudC5oCkBAIC0xNDIsNiArMTQyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBp
c1NWR1NWR0VsZW1lbnQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAgICAgCisg
ICAgYm9vbCBpc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAg
dmlydHVhbCB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBB
dG9taWNTdHJpbmcmKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVl
ZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0JikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggNGVhNmQ3YjhhOThiNDZjYmNlNjZlNjE0NWNjMDFkMzBi
ZTExZWViNC4uODRhNzdhZGJmYzAwNmRlOTIyMGUxYTg4Njk1MDRlYzllZDEwMzgzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtMTM1LDcgKzEzNSw2IEBAIGJvb2wgU1ZH
VXNlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+
LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMu
aXNFbXB0eSgpKSB7Ci0gICAgICAgIFNWR1Rlc3RzOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1
cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBvcnRlZEF0
dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7
CiAgICAgICAgIFNWR1VSSVJlZmVyZW5jZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0
ZWRBdHRyaWJ1dGVzKTsKQEAgLTE2MSw4ICsxNjAsNyBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmlu
ZwogICAgICAgICBzZXRXaWR0aEJhc2VWYWx1ZShTVkdMZW5ndGg6OmNvbnN0cnVjdChMZW5ndGhN
b2RlV2lkdGgsIHZhbHVlLCBwYXJzZUVycm9yLCBGb3JiaWROZWdhdGl2ZUxlbmd0aHMpKTsKICAg
ICBlbHNlIGlmIChuYW1lID09IFNWR05hbWVzOjpoZWlnaHRBdHRyKQogICAgICAgICBzZXRIZWln
aHRCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZUhlaWdodCwgdmFsdWUs
IHBhcnNlRXJyb3IsIEZvcmJpZE5lZ2F0aXZlTGVuZ3RocykpOwotICAgIGVsc2UgaWYgKFNWR1Rl
c3RzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkKLSAgICAgICAgICAgICB8fCBTVkdMYW5n
U3BhY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKQorICAgIGVsc2UgaWYgKFNWR0xhbmdT
cGFjZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpCiAgICAgICAgICAgICAgfHwgU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpCiAgICAg
ICAgICAgICAgfHwgU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkp
IHsKICAgICB9IGVsc2UKQEAgLTIzOCw5ICsyMzYsNiBAQCB2b2lkIFNWR1VzZUVsZW1lbnQ6OnN2
Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoU1ZHVGVzdHM6OmhhbmRsZUF0dHJpYnV0ZUNoYW5n
ZSh0aGlzLCBhdHRyTmFtZSkpCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmIChTVkdFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2UodGhpcywgYXR0ck5hbWUp
KQogICAgICAgICByZXR1cm47CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205941</attachid>
            <date>2013-07-02 13:19:28 -0700</date>
            <delta_ts>2013-07-03 00:04:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118292-20130702231721.patch</filename>
            <type>text/plain</type>
            <size>26133</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyMzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWUxNzM2MGI2NjRmYTlk
NjFjNjA1NmY4M2U1NmZlZmYwMmI0ZjI5Ni4uYTg5ZTAxMjQ5OTY0NmEwYjczODliMDI0MDViNzc5
MTQzOTM1NzE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDEzLTA3LTAyICBDaHJp
c3RvcGhlIER1bWV6ICA8Y2guZHVtZXpAc2lzYS5zYW1zdW5nLmNvbT4KKworICAgICAgICBNb3Zl
IFNWR1Rlc3RzIGF0dHJpYnV0ZXMgcGFyc2luZyB0byBTVkdHcmFwaGljc0VsZW1lbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODI5MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgU1ZHVGVzdHMg
YXR0cmlidXRlcyBwYXJzaW5nIHRvIFNWR0dyYXBoaWNzRWxlbWVudCBpbnN0ZWFkIG9mIGRvaW5n
CisgICAgICAgIHRoaXMgaW4gZWFjaCBvZiBpdHMgc3ViY2xhc3Nlcy4gU1ZHR3JhcGhpY3NFbGVt
ZW50IGlzIG5vdyB0aGUgb25lCisgICAgICAgIHN1YmNsYXNzaW5nIFNWR1Rlc3RzIGFmdGVyIHIx
NTIxNjcuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAg
ICAgICAgKiBzdmcvU1ZHQUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQUVsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQ2lyY2xlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ2lyY2xlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHQ2lyY2xlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6
CisgICAgICAgICogc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdDbGlwUGF0aEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0NsaXBQYXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2
Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGxpcHNlRWxl
bWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxsaXBz
ZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsbGlwc2VF
bGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRm9yZWlnbk9iamVjdEVsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvcmVpZ25P
YmplY3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb3Jl
aWduT2JqZWN0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NW
R0dFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0dFbGVtZW50Ojppc1N1cHBvcnRl
ZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdHRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQp
OgorICAgICAgICAqIHN2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHR3JhcGhpY3NFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdHcmFwaGljc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0dyYXBoaWNzRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAg
ICogc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUVs
ZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdl
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHTGluZUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGluZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpbmVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdMaW5lRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6
CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1BhdGhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQYXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0
aEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdQb2x5RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxlbWVudDo6aXNTdXBwb3J0ZWRB
dHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9seUVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKToKKyAgICAgICAgKiBzdmcvU1ZHUmVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUmVjdEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1JlY3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdSZWN0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1NW
R0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU1ZHRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZCk6IEZhbGwgYmFjayB0byBjYWxsaW5nCisgICAgICAgIFNWR0dyYXBoaWNzRWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZCgpIGluc3RlYWQgb2YKKyAgICAgICAgU1ZHU3R5bGVkRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCgpIGFzIFNWR0dyYXBoaWNzRWxlbWVudCBpcyB0aGUKKyAg
ICAgICAgcGFyZW50IGNsYXNzIGFuZCBpdCB0YWtlcyBjYXJlIG9mIHBhcnNpbmcgU1ZHVGVzdHMg
YXR0cmlidXRlcyBub3cuCisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHVXNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHVXNlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisKIDIwMTMtMDctMDIg
IEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBBbHdheXMg
ZmxpcCB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0gYmVmb3JlIGRyYXdpbmcgTlNWaWV3cyBmcm9tIFdp
ZGdldDo6cGFpbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCmluZGV4IGEwMGU4OGEwOTQ4
NDAxYTM1Y2FiNDQ3ZmUxMDM4NjEyMTYxMTE1ODQuLjE0OGYwNWRmZTNhOTIzYTAzY2M4YTZiNzlk
YzIzMWRlNzc1YjQzMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcApAQCAtOTIsNyAr
OTIsNiBAQCBib29sIFNWR0FFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVh
bGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVk
QXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKICAgICAgICAgU1ZHVVJJUmVmZXJlbmNlOjphZGRTdXBw
b3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwotICAgICAgICBTVkdUZXN0czo6
YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZH
TGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwog
ICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1
dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFk
ZChTVkdOYW1lczo6dGFyZ2V0QXR0cik7CkBAIC0xMTQsOCArMTEzLDYgQEAgdm9pZCBTVkdBRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bWljU3RyaW5nJgogCiAgICAgaWYgKFNWR1VSSVJlZmVyZW5jZTo6cGFyc2VBdHRyaWJ1dGUobmFt
ZSwgdmFsdWUpKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKFNWR1Rlc3RzOjpwYXJzZUF0dHJp
YnV0ZShuYW1lLCB2YWx1ZSkpCi0gICAgICAgIHJldHVybjsKICAgICBpZiAoU1ZHTGFuZ1NwYWNl
OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAo
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCmluZGV4IGFlOGU0MDBkZDdi
ZTMxMTJmNWY1M2JmYWEwNjUxYjllNmU1MDZhZTAuLmQzMGEyNjlmMmY3YTNmZjlmODc2NWMyNzA2
ZmVhYWNiOThjYjI5MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAK
QEAgLTY5LDcgKzY5LDYgQEAgYm9vbCBTVkdDaXJjbGVFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsK
ICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgU1ZHVGVz
dHM6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAg
IFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVz
KTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0
cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5hZGQoU1ZHTmFtZXM6OmN4QXR0cik7CkBAIC05MSw4ICs5MCw3IEBAIHZvaWQgU1ZHQ2lyY2xl
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbWljU3RyCiAgICAgICAgIHNldEN5QmFzZVZhbHVlKFNWR0xlbmd0aDo6Y29uc3RydWN0KExl
bmd0aE1vZGVIZWlnaHQsIHZhbHVlLCBwYXJzZUVycm9yKSk7CiAgICAgZWxzZSBpZiAobmFtZSA9
PSBTVkdOYW1lczo6ckF0dHIpCiAgICAgICAgIHNldFJCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25z
dHJ1Y3QoTGVuZ3RoTW9kZU90aGVyLCB2YWx1ZSwgcGFyc2VFcnJvciwgRm9yYmlkTmVnYXRpdmVM
ZW5ndGhzKSk7Ci0gICAgZWxzZSBpZiAoU1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZh
bHVlKQotICAgICAgICAgICAgIHx8IFNWR0xhbmdTcGFjZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwg
dmFsdWUpCisgICAgZWxzZSBpZiAoU1ZHTGFuZ1NwYWNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2
YWx1ZSkKICAgICAgICAgICAgICB8fCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJz
ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkpIHsKICAgICB9IGVsc2UKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CkBAIC0xMTYsOSArMTE0LDYgQEAgdm9pZCBTVkdDaXJjbGVFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIGlm
IChpc0xlbmd0aEF0dHJpYnV0ZSkKICAgICAgICAgdXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5mb3Jt
YXRpb24oKTsKIAotICAgIGlmIChTVkdUZXN0czo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlKHRoaXMs
IGF0dHJOYW1lKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgUmVuZGVyU1ZHU2hhcGUqIHJlbmRl
cmVyID0gdG9SZW5kZXJTVkdTaGFwZSh0aGlzLT5yZW5kZXJlcigpKTsKICAgICBpZiAoIXJlbmRl
cmVyKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Q2xpcFBhdGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1l
bnQuY3BwCmluZGV4IGQ3NGQ5ZDkxMGUwZGU5Mjk4OGRiN2MyNjhiMDU2M2U1NWQyMDU1NzIuLmIw
OWI5YTAyOWRkODM1ZTM1YTBhZTc3ZGZhN2U1MWM2ODY2YmVkNGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCkBAIC02MSw3ICs2MSw2IEBAIGJvb2wgU1ZHQ2xp
cFBhdGhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTmFtZSkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFt
ZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRl
cy5pc0VtcHR5KCkpIHsKLSAgICAgICAgU1ZHVGVzdHM6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMo
c3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVk
QXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVz
KTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmNsaXBQYXRoVW5p
dHNBdHRyKTsKQEAgLTgzLDggKzgyLDYgQEAgdm9pZCBTVkdDbGlwUGF0aEVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1MKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUobmFt
ZSwgdmFsdWUpKQotICAgICAgICByZXR1cm47CiAgICAgaWYgKFNWR0xhbmdTcGFjZTo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCmluZGV4IDFmZTMzODI3ZjJiOWRhZWQ0
YTc5Y2YyM2NhMjNhYjc4YTA5MGNlMDEuLjBmYjljMjQ4YWExZmUyZDAwMjFkOTJlYWE4NzUxOTRi
ZmMzNTQyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcApAQCAt
NzAsNyArNzAsNiBAQCBib29sIFNWR0VsbGlwc2VFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAg
ICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgU1ZHVGVzdHM6
OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNW
R0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsK
ICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmli
dXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoU1ZHTmFtZXM6OmN4QXR0cik7CkBAIC05NSw4ICs5NCw3IEBAIHZvaWQgU1ZHRWxsaXBzZUVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21pY1N0CiAgICAgICAgIHNldFJ4QmFzZVZhbHVlKFNWR0xlbmd0aDo6Y29uc3RydWN0KExlbmd0
aE1vZGVXaWR0aCwgdmFsdWUsIHBhcnNlRXJyb3IsIEZvcmJpZE5lZ2F0aXZlTGVuZ3RocykpOwog
ICAgIGVsc2UgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnJ5QXR0cikKICAgICAgICAgc2V0UnlCYXNl
VmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZUhlaWdodCwgdmFsdWUsIHBhcnNl
RXJyb3IsIEZvcmJpZE5lZ2F0aXZlTGVuZ3RocykpOwotICAgIGVsc2UgaWYgKFNWR1Rlc3RzOjpw
YXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkKLSAgICAgICAgICAgICB8fCBTVkdMYW5nU3BhY2U6
OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKQorICAgIGVsc2UgaWYgKFNWR0xhbmdTcGFjZTo6
cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpCiAgICAgICAgICAgICAgfHwgU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKSB7CiAgICAgfSBl
bHNlCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTIwLDkgKzExOCw2IEBAIHZv
aWQgU1ZHRWxsaXBzZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCiAKICAgICBpZiAoaXNMZW5ndGhBdHRyaWJ1dGUpCiAgICAgICAgIHVw
ZGF0ZVJlbGF0aXZlTGVuZ3Roc0luZm9ybWF0aW9uKCk7Ci0gCi0gICAgaWYgKFNWR1Rlc3RzOjpo
YW5kbGVBdHRyaWJ1dGVDaGFuZ2UodGhpcywgYXR0ck5hbWUpKQotICAgICAgICByZXR1cm47CiAK
ICAgICBSZW5kZXJTVkdTaGFwZSogcmVuZGVyZXIgPSB0b1JlbmRlclNWR1NoYXBlKHRoaXMtPnJl
bmRlcmVyKCkpOwogICAgIGlmICghcmVuZGVyZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAppbmRleCBlODFjOGQzMmI2MTBmMjkwZGNmNjliZjM0
OWUyYzk4YmI3NjczYWM1Li5lY2ExYmQyY2VhOWZlNGZjOWVlOGQ2ZjIyMjk2ZGViNzI3YjU4ZTUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAK
QEAgLTczLDcgKzczLDYgQEAgYm9vbCBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6aXNTdXBwb3J0
ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUKIHsKICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMs
ICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAg
U1ZHVGVzdHM6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAg
ICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRy
aWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9y
dGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgc3VwcG9ydGVkQXR0
cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnhBdHRyKTsKQEAgLTk4LDggKzk3LDcgQEAgdm9pZCBTVkdG
b3JlaWduT2JqZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXQKICAgICAgICAgc2V0V2lkdGhCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25z
dHJ1Y3QoTGVuZ3RoTW9kZVdpZHRoLCB2YWx1ZSwgcGFyc2VFcnJvcikpOwogICAgIGVsc2UgaWYg
KG5hbWUgPT0gU1ZHTmFtZXM6OmhlaWdodEF0dHIpCiAgICAgICAgIHNldEhlaWdodEJhc2VWYWx1
ZShTVkdMZW5ndGg6OmNvbnN0cnVjdChMZW5ndGhNb2RlSGVpZ2h0LCB2YWx1ZSwgcGFyc2VFcnJv
cikpOwotICAgIGVsc2UgaWYgKFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkK
LSAgICAgICAgICAgICAgIHx8IFNWR0xhbmdTcGFjZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFs
dWUpCisgICAgZWxzZSBpZiAoU1ZHTGFuZ1NwYWNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSkKICAgICAgICAgICAgICAgIHx8IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNl
QXR0cmlidXRlKG5hbWUsIHZhbHVlKSkgewogICAgIH0gZWxzZQogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKQEAgLTEyNCw5ICsxMjIsNiBAQCB2b2lkIFNWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ICAgIGlmIChpc0xlbmd0aEF0dHJpYnV0ZSkKICAgICAgICAgdXBkYXRlUmVsYXRpdmVMZW5ndGhz
SW5mb3JtYXRpb24oKTsKIAotICAgIGlmIChTVkdUZXN0czo6aGFuZGxlQXR0cmlidXRlQ2hhbmdl
KHRoaXMsIGF0dHJOYW1lKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKFJlbmRlck9iamVj
dCogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQogICAgICAgICBSZW5kZXJTVkdSZXNvdXJj
ZTo6bWFya0ZvckxheW91dEFuZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uKHJlbmRlcmVyKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCmluZGV4IDNmMWFjMzIyZTU2OWIwN2YwOTMz
NGRmMjA5M2QxYWNhNTk1MDBkMDcuLmU2YWQxNGZiY2ZkNzE3OWNlOGY1YjU0NTE5OWE2NmQ3NWIy
NWZjNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcApAQCAtNTUsNyArNTUsNiBAQCBi
b29sIFNWR0dFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVk
TmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmli
dXRlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgU1ZHVGVzdHM6OmFkZFN1cHBvcnRlZEF0dHJpYnV0
ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9y
dGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1
dGVzKTsKICAgICB9CkBAIC02OSw4ICs2OCw2IEBAIHZvaWQgU1ZHR0VsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUo
bmFtZSwgdmFsdWUpKQotICAgICAgICByZXR1cm47CiAgICAgaWYgKFNWR0xhbmdTcGFjZTo6cGFy
c2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKFNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKSkKQEAg
LTg3LDkgKzg0LDYgQEAgdm9pZCBTVkdHRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICB9CiAKICAgICBTVkdFbGVtZW50SW5zdGFu
Y2U6OkludmFsaWRhdGlvbkd1YXJkIGludmFsaWRhdGlvbkd1YXJkKHRoaXMpOwotICAgIAotICAg
IGlmIChTVkdUZXN0czo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlKHRoaXMsIGF0dHJOYW1lKSkKLSAg
ICAgICAgcmV0dXJuOwogCiAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSB0aGlzLT5y
ZW5kZXJlcigpKQogICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBh
cmVudFJlc291cmNlSW52YWxpZGF0aW9uKHJlbmRlcmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0dyYXBoaWNzRWxlbWVudC5jcHAKaW5kZXggMzdlMGY4YTc5OTA5MDE5NjNmMDU0NGZiYzQ2Y2Vh
ZTQ4NThmOGI0Ny4uOTU2YjUxYTVlNDZiY2Q5NDc5OGVlMTA4ZDU0NGEzMGJmOGVkNjliOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHAKQEAgLTk0LDggKzk0LDEw
IEBAIEFmZmluZVRyYW5zZm9ybSogU1ZHR3JhcGhpY3NFbGVtZW50OjpzdXBwbGVtZW50YWxUcmFu
c2Zvcm0oKQogYm9vbCBTVkdHcmFwaGljc0VsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwo
SGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwotICAgIGlm
IChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKKyAgICBpZiAoc3VwcG9ydGVkQXR0cmli
dXRlcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgU1ZHVGVzdHM6OmFkZFN1cHBvcnRlZEF0dHJpYnV0
ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRk
KFNWR05hbWVzOjp0cmFuc2Zvcm1BdHRyKTsKKyAgICB9CiAgICAgcmV0dXJuIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsK
IH0KIApAQCAtMTEyLDYgKzExNCw4IEBAIHZvaWQgU1ZHR3JhcGhpY3NFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTCiAgICAgICAg
IGRldGFjaEFuaW1hdGVkVHJhbnNmb3JtTGlzdFdyYXBwZXJzKG5ld0xpc3Quc2l6ZSgpKTsKICAg
ICAgICAgc2V0VHJhbnNmb3JtQmFzZVZhbHVlKG5ld0xpc3QpOwogICAgICAgICByZXR1cm47Cisg
ICAgfSBlbHNlIGlmIChTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKSB7Cisg
ICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTEy
Niw2ICsxMzAsOSBAQCB2b2lkIFNWR0dyYXBoaWNzRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIAogICAgIFNWR0VsZW1lbnRJbnN0YW5j
ZTo6SW52YWxpZGF0aW9uR3VhcmQgaW52YWxpZGF0aW9uR3VhcmQodGhpcyk7CiAKKyAgICBpZiAo
U1ZHVGVzdHM6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZSh0aGlzLCBhdHRyTmFtZSkpCisgICAgICAg
IHJldHVybjsKKwogICAgIFJlbmRlck9iamVjdCogb2JqZWN0ID0gcmVuZGVyZXIoKTsKICAgICBp
ZiAoIW9iamVjdCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVt
ZW50LmNwcAppbmRleCAyZjk0MjcxOTEyMGMzODc0NzcxNzUxYzg2NDAzZjQzZmY3OGFmODcyLi4z
YmJmZmUzYTRmNTVmMTYzMWU1MDAwMzM2OGIyNDg2NWQ2NGMzY2UyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHSW1hZ2VFbGVtZW50LmNwcApAQCAtNzcsNyArNzcsNiBAQCBib29sIFNWR0ltYWdlRWxl
bWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUp
CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0
eSgpKSB7Ci0gICAgICAgIFNWR1Rlc3RzOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRl
ZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0
ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAg
ICAgIFNWR1VSSVJlZmVyZW5jZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRy
aWJ1dGVzKTsKQEAgLTEyNSw4ICsxMjQsNyBAQCB2b2lkIFNWR0ltYWdlRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaQogICAg
ICAgICBzZXRXaWR0aEJhc2VWYWx1ZShTVkdMZW5ndGg6OmNvbnN0cnVjdChMZW5ndGhNb2RlV2lk
dGgsIHZhbHVlLCBwYXJzZUVycm9yLCBGb3JiaWROZWdhdGl2ZUxlbmd0aHMpKTsKICAgICBlbHNl
IGlmIChuYW1lID09IFNWR05hbWVzOjpoZWlnaHRBdHRyKQogICAgICAgICBzZXRIZWlnaHRCYXNl
VmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZUhlaWdodCwgdmFsdWUsIHBhcnNl
RXJyb3IsIEZvcmJpZE5lZ2F0aXZlTGVuZ3RocykpOwotICAgIGVsc2UgaWYgKFNWR1Rlc3RzOjpw
YXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkKLSAgICAgICAgICAgICB8fCBTVkdMYW5nU3BhY2U6
OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKQorICAgIGVsc2UgaWYgKFNWR0xhbmdTcGFjZTo6
cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpCiAgICAgICAgICAgICAgfHwgU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpCiAgICAgICAgICAg
ICAgfHwgU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkpIHsKICAg
ICB9IGVsc2UKQEAgLTE1Miw5ICsxNTAsNiBAQCB2b2lkIFNWR0ltYWdlRWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICBpZiAoaXNM
ZW5ndGhBdHRyaWJ1dGUpCiAgICAgICAgIHVwZGF0ZVJlbGF0aXZlTGVuZ3Roc0luZm9ybWF0aW9u
KCk7CiAKLSAgICBpZiAoU1ZHVGVzdHM6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZSh0aGlzLCBhdHRy
TmFtZSkpCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmIChTVkdVUklSZWZlcmVuY2U6OmlzS25v
d25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIG1faW1hZ2VMb2FkZXIudXBkYXRlRnJv
bUVsZW1lbnRJZ25vcmluZ1ByZXZpb3VzRXJyb3IoKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAKaW5kZXggOGYyM2YxOWQwYTg0ZDEwOGVlYmZhYWU4
MmJkODA3NzM0NmRmZWU5Yi4uYWM3Yzk5Y2NiZDBmYjhhZDRjMjY3ODYwNGNjZTZlYWUzZDQ3MWEw
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuY3BwCkBAIC02OSw3ICs2OSw2IEBA
IGJvb2wgU1ZHTGluZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFs
aWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmlzRW1wdHkoKSkgewotICAgICAgICBTVkdUZXN0czo6YWRkU3VwcG9ydGVkQXR0
cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRT
dXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdFeHRl
cm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0
dHJpYnV0ZXMpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6eDFB
dHRyKTsKQEAgLTk0LDggKzkzLDcgQEAgdm9pZCBTVkdMaW5lRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW4KICAgICAgICAg
c2V0WDJCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZVdpZHRoLCB2YWx1
ZSwgcGFyc2VFcnJvcikpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnkyQXR0cikK
ICAgICAgICAgc2V0WTJCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZUhl
aWdodCwgdmFsdWUsIHBhcnNlRXJyb3IpKTsKLSAgICBlbHNlIGlmIChTVkdUZXN0czo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpCi0gICAgICAgICAgICAgfHwgU1ZHTGFuZ1NwYWNlOjpwYXJz
ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkKKyAgICBlbHNlIGlmIChTVkdMYW5nU3BhY2U6OnBhcnNl
QXR0cmlidXRlKG5hbWUsIHZhbHVlKQogICAgICAgICAgICAgIHx8IFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKSkgewogICAgIH0gZWxzZQog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTEyMCw5ICsxMTgsNiBAQCB2b2lkIFNW
R0xpbmVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW1lKQogICAgIGlmIChpc0xlbmd0aEF0dHJpYnV0ZSkKICAgICAgICAgdXBkYXRlUmVsYXRp
dmVMZW5ndGhzSW5mb3JtYXRpb24oKTsKIAotICAgIGlmIChTVkdUZXN0czo6aGFuZGxlQXR0cmli
dXRlQ2hhbmdlKHRoaXMsIGF0dHJOYW1lKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgUmVuZGVy
U1ZHU2hhcGUqIHJlbmRlcmVyID0gdG9SZW5kZXJTVkdTaGFwZSh0aGlzLT5yZW5kZXJlcigpKTsK
ICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhFbGVtZW50LmNwcAppbmRleCA4MWEzZTY1OGQ3ODE1NjAzZTE3MjQ2Nzc5YmRjMjg0Nzk0M2M4
YzdlLi5kNmRhMzNhODBiZDUzYWUwMGIwZDAwNzcyMGViYjFiYTdlNWY2MWU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKQEAgLTIwOCw3ICsyMDgsNiBAQCBib29sIFNWR1Bh
dGhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4s
IHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5p
c0VtcHR5KCkpIHsKLSAgICAgICAgU1ZHVGVzdHM6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3Vw
cG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0
cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsK
ICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmRBdHRyKTsKQEAgLTIz
Nyw4ICsyMzYsNiBAQCB2b2lkIFNWR1BhdGhFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbgogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgaWYgKFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkpCi0g
ICAgICAgIHJldHVybjsKICAgICBpZiAoU1ZHTGFuZ1NwYWNlOjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSkpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNS
ZXF1aXJlZDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKQpAQCAtMjU1LDkgKzI1Miw2IEBA
IHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCiAgICAgfQogCiAgICAgU1ZHRWxlbWVudEluc3RhbmNlOjpJbnZhbGlk
YXRpb25HdWFyZCBpbnZhbGlkYXRpb25HdWFyZCh0aGlzKTsKLSAgICAKLSAgICBpZiAoU1ZHVGVz
dHM6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZSh0aGlzLCBhdHRyTmFtZSkpCi0gICAgICAgIHJldHVy
bjsKIAogICAgIFJlbmRlclNWR1BhdGgqIHJlbmRlcmVyID0gdG9SZW5kZXJTVkdQYXRoKHRoaXMt
PnJlbmRlcmVyKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAppbmRleCAz
YWNmMGI3ODA2NTI2OGIyZjU2NGMzZjc3YWUyY2U4YjE2ZGJmNjNmLi5mZDVjNjUyZjE2OTgzOWNm
MTI0YTRlZTMyNDQ4YmQ3YmMwZTE0YjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUG9seUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVu
dC5jcHAKQEAgLTY5LDcgKzY5LDYgQEAgYm9vbCBTVkdQb2x5RWxlbWVudDo6aXNTdXBwb3J0ZWRB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7CiAgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAo
KSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFNW
R1Rlc3RzOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAg
ICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmli
dXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRl
ZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuYWRkKFNWR05hbWVzOjpwb2ludHNBdHRyKTsKQEAgLTk2LDggKzk1LDYgQEAgdm9pZCBT
VkdQb2x5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbWljU3RyaW4KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChTVkdU
ZXN0czo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKQotICAgICAgICByZXR1cm47CiAgICAg
aWYgKFNWR0xhbmdTcGFjZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKQogICAgICAgICBy
ZXR1cm47CiAgICAgaWYgKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKSkKQEAgLTExNCw5ICsxMTEsNiBAQCB2b2lkIFNWR1BvbHlFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAg
IH0KIAogICAgIFNWR0VsZW1lbnRJbnN0YW5jZTo6SW52YWxpZGF0aW9uR3VhcmQgaW52YWxpZGF0
aW9uR3VhcmQodGhpcyk7Ci0gICAgCi0gICAgaWYgKFNWR1Rlc3RzOjpoYW5kbGVBdHRyaWJ1dGVD
aGFuZ2UodGhpcywgYXR0ck5hbWUpKQotICAgICAgICByZXR1cm47CiAKICAgICBSZW5kZXJTVkdT
aGFwZSogcmVuZGVyZXIgPSB0b1JlbmRlclNWR1NoYXBlKHRoaXMtPnJlbmRlcmVyKCkpOwogICAg
IGlmICghcmVuZGVyZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcAppbmRleCA4
MGZhMjJjZjQzNjc1NmViZjEzMDhlZjkzMjMxMzRmNzdmOTBhODkxLi5kNzIyOGM5MmI5OTZiZjIy
ZDIwZjZjNDUxM2UzYmRkMWY0MzdjMDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUmVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVu
dC5jcHAKQEAgLTc1LDcgKzc1LDYgQEAgYm9vbCBTVkdSZWN0RWxlbWVudDo6aXNTdXBwb3J0ZWRB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7CiAgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAo
KSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFNW
R1Rlc3RzOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAg
ICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmli
dXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRl
ZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuYWRkKFNWR05hbWVzOjp4QXR0cik7CkBAIC0xMDYsOCArMTA1LDcgQEAgdm9pZCBTVkdS
ZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbWljU3RyaW4KICAgICAgICAgc2V0V2lkdGhCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25z
dHJ1Y3QoTGVuZ3RoTW9kZVdpZHRoLCB2YWx1ZSwgcGFyc2VFcnJvciwgRm9yYmlkTmVnYXRpdmVM
ZW5ndGhzKSk7CiAgICAgZWxzZSBpZiAobmFtZSA9PSBTVkdOYW1lczo6aGVpZ2h0QXR0cikKICAg
ICAgICAgc2V0SGVpZ2h0QmFzZVZhbHVlKFNWR0xlbmd0aDo6Y29uc3RydWN0KExlbmd0aE1vZGVI
ZWlnaHQsIHZhbHVlLCBwYXJzZUVycm9yLCBGb3JiaWROZWdhdGl2ZUxlbmd0aHMpKTsKLSAgICBl
bHNlIGlmIChTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpCi0gICAgICAgICAg
ICAgfHwgU1ZHTGFuZ1NwYWNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkKKyAgICBlbHNl
IGlmIChTVkdMYW5nU3BhY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKQogICAgICAgICAg
ICAgIHx8IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKG5hbWUs
IHZhbHVlKSkgewogICAgIH0gZWxzZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAg
LTEzNCw5ICsxMzIsNiBAQCB2b2lkIFNWR1JlY3RFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIGlmIChpc0xlbmd0aEF0dHJpYnV0
ZSkKICAgICAgICAgdXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5mb3JtYXRpb24oKTsKIAotICAgIGlm
IChTVkdUZXN0czo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlKHRoaXMsIGF0dHJOYW1lKSkKLSAgICAg
ICAgcmV0dXJuOwotCiAgICAgUmVuZGVyU1ZHU2hhcGUqIHJlbmRlcmVyID0gdG9SZW5kZXJTVkdT
aGFwZSh0aGlzLT5yZW5kZXJlcigpKTsKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKaW5kZXggN2JkMTUyYzU2NzUzNjY3
NDgzYzI4NGQ2NzEyYWEzN2IxZjk3OGEwMS4uNjQ2MTljODFkOWU2NmM5YzM0M2Y0NmM2OWI1MjBi
ODNiNTY0ZDZmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcApAQCAtMjY4LDgg
KzI2OCw3IEBAIHZvaWQgU1ZHU1ZHRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nCiAgICAgICAgIHNldFdpZHRoQmFzZVZh
bHVlKFNWR0xlbmd0aDo6Y29uc3RydWN0KExlbmd0aE1vZGVXaWR0aCwgdmFsdWUsIHBhcnNlRXJy
b3IsIEZvcmJpZE5lZ2F0aXZlTGVuZ3RocykpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gU1ZHTmFt
ZXM6OmhlaWdodEF0dHIpCiAgICAgICAgIHNldEhlaWdodEJhc2VWYWx1ZShTVkdMZW5ndGg6OmNv
bnN0cnVjdChMZW5ndGhNb2RlSGVpZ2h0LCB2YWx1ZSwgcGFyc2VFcnJvciwgRm9yYmlkTmVnYXRp
dmVMZW5ndGhzKSk7Ci0gICAgZWxzZSBpZiAoU1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKG5hbWUs
IHZhbHVlKQotICAgICAgICAgICAgICAgfHwgU1ZHTGFuZ1NwYWNlOjpwYXJzZUF0dHJpYnV0ZShu
YW1lLCB2YWx1ZSkKKyAgICBlbHNlIGlmIChTVkdMYW5nU3BhY2U6OnBhcnNlQXR0cmlidXRlKG5h
bWUsIHZhbHVlKQogICAgICAgICAgICAgICAgfHwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpCiAgICAgICAgICAgICAgICB8fCBTVkdGaXRU
b1ZpZXdCb3g6OnBhcnNlQXR0cmlidXRlKHRoaXMsIG5hbWUsIHZhbHVlKQogICAgICAgICAgICAg
ICAgfHwgU1ZHWm9vbUFuZFBhbjo6cGFyc2VBdHRyaWJ1dGUodGhpcywgbmFtZSwgdmFsdWUpKSB7
CkBAIC0yODAsNyArMjc5LDcgQEAgdm9pZCBTVkdTVkdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcKIH0KIAogdm9pZCBT
VkdTVkdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW1lKQoteyAKK3sKICAgICBib29sIHVwZGF0ZVJlbGF0aXZlTGVuZ3Roc09yVmlld0JveCA9
IGZhbHNlOwogICAgIGJvb2wgd2lkdGhDaGFuZ2VkID0gYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Ondp
ZHRoQXR0cjsKICAgICBpZiAod2lkdGhDaGFuZ2VkCkBAIC0zMDYsOCArMzA1LDYgQEAgdm9pZCBT
VkdTVkdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW1lKQogICAgIH0KIAogICAgIFNWR0VsZW1lbnRJbnN0YW5jZTo6SW52YWxpZGF0aW9uR3Vh
cmQgaW52YWxpZGF0aW9uR3VhcmQodGhpcyk7Ci0gICAgaWYgKFNWR1Rlc3RzOjpoYW5kbGVBdHRy
aWJ1dGVDaGFuZ2UodGhpcywgYXR0ck5hbWUpKQotICAgICAgICByZXR1cm47CiAKICAgICBpZiAo
dXBkYXRlUmVsYXRpdmVMZW5ndGhzT3JWaWV3Qm94CiAgICAgICAgIHx8IFNWR0xhbmdTcGFjZTo6
aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkKQEAgLTMxOCw3ICszMTUsNyBAQCB2b2lkIFNWR1NW
R0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTVkdTdHlsZWRFbGVtZW50OjpzdmdB
dHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKKyAgICBTVkdHcmFwaGljc0VsZW1lbnQ6OnN2Z0F0
dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwogfQogCiB1bnNpZ25lZCBTVkdTVkdFbGVtZW50Ojpz
dXNwZW5kUmVkcmF3KHVuc2lnbmVkIC8qIG1heFdhaXRNaWxsaXNlY29uZHMgKi8pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggNGVhNmQ3YjhhOThiNDZjYmNlNjZlNjE0NWNj
MDFkMzBiZTExZWViNC4uODRhNzdhZGJmYzAwNmRlOTIyMGUxYTg4Njk1MDRlYzllZDEwMzgzMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtMTM1LDcgKzEzNSw2IEBAIGJv
b2wgU1ZHVXNlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmll
ZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJp
YnV0ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFNWR1Rlc3RzOjphZGRTdXBwb3J0ZWRBdHRyaWJ1
dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBv
cnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmli
dXRlcyk7CiAgICAgICAgIFNWR1VSSVJlZmVyZW5jZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhz
dXBwb3J0ZWRBdHRyaWJ1dGVzKTsKQEAgLTE2MSw4ICsxNjAsNyBAQCB2b2lkIFNWR1VzZUVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21p
Y1N0cmluZwogICAgICAgICBzZXRXaWR0aEJhc2VWYWx1ZShTVkdMZW5ndGg6OmNvbnN0cnVjdChM
ZW5ndGhNb2RlV2lkdGgsIHZhbHVlLCBwYXJzZUVycm9yLCBGb3JiaWROZWdhdGl2ZUxlbmd0aHMp
KTsKICAgICBlbHNlIGlmIChuYW1lID09IFNWR05hbWVzOjpoZWlnaHRBdHRyKQogICAgICAgICBz
ZXRIZWlnaHRCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZUhlaWdodCwg
dmFsdWUsIHBhcnNlRXJyb3IsIEZvcmJpZE5lZ2F0aXZlTGVuZ3RocykpOwotICAgIGVsc2UgaWYg
KFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkKLSAgICAgICAgICAgICB8fCBT
VkdMYW5nU3BhY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKQorICAgIGVsc2UgaWYgKFNW
R0xhbmdTcGFjZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpCiAgICAgICAgICAgICAgfHwg
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUp
CiAgICAgICAgICAgICAgfHwgU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2
YWx1ZSkpIHsKICAgICB9IGVsc2UKQEAgLTIzOCw5ICsyMzYsNiBAQCB2b2lkIFNWR1VzZUVsZW1l
bnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoU1ZHVGVzdHM6OmhhbmRsZUF0dHJpYnV0
ZUNoYW5nZSh0aGlzLCBhdHRyTmFtZSkpCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmIChTVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2UodGhpcywgYXR0
ck5hbWUpKQogICAgICAgICByZXR1cm47CiAK
</data>
<flag name="review"
          id="227584"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="227587"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205971</attachid>
            <date>2013-07-03 00:04:50 -0700</date>
            <delta_ts>2013-07-03 01:04:36 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>118292_SVGTests_parsing.patch</filename>
            <type>text/plain</type>
            <size>25008</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1ZTE3MzYwLi5lNzdiN2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzMg
QEAKKzIwMTMtMDctMDIgIENocmlzdG9waGUgRHVtZXogIDxjaC5kdW1lekBzaXNhLnNhbXN1bmcu
Y29tPgorCisgICAgICAgIE1vdmUgU1ZHVGVzdHMgYXR0cmlidXRlcyBwYXJzaW5nIHRvIFNWR0dy
YXBoaWNzRWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE4MjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAg
ICAgTW92ZSBTVkdUZXN0cyBhdHRyaWJ1dGVzIHBhcnNpbmcgdG8gU1ZHR3JhcGhpY3NFbGVtZW50
IGluc3RlYWQgb2YgZG9pbmcKKyAgICAgICAgdGhpcyBpbiBlYWNoIG9mIGl0cyBzdWJjbGFzc2Vz
LiBTVkdHcmFwaGljc0VsZW1lbnQgaXMgbm93IHRoZSBvbmUKKyAgICAgICAgc3ViY2xhc3Npbmcg
U1ZHVGVzdHMgYWZ0ZXIgcjE1MjE2Ny4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2
aW9yIGNoYW5nZS4KKworICAgICAgICAqIHN2Zy9TVkdBRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHQUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHQ2ly
Y2xlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdDaXJjbGVFbGVtZW50Ojppc1N1
cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdDaXJjbGVFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdDaXJjbGVFbGVtZW50OjpzdmdB
dHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0NsaXBQYXRoRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ2xpcFBhdGhFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZSk6CisgICAgICAgICogc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0VsbGlwc2VFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdFbGxpcHNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRWxsaXBzZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAq
IHN2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdG
b3JlaWduT2JqZWN0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToK
KyAgICAgICAgKiBzdmcvU1ZHR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR0Vs
ZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0dFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdHRWxlbWVudDo6c3Zn
QXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdHcmFwaGljc0VsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0dyYXBoaWNzRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR3JhcGhpY3NFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ltYWdlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHSW1hZ2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdJbWFnZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2
Zy9TVkdMaW5lRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaW5lRWxlbWVudDo6
aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGluZUVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpbmVFbGVtZW50OjpzdmdB
dHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAg
ICogc3ZnL1NWR1BvbHlFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlFbGVt
ZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2x5RWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9seUVsZW1lbnQ6
OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdSZWN0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdSZWN0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1JlY3RFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAg
ICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKTogRmFsbCBiYWNrIHRvIGNhbGxpbmcKKyAgICAgICAgU1ZH
R3JhcGhpY3NFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKCkgaW5zdGVhZCBvZgorICAgICAg
ICBTVkdTdHlsZWRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKCkgYXMgU1ZHR3JhcGhpY3NF
bGVtZW50IGlzIHRoZQorICAgICAgICBwYXJlbnQgY2xhc3MgYW5kIGl0IHRha2VzIGNhcmUgb2Yg
cGFyc2luZyBTVkdUZXN0cyBhdHRyaWJ1dGVzIG5vdy4KKyAgICAgICAgKiBzdmcvU1ZHVXNlRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50Ojppc1N1cHBvcnRlZEF0
dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KToKKwogMjAxMy0wNy0wMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgog
CiAgICAgICAgIEFsd2F5cyBmbGlwIHRoZSBjb29yZGluYXRlIHN5c3RlbSBiZWZvcmUgZHJhd2lu
ZyBOU1ZpZXdzIGZyb20gV2lkZ2V0OjpwYWludApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0FFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAK
aW5kZXggYTAwZTg4YS4uMTQ4ZjA1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCkBA
IC05Miw3ICs5Miw2IEBAIGJvb2wgU1ZHQUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFz
aFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewogICAgICAgICBTVkdVUklSZWZlcmVuY2U6
OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7Ci0gICAgICAgIFNW
R1Rlc3RzOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAg
ICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmli
dXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRl
ZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuYWRkKFNWR05hbWVzOjp0YXJnZXRBdHRyKTsKQEAgLTExNCw4ICsxMTMsNiBAQCB2b2lk
IFNWR0FFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9taWNTdHJpbmcmCiAKICAgICBpZiAoU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJp
YnV0ZShuYW1lLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoU1ZHVGVzdHM6OnBh
cnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKSkKLSAgICAgICAgcmV0dXJuOwogICAgIGlmIChTVkdM
YW5nU3BhY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIGlmIChTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAKaW5kZXggYWU4
ZTQwMC4uZDMwYTI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcApA
QCAtNjksNyArNjksNiBAQCBib29sIFNWR0NpcmNsZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewogICAgIERFRklORV9TVEFUSUNf
TE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwog
ICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewotICAgICAgICBTVkdUZXN0
czo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAg
U1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMp
OwogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRy
aWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmFkZChTVkdOYW1lczo6Y3hBdHRyKTsKQEAgLTkxLDggKzkwLDcgQEAgdm9pZCBTVkdDaXJjbGVF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9taWNTdHIKICAgICAgICAgc2V0Q3lCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVu
Z3RoTW9kZUhlaWdodCwgdmFsdWUsIHBhcnNlRXJyb3IpKTsKICAgICBlbHNlIGlmIChuYW1lID09
IFNWR05hbWVzOjpyQXR0cikKICAgICAgICAgc2V0UkJhc2VWYWx1ZShTVkdMZW5ndGg6OmNvbnN0
cnVjdChMZW5ndGhNb2RlT3RoZXIsIHZhbHVlLCBwYXJzZUVycm9yLCBGb3JiaWROZWdhdGl2ZUxl
bmd0aHMpKTsKLSAgICBlbHNlIGlmIChTVkdUZXN0czo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFs
dWUpCi0gICAgICAgICAgICAgfHwgU1ZHTGFuZ1NwYWNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2
YWx1ZSkKKyAgICBlbHNlIGlmIChTVkdMYW5nU3BhY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZh
bHVlKQogICAgICAgICAgICAgIHx8IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNl
QXR0cmlidXRlKG5hbWUsIHZhbHVlKSkgewogICAgIH0gZWxzZQogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKQEAgLTExNiw5ICsxMTQsNiBAQCB2b2lkIFNWR0NpcmNsZUVsZW1lbnQ6OnN2
Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgaWYg
KGlzTGVuZ3RoQXR0cmlidXRlKQogICAgICAgICB1cGRhdGVSZWxhdGl2ZUxlbmd0aHNJbmZvcm1h
dGlvbigpOwogCi0gICAgaWYgKFNWR1Rlc3RzOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2UodGhpcywg
YXR0ck5hbWUpKQotICAgICAgICByZXR1cm47Ci0KICAgICBSZW5kZXJTVkdTaGFwZSogcmVuZGVy
ZXIgPSB0b1JlbmRlclNWR1NoYXBlKHRoaXMtPnJlbmRlcmVyKCkpOwogICAgIGlmICghcmVuZGVy
ZXIpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdD
bGlwUGF0aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVu
dC5jcHAKaW5kZXggZDc0ZDlkOS4uYjA5YjlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Ns
aXBQYXRoRWxlbWVudC5jcHAKQEAgLTYxLDcgKzYxLDYgQEAgYm9vbCBTVkdDbGlwUGF0aEVsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9y
dGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHko
KSkgewotICAgICAgICBTVkdUZXN0czo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRB
dHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHTGFuZ1NwYWNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVz
KHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAg
ICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6Y2xpcFBhdGhVbml0c0F0dHIpOwpA
QCAtODMsOCArODIsNiBAQCB2b2lkIFNWR0NsaXBQYXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljUwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgaWYgKFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkp
Ci0gICAgICAgIHJldHVybjsKICAgICBpZiAoU1ZHTGFuZ1NwYWNlOjpwYXJzZUF0dHJpYnV0ZShu
YW1lLCB2YWx1ZSkpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoU1ZHRXh0ZXJuYWxSZXNvdXJj
ZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAKaW5kZXggMWZlMzM4Mi4uMGZiOWMyNDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcApAQCAtNzAsNyArNzAsNiBAQCBib29s
IFNWR0VsbGlwc2VFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyTmFtZSkKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlm
aWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0
cmlidXRlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgU1ZHVGVzdHM6OmFkZFN1cHBvcnRlZEF0dHJp
YnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3Vw
cG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRy
aWJ1dGVzKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmN4QXR0
cik7CkBAIC05NSw4ICs5NCw3IEBAIHZvaWQgU1ZHRWxsaXBzZUVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0CiAgICAgICAgIHNl
dFJ4QmFzZVZhbHVlKFNWR0xlbmd0aDo6Y29uc3RydWN0KExlbmd0aE1vZGVXaWR0aCwgdmFsdWUs
IHBhcnNlRXJyb3IsIEZvcmJpZE5lZ2F0aXZlTGVuZ3RocykpOwogICAgIGVsc2UgaWYgKG5hbWUg
PT0gU1ZHTmFtZXM6OnJ5QXR0cikKICAgICAgICAgc2V0UnlCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpj
b25zdHJ1Y3QoTGVuZ3RoTW9kZUhlaWdodCwgdmFsdWUsIHBhcnNlRXJyb3IsIEZvcmJpZE5lZ2F0
aXZlTGVuZ3RocykpOwotICAgIGVsc2UgaWYgKFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShuYW1l
LCB2YWx1ZSkKLSAgICAgICAgICAgICB8fCBTVkdMYW5nU3BhY2U6OnBhcnNlQXR0cmlidXRlKG5h
bWUsIHZhbHVlKQorICAgIGVsc2UgaWYgKFNWR0xhbmdTcGFjZTo6cGFyc2VBdHRyaWJ1dGUobmFt
ZSwgdmFsdWUpCiAgICAgICAgICAgICAgfHwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6
cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKSB7CiAgICAgfSBlbHNlCiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpAQCAtMTIwLDkgKzExOCw2IEBAIHZvaWQgU1ZHRWxsaXBzZUVsZW1l
bnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAK
ICAgICBpZiAoaXNMZW5ndGhBdHRyaWJ1dGUpCiAgICAgICAgIHVwZGF0ZVJlbGF0aXZlTGVuZ3Ro
c0luZm9ybWF0aW9uKCk7Ci0gCi0gICAgaWYgKFNWR1Rlc3RzOjpoYW5kbGVBdHRyaWJ1dGVDaGFu
Z2UodGhpcywgYXR0ck5hbWUpKQotICAgICAgICByZXR1cm47CiAKICAgICBSZW5kZXJTVkdTaGFw
ZSogcmVuZGVyZXIgPSB0b1JlbmRlclNWR1NoYXBlKHRoaXMtPnJlbmRlcmVyKCkpOwogICAgIGlm
ICghcmVuZGVyZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50LmNwcAppbmRleCBlODFjOGQzLi5lY2ExYmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKQEAgLTczLDcgKzczLDYgQEAgYm9vbCBTVkdG
b3JlaWduT2JqZWN0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlm
aWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0
cmlidXRlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgU1ZHVGVzdHM6OmFkZFN1cHBvcnRlZEF0dHJp
YnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3Vw
cG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRy
aWJ1dGVzKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnhBdHRy
KTsKQEAgLTk4LDggKzk3LDcgQEAgdm9pZCBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXQKICAgICAgICAgc2V0
V2lkdGhCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZVdpZHRoLCB2YWx1
ZSwgcGFyc2VFcnJvcikpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmhlaWdodEF0
dHIpCiAgICAgICAgIHNldEhlaWdodEJhc2VWYWx1ZShTVkdMZW5ndGg6OmNvbnN0cnVjdChMZW5n
dGhNb2RlSGVpZ2h0LCB2YWx1ZSwgcGFyc2VFcnJvcikpOwotICAgIGVsc2UgaWYgKFNWR1Rlc3Rz
OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkKLSAgICAgICAgICAgICAgIHx8IFNWR0xhbmdT
cGFjZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpCisgICAgZWxzZSBpZiAoU1ZHTGFuZ1Nw
YWNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkKICAgICAgICAgICAgICAgIHx8IFNWR0V4
dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKSkgewog
ICAgIH0gZWxzZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTEyNCw5ICsxMjIs
NiBAQCB2b2lkIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIGlmIChpc0xlbmd0aEF0dHJpYnV0ZSkK
ICAgICAgICAgdXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5mb3JtYXRpb24oKTsKIAotICAgIGlmIChT
VkdUZXN0czo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlKHRoaXMsIGF0dHJOYW1lKSkKLSAgICAgICAg
cmV0dXJuOwotCiAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJl
cigpKQogICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBhcmVudFJl
c291cmNlSW52YWxpZGF0aW9uKHJlbmRlcmVyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQu
Y3BwCmluZGV4IDNmMWFjMzIuLmU2YWQxNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNw
cApAQCAtNTUsNyArNTUsNiBAQCBib29sIFNWR0dFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAg
ICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgU1ZHVGVzdHM6
OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNW
R0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsK
ICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmli
dXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICB9CkBAIC02OSw4ICs2OCw2IEBAIHZvaWQg
U1ZHR0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21pY1N0cmluZyYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChTVkdU
ZXN0czo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKQotICAgICAgICByZXR1cm47CiAgICAg
aWYgKFNWR0xhbmdTcGFjZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKQogICAgICAgICBy
ZXR1cm47CiAgICAgaWYgKFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKSkKQEAgLTg3LDkgKzg0LDYgQEAgdm9pZCBTVkdHRWxlbWVudDo6c3Zn
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICB9CiAK
ICAgICBTVkdFbGVtZW50SW5zdGFuY2U6OkludmFsaWRhdGlvbkd1YXJkIGludmFsaWRhdGlvbkd1
YXJkKHRoaXMpOwotICAgIAotICAgIGlmIChTVkdUZXN0czo6aGFuZGxlQXR0cmlidXRlQ2hhbmdl
KHRoaXMsIGF0dHJOYW1lKSkKLSAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKFJlbmRlck9iamVj
dCogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQogICAgICAgICBSZW5kZXJTVkdSZXNvdXJj
ZTo6bWFya0ZvckxheW91dEFuZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uKHJlbmRlcmVyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHAKaW5kZXggMzdlMGY4YS4u
N2M2NjU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHAKQEAg
LTk0LDggKzk0LDEwIEBAIEFmZmluZVRyYW5zZm9ybSogU1ZHR3JhcGhpY3NFbGVtZW50OjpzdXBw
bGVtZW50YWxUcmFuc2Zvcm0oKQogYm9vbCBTVkdHcmFwaGljc0VsZW1lbnQ6OmlzU3VwcG9ydGVk
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewogICAgIERFRklORV9T
VEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywg
KCkpOwotICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKKyAgICBpZiAoc3Vw
cG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgU1ZHVGVzdHM6OmFkZFN1cHBv
cnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp0cmFuc2Zvcm1BdHRyKTsKKyAgICB9CiAgICAgcmV0dXJu
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+
KGF0dHJOYW1lKTsKIH0KIApAQCAtMTE0LDYgKzExNiw5IEBAIHZvaWQgU1ZHR3JhcGhpY3NFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9t
aWNTCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoU1ZHVGVzdHM6OnBhcnNlQXR0
cmlidXRlKG5hbWUsIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKQEAgLTEyNiw2ICsxMzEsOSBAQCB2b2lkIFNWR0dyYXBoaWNzRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIAog
ICAgIFNWR0VsZW1lbnRJbnN0YW5jZTo6SW52YWxpZGF0aW9uR3VhcmQgaW52YWxpZGF0aW9uR3Vh
cmQodGhpcyk7CiAKKyAgICBpZiAoU1ZHVGVzdHM6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZSh0aGlz
LCBhdHRyTmFtZSkpCisgICAgICAgIHJldHVybjsKKwogICAgIFJlbmRlck9iamVjdCogb2JqZWN0
ID0gcmVuZGVyZXIoKTsKICAgICBpZiAoIW9iamVjdCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAppbmRleCAyZjk0MjcxLi4zYmJmZmUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcApAQCAtNzcsNyArNzcsNiBAQCBib29s
IFNWR0ltYWdlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmll
ZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJp
YnV0ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFNWR1Rlc3RzOjphZGRTdXBwb3J0ZWRBdHRyaWJ1
dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1cHBv
cnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmli
dXRlcyk7CiAgICAgICAgIFNWR1VSSVJlZmVyZW5jZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhz
dXBwb3J0ZWRBdHRyaWJ1dGVzKTsKQEAgLTEyNSw4ICsxMjQsNyBAQCB2b2lkIFNWR0ltYWdlRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bWljU3RyaQogICAgICAgICBzZXRXaWR0aEJhc2VWYWx1ZShTVkdMZW5ndGg6OmNvbnN0cnVjdChM
ZW5ndGhNb2RlV2lkdGgsIHZhbHVlLCBwYXJzZUVycm9yLCBGb3JiaWROZWdhdGl2ZUxlbmd0aHMp
KTsKICAgICBlbHNlIGlmIChuYW1lID09IFNWR05hbWVzOjpoZWlnaHRBdHRyKQogICAgICAgICBz
ZXRIZWlnaHRCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZUhlaWdodCwg
dmFsdWUsIHBhcnNlRXJyb3IsIEZvcmJpZE5lZ2F0aXZlTGVuZ3RocykpOwotICAgIGVsc2UgaWYg
KFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkKLSAgICAgICAgICAgICB8fCBT
VkdMYW5nU3BhY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKQorICAgIGVsc2UgaWYgKFNW
R0xhbmdTcGFjZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpCiAgICAgICAgICAgICAgfHwg
U1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUp
CiAgICAgICAgICAgICAgfHwgU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2
YWx1ZSkpIHsKICAgICB9IGVsc2UKQEAgLTE1Miw5ICsxNTAsNiBAQCB2b2lkIFNWR0ltYWdlRWxl
bWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
ICAgICBpZiAoaXNMZW5ndGhBdHRyaWJ1dGUpCiAgICAgICAgIHVwZGF0ZVJlbGF0aXZlTGVuZ3Ro
c0luZm9ybWF0aW9uKCk7CiAKLSAgICBpZiAoU1ZHVGVzdHM6OmhhbmRsZUF0dHJpYnV0ZUNoYW5n
ZSh0aGlzLCBhdHRyTmFtZSkpCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmIChTVkdVUklSZWZl
cmVuY2U6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIG1faW1hZ2VMb2Fk
ZXIudXBkYXRlRnJvbUVsZW1lbnRJZ25vcmluZ1ByZXZpb3VzRXJyb3IoKTsKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAKaW5kZXggOGYyM2YxOS4uYWM3
Yzk5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuY3BwCkBAIC02OSw3ICs2OSw2
IEBAIGJvb2wgU1ZHTGluZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJOYW1lKQogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxR
dWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkgewotICAgICAgICBTVkdUZXN0czo6YWRkU3VwcG9ydGVk
QXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHTGFuZ1NwYWNlOjph
ZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdF
eHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRl
ZEF0dHJpYnV0ZXMpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6
eDFBdHRyKTsKQEAgLTk0LDggKzkzLDcgQEAgdm9pZCBTVkdMaW5lRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW4KICAgICAg
ICAgc2V0WDJCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZVdpZHRoLCB2
YWx1ZSwgcGFyc2VFcnJvcikpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OnkyQXR0
cikKICAgICAgICAgc2V0WTJCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9k
ZUhlaWdodCwgdmFsdWUsIHBhcnNlRXJyb3IpKTsKLSAgICBlbHNlIGlmIChTVkdUZXN0czo6cGFy
c2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpCi0gICAgICAgICAgICAgfHwgU1ZHTGFuZ1NwYWNlOjpw
YXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkKKyAgICBlbHNlIGlmIChTVkdMYW5nU3BhY2U6OnBh
cnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKQogICAgICAgICAgICAgIHx8IFNWR0V4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKSkgewogICAgIH0gZWxz
ZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTEyMCw5ICsxMTgsNiBAQCB2b2lk
IFNWR0xpbmVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJOYW1lKQogICAgIGlmIChpc0xlbmd0aEF0dHJpYnV0ZSkKICAgICAgICAgdXBkYXRlUmVs
YXRpdmVMZW5ndGhzSW5mb3JtYXRpb24oKTsKIAotICAgIGlmIChTVkdUZXN0czo6aGFuZGxlQXR0
cmlidXRlQ2hhbmdlKHRoaXMsIGF0dHJOYW1lKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgUmVu
ZGVyU1ZHU2hhcGUqIHJlbmRlcmVyID0gdG9SZW5kZXJTVkdTaGFwZSh0aGlzLT5yZW5kZXJlcigp
KTsKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1BhdGhFbGVtZW50LmNwcAppbmRleCA4MWEzZTY1Li5kNmRhMzNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoRWxlbWVudC5jcHAKQEAgLTIwOCw3ICsyMDgsNiBAQCBib29sIFNWR1BhdGhFbGVt
ZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
IHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBv
cnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5
KCkpIHsKLSAgICAgICAgU1ZHVGVzdHM6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVk
QXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRl
cyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAg
ICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmRBdHRyKTsKQEAgLTIzNyw4ICsy
MzYsNiBAQCB2b2lkIFNWR1BhdGhFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbgogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgaWYgKFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkpCi0gICAgICAg
IHJldHVybjsKICAgICBpZiAoU1ZHTGFuZ1NwYWNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1
ZSkpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKQpAQCAtMjU1LDkgKzI1Miw2IEBAIHZvaWQg
U1ZHUGF0aEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCiAgICAgfQogCiAgICAgU1ZHRWxlbWVudEluc3RhbmNlOjpJbnZhbGlkYXRpb25H
dWFyZCBpbnZhbGlkYXRpb25HdWFyZCh0aGlzKTsKLSAgICAKLSAgICBpZiAoU1ZHVGVzdHM6Omhh
bmRsZUF0dHJpYnV0ZUNoYW5nZSh0aGlzLCBhdHRyTmFtZSkpCi0gICAgICAgIHJldHVybjsKIAog
ICAgIFJlbmRlclNWR1BhdGgqIHJlbmRlcmVyID0gdG9SZW5kZXJTVkdQYXRoKHRoaXMtPnJlbmRl
cmVyKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAppbmRleCAzYWNmMGI3
Li5mZDVjNjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAKQEAgLTY5LDcg
KzY5LDYgQEAgYm9vbCBTVkdQb2x5RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNo
U2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1
cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFNWR1Rlc3RzOjphZGRTdXBw
b3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdMYW5nU3Bh
Y2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAg
IFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3Vw
cG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05h
bWVzOjpwb2ludHNBdHRyKTsKQEAgLTk2LDggKzk1LDYgQEAgdm9pZCBTVkdQb2x5RWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3Ry
aW4KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChTVkdUZXN0czo6cGFyc2VBdHRy
aWJ1dGUobmFtZSwgdmFsdWUpKQotICAgICAgICByZXR1cm47CiAgICAgaWYgKFNWR0xhbmdTcGFj
ZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpKQogICAgICAgICByZXR1cm47CiAgICAgaWYg
KFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVl
KSkKQEAgLTExNCw5ICsxMTEsNiBAQCB2b2lkIFNWR1BvbHlFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIH0KIAogICAgIFNWR0Vs
ZW1lbnRJbnN0YW5jZTo6SW52YWxpZGF0aW9uR3VhcmQgaW52YWxpZGF0aW9uR3VhcmQodGhpcyk7
Ci0gICAgCi0gICAgaWYgKFNWR1Rlc3RzOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2UodGhpcywgYXR0
ck5hbWUpKQotICAgICAgICByZXR1cm47CiAKICAgICBSZW5kZXJTVkdTaGFwZSogcmVuZGVyZXIg
PSB0b1JlbmRlclNWR1NoYXBlKHRoaXMtPnJlbmRlcmVyKCkpOwogICAgIGlmICghcmVuZGVyZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcAppbmRleCA4MGZhMjJjLi5kNzIyOGM5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAKQEAgLTc1LDcgKzc1LDYgQEAg
Ym9vbCBTVkdSZWN0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0PFF1YWxp
ZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0
dHJpYnV0ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFNWR1Rlc3RzOjphZGRTdXBwb3J0ZWRBdHRy
aWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdMYW5nU3BhY2U6OmFkZFN1
cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0
cmlidXRlcyk7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp4QXR0
cik7CkBAIC0xMDYsOCArMTA1LDcgQEAgdm9pZCBTVkdSZWN0RWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW4KICAgICAgICAg
c2V0V2lkdGhCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVuZ3RoTW9kZVdpZHRoLCB2
YWx1ZSwgcGFyc2VFcnJvciwgRm9yYmlkTmVnYXRpdmVMZW5ndGhzKSk7CiAgICAgZWxzZSBpZiAo
bmFtZSA9PSBTVkdOYW1lczo6aGVpZ2h0QXR0cikKICAgICAgICAgc2V0SGVpZ2h0QmFzZVZhbHVl
KFNWR0xlbmd0aDo6Y29uc3RydWN0KExlbmd0aE1vZGVIZWlnaHQsIHZhbHVlLCBwYXJzZUVycm9y
LCBGb3JiaWROZWdhdGl2ZUxlbmd0aHMpKTsKLSAgICBlbHNlIGlmIChTVkdUZXN0czo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpCi0gICAgICAgICAgICAgfHwgU1ZHTGFuZ1NwYWNlOjpwYXJz
ZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkKKyAgICBlbHNlIGlmIChTVkdMYW5nU3BhY2U6OnBhcnNl
QXR0cmlidXRlKG5hbWUsIHZhbHVlKQogICAgICAgICAgICAgIHx8IFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKSkgewogICAgIH0gZWxzZQog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAgLTEzNCw5ICsxMzIsNiBAQCB2b2lkIFNW
R1JlY3RFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW1lKQogICAgIGlmIChpc0xlbmd0aEF0dHJpYnV0ZSkKICAgICAgICAgdXBkYXRlUmVsYXRp
dmVMZW5ndGhzSW5mb3JtYXRpb24oKTsKIAotICAgIGlmIChTVkdUZXN0czo6aGFuZGxlQXR0cmli
dXRlQ2hhbmdlKHRoaXMsIGF0dHJOYW1lKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgUmVuZGVy
U1ZHU2hhcGUqIHJlbmRlcmVyID0gdG9SZW5kZXJTVkdTaGFwZSh0aGlzLT5yZW5kZXJlcigpKTsK
ICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZH
RWxlbWVudC5jcHAKaW5kZXggN2JkMTUyYy4uNjQ2MTljOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
VkdFbGVtZW50LmNwcApAQCAtMjY4LDggKzI2OCw3IEBAIHZvaWQgU1ZHU1ZHRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5n
CiAgICAgICAgIHNldFdpZHRoQmFzZVZhbHVlKFNWR0xlbmd0aDo6Y29uc3RydWN0KExlbmd0aE1v
ZGVXaWR0aCwgdmFsdWUsIHBhcnNlRXJyb3IsIEZvcmJpZE5lZ2F0aXZlTGVuZ3RocykpOwogICAg
IGVsc2UgaWYgKG5hbWUgPT0gU1ZHTmFtZXM6OmhlaWdodEF0dHIpCiAgICAgICAgIHNldEhlaWdo
dEJhc2VWYWx1ZShTVkdMZW5ndGg6OmNvbnN0cnVjdChMZW5ndGhNb2RlSGVpZ2h0LCB2YWx1ZSwg
cGFyc2VFcnJvciwgRm9yYmlkTmVnYXRpdmVMZW5ndGhzKSk7Ci0gICAgZWxzZSBpZiAoU1ZHVGVz
dHM6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKQotICAgICAgICAgICAgICAgfHwgU1ZHTGFu
Z1NwYWNlOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkKKyAgICBlbHNlIGlmIChTVkdMYW5n
U3BhY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKQogICAgICAgICAgICAgICAgfHwgU1ZH
RXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpCiAg
ICAgICAgICAgICAgICB8fCBTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlQXR0cmlidXRlKHRoaXMsIG5h
bWUsIHZhbHVlKQogICAgICAgICAgICAgICAgfHwgU1ZHWm9vbUFuZFBhbjo6cGFyc2VBdHRyaWJ1
dGUodGhpcywgbmFtZSwgdmFsdWUpKSB7CkBAIC0yODAsNyArMjc5LDcgQEAgdm9pZCBTVkdTVkdF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9taWNTdHJpbmcKIH0KIAogdm9pZCBTVkdTVkdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQoteyAKK3sKICAgICBib29sIHVwZGF0ZVJl
bGF0aXZlTGVuZ3Roc09yVmlld0JveCA9IGZhbHNlOwogICAgIGJvb2wgd2lkdGhDaGFuZ2VkID0g
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OndpZHRoQXR0cjsKICAgICBpZiAod2lkdGhDaGFuZ2VkCkBA
IC0zMDYsOCArMzA1LDYgQEAgdm9pZCBTVkdTVkdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIH0KIAogICAgIFNWR0VsZW1lbnRJ
bnN0YW5jZTo6SW52YWxpZGF0aW9uR3VhcmQgaW52YWxpZGF0aW9uR3VhcmQodGhpcyk7Ci0gICAg
aWYgKFNWR1Rlc3RzOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2UodGhpcywgYXR0ck5hbWUpKQotICAg
ICAgICByZXR1cm47CiAKICAgICBpZiAodXBkYXRlUmVsYXRpdmVMZW5ndGhzT3JWaWV3Qm94CiAg
ICAgICAgIHx8IFNWR0xhbmdTcGFjZTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkKQEAgLTMx
OCw3ICszMTUsNyBAQCB2b2lkIFNWR1NWR0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBTVkdTdHlsZWRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKKyAgICBT
VkdHcmFwaGljc0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwogfQogCiB1
bnNpZ25lZCBTVkdTVkdFbGVtZW50OjpzdXNwZW5kUmVkcmF3KHVuc2lnbmVkIC8qIG1heFdhaXRN
aWxsaXNlY29uZHMgKi8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKaW5kZXggNGVh
NmQ3Yi4uODRhNzdhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtMTM1
LDcgKzEzNSw2IEBAIGJvb2wgU1ZHVXNlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChI
YXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYg
KHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFNWR1Rlc3RzOjphZGRT
dXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdMYW5n
U3BhY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAg
ICAgIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQ6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMo
c3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgICAgIFNWR1VSSVJlZmVyZW5jZTo6YWRkU3VwcG9y
dGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKQEAgLTE2MSw4ICsxNjAsNyBAQCB2
b2lkIFNWR1VzZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21pY1N0cmluZwogICAgICAgICBzZXRXaWR0aEJhc2VWYWx1ZShTVkdMZW5n
dGg6OmNvbnN0cnVjdChMZW5ndGhNb2RlV2lkdGgsIHZhbHVlLCBwYXJzZUVycm9yLCBGb3JiaWRO
ZWdhdGl2ZUxlbmd0aHMpKTsKICAgICBlbHNlIGlmIChuYW1lID09IFNWR05hbWVzOjpoZWlnaHRB
dHRyKQogICAgICAgICBzZXRIZWlnaHRCYXNlVmFsdWUoU1ZHTGVuZ3RoOjpjb25zdHJ1Y3QoTGVu
Z3RoTW9kZUhlaWdodCwgdmFsdWUsIHBhcnNlRXJyb3IsIEZvcmJpZE5lZ2F0aXZlTGVuZ3Rocykp
OwotICAgIGVsc2UgaWYgKFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSkKLSAg
ICAgICAgICAgICB8fCBTVkdMYW5nU3BhY2U6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKQor
ICAgIGVsc2UgaWYgKFNWR0xhbmdTcGFjZTo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpCiAg
ICAgICAgICAgICAgfHwgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6cGFyc2VBdHRyaWJ1
dGUobmFtZSwgdmFsdWUpCiAgICAgICAgICAgICAgfHwgU1ZHVVJJUmVmZXJlbmNlOjpwYXJzZUF0
dHJpYnV0ZShuYW1lLCB2YWx1ZSkpIHsKICAgICB9IGVsc2UKQEAgLTIzOCw5ICsyMzYsNiBAQCB2
b2lkIFNWR1VzZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoU1ZHVGVzdHM6
OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZSh0aGlzLCBhdHRyTmFtZSkpCi0gICAgICAgIHJldHVybjsK
LQogICAgIGlmIChTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjpoYW5kbGVBdHRyaWJ1dGVD
aGFuZ2UodGhpcywgYXR0ck5hbWUpKQogICAgICAgICByZXR1cm47CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>