<?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>240320</bug_id>
          
          <creation_ts>2022-05-11 16:02:08 -0700</creation_ts>
          <short_desc>Quirk flightaware.com to use old serialisation for number</short_desc>
          <delta_ts>2022-12-15 00:00:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>218880</dependson>
          <blocked>249376</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Woodrow">mattwoodrow</reporter>
          <assigned_to name="Matt Woodrow">mattwoodrow</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>karlcow</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1868238</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-05-11 16:02:08 -0700</bug_when>
    <thetext>&lt;rdar://92054921&gt;

Flightaware is serialising matrix() style properties, and expecting the string comparison to match one created using JS string concatenation.

This was previously true, but regressed when bug 218880 changed CSS serialisation to match the spec.

We should detect flightaware and use the old serialisation, until the site can be fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868304</commentid>
    <comment_count>1</comment_count>
      <attachid>459206</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-05-11 20:45:10 -0700</bug_when>
    <thetext>Created attachment 459206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868590</commentid>
    <comment_count>2</comment_count>
      <attachid>459206</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-05-12 17:19:51 -0700</bug_when>
    <thetext>Comment on attachment 459206
Patch

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

&gt; Source/WebCore/css/CSSValue.h:280
&gt; +    mutable unsigned m_cachedCSSTextUsesQuirk : 1;

I think this needs to say what the quirk is, something like m_cachedCSSTextUsesLegacyPrecision or something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868596</commentid>
    <comment_count>3</comment_count>
      <attachid>459263</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-05-12 17:43:54 -0700</bug_when>
    <thetext>Created attachment 459263
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868599</commentid>
    <comment_count>4</comment_count>
      <attachid>459265</attachid>
    <who name="Matt Woodrow">mattwoodrow</who>
    <bug_when>2022-05-12 17:47:56 -0700</bug_when>
    <thetext>Created attachment 459265
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868620</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-12 18:50:43 -0700</bug_when>
    <thetext>Committed r294138 (250508@main): &lt;https://commits.webkit.org/250508@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 459265.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1914429</commentid>
    <comment_count>6</comment_count>
    <who name="Karl Dubost">karlcow</who>
    <bug_when>2022-11-23 21:31:40 -0800</bug_when>
    <thetext>Some additional context

With a device where `window.devicePixelRatio` is `3`.
This is happening for embedded WebView on iOS applications such as United App.


This is happening in:
https://e1.flightcdn.com/include/d956df68dc71-maps/FAMap.js

with this function

```
      if (
        (i &amp;&amp; i.canvas.style.transform === e
          ? ((this.container = t),
            (this.context = i),
            (this.containerReused = !0))
          : this.containerReused &amp;&amp;
            ((this.container = null),
            (this.context = null),
            (this.containerReused = !1)),
        !this.container)
      ) {
        (n = document.createElement(&quot;div&quot;)).className = o;
        var a = n.style;
        (a.position = &quot;absolute&quot;), (a.width = &quot;100%&quot;), (a.height = &quot;100%&quot;);
        var s = (i = li()).canvas;
        n.appendChild(s),
          ((a = s.style).position = &quot;absolute&quot;),
          (a.left = &quot;0&quot;),
          (a.transformOrigin = &quot;top left&quot;),
          (this.container = n),
          (this.context = i);
      }
```

which is comparing:

i.canvas.style.transform 
    (matrix(0.333333, 0, 0, 0.333333, 0, 0)
with e 
    (matrix(0.3333333333333333, 0, 0, 0.3333333333333333, 0, 0)

but compared as strings


The matrix string is assembled by:

        function Je(t) {
            return &quot;matrix(&quot; + t.join(&quot;, &quot;) + &quot;)&quot;
        }


in https://drafts.csswg.org/cssom/#serialize-a-css-component-value

`&lt;number&gt;`

   A base-ten number using digits 0-9 (U+0030 to U+0039) 
   in the shortest form possible, using &quot;.&quot; to separate 
   decimals (if any), rounding the value if necessary to 
   not produce more than 6 decimals, preceded by &quot;-&quot; 
   (U+002D) if it is negative.

FlightAware could fix it by making sure to have the same number of decimals when they compute the numbers in:

e.prototype.renderFrame = function (t, e) {
  var r = t.pixelRatio,
    n = t.layerStatesArray[t.layerIndex];
  !(function (t, e, r) {
    We(t, e, 0, 0, r, 0, 0);
  })(this.pixelTransform, 1 / r, 1 / r),
    qe(this.inversePixelTransform, this.pixelTransform);
  var i = Je(this.pixelTransform);
  this.useContainer(e, i, n.opacity);

// cut for brevity

}


Specifically this line:

  })(this.pixelTransform, (1/r).toFixed(6), (1/r).toFixed(6) ),

That would probably help a lot. 


Note that Firefox, and probably chrome may have the same issue.
matrix(0.333333, 0, 0, 0.333333, 0, 0) matrix(0.3333333333333333, 0, 0, 0.3333333333333333, 0, 0)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1914431</commentid>
    <comment_count>7</comment_count>
    <who name="Karl Dubost">karlcow</who>
    <bug_when>2022-11-23 21:43:07 -0800</bug_when>
    <thetext>I opened https://github.com/webcompat/web-bugs/issues/114576</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1919479</commentid>
    <comment_count>8</comment_count>
    <who name="Karl Dubost">karlcow</who>
    <bug_when>2022-12-14 23:52:45 -0800</bug_when>
    <thetext>They fixed it. 
Their new code.


```
var r = t.pixelRatio,
                        n = t.layerStatesArray[t.layerIndex];
                    !function(t, e, r) {
                        We(t, e, 0, 0, r, 0, 0)
                    }(this.pixelTransform, (1 / r).toFixed(6), (1 / r).toFixed(6)),
                    qe(this.inversePixelTransform, this.pixelTransform);
                    var i = Je(this.pixelTransform);
```</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459206</attachid>
            <date>2022-05-11 20:45:10 -0700</date>
            <delta_ts>2022-05-12 17:19:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240320-20220512154506.patch</filename>
            <type>text/plain</type>
            <size>14861</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzOTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU5NzZlYzQwY2UxMzc3
NmIxMWJiZGY5ZWFhMWI3MGQ5MjU3ZTZiYy4uZWZiMmY5ODA1ZmZkYjI2YjQ0N2ZlMTRmM2YwM2U1
ODRjOGFjMjJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIyLTA1LTExICBNYXR0
IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAgICAgICAgUXVpcmsgRmxpZ2h0
YXdhcmUuY29tIHRvIHVzZSB0aGUgb2xkZXIgbnVtYmVyIHNlcmlhbGl6YXRpb24gcGF0aC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDMyMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuc3VyZXMgdGhh
dCBzZXJpYWxpemF0aW9uIG9mIG1hdHJpeCgpIENTUyBwcm9wZXJ0aWVzIHVzZXMgdGhlIG9sZGVy
IHNlcmlhbGl6YXRpb24gKHdoaWNoCisgICAgICAgIG1hdGNoZXMgRUNNQSBzY3JpcHQgc2VyaWFs
aXphdGlvbikgc2luY2UgdGhpcyBzaXRlIGV4cGVjdHMgdGhlc2UgdG8gYmUgY29tcGFyYWJsZSBh
cyBzdHJpbmdzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgc2luY2UgdGhpcyBpcyBhIHNpdGUt
c3BlY2lmaWMgcXVpcmsuCisKKyAgICAgICAgKiBjc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NGdW5jdGlvblZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToK
KyAgICAgICAgKiBjc3MvQ1NTRnVuY3Rpb25WYWx1ZS5oOgorICAgICAgICAqIGNzcy9DU1NQcmlt
aXRpdmVWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Zm9y
bWF0TnVtYmVyVmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFs
dWU6OmN1c3RvbUNTU1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1
ZS5oOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NW
YWx1ZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlLmg6CisgICAgICAg
IChXZWJDb3JlOjpDU1NWYWx1ZTo6Q1NTVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUxp
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVMaXN0OjpjdXN0b21DU1NUZXh0IGNv
bnN0KToKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVMaXN0Lmg6CisgICAgICAgICogY3NzL1Byb3Bl
cnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0
eVNldENTU1N0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5VmFsdWVJbnRlcm5hbCk6CisgICAg
ICAgICogY3NzL1N0eWxlUHJvcGVydGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVBy
b3BlcnRpZXM6OmdldFByb3BlcnR5VmFsdWUgY29uc3QpOgorICAgICAgICAqIGNzcy9TdHlsZVBy
b3BlcnRpZXMuaDoKKyAgICAgICAgKiBwYWdlL1F1aXJrcy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpRdWlya3M6Om5lZWRzRmxpZ2h0QXdhcmVTZXJpYWxpemF0aW9uUXVpcmsgY29uc3QpOgorICAg
ICAgICAqIHBhZ2UvUXVpcmtzLmg6CisKIDIwMjItMDUtMDggIEFudHRpIEtvaXZpc3RvICA8YW50
dGlAYXBwbGUuY29tPgogCiAgICAgICAgIEF2b2lkIHJlc29sdmluZyBzdHlsZSBmb3IgZWxlbWVu
dHMgdGhhdCBvbmx5IGluaGVyaXQgY2hhbmdlcyBmcm9tIHBhcmVudApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0Z1bmN0aW9uVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0Z1bmN0aW9uVmFsdWUuY3BwCmluZGV4IDc1ZWYwYzFlZDRhNzRkMjZmY2Y1NWIwMmU0NmEx
OGZjNmNlMjJmYWEuLjIyMWRmNWE0N2IzZTBhMGJjZDY1NmI5ZjEzNjdlNDFjZGI1YWM3NGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAKQEAgLTMwLDEyICszMCwxMiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCi1TdHJpbmcgQ1NTRnVuY3Rpb25WYWx1ZTo6
Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CitTdHJpbmcgQ1NTRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NT
VGV4dChEb2N1bWVudCogZG9jdW1lbnQpIGNvbnN0CiB7CiAgICAgU3RyaW5nQnVpbGRlciByZXN1
bHQ7CiAgICAgcmVzdWx0LmFwcGVuZChnZXRWYWx1ZU5hbWUobV9uYW1lKSk7CiAgICAgcmVzdWx0
LmFwcGVuZCgnKCcpOwotICAgIHJlc3VsdC5hcHBlbmQoQ1NTVmFsdWVMaXN0OjpjdXN0b21DU1NU
ZXh0KCkpOworICAgIHJlc3VsdC5hcHBlbmQoQ1NTVmFsdWVMaXN0OjpjdXN0b21DU1NUZXh0KGRv
Y3VtZW50KSk7CiAgICAgcmVzdWx0LmFwcGVuZCgnKScpOwogICAgIHJldHVybiByZXN1bHQudG9T
dHJpbmcoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZh
bHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5oCmluZGV4IGViYjNk
NWJhYjdhNDI0NDBkYTgwMzAyN2RiYzFiMTg1YWQ4ODJhZDEuLjMzYjRjNGVjMjRhZjIxYTQzNjJh
MTIzN2JiYTU4N2UwODM3NjY1YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
dW5jdGlvblZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Z1bmN0aW9uVmFsdWUu
aApAQCAtMzcsNyArMzcsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IENTU0Z1bmN0aW9uVmFsdWUobmFtZSkpOwogICAgIH0KICAgICAKLSAgICBTdHJpbmcgY3VzdG9t
Q1NTVGV4dCgpIGNvbnN0OworICAgIFN0cmluZyBjdXN0b21DU1NUZXh0KERvY3VtZW50KiA9IG51
bGxwdHIpIGNvbnN0OwogCiAgICAgQ1NTVmFsdWVJRCBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9u
YW1lOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCmluZGV4IDIz
ZjIzNDYyMDRmZjgzZjhlN2YyYTFhOWNmODYwZWY0ZWMwYTk4N2EuLmY5NjllNmY2NDgwYjM4MDI4
ZjA0YTEzNzZjNTFiNTk2MGU2NjZkNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcmltaXRpdmVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIkxlbmd0aC5oIgogI2luY2x1
ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlBhaXIuaCIKKyNpbmNsdWRlICJRdWly
a3MuaCIKICNpbmNsdWRlICJSZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNs
dWRlICJSZW5kZXJWaWV3LmgiCkBAIC0xMjI3LDYgKzEyMjgsOCBAQCBORVZFUl9JTkxJTkUgU3Ry
aW5nIENTU1ByaW1pdGl2ZVZhbHVlOjpmb3JtYXRJbmZpbml0ZU9yTmFuVmFsdWUoU3RyaW5nVmll
dyBzdWZmaQogCiBORVZFUl9JTkxJTkUgU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjpmb3JtYXRO
dW1iZXJWYWx1ZShTdHJpbmdWaWV3IHN1ZmZpeCkgY29uc3QKIHsKKyAgICBpZiAobV9jYWNoZWRD
U1NUZXh0VXNlc1F1aXJrKQorICAgICAgICByZXR1cm4gZm9ybWF0SW50ZWdlclZhbHVlKHN1ZmZp
eCk7CiAgICAgaWYgKHN0ZDo6aXNuYW4obV92YWx1ZS5udW0pIHx8IHN0ZDo6aXNpbmYobV92YWx1
ZS5udW0pKQogICAgICAgICByZXR1cm4gZm9ybWF0SW5maW5pdGVPck5hblZhbHVlKHN1ZmZpeCk7
CiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoRm9ybWF0dGVkQ1NTTnVtYmVyOjpjcmVhdGUobV92YWx1
ZS5udW0pLCBzdWZmaXgpOwpAQCAtMTUxNCwxNyArMTUxNywyMCBAQCBBTFdBWVNfSU5MSU5FIFN0
cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6Zm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NTVGV4dCgpIGNv
bnN0CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1TdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6
OmN1c3RvbUNTU1RleHQoKSBjb25zdAorU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjpjdXN0b21D
U1NUZXh0KERvY3VtZW50KiBkb2N1bWVudCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogcmV0dXJu
IHRoZSBvcmlnaW5hbCB2YWx1ZSBpbnN0ZWFkIG9mIGEgZ2VuZXJhdGVkIG9uZSAoZS5nLiBjb2xv
cgogICAgIC8vIG5hbWUgaWYgaXQgd2FzIHNwZWNpZmllZCkgLSBjaGVjayB3aGF0IHNwZWMgc2F5
cyBhYm91dCB0aGlzCiAKICAgICBDU1NUZXh0Q2FjaGUmIGNzc1RleHRDYWNoZSA9IFdlYkNvcmU6
OmNzc1RleHRDYWNoZSgpOwogCi0gICAgaWYgKG1faGFzQ2FjaGVkQ1NTVGV4dCkgeworICAgIGJv
b2wgbmVlZHNRdWlyayA9IGRvY3VtZW50ICYmIGRvY3VtZW50LT5xdWlya3MoKS5uZWVkc0ZsaWdo
dEF3YXJlU2VyaWFsaXphdGlvblF1aXJrKCk7CisKKyAgICBpZiAobV9oYXNDYWNoZWRDU1NUZXh0
ICYmIG1fY2FjaGVkQ1NTVGV4dFVzZXNRdWlyayA9PSBuZWVkc1F1aXJrKSB7CiAgICAgICAgIEFT
U0VSVChjc3NUZXh0Q2FjaGUuY29udGFpbnModGhpcykpOwogICAgICAgICByZXR1cm4gY3NzVGV4
dENhY2hlLmdldCh0aGlzKTsKICAgICB9CisgICAgbV9jYWNoZWRDU1NUZXh0VXNlc1F1aXJrID0g
bmVlZHNRdWlyazsKIAogICAgIFN0cmluZyB0ZXh0ID0gZm9ybWF0TnVtYmVyRm9yQ3VzdG9tQ1NT
VGV4dCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCmluZGV4IGNmZWQy
Y2ExYzg5ODJiNGUwMjg1YmM5NjAyNGMwZDM3MWJlMzE4YWUuLjk3MTkzNjUyZmU2NTRiYTIyNTUz
OGYwMzU1OTIxNWM3MDkwYzY0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cmltaXRpdmVWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZS5oCkBAIC0xOTAsNyArMTkwLDcgQEAgcHVibGljOgogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4gaW5saW5lIG9wZXJhdG9yIFQoKSBjb25zdDsgLy8gRGVmaW5lZCBpbiBDU1NQcmltaXRpdmVW
YWx1ZU1hcHBpbmdzLmgKIAotICAgIFN0cmluZyBjdXN0b21DU1NUZXh0KCkgY29uc3Q7CisgICAg
U3RyaW5nIGN1c3RvbUNTU1RleHQoRG9jdW1lbnQqID0gbnVsbHB0cikgY29uc3Q7CiAKICAgICBi
b29sIGVxdWFscyhjb25zdCBDU1NQcmltaXRpdmVWYWx1ZSYpIGNvbnN0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlLmNwcAppbmRleCA1ZTIxODIyNjNmY2VhNWNhZmYzNjNlNGZmNDQwMzk0MzgxMWY2ZGFj
Li5lMWI5OTMzMTVmNDBkN2Q0MzA5YjI1ZTk2Y2M5MTE4YzlkZDczZWYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZS5jcHAKQEAgLTI0Niw3ICsyNDYsNyBAQCBib29sIENTU1ZhbHVlOjppc0NTU0xvY2Fs
VVJMKFN0cmluZ1ZpZXcgcmVsYXRpdmVVUkwpCiAgICAgcmV0dXJuIHJlbGF0aXZlVVJMLmlzRW1w
dHkoKSB8fCByZWxhdGl2ZVVSTC5zdGFydHNXaXRoKCcjJyk7CiB9CiAKLVN0cmluZyBDU1NWYWx1
ZTo6Y3NzVGV4dCgpIGNvbnN0CitTdHJpbmcgQ1NTVmFsdWU6OmNzc1RleHQoRG9jdW1lbnQqIGRv
Y3VtZW50KSBjb25zdAogewogICAgIHN3aXRjaCAoY2xhc3NUeXBlKCkpIHsKICAgICBjYXNlIEFz
cGVjdFJhdGlvQ2xhc3M6CkBAIC0yNzgsNyArMjc4LDcgQEAgU3RyaW5nIENTU1ZhbHVlOjpjc3NU
ZXh0KCkgY29uc3QKICAgICBjYXNlIEZvbnRWYXJpYXRpb25DbGFzczoKICAgICAgICAgcmV0dXJu
IGRvd25jYXN0PENTU0ZvbnRWYXJpYXRpb25WYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsK
ICAgICBjYXNlIEZ1bmN0aW9uQ2xhc3M6Ci0gICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NGdW5j
dGlvblZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOworICAgICAgICByZXR1cm4gZG93bmNh
c3Q8Q1NTRnVuY3Rpb25WYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoZG9jdW1lbnQpOwogICAg
IGNhc2UgTGluZWFyR3JhZGllbnRDbGFzczoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0xp
bmVhckdyYWRpZW50VmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CiAgICAgY2FzZSBSYWRp
YWxHcmFkaWVudENsYXNzOgpAQCAtMzAwLDcgKzMwMCw3IEBAIFN0cmluZyBDU1NWYWx1ZTo6Y3Nz
VGV4dCgpIGNvbnN0CiAgICAgY2FzZSBHcmlkVGVtcGxhdGVBcmVhc0NsYXNzOgogICAgICAgICBy
ZXR1cm4gZG93bmNhc3Q8Q1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZT4oKnRoaXMpLmN1c3RvbUNT
U1RleHQoKTsKICAgICBjYXNlIFByaW1pdGl2ZUNsYXNzOgotICAgICAgICByZXR1cm4gZG93bmNh
c3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CisgICAgICAgIHJl
dHVybiBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoZG9j
dW1lbnQpOwogICAgIGNhc2UgUmVmbGVjdENsYXNzOgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8
Q1NTUmVmbGVjdFZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwogICAgIGNhc2UgU2hhZG93
Q2xhc3M6CkBAIC0zMTQsNyArMzE0LDcgQEAgU3RyaW5nIENTU1ZhbHVlOjpjc3NUZXh0KCkgY29u
c3QKICAgICBjYXNlIFVuaWNvZGVSYW5nZUNsYXNzOgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8
Q1NTVW5pY29kZVJhbmdlVmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CiAgICAgY2FzZSBW
YWx1ZUxpc3RDbGFzczoKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU1ZhbHVlTGlzdD4oKnRo
aXMpLmN1c3RvbUNTU1RleHQoKTsKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU1ZhbHVlTGlz
dD4oKnRoaXMpLmN1c3RvbUNTU1RleHQoZG9jdW1lbnQpOwogICAgIGNhc2UgVmFsdWVQYWlyQ2xh
c3M6CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NWYWx1ZVBhaXI+KCp0aGlzKS5jdXN0b21D
U1NUZXh0KCk7CiAgICAgY2FzZSBMaW5lQm94Q29udGFpbkNsYXNzOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUu
aAppbmRleCBkYWRlNThkYTIwNjhiN2VlY2NkYWEzMzE5MThjNDRkM2E3NmUwNWM4Li4wZTJmNjYw
NjNkNzhlYjgzNTM1MTAxYjBlYzYzOTkyNTJmOTQzNjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaApA
QCAtMzUsNiArMzUsNyBAQCBjbGFzcyBDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlOwogY2xhc3MgQ1NT
U3R5bGVEZWNsYXJhdGlvbjsKIGNsYXNzIENhY2hlZFJlc291cmNlOwogY2xhc3MgRGVwcmVjYXRl
ZENTU09NVmFsdWU7CitjbGFzcyBEb2N1bWVudDsKIGNsYXNzIFN0eWxlU2hlZXRDb250ZW50czsK
IAogZW51bSBDU1NQcm9wZXJ0eUlEIDogdWludDE2X3Q7CkBAIC03Nyw3ICs3OCw3IEBAIHB1Ymxp
YzoKICAgICB9CiAKICAgICBUeXBlIGNzc1ZhbHVlVHlwZSgpIGNvbnN0OwotICAgIFN0cmluZyBj
c3NUZXh0KCkgY29uc3Q7CisgICAgU3RyaW5nIGNzc1RleHQoRG9jdW1lbnQqID0gbnVsbHB0cikg
Y29uc3Q7CiAgICAgQVNDSUlMaXRlcmFsIHNlcGFyYXRvckNTU1RleHQoKSBjb25zdDsKIAogICAg
IGJvb2wgaXNQcmltaXRpdmVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IFBy
aW1pdGl2ZUNsYXNzOyB9CkBAIC0yNDgsNiArMjQ5LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICAs
IG1faGFzQ2FjaGVkQ1NTVGV4dChmYWxzZSkKICAgICAgICAgLCBtX3ZhbHVlU2VwYXJhdG9yKFNw
YWNlU2VwYXJhdG9yKQogICAgICAgICAsIG1faXNJbXBsaWNpdChmYWxzZSkKKyAgICAgICAgLCBt
X2NhY2hlZENTU1RleHRVc2VzUXVpcmsoZmFsc2UpCiAgICAgICAgICwgbV9jbGFzc1R5cGUoY2xh
c3NUeXBlKQogICAgIHsKICAgICB9CkBAIC0yNzUsNiArMjc3LDcgQEAgcHJvdGVjdGVkOgogCiAg
ICAgdW5zaWduZWQgbV92YWx1ZVNlcGFyYXRvciA6IFZhbHVlU2VwYXJhdG9yQml0czsKICAgICB1
bnNpZ25lZCBtX2lzSW1wbGljaXQgOiAxOworICAgIG11dGFibGUgdW5zaWduZWQgbV9jYWNoZWRD
U1NUZXh0VXNlc1F1aXJrIDogMTsKIAogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2NsYXNzVHlw
ZSA6IENsYXNzVHlwZUJpdHM7IC8vIENsYXNzVHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0
LmNwcAppbmRleCAyYjI0MzNmNzI2MTIwM2I2NmE5NWRiNzViMjQ5NTBjN2UwZmQ4YWYxLi5iNzNm
ZmE3ZTI0ZDRiYThjNWFkZTNiN2NjY2Q0MWU0MzUyMTJiNjIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVMaXN0LmNwcApAQCAtODMsMTIgKzgzLDEyIEBAIFJlZjxDU1NWYWx1ZUxpc3Q+IENTU1Zh
bHVlTGlzdDo6Y29weSgpCiAgICAgcmV0dXJuIG5ld0xpc3QucmVsZWFzZU5vbk51bGwoKTsKIH0K
IAotU3RyaW5nIENTU1ZhbHVlTGlzdDo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CitTdHJpbmcgQ1NT
VmFsdWVMaXN0OjpjdXN0b21DU1NUZXh0KERvY3VtZW50KiBkb2N1bWVudCkgY29uc3QKIHsKICAg
ICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICBhdXRvIHNlcGFyYXRvciA9IHNlcGFyYXRvckNT
U1RleHQoKTsKICAgICBmb3IgKGF1dG8mIHZhbHVlIDogbV92YWx1ZXMpCi0gICAgICAgIHJlc3Vs
dC5hcHBlbmQocmVzdWx0LmlzRW1wdHkoKSA/ICIiX3MgOiBzZXBhcmF0b3IsIHZhbHVlLmdldCgp
LmNzc1RleHQoKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQocmVzdWx0LmlzRW1wdHkoKSA/ICIi
X3MgOiBzZXBhcmF0b3IsIHZhbHVlLmdldCgpLmNzc1RleHQoZG9jdW1lbnQpKTsKICAgICByZXR1
cm4gcmVzdWx0LnRvU3RyaW5nKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYWx1ZUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuaAppbmRl
eCBmOWE3NjA2MDQwODliMGNlMmY2OWY4NzY4NjU0ZjEyNjgyMzdhNjdlLi45ODA5NTZiZDhjZDFi
ZDZmZjNjNTlkNDU2OTBhNGYyODNjNDlhMmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5o
CkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1ZhbHVlKENTU1ZhbHVlKikg
Y29uc3Q7CiAgICAgUmVmPENTU1ZhbHVlTGlzdD4gY29weSgpOwogCi0gICAgU3RyaW5nIGN1c3Rv
bUNTU1RleHQoKSBjb25zdDsKKyAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dChEb2N1bWVudCogPSBu
dWxscHRyKSBjb25zdDsKICAgICBib29sIGVxdWFscyhjb25zdCBDU1NWYWx1ZUxpc3QmKSBjb25z
dDsKICAgICBib29sIGVxdWFscyhjb25zdCBDU1NWYWx1ZSYpIGNvbnN0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCmlu
ZGV4IDYyMjQzZmQ5ZDNmYjMzMThhNWFmZDE1OGY5MTRmYWNkNGMxYWEwNTQuLjE4MmMzMDkzZTgx
Mzg3YmY2MDNlZWNlZTJmZjlkYzBmZDg4NGQ5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0yNiw4ICsyNiwx
MSBAQAogI2luY2x1ZGUgIkNTU1J1bGUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAj
aW5jbHVkZSAiQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCIKKyNpbmNsdWRlICJET01XaW5k
b3cuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaCIKKyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpT
RE9NV2luZG93QmFzZS5oIgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3Vw
LmgiCiAjaW5jbHVkZSAiTXV0YXRpb25SZWNvcmQuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRp
ZXMuaCIKQEAgLTI5OSw3ICszMDIsMTYgQEAgUmVmUHRyPENTU1ZhbHVlPiBQcm9wZXJ0eVNldENT
U1N0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWVJbnRlcm5hbChDU1MKIAogU3Ry
aW5nIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlWYWx1ZUludGVy
bmFsKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkKIHsKLSAgICBTdHJpbmcgdmFsdWUgPSBtX3By
b3BlcnR5U2V0LT5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5SUQpOworICAgIERvY3VtZW50KiBk
b2MgPSBudWxscHRyOworICAgIEpTRE9NT2JqZWN0KiB3cmFwID0gd3JhcHBlcigpOworICAgIGlm
ICh3cmFwKSB7CisgICAgICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWwgPSB3cmFwLT5nbG9i
YWxPYmplY3QoKTsKKyAgICAgICAgaWYgKGdsb2JhbCkgeworICAgICAgICAgICAgRE9NV2luZG93
JiB3aW5kb3cgPSBhY3RpdmVET01XaW5kb3coKmdsb2JhbCk7CisgICAgICAgICAgICBkb2MgPSB3
aW5kb3cuZG9jdW1lbnQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBTdHJpbmcgdmFsdWUgPSBt
X3Byb3BlcnR5U2V0LT5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5SUQsIGRvYyk7CiAKICAgICBp
ZiAoIXZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHZhbHVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRleCA1OTM4Y2Q1MzIzYmM4NjNhNDY4ZmUwYmVhNGVi
OGY1NzkzNzEyMGMxLi5hZDA2YzRlOTAzZjFkZTkyNmRhYzEzMjllYzM1YTlmODc5ZmEwODMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtMTc2LDcgKzE3Niw3IEBA
IGJvb2wgU3R5bGVQcm9wZXJ0aWVzOjpzaG9ydGhhbmRIYXNWYXJpYWJsZVJlZmVyZW5jZShDU1NQ
cm9wZXJ0eUlEIHByb3BlcnR5SUQsIFN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1TdHJpbmcg
U3R5bGVQcm9wZXJ0aWVzOjpnZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJ
RCkgY29uc3QKK1N0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldFByb3BlcnR5VmFsdWUoQ1NTUHJv
cGVydHlJRCBwcm9wZXJ0eUlELCBEb2N1bWVudCogZG9jdW1lbnQpIGNvbnN0CiB7CiAgICAgaWYg
KGF1dG8gdmFsdWUgPSBnZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5SUQpKSB7CiAgICAgICAg
IHN3aXRjaCAocHJvcGVydHlJRCkgewpAQCAtMTkwLDcgKzE5MCw3IEBAIFN0cmluZyBTdHlsZVBy
b3BlcnRpZXM6OmdldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25z
dAogICAgICAgICAgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKGRvd25jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlPigqdmFsdWUpLmRvdWJsZVZhbHVlKCkgLyAxMDApOwogICAgICAgICAgICAgRkFMTFRI
Uk9VR0g7CiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWUtPmNzc1Rl
eHQoKTsKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS0+Y3NzVGV4dChkb2N1bWVudCk7CiAgICAg
ICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3Bl
cnRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuaAppbmRleCA1ZTRj
ODcyNjVhZWU3YzZiY2JlM2QyNTlmOWIxMmE4ZjZiM2VjODlkLi45OWQxYjdiN2UzNDQxNzI2MTEw
MjcyNWU3NGZjZjMyMjc4ZWJmNDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVQcm9wZXJ0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5o
CkBAIC0xMTMsNyArMTEzLDcgQEAgcHVibGljOgogICAgIFByb3BlcnR5UmVmZXJlbmNlIHByb3Bl
cnR5QXQodW5zaWduZWQpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPENTU1Zh
bHVlPiBnZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5SUQpIGNvbnN0OwotICAgIFdFQkNP
UkVfRVhQT1JUIFN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQpIGNvbnN0Owor
ICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQs
IERvY3VtZW50KiA9IG51bGxwdHIpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpv
cHRpb25hbDxDb2xvcj4gcHJvcGVydHlBc0NvbG9yKENTU1Byb3BlcnR5SUQpIGNvbnN0OwogICAg
IFdFQkNPUkVfRVhQT1JUIENTU1ZhbHVlSUQgcHJvcGVydHlBc1ZhbHVlSUQoQ1NTUHJvcGVydHlJ
RCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAKaW5kZXggMjlhN2JiOTRlYjQ5MDMzMGUyYWQz
OTI3ZjYzNzEwM2VlMjdkNTE5OC4uZWYwZmUyYjZhMGZkMTFhMGVlNjgzMDI5ZmM3ZjJjNWFlODBh
ODRkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmNwcApAQCAtMTMzMiw2ICsxMzMyLDE4IEBAIGJvb2wg
UXVpcmtzOjpuZWVkc0FrYW1haU1lZGlhUGxheWVyUXVpcmsoY29uc3QgSFRNTFZpZGVvRWxlbWVu
dCYgZWxlbWVudCkgY29uc3QKICNlbmRpZgogfQogCisvLyBGSVhNRTogcmVtb3ZlIHRoaXMgb25j
ZSByZGFyOi8vOTI1MzEyNDAgaGFzIGJlZW4gZml4ZWQuCitib29sIFF1aXJrczo6bmVlZHNGbGln
aHRBd2FyZVNlcmlhbGl6YXRpb25RdWlyaygpIGNvbnN0Cit7CisgICAgaWYgKCFuZWVkc1F1aXJr
cygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIW1fbmVlZHNGbGlnaHRBd2Fy
ZVNlcmlhbGl6YXRpb25RdWlyaykKKyAgICAgICAgbV9uZWVkc0ZsaWdodEF3YXJlU2VyaWFsaXph
dGlvblF1aXJrID0gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobV9kb2N1bWVudC0+dXJs
KCkuaG9zdCgpLCAiZmxpZ2h0YXdhcmUuY29tIl9zKTsKKworICAgIHJldHVybiAqbV9uZWVkc0Zs
aWdodEF3YXJlU2VyaWFsaXphdGlvblF1aXJrOworfQorCiBib29sIFF1aXJrczo6bmVlZHNCbGFj
a0Z1bGxzY3JlZW5CYWNrZ3JvdW5kUXVpcmsoKSBjb25zdAogewogICAgIC8vIE1MQi5jb20gc2V0
cyBhIGJsYWNrIGJhY2tncm91bmQtY29sb3Igb24gdGhlIDpiYWNrZHJvcCBwc2V1ZG8gZWxlbWVu
dCwgd2hpY2ggV2ViS2l0IGRvZXMgbm90IHlldCBzdXBwb3J0LiBUaGlzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3Mu
aAppbmRleCBiZjU1YjIxZmFkYmJjZTdjYzdjMWIyZWZjMGQ1ZTQxOTE3ZTk3OGQzLi5mNDMzZmE4
ZjAyZGFjYmNkNjdjMTZkNDhkMTE0MzdmZThiNGY1NmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1F1aXJrcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmgKQEAg
LTEzMyw2ICsxMzMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBuZWVkc0hEUlBpeGVsRGVwdGhRdWly
aygpIGNvbnN0OwogICAgIAogICAgIGJvb2wgbmVlZHNBa2FtYWlNZWRpYVBsYXllclF1aXJrKGNv
bnN0IEhUTUxWaWRlb0VsZW1lbnQmKSBjb25zdDsKKyAgICBib29sIG5lZWRzRmxpZ2h0QXdhcmVT
ZXJpYWxpemF0aW9uUXVpcmsoKSBjb25zdDsKIAogICAgIGJvb2wgbmVlZHNCbGFja0Z1bGxzY3Jl
ZW5CYWNrZ3JvdW5kUXVpcmsoKSBjb25zdDsKIApAQCAtMTk0LDYgKzE5NSw3IEBAIHByaXZhdGU6
CiAgICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPGJvb2w+IG1fc2hvdWxkQnlwYXNzQXN5bmNTY3Jp
cHREZWZlcnJpbmc7CiAgICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPGJvb2w+IG1fbmVlZHNWUDlG
dWxsUmFuZ2VGbGFnUXVpcms7CiAgICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPGJvb2w+IG1fbmVl
ZHNIRFJQaXhlbERlcHRoUXVpcms7CisgICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPGJvb2w+IG1f
bmVlZHNGbGlnaHRBd2FyZVNlcmlhbGl6YXRpb25RdWlyazsKICAgICBtdXRhYmxlIHN0ZDo6b3B0
aW9uYWw8Ym9vbD4gbV9uZWVkc0JsYWNrRnVsbHNjcmVlbkJhY2tncm91bmRRdWlyazsKICAgICBt
dXRhYmxlIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV9yZXF1aXJlc1VzZXJHZXN0dXJlVG9QYXVzZUlu
UGljdHVyZUluUGljdHVyZTsKICAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV9yZXF1
aXJlc1VzZXJHZXN0dXJlVG9Mb2FkSW5QaWN0dXJlSW5QaWN0dXJlOwo=
</data>
<flag name="review"
          id="488228"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459263</attachid>
            <date>2022-05-12 17:43:54 -0700</date>
            <delta_ts>2022-05-12 17:47:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240320-20220513124353.patch</filename>
            <type>text/plain</type>
            <size>16505</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzOTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU5NzZlYzQwY2UxMzc3
NmIxMWJiZGY5ZWFhMWI3MGQ5MjU3ZTZiYy4uNDgxZDNlYzBlNzBmYjUyYmZkYjY4ZTNjNGJhM2Iy
MGU2ZDEwYzZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIyLTA1LTExICBNYXR0
IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAgICAgICAgUXVpcmsgRmxpZ2h0
YXdhcmUuY29tIHRvIHVzZSB0aGUgb2xkZXIgbnVtYmVyIHNlcmlhbGl6YXRpb24gcGF0aC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDMyMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBFbnN1cmVzIHRoYXQg
c2VyaWFsaXphdGlvbiBvZiBtYXRyaXgoKSBDU1MgcHJvcGVydGllcyB1c2VzIHRoZSBvbGRlciBz
ZXJpYWxpemF0aW9uICh3aGljaAorICAgICAgICBtYXRjaGVzIEVDTUEgc2NyaXB0IHNlcmlhbGl6
YXRpb24pIHNpbmNlIHRoaXMgc2l0ZSBleHBlY3RzIHRoZXNlIHRvIGJlIGNvbXBhcmFibGUgYXMg
c3RyaW5ncy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHNpbmNlIHRoaXMgaXMgYSBzaXRlLXNw
ZWNpZmljIHF1aXJrLgorCisgICAgICAgICogY3NzL0NTU0Z1bmN0aW9uVmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6Cisg
ICAgICAgICogY3NzL0NTU0Z1bmN0aW9uVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0
aXZlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmZvcm1h
dE51bWJlclZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
OjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUu
aDoKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFs
dWU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVmFsdWU6OkNTU1ZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVMaXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlTGlzdDo6Y3VzdG9tQ1NTVGV4dCBjb25z
dCk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlTGlzdC5oOgorICAgICAgICAqIGNzcy9Qcm9wZXJ0
eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlT
ZXRDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWwpOgorICAgICAg
ICAqIGNzcy9TdHlsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9w
ZXJ0aWVzOjpnZXRQcm9wZXJ0eVZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBjc3MvU3R5bGVQcm9w
ZXJ0aWVzLmg6CisgICAgICAgICogcGFnZS9RdWlya3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UXVpcmtzOjpuZWVkc0ZsaWdodEF3YXJlU2VyaWFsaXphdGlvblF1aXJrIGNvbnN0KToKKyAgICAg
ICAgKiBwYWdlL1F1aXJrcy5oOgorCiAyMDIyLTA1LTA4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBBdm9pZCByZXNvbHZpbmcgc3R5bGUgZm9yIGVsZW1lbnRz
IHRoYXQgb25seSBpbmhlcml0IGNoYW5nZXMgZnJvbSBwYXJlbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGdW5jdGlvblZhbHVlLmNwcAppbmRleCA3NWVmMGMxZWQ0YTc0ZDI2ZmNmNTViMDJlNDZhMThm
YzZjZTIyZmFhLi4yMjFkZjVhNDdiM2UwYTBiY2Q2NTZiOWYxMzY3ZTQxY2RiNWFjNzRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0Z1bmN0aW9uVmFsdWUuY3BwCkBAIC0zMCwxMiArMzAsMTIgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAotU3RyaW5nIENTU0Z1bmN0aW9uVmFsdWU6OmN1
c3RvbUNTU1RleHQoKSBjb25zdAorU3RyaW5nIENTU0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1Rl
eHQoRG9jdW1lbnQqIGRvY3VtZW50KSBjb25zdAogewogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0
OwogICAgIHJlc3VsdC5hcHBlbmQoZ2V0VmFsdWVOYW1lKG1fbmFtZSkpOwogICAgIHJlc3VsdC5h
cHBlbmQoJygnKTsKLSAgICByZXN1bHQuYXBwZW5kKENTU1ZhbHVlTGlzdDo6Y3VzdG9tQ1NTVGV4
dCgpKTsKKyAgICByZXN1bHQuYXBwZW5kKENTU1ZhbHVlTGlzdDo6Y3VzdG9tQ1NTVGV4dChkb2N1
bWVudCkpOwogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKICAgICByZXR1cm4gcmVzdWx0LnRvU3Ry
aW5nKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1
ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Z1bmN0aW9uVmFsdWUuaAppbmRleCBlYmIzZDVi
YWI3YTQyNDQwZGE4MDMwMjdkYmMxYjE4NWFkODgyYWQxLi4zM2I0YzRlYzI0YWYyMWE0MzYyYTEy
MzdiYmE1ODdlMDgzNzY2NWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVu
Y3Rpb25WYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmgK
QEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBD
U1NGdW5jdGlvblZhbHVlKG5hbWUpKTsKICAgICB9CiAgICAgCi0gICAgU3RyaW5nIGN1c3RvbUNT
U1RleHQoKSBjb25zdDsKKyAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dChEb2N1bWVudCogPSBudWxs
cHRyKSBjb25zdDsKIAogICAgIENTU1ZhbHVlSUQgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFt
ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAppbmRleCAyM2Yy
MzQ2MjA0ZmY4M2Y4ZTdmMmExYTljZjg2MGVmNGVjMGE5ODdhLi44YjdiZDc5NzQ1NWIyZWQzZDE5
MmM2MzU4OTc2MzI0MTM1NGEzZDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVW
YWx1ZS5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJMZW5ndGguaCIKICNpbmNsdWRl
ICJOb2RlUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJQYWlyLmgiCisjaW5jbHVkZSAiUXVpcmtz
LmgiCiAjaW5jbHVkZSAiUmVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgpAQCAtMTIyNyw2ICsxMjI4LDggQEAgTkVWRVJfSU5MSU5FIFN0cmlu
ZyBDU1NQcmltaXRpdmVWYWx1ZTo6Zm9ybWF0SW5maW5pdGVPck5hblZhbHVlKFN0cmluZ1ZpZXcg
c3VmZmkKIAogTkVWRVJfSU5MSU5FIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6Zm9ybWF0TnVt
YmVyVmFsdWUoU3RyaW5nVmlldyBzdWZmaXgpIGNvbnN0CiB7CisgICAgaWYgKG1fY2FjaGVkQ1NT
VGV4dFVzZXNMZWdhY3lQcmVjaXNpb24pCisgICAgICAgIHJldHVybiBmb3JtYXRJbnRlZ2VyVmFs
dWUoc3VmZml4KTsKICAgICBpZiAoc3RkOjppc25hbihtX3ZhbHVlLm51bSkgfHwgc3RkOjppc2lu
ZihtX3ZhbHVlLm51bSkpCiAgICAgICAgIHJldHVybiBmb3JtYXRJbmZpbml0ZU9yTmFuVmFsdWUo
c3VmZml4KTsKICAgICByZXR1cm4gbWFrZVN0cmluZyhGb3JtYXR0ZWRDU1NOdW1iZXI6OmNyZWF0
ZShtX3ZhbHVlLm51bSksIHN1ZmZpeCk7CkBAIC0xNTE0LDE3ICsxNTE3LDIwIEBAIEFMV0FZU19J
TkxJTkUgU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjpmb3JtYXROdW1iZXJGb3JDdXN0b21DU1NU
ZXh0KCkgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyBDU1NQcmltaXRp
dmVWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CitTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6
OmN1c3RvbUNTU1RleHQoRG9jdW1lbnQqIGRvY3VtZW50KSBjb25zdAogewogICAgIC8vIEZJWE1F
OiByZXR1cm4gdGhlIG9yaWdpbmFsIHZhbHVlIGluc3RlYWQgb2YgYSBnZW5lcmF0ZWQgb25lIChl
LmcuIGNvbG9yCiAgICAgLy8gbmFtZSBpZiBpdCB3YXMgc3BlY2lmaWVkKSAtIGNoZWNrIHdoYXQg
c3BlYyBzYXlzIGFib3V0IHRoaXMKIAogICAgIENTU1RleHRDYWNoZSYgY3NzVGV4dENhY2hlID0g
V2ViQ29yZTo6Y3NzVGV4dENhY2hlKCk7CiAKLSAgICBpZiAobV9oYXNDYWNoZWRDU1NUZXh0KSB7
CisgICAgYm9vbCBuZWVkc1F1aXJrID0gZG9jdW1lbnQgJiYgZG9jdW1lbnQtPnF1aXJrcygpLm5l
ZWRzRmxpZ2h0QXdhcmVTZXJpYWxpemF0aW9uUXVpcmsoKTsKKworICAgIGlmIChtX2hhc0NhY2hl
ZENTU1RleHQgJiYgbV9jYWNoZWRDU1NUZXh0VXNlc0xlZ2FjeVByZWNpc2lvbiA9PSBuZWVkc1F1
aXJrKSB7CiAgICAgICAgIEFTU0VSVChjc3NUZXh0Q2FjaGUuY29udGFpbnModGhpcykpOwogICAg
ICAgICByZXR1cm4gY3NzVGV4dENhY2hlLmdldCh0aGlzKTsKICAgICB9CisgICAgbV9jYWNoZWRD
U1NUZXh0VXNlc0xlZ2FjeVByZWNpc2lvbiA9IG5lZWRzUXVpcms7CiAKICAgICBTdHJpbmcgdGV4
dCA9IGZvcm1hdE51bWJlckZvckN1c3RvbUNTU1RleHQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWUuaAppbmRleCBjZmVkMmNhMWM4OTgyYjRlMDI4NWJjOTYwMjRjMGQzNzFi
ZTMxOGFlLi45NzE5MzY1MmZlNjU0YmEyMjU1MzhmMDM1NTkyMTVjNzA5MGM2NGYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaApAQCAtMTkwLDcgKzE5MCw3IEBAIHB1Ymxp
YzoKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBvcGVyYXRvciBUKCkgY29uc3Q7
IC8vIERlZmluZWQgaW4gQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCiAKLSAgICBTdHJpbmcg
Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0OworICAgIFN0cmluZyBjdXN0b21DU1NUZXh0KERvY3VtZW50
KiA9IG51bGxwdHIpIGNvbnN0OwogCiAgICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTUHJpbWl0aXZl
VmFsdWUmKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKaW5kZXggNWUyMTgyMjYzZmNl
YTVjYWZmMzYzZTRmZjQ0MDM5NDM4MTFmNmRhYy4uZTFiOTkzMzE1ZjQwZDdkNDMwOWIyNWU5NmNj
OTExOGM5ZGQ3M2VmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCkBAIC0yNDYsNyArMjQ2LDcg
QEAgYm9vbCBDU1NWYWx1ZTo6aXNDU1NMb2NhbFVSTChTdHJpbmdWaWV3IHJlbGF0aXZlVVJMKQog
ICAgIHJldHVybiByZWxhdGl2ZVVSTC5pc0VtcHR5KCkgfHwgcmVsYXRpdmVVUkwuc3RhcnRzV2l0
aCgnIycpOwogfQogCi1TdHJpbmcgQ1NTVmFsdWU6OmNzc1RleHQoKSBjb25zdAorU3RyaW5nIENT
U1ZhbHVlOjpjc3NUZXh0KERvY3VtZW50KiBkb2N1bWVudCkgY29uc3QKIHsKICAgICBzd2l0Y2gg
KGNsYXNzVHlwZSgpKSB7CiAgICAgY2FzZSBBc3BlY3RSYXRpb0NsYXNzOgpAQCAtMjc4LDcgKzI3
OCw3IEBAIFN0cmluZyBDU1NWYWx1ZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgY2FzZSBGb250VmFy
aWF0aW9uQ2xhc3M6CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NGb250VmFyaWF0aW9uVmFs
dWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CiAgICAgY2FzZSBGdW5jdGlvbkNsYXNzOgotICAg
ICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTRnVuY3Rpb25WYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1Rl
eHQoKTsKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0Z1bmN0aW9uVmFsdWU+KCp0aGlzKS5j
dXN0b21DU1NUZXh0KGRvY3VtZW50KTsKICAgICBjYXNlIExpbmVhckdyYWRpZW50Q2xhc3M6CiAg
ICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NMaW5lYXJHcmFkaWVudFZhbHVlPigqdGhpcykuY3Vz
dG9tQ1NTVGV4dCgpOwogICAgIGNhc2UgUmFkaWFsR3JhZGllbnRDbGFzczoKQEAgLTMwMCw3ICsz
MDAsNyBAQCBTdHJpbmcgQ1NTVmFsdWU6OmNzc1RleHQoKSBjb25zdAogICAgIGNhc2UgR3JpZFRl
bXBsYXRlQXJlYXNDbGFzczoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0dyaWRUZW1wbGF0
ZUFyZWFzVmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CiAgICAgY2FzZSBQcmltaXRpdmVD
bGFzczoKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcyku
Y3VzdG9tQ1NTVGV4dCgpOworICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFs
dWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KGRvY3VtZW50KTsKICAgICBjYXNlIFJlZmxlY3RDbGFz
czoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU1JlZmxlY3RWYWx1ZT4oKnRoaXMpLmN1c3Rv
bUNTU1RleHQoKTsKICAgICBjYXNlIFNoYWRvd0NsYXNzOgpAQCAtMzE0LDcgKzMxNCw3IEBAIFN0
cmluZyBDU1NWYWx1ZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgY2FzZSBVbmljb2RlUmFuZ2VDbGFz
czoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU1VuaWNvZGVSYW5nZVZhbHVlPigqdGhpcyku
Y3VzdG9tQ1NTVGV4dCgpOwogICAgIGNhc2UgVmFsdWVMaXN0Q2xhc3M6Ci0gICAgICAgIHJldHVy
biBkb3duY2FzdDxDU1NWYWx1ZUxpc3Q+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CisgICAgICAg
IHJldHVybiBkb3duY2FzdDxDU1NWYWx1ZUxpc3Q+KCp0aGlzKS5jdXN0b21DU1NUZXh0KGRvY3Vt
ZW50KTsKICAgICBjYXNlIFZhbHVlUGFpckNsYXNzOgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8
Q1NTVmFsdWVQYWlyPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwogICAgIGNhc2UgTGluZUJveENv
bnRhaW5DbGFzczoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKaW5kZXggZGFkZTU4ZGEyMDY4YjdlZWNjZGFh
MzMxOTE4YzQ0ZDNhNzZlMDVjOC4uMzlmNDdjMmY3YzgxMmNhMWFjMDc0M2Y4MTAwZjliYzgwOWQ5
ZTk1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKQEAgLTM1LDYgKzM1LDcgQEAgY2xhc3MgQ1NTQ3Vz
dG9tUHJvcGVydHlWYWx1ZTsKIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBDYWNo
ZWRSZXNvdXJjZTsKIGNsYXNzIERlcHJlY2F0ZWRDU1NPTVZhbHVlOworY2xhc3MgRG9jdW1lbnQ7
CiBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CiAKIGVudW0gQ1NTUHJvcGVydHlJRCA6IHVpbnQx
Nl90OwpAQCAtNzcsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgVHlwZSBjc3NWYWx1
ZVR5cGUoKSBjb25zdDsKLSAgICBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0OworICAgIFN0cmluZyBj
c3NUZXh0KERvY3VtZW50KiA9IG51bGxwdHIpIGNvbnN0OwogICAgIEFTQ0lJTGl0ZXJhbCBzZXBh
cmF0b3JDU1NUZXh0KCkgY29uc3Q7CiAKICAgICBib29sIGlzUHJpbWl0aXZlVmFsdWUoKSBjb25z
dCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBQcmltaXRpdmVDbGFzczsgfQpAQCAtMjQ4LDYgKzI0
OSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgLCBtX2hhc0NhY2hlZENTU1RleHQoZmFsc2UpCiAg
ICAgICAgICwgbV92YWx1ZVNlcGFyYXRvcihTcGFjZVNlcGFyYXRvcikKICAgICAgICAgLCBtX2lz
SW1wbGljaXQoZmFsc2UpCisgICAgICAgICwgbV9jYWNoZWRDU1NUZXh0VXNlc0xlZ2FjeVByZWNp
c2lvbihmYWxzZSkKICAgICAgICAgLCBtX2NsYXNzVHlwZShjbGFzc1R5cGUpCiAgICAgewogICAg
IH0KQEAgLTI3NSw2ICsyNzcsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB1bnNpZ25lZCBtX3ZhbHVl
U2VwYXJhdG9yIDogVmFsdWVTZXBhcmF0b3JCaXRzOwogICAgIHVuc2lnbmVkIG1faXNJbXBsaWNp
dCA6IDE7CisgICAgbXV0YWJsZSB1bnNpZ25lZCBtX2NhY2hlZENTU1RleHRVc2VzTGVnYWN5UHJl
Y2lzaW9uIDogMTsKIAogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2NsYXNzVHlwZSA6IENsYXNz
VHlwZUJpdHM7IC8vIENsYXNzVHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmNwcAppbmRl
eCAyYjI0MzNmNzI2MTIwM2I2NmE5NWRiNzViMjQ5NTBjN2UwZmQ4YWYxLi5iNzNmZmE3ZTI0ZDRi
YThjNWFkZTNiN2NjY2Q0MWU0MzUyMTJiNjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0
LmNwcApAQCAtODMsMTIgKzgzLDEyIEBAIFJlZjxDU1NWYWx1ZUxpc3Q+IENTU1ZhbHVlTGlzdDo6
Y29weSgpCiAgICAgcmV0dXJuIG5ld0xpc3QucmVsZWFzZU5vbk51bGwoKTsKIH0KIAotU3RyaW5n
IENTU1ZhbHVlTGlzdDo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CitTdHJpbmcgQ1NTVmFsdWVMaXN0
OjpjdXN0b21DU1NUZXh0KERvY3VtZW50KiBkb2N1bWVudCkgY29uc3QKIHsKICAgICBTdHJpbmdC
dWlsZGVyIHJlc3VsdDsKICAgICBhdXRvIHNlcGFyYXRvciA9IHNlcGFyYXRvckNTU1RleHQoKTsK
ICAgICBmb3IgKGF1dG8mIHZhbHVlIDogbV92YWx1ZXMpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQo
cmVzdWx0LmlzRW1wdHkoKSA/ICIiX3MgOiBzZXBhcmF0b3IsIHZhbHVlLmdldCgpLmNzc1RleHQo
KSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQocmVzdWx0LmlzRW1wdHkoKSA/ICIiX3MgOiBzZXBh
cmF0b3IsIHZhbHVlLmdldCgpLmNzc1RleHQoZG9jdW1lbnQpKTsKICAgICByZXR1cm4gcmVzdWx0
LnRvU3RyaW5nKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuaAppbmRleCBmOWE3NjA2
MDQwODliMGNlMmY2OWY4NzY4NjU0ZjEyNjgyMzdhNjdlLi45ODA5NTZiZDhjZDFiZDZmZjNjNTlk
NDU2OTBhNGYyODNjNDlhMmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5oCkBAIC02Niw3
ICs2Niw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1ZhbHVlKENTU1ZhbHVlKikgY29uc3Q7CiAg
ICAgUmVmPENTU1ZhbHVlTGlzdD4gY29weSgpOwogCi0gICAgU3RyaW5nIGN1c3RvbUNTU1RleHQo
KSBjb25zdDsKKyAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dChEb2N1bWVudCogPSBudWxscHRyKSBj
b25zdDsKICAgICBib29sIGVxdWFscyhjb25zdCBDU1NWYWx1ZUxpc3QmKSBjb25zdDsKICAgICBi
b29sIGVxdWFscyhjb25zdCBDU1NWYWx1ZSYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDYyMjQz
ZmQ5ZDNmYjMzMThhNWFmZDE1OGY5MTRmYWNkNGMxYWEwNTQuLjE4MmMzMDkzZTgxMzg3YmY2MDNl
ZWNlZTJmZjlkYzBmZDg4NGQ5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9w
ZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Q
cm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0yNiw4ICsyNiwxMSBAQAogI2lu
Y2x1ZGUgIkNTU1J1bGUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAi
Q3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCIKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aCIKKyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTRE9NV2luZG93
QmFzZS5oIgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgiCiAjaW5j
bHVkZSAiTXV0YXRpb25SZWNvcmQuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKQEAg
LTI5OSw3ICszMDIsMTYgQEAgUmVmUHRyPENTU1ZhbHVlPiBQcm9wZXJ0eVNldENTU1N0eWxlRGVj
bGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWVJbnRlcm5hbChDU1MKIAogU3RyaW5nIFByb3Bl
cnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlWYWx1ZUludGVybmFsKENTU1By
b3BlcnR5SUQgcHJvcGVydHlJRCkKIHsKLSAgICBTdHJpbmcgdmFsdWUgPSBtX3Byb3BlcnR5U2V0
LT5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5SUQpOworICAgIERvY3VtZW50KiBkb2MgPSBudWxs
cHRyOworICAgIEpTRE9NT2JqZWN0KiB3cmFwID0gd3JhcHBlcigpOworICAgIGlmICh3cmFwKSB7
CisgICAgICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWwgPSB3cmFwLT5nbG9iYWxPYmplY3Qo
KTsKKyAgICAgICAgaWYgKGdsb2JhbCkgeworICAgICAgICAgICAgRE9NV2luZG93JiB3aW5kb3cg
PSBhY3RpdmVET01XaW5kb3coKmdsb2JhbCk7CisgICAgICAgICAgICBkb2MgPSB3aW5kb3cuZG9j
dW1lbnQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBTdHJpbmcgdmFsdWUgPSBtX3Byb3BlcnR5
U2V0LT5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5SUQsIGRvYyk7CiAKICAgICBpZiAoIXZhbHVl
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQ
cm9wZXJ0aWVzLmNwcAppbmRleCA1OTM4Y2Q1MzIzYmM4NjNhNDY4ZmUwYmVhNGViOGY1NzkzNzEy
MGMxLi5hZDA2YzRlOTAzZjFkZTkyNmRhYzEzMjllYzM1YTlmODc5ZmEwODMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtMTc2LDcgKzE3Niw3IEBAIGJvb2wgU3R5
bGVQcm9wZXJ0aWVzOjpzaG9ydGhhbmRIYXNWYXJpYWJsZVJlZmVyZW5jZShDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5SUQsIFN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1TdHJpbmcgU3R5bGVQcm9w
ZXJ0aWVzOjpnZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QK
K1N0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBw
cm9wZXJ0eUlELCBEb2N1bWVudCogZG9jdW1lbnQpIGNvbnN0CiB7CiAgICAgaWYgKGF1dG8gdmFs
dWUgPSBnZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5SUQpKSB7CiAgICAgICAgIHN3aXRjaCAo
cHJvcGVydHlJRCkgewpAQCAtMTkwLDcgKzE5MCw3IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6
OmdldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdAogICAgICAg
ICAgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigq
dmFsdWUpLmRvdWJsZVZhbHVlKCkgLyAxMDApOwogICAgICAgICAgICAgRkFMTFRIUk9VR0g7CiAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWUtPmNzc1RleHQoKTsKKyAg
ICAgICAgICAgIHJldHVybiB2YWx1ZS0+Y3NzVGV4dChkb2N1bWVudCk7CiAgICAgICAgIH0KICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuaAppbmRleCA1ZTRjODcyNjVhZWU3
YzZiY2JlM2QyNTlmOWIxMmE4ZjZiM2VjODlkLi45OWQxYjdiN2UzNDQxNzI2MTEwMjcyNWU3NGZj
ZjMyMjc4ZWJmNDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0
aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5oCkBAIC0xMTMs
NyArMTEzLDcgQEAgcHVibGljOgogICAgIFByb3BlcnR5UmVmZXJlbmNlIHByb3BlcnR5QXQodW5z
aWduZWQpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPENTU1ZhbHVlPiBnZXRQ
cm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5SUQpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JU
IFN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQpIGNvbnN0OworICAgIFdFQkNP
UkVfRVhQT1JUIFN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQsIERvY3VtZW50
KiA9IG51bGxwdHIpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxD
b2xvcj4gcHJvcGVydHlBc0NvbG9yKENTU1Byb3BlcnR5SUQpIGNvbnN0OwogICAgIFdFQkNPUkVf
RVhQT1JUIENTU1ZhbHVlSUQgcHJvcGVydHlBc1ZhbHVlSUQoQ1NTUHJvcGVydHlJRCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1F1aXJrcy5jcHAKaW5kZXggMjlhN2JiOTRlYjQ5MDMzMGUyYWQzOTI3ZjYzNzEw
M2VlMjdkNTE5OC4uZWYwZmUyYjZhMGZkMTFhMGVlNjgzMDI5ZmM3ZjJjNWFlODBhODRkMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUXVpcmtzLmNwcApAQCAtMTMzMiw2ICsxMzMyLDE4IEBAIGJvb2wgUXVpcmtzOjpu
ZWVkc0FrYW1haU1lZGlhUGxheWVyUXVpcmsoY29uc3QgSFRNTFZpZGVvRWxlbWVudCYgZWxlbWVu
dCkgY29uc3QKICNlbmRpZgogfQogCisvLyBGSVhNRTogcmVtb3ZlIHRoaXMgb25jZSByZGFyOi8v
OTI1MzEyNDAgaGFzIGJlZW4gZml4ZWQuCitib29sIFF1aXJrczo6bmVlZHNGbGlnaHRBd2FyZVNl
cmlhbGl6YXRpb25RdWlyaygpIGNvbnN0Cit7CisgICAgaWYgKCFuZWVkc1F1aXJrcygpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIW1fbmVlZHNGbGlnaHRBd2FyZVNlcmlhbGl6
YXRpb25RdWlyaykKKyAgICAgICAgbV9uZWVkc0ZsaWdodEF3YXJlU2VyaWFsaXphdGlvblF1aXJr
ID0gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobV9kb2N1bWVudC0+dXJsKCkuaG9zdCgp
LCAiZmxpZ2h0YXdhcmUuY29tIl9zKTsKKworICAgIHJldHVybiAqbV9uZWVkc0ZsaWdodEF3YXJl
U2VyaWFsaXphdGlvblF1aXJrOworfQorCiBib29sIFF1aXJrczo6bmVlZHNCbGFja0Z1bGxzY3Jl
ZW5CYWNrZ3JvdW5kUXVpcmsoKSBjb25zdAogewogICAgIC8vIE1MQi5jb20gc2V0cyBhIGJsYWNr
IGJhY2tncm91bmQtY29sb3Igb24gdGhlIDpiYWNrZHJvcCBwc2V1ZG8gZWxlbWVudCwgd2hpY2gg
V2ViS2l0IGRvZXMgbm90IHlldCBzdXBwb3J0LiBUaGlzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1F1aXJrcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuaAppbmRleCBi
ZjU1YjIxZmFkYmJjZTdjYzdjMWIyZWZjMGQ1ZTQxOTE3ZTk3OGQzLi5mNDMzZmE4ZjAyZGFjYmNk
NjdjMTZkNDhkMTE0MzdmZThiNGY1NmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1F1aXJrcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmgKQEAgLTEzMyw2ICsx
MzMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBuZWVkc0hEUlBpeGVsRGVwdGhRdWlyaygpIGNvbnN0
OwogICAgIAogICAgIGJvb2wgbmVlZHNBa2FtYWlNZWRpYVBsYXllclF1aXJrKGNvbnN0IEhUTUxW
aWRlb0VsZW1lbnQmKSBjb25zdDsKKyAgICBib29sIG5lZWRzRmxpZ2h0QXdhcmVTZXJpYWxpemF0
aW9uUXVpcmsoKSBjb25zdDsKIAogICAgIGJvb2wgbmVlZHNCbGFja0Z1bGxzY3JlZW5CYWNrZ3Jv
dW5kUXVpcmsoKSBjb25zdDsKIApAQCAtMTk0LDYgKzE5NSw3IEBAIHByaXZhdGU6CiAgICAgbXV0
YWJsZSBzdGQ6Om9wdGlvbmFsPGJvb2w+IG1fc2hvdWxkQnlwYXNzQXN5bmNTY3JpcHREZWZlcnJp
bmc7CiAgICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPGJvb2w+IG1fbmVlZHNWUDlGdWxsUmFuZ2VG
bGFnUXVpcms7CiAgICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPGJvb2w+IG1fbmVlZHNIRFJQaXhl
bERlcHRoUXVpcms7CisgICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPGJvb2w+IG1fbmVlZHNGbGln
aHRBd2FyZVNlcmlhbGl6YXRpb25RdWlyazsKICAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8Ym9v
bD4gbV9uZWVkc0JsYWNrRnVsbHNjcmVlbkJhY2tncm91bmRRdWlyazsKICAgICBtdXRhYmxlIHN0
ZDo6b3B0aW9uYWw8Ym9vbD4gbV9yZXF1aXJlc1VzZXJHZXN0dXJlVG9QYXVzZUluUGljdHVyZUlu
UGljdHVyZTsKICAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV9yZXF1aXJlc1VzZXJH
ZXN0dXJlVG9Mb2FkSW5QaWN0dXJlSW5QaWN0dXJlOwpkaWZmIC0tZ2l0IGEvZGlmZiBiL2RpZmYK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZGFhMGFmZjBiODE1MDM1NTM1YzBkYzc2ZGZhMjlmOGZhM2U1ZTNlZAotLS0g
L2Rldi9udWxsCisrKyBiL2RpZmYKQEAgLTAsMCArMSwzMiBAQAorZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1s
IGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVu
dGFsLnlhbWwKK2luZGV4IGZkMzA2ZmIyOTEyZS4uMGI2NWYyOGY5NTg4IDEwMDY0NAorLS0tIGEv
U291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFs
LnlhbWwKKysrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNl
c0V4cGVyaW1lbnRhbC55YW1sCitAQCAtMTQ2Nyw3ICsxNDY3LDYgQEAgVXNlR1BVUHJvY2Vzc0Zv
ckRPTVJlbmRlcmluZ0VuYWJsZWQ6CisgICBleHBvc2VkOiBbIFdlYktpdCBdCisgICBkZWZhdWx0
VmFsdWU6CisgICAgIFdlYktpdDoKKy0gICAgICAiRU5BQkxFKEdQVV9QUk9DRVNTX0JZX0RFRkFV
TFQpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShXQVRDSE9TKSAmJiAhSEFW
RShVSUtJVF9XRUJLSVRfSU5URVJOQUxTKSI6IHRydWUKKyAgICAgICBkZWZhdWx0OiBmYWxzZQor
IAorIFVzZUdQVVByb2Nlc3NGb3JEaXNwbGF5Q2FwdHVyZToKK2RpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwIGIvU291cmNlL1dURi93dGYvTWVtb3J5
UHJlc3N1cmVIYW5kbGVyLmNwcAoraW5kZXggNGIwNTUyZTBiZmZjLi5kN2Q0NDJhMzkxNzUgMTAw
NjQ0CistLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCisrKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVzc3VyZUhhbmRsZXIuY3BwCitAQCAtMjU0LDE0ICsy
NTQsOCBAQCB2b2lkIE1lbW9yeVByZXNzdXJlSGFuZGxlcjo6ZW5kU2ltdWxhdGVkTWVtb3J5UHJl
c3N1cmUoKQorICAgICBtZW1vcnlQcmVzc3VyZVN0YXR1c0NoYW5nZWQoKTsKKyB9CisgCistdm9p
ZCBNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnJlbGVhc2VNZW1vcnkoQ3JpdGljYWwgY3JpdGljYWws
IFN5bmNocm9ub3VzIHN5bmNocm9ub3VzKQorK3ZvaWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpy
ZWxlYXNlTWVtb3J5KENyaXRpY2FsLCBTeW5jaHJvbm91cykKKyB7CistICAgIGlmICghbV9sb3dN
ZW1vcnlIYW5kbGVyKQorLSAgICAgICAgcmV0dXJuOworLQorLSAgICBSZWxpZWZMb2dnZXIgbG9n
KCJUb3RhbCIpOworLSAgICBtX2xvd01lbW9yeUhhbmRsZXIoY3JpdGljYWwsIHN5bmNocm9ub3Vz
KTsKKy0gICAgcGxhdGZvcm1SZWxlYXNlTWVtb3J5KGNyaXRpY2FsKTsKKyB9CisgCisgdm9pZCBN
ZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNldE1lbW9yeVByZXNzdXJlU3RhdHVzKE1lbW9yeVByZXNz
dXJlU3RhdHVzIG1lbW9yeVByZXNzdXJlU3RhdHVzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459265</attachid>
            <date>2022-05-12 17:47:56 -0700</date>
            <delta_ts>2022-05-12 18:50:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240320-20220513124754.patch</filename>
            <type>text/plain</type>
            <size>14909</size>
            <attacher name="Matt Woodrow">mattwoodrow</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzOTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU5NzZlYzQwY2UxMzc3
NmIxMWJiZGY5ZWFhMWI3MGQ5MjU3ZTZiYy4uNDgxZDNlYzBlNzBmYjUyYmZkYjY4ZTNjNGJhM2Iy
MGU2ZDEwYzZlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIyLTA1LTExICBNYXR0
IFdvb2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CisKKyAgICAgICAgUXVpcmsgRmxpZ2h0
YXdhcmUuY29tIHRvIHVzZSB0aGUgb2xkZXIgbnVtYmVyIHNlcmlhbGl6YXRpb24gcGF0aC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDMyMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBFbnN1cmVzIHRoYXQg
c2VyaWFsaXphdGlvbiBvZiBtYXRyaXgoKSBDU1MgcHJvcGVydGllcyB1c2VzIHRoZSBvbGRlciBz
ZXJpYWxpemF0aW9uICh3aGljaAorICAgICAgICBtYXRjaGVzIEVDTUEgc2NyaXB0IHNlcmlhbGl6
YXRpb24pIHNpbmNlIHRoaXMgc2l0ZSBleHBlY3RzIHRoZXNlIHRvIGJlIGNvbXBhcmFibGUgYXMg
c3RyaW5ncy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHNpbmNlIHRoaXMgaXMgYSBzaXRlLXNw
ZWNpZmljIHF1aXJrLgorCisgICAgICAgICogY3NzL0NTU0Z1bmN0aW9uVmFsdWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTRnVuY3Rpb25WYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6Cisg
ICAgICAgICogY3NzL0NTU0Z1bmN0aW9uVmFsdWUuaDoKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0
aXZlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmZvcm1h
dE51bWJlclZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
OjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUu
aDoKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFs
dWU6OmNzc1RleHQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTVmFsdWU6OkNTU1ZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWVMaXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlTGlzdDo6Y3VzdG9tQ1NTVGV4dCBjb25z
dCk6CisgICAgICAgICogY3NzL0NTU1ZhbHVlTGlzdC5oOgorICAgICAgICAqIGNzcy9Qcm9wZXJ0
eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlT
ZXRDU1NTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eVZhbHVlSW50ZXJuYWwpOgorICAgICAg
ICAqIGNzcy9TdHlsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQcm9w
ZXJ0aWVzOjpnZXRQcm9wZXJ0eVZhbHVlIGNvbnN0KToKKyAgICAgICAgKiBjc3MvU3R5bGVQcm9w
ZXJ0aWVzLmg6CisgICAgICAgICogcGFnZS9RdWlya3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UXVpcmtzOjpuZWVkc0ZsaWdodEF3YXJlU2VyaWFsaXphdGlvblF1aXJrIGNvbnN0KToKKyAgICAg
ICAgKiBwYWdlL1F1aXJrcy5oOgorCiAyMDIyLTA1LTA4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBBdm9pZCByZXNvbHZpbmcgc3R5bGUgZm9yIGVsZW1lbnRz
IHRoYXQgb25seSBpbmhlcml0IGNoYW5nZXMgZnJvbSBwYXJlbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGdW5jdGlvblZhbHVlLmNwcAppbmRleCA3NWVmMGMxZWQ0YTc0ZDI2ZmNmNTViMDJlNDZhMThm
YzZjZTIyZmFhLi4yMjFkZjVhNDdiM2UwYTBiY2Q2NTZiOWYxMzY3ZTQxY2RiNWFjNzRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0Z1bmN0aW9uVmFsdWUuY3BwCkBAIC0zMCwxMiArMzAsMTIgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAotU3RyaW5nIENTU0Z1bmN0aW9uVmFsdWU6OmN1
c3RvbUNTU1RleHQoKSBjb25zdAorU3RyaW5nIENTU0Z1bmN0aW9uVmFsdWU6OmN1c3RvbUNTU1Rl
eHQoRG9jdW1lbnQqIGRvY3VtZW50KSBjb25zdAogewogICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0
OwogICAgIHJlc3VsdC5hcHBlbmQoZ2V0VmFsdWVOYW1lKG1fbmFtZSkpOwogICAgIHJlc3VsdC5h
cHBlbmQoJygnKTsKLSAgICByZXN1bHQuYXBwZW5kKENTU1ZhbHVlTGlzdDo6Y3VzdG9tQ1NTVGV4
dCgpKTsKKyAgICByZXN1bHQuYXBwZW5kKENTU1ZhbHVlTGlzdDo6Y3VzdG9tQ1NTVGV4dChkb2N1
bWVudCkpOwogICAgIHJlc3VsdC5hcHBlbmQoJyknKTsKICAgICByZXR1cm4gcmVzdWx0LnRvU3Ry
aW5nKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVuY3Rpb25WYWx1
ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Z1bmN0aW9uVmFsdWUuaAppbmRleCBlYmIzZDVi
YWI3YTQyNDQwZGE4MDMwMjdkYmMxYjE4NWFkODgyYWQxLi4zM2I0YzRlYzI0YWYyMWE0MzYyYTEy
MzdiYmE1ODdlMDgzNzY2NWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRnVu
Y3Rpb25WYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGdW5jdGlvblZhbHVlLmgK
QEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBD
U1NGdW5jdGlvblZhbHVlKG5hbWUpKTsKICAgICB9CiAgICAgCi0gICAgU3RyaW5nIGN1c3RvbUNT
U1RleHQoKSBjb25zdDsKKyAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dChEb2N1bWVudCogPSBudWxs
cHRyKSBjb25zdDsKIAogICAgIENTU1ZhbHVlSUQgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFt
ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAppbmRleCAyM2Yy
MzQ2MjA0ZmY4M2Y4ZTdmMmExYTljZjg2MGVmNGVjMGE5ODdhLi44YjdiZDc5NzQ1NWIyZWQzZDE5
MmM2MzU4OTc2MzI0MTM1NGEzZDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVW
YWx1ZS5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRlICJMZW5ndGguaCIKICNpbmNsdWRl
ICJOb2RlUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJQYWlyLmgiCisjaW5jbHVkZSAiUXVpcmtz
LmgiCiAjaW5jbHVkZSAiUmVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVmlldy5oIgpAQCAtMTIyNyw2ICsxMjI4LDggQEAgTkVWRVJfSU5MSU5FIFN0cmlu
ZyBDU1NQcmltaXRpdmVWYWx1ZTo6Zm9ybWF0SW5maW5pdGVPck5hblZhbHVlKFN0cmluZ1ZpZXcg
c3VmZmkKIAogTkVWRVJfSU5MSU5FIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6Zm9ybWF0TnVt
YmVyVmFsdWUoU3RyaW5nVmlldyBzdWZmaXgpIGNvbnN0CiB7CisgICAgaWYgKG1fY2FjaGVkQ1NT
VGV4dFVzZXNMZWdhY3lQcmVjaXNpb24pCisgICAgICAgIHJldHVybiBmb3JtYXRJbnRlZ2VyVmFs
dWUoc3VmZml4KTsKICAgICBpZiAoc3RkOjppc25hbihtX3ZhbHVlLm51bSkgfHwgc3RkOjppc2lu
ZihtX3ZhbHVlLm51bSkpCiAgICAgICAgIHJldHVybiBmb3JtYXRJbmZpbml0ZU9yTmFuVmFsdWUo
c3VmZml4KTsKICAgICByZXR1cm4gbWFrZVN0cmluZyhGb3JtYXR0ZWRDU1NOdW1iZXI6OmNyZWF0
ZShtX3ZhbHVlLm51bSksIHN1ZmZpeCk7CkBAIC0xNTE0LDE3ICsxNTE3LDIwIEBAIEFMV0FZU19J
TkxJTkUgU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjpmb3JtYXROdW1iZXJGb3JDdXN0b21DU1NU
ZXh0KCkgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLVN0cmluZyBDU1NQcmltaXRp
dmVWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CitTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6
OmN1c3RvbUNTU1RleHQoRG9jdW1lbnQqIGRvY3VtZW50KSBjb25zdAogewogICAgIC8vIEZJWE1F
OiByZXR1cm4gdGhlIG9yaWdpbmFsIHZhbHVlIGluc3RlYWQgb2YgYSBnZW5lcmF0ZWQgb25lIChl
LmcuIGNvbG9yCiAgICAgLy8gbmFtZSBpZiBpdCB3YXMgc3BlY2lmaWVkKSAtIGNoZWNrIHdoYXQg
c3BlYyBzYXlzIGFib3V0IHRoaXMKIAogICAgIENTU1RleHRDYWNoZSYgY3NzVGV4dENhY2hlID0g
V2ViQ29yZTo6Y3NzVGV4dENhY2hlKCk7CiAKLSAgICBpZiAobV9oYXNDYWNoZWRDU1NUZXh0KSB7
CisgICAgYm9vbCBuZWVkc1F1aXJrID0gZG9jdW1lbnQgJiYgZG9jdW1lbnQtPnF1aXJrcygpLm5l
ZWRzRmxpZ2h0QXdhcmVTZXJpYWxpemF0aW9uUXVpcmsoKTsKKworICAgIGlmIChtX2hhc0NhY2hl
ZENTU1RleHQgJiYgbV9jYWNoZWRDU1NUZXh0VXNlc0xlZ2FjeVByZWNpc2lvbiA9PSBuZWVkc1F1
aXJrKSB7CiAgICAgICAgIEFTU0VSVChjc3NUZXh0Q2FjaGUuY29udGFpbnModGhpcykpOwogICAg
ICAgICByZXR1cm4gY3NzVGV4dENhY2hlLmdldCh0aGlzKTsKICAgICB9CisgICAgbV9jYWNoZWRD
U1NUZXh0VXNlc0xlZ2FjeVByZWNpc2lvbiA9IG5lZWRzUXVpcms7CiAKICAgICBTdHJpbmcgdGV4
dCA9IGZvcm1hdE51bWJlckZvckN1c3RvbUNTU1RleHQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWUuaAppbmRleCBjZmVkMmNhMWM4OTgyYjRlMDI4NWJjOTYwMjRjMGQzNzFi
ZTMxOGFlLi45NzE5MzY1MmZlNjU0YmEyMjU1MzhmMDM1NTkyMTVjNzA5MGM2NGYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaApAQCAtMTkwLDcgKzE5MCw3IEBAIHB1Ymxp
YzoKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBvcGVyYXRvciBUKCkgY29uc3Q7
IC8vIERlZmluZWQgaW4gQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCiAKLSAgICBTdHJpbmcg
Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0OworICAgIFN0cmluZyBjdXN0b21DU1NUZXh0KERvY3VtZW50
KiA9IG51bGxwdHIpIGNvbnN0OwogCiAgICAgYm9vbCBlcXVhbHMoY29uc3QgQ1NTUHJpbWl0aXZl
VmFsdWUmKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKaW5kZXggNWUyMTgyMjYzZmNl
YTVjYWZmMzYzZTRmZjQ0MDM5NDM4MTFmNmRhYy4uZTFiOTkzMzE1ZjQwZDdkNDMwOWIyNWU5NmNj
OTExOGM5ZGQ3M2VmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCkBAIC0yNDYsNyArMjQ2LDcg
QEAgYm9vbCBDU1NWYWx1ZTo6aXNDU1NMb2NhbFVSTChTdHJpbmdWaWV3IHJlbGF0aXZlVVJMKQog
ICAgIHJldHVybiByZWxhdGl2ZVVSTC5pc0VtcHR5KCkgfHwgcmVsYXRpdmVVUkwuc3RhcnRzV2l0
aCgnIycpOwogfQogCi1TdHJpbmcgQ1NTVmFsdWU6OmNzc1RleHQoKSBjb25zdAorU3RyaW5nIENT
U1ZhbHVlOjpjc3NUZXh0KERvY3VtZW50KiBkb2N1bWVudCkgY29uc3QKIHsKICAgICBzd2l0Y2gg
KGNsYXNzVHlwZSgpKSB7CiAgICAgY2FzZSBBc3BlY3RSYXRpb0NsYXNzOgpAQCAtMjc4LDcgKzI3
OCw3IEBAIFN0cmluZyBDU1NWYWx1ZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgY2FzZSBGb250VmFy
aWF0aW9uQ2xhc3M6CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NGb250VmFyaWF0aW9uVmFs
dWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CiAgICAgY2FzZSBGdW5jdGlvbkNsYXNzOgotICAg
ICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTRnVuY3Rpb25WYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1Rl
eHQoKTsKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0Z1bmN0aW9uVmFsdWU+KCp0aGlzKS5j
dXN0b21DU1NUZXh0KGRvY3VtZW50KTsKICAgICBjYXNlIExpbmVhckdyYWRpZW50Q2xhc3M6CiAg
ICAgICAgIHJldHVybiBkb3duY2FzdDxDU1NMaW5lYXJHcmFkaWVudFZhbHVlPigqdGhpcykuY3Vz
dG9tQ1NTVGV4dCgpOwogICAgIGNhc2UgUmFkaWFsR3JhZGllbnRDbGFzczoKQEAgLTMwMCw3ICsz
MDAsNyBAQCBTdHJpbmcgQ1NTVmFsdWU6OmNzc1RleHQoKSBjb25zdAogICAgIGNhc2UgR3JpZFRl
bXBsYXRlQXJlYXNDbGFzczoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0dyaWRUZW1wbGF0
ZUFyZWFzVmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CiAgICAgY2FzZSBQcmltaXRpdmVD
bGFzczoKLSAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdGhpcyku
Y3VzdG9tQ1NTVGV4dCgpOworICAgICAgICByZXR1cm4gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFs
dWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KGRvY3VtZW50KTsKICAgICBjYXNlIFJlZmxlY3RDbGFz
czoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU1JlZmxlY3RWYWx1ZT4oKnRoaXMpLmN1c3Rv
bUNTU1RleHQoKTsKICAgICBjYXNlIFNoYWRvd0NsYXNzOgpAQCAtMzE0LDcgKzMxNCw3IEBAIFN0
cmluZyBDU1NWYWx1ZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgY2FzZSBVbmljb2RlUmFuZ2VDbGFz
czoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU1VuaWNvZGVSYW5nZVZhbHVlPigqdGhpcyku
Y3VzdG9tQ1NTVGV4dCgpOwogICAgIGNhc2UgVmFsdWVMaXN0Q2xhc3M6Ci0gICAgICAgIHJldHVy
biBkb3duY2FzdDxDU1NWYWx1ZUxpc3Q+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CisgICAgICAg
IHJldHVybiBkb3duY2FzdDxDU1NWYWx1ZUxpc3Q+KCp0aGlzKS5jdXN0b21DU1NUZXh0KGRvY3Vt
ZW50KTsKICAgICBjYXNlIFZhbHVlUGFpckNsYXNzOgogICAgICAgICByZXR1cm4gZG93bmNhc3Q8
Q1NTVmFsdWVQYWlyPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwogICAgIGNhc2UgTGluZUJveENv
bnRhaW5DbGFzczoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKaW5kZXggZGFkZTU4ZGEyMDY4YjdlZWNjZGFh
MzMxOTE4YzQ0ZDNhNzZlMDVjOC4uMzlmNDdjMmY3YzgxMmNhMWFjMDc0M2Y4MTAwZjliYzgwOWQ5
ZTk1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKQEAgLTM1LDYgKzM1LDcgQEAgY2xhc3MgQ1NTQ3Vz
dG9tUHJvcGVydHlWYWx1ZTsKIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBDYWNo
ZWRSZXNvdXJjZTsKIGNsYXNzIERlcHJlY2F0ZWRDU1NPTVZhbHVlOworY2xhc3MgRG9jdW1lbnQ7
CiBjbGFzcyBTdHlsZVNoZWV0Q29udGVudHM7CiAKIGVudW0gQ1NTUHJvcGVydHlJRCA6IHVpbnQx
Nl90OwpAQCAtNzcsNyArNzgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgVHlwZSBjc3NWYWx1
ZVR5cGUoKSBjb25zdDsKLSAgICBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0OworICAgIFN0cmluZyBj
c3NUZXh0KERvY3VtZW50KiA9IG51bGxwdHIpIGNvbnN0OwogICAgIEFTQ0lJTGl0ZXJhbCBzZXBh
cmF0b3JDU1NUZXh0KCkgY29uc3Q7CiAKICAgICBib29sIGlzUHJpbWl0aXZlVmFsdWUoKSBjb25z
dCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBQcmltaXRpdmVDbGFzczsgfQpAQCAtMjQ4LDYgKzI0
OSw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgLCBtX2hhc0NhY2hlZENTU1RleHQoZmFsc2UpCiAg
ICAgICAgICwgbV92YWx1ZVNlcGFyYXRvcihTcGFjZVNlcGFyYXRvcikKICAgICAgICAgLCBtX2lz
SW1wbGljaXQoZmFsc2UpCisgICAgICAgICwgbV9jYWNoZWRDU1NUZXh0VXNlc0xlZ2FjeVByZWNp
c2lvbihmYWxzZSkKICAgICAgICAgLCBtX2NsYXNzVHlwZShjbGFzc1R5cGUpCiAgICAgewogICAg
IH0KQEAgLTI3NSw2ICsyNzcsNyBAQCBwcm90ZWN0ZWQ6CiAKICAgICB1bnNpZ25lZCBtX3ZhbHVl
U2VwYXJhdG9yIDogVmFsdWVTZXBhcmF0b3JCaXRzOwogICAgIHVuc2lnbmVkIG1faXNJbXBsaWNp
dCA6IDE7CisgICAgbXV0YWJsZSB1bnNpZ25lZCBtX2NhY2hlZENTU1RleHRVc2VzTGVnYWN5UHJl
Y2lzaW9uIDogMTsKIAogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2NsYXNzVHlwZSA6IENsYXNz
VHlwZUJpdHM7IC8vIENsYXNzVHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0LmNwcAppbmRl
eCAyYjI0MzNmNzI2MTIwM2I2NmE5NWRiNzViMjQ5NTBjN2UwZmQ4YWYxLi5iNzNmZmE3ZTI0ZDRi
YThjNWFkZTNiN2NjY2Q0MWU0MzUyMTJiNjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTVmFsdWVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVMaXN0
LmNwcApAQCAtODMsMTIgKzgzLDEyIEBAIFJlZjxDU1NWYWx1ZUxpc3Q+IENTU1ZhbHVlTGlzdDo6
Y29weSgpCiAgICAgcmV0dXJuIG5ld0xpc3QucmVsZWFzZU5vbk51bGwoKTsKIH0KIAotU3RyaW5n
IENTU1ZhbHVlTGlzdDo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CitTdHJpbmcgQ1NTVmFsdWVMaXN0
OjpjdXN0b21DU1NUZXh0KERvY3VtZW50KiBkb2N1bWVudCkgY29uc3QKIHsKICAgICBTdHJpbmdC
dWlsZGVyIHJlc3VsdDsKICAgICBhdXRvIHNlcGFyYXRvciA9IHNlcGFyYXRvckNTU1RleHQoKTsK
ICAgICBmb3IgKGF1dG8mIHZhbHVlIDogbV92YWx1ZXMpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQo
cmVzdWx0LmlzRW1wdHkoKSA/ICIiX3MgOiBzZXBhcmF0b3IsIHZhbHVlLmdldCgpLmNzc1RleHQo
KSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmQocmVzdWx0LmlzRW1wdHkoKSA/ICIiX3MgOiBzZXBh
cmF0b3IsIHZhbHVlLmdldCgpLmNzc1RleHQoZG9jdW1lbnQpKTsKICAgICByZXR1cm4gcmVzdWx0
LnRvU3RyaW5nKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUxpc3QuaAppbmRleCBmOWE3NjA2
MDQwODliMGNlMmY2OWY4NzY4NjU0ZjEyNjgyMzdhNjdlLi45ODA5NTZiZDhjZDFiZDZmZjNjNTlk
NDU2OTBhNGYyODNjNDlhMmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlTGlzdC5oCkBAIC02Niw3
ICs2Niw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1ZhbHVlKENTU1ZhbHVlKikgY29uc3Q7CiAg
ICAgUmVmPENTU1ZhbHVlTGlzdD4gY29weSgpOwogCi0gICAgU3RyaW5nIGN1c3RvbUNTU1RleHQo
KSBjb25zdDsKKyAgICBTdHJpbmcgY3VzdG9tQ1NTVGV4dChEb2N1bWVudCogPSBudWxscHRyKSBj
b25zdDsKICAgICBib29sIGVxdWFscyhjb25zdCBDU1NWYWx1ZUxpc3QmKSBjb25zdDsKICAgICBi
b29sIGVxdWFscyhjb25zdCBDU1NWYWx1ZSYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9Qcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDYyMjQz
ZmQ5ZDNmYjMzMThhNWFmZDE1OGY5MTRmYWNkNGMxYWEwNTQuLjE4MmMzMDkzZTgxMzg3YmY2MDNl
ZWNlZTJmZjlkYzBmZDg4NGQ5ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9w
ZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Q
cm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0yNiw4ICsyNiwxMSBAQAogI2lu
Y2x1ZGUgIkNTU1J1bGUuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAi
Q3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaCIKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
aCIKKyNpbmNsdWRlICJKU0RPTUdsb2JhbE9iamVjdC5oIgorI2luY2x1ZGUgIkpTRE9NV2luZG93
QmFzZS5oIgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXJJbnRlcmVzdEdyb3VwLmgiCiAjaW5j
bHVkZSAiTXV0YXRpb25SZWNvcmQuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMuaCIKQEAg
LTI5OSw3ICszMDIsMTYgQEAgUmVmUHRyPENTU1ZhbHVlPiBQcm9wZXJ0eVNldENTU1N0eWxlRGVj
bGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWVJbnRlcm5hbChDU1MKIAogU3RyaW5nIFByb3Bl
cnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlWYWx1ZUludGVybmFsKENTU1By
b3BlcnR5SUQgcHJvcGVydHlJRCkKIHsKLSAgICBTdHJpbmcgdmFsdWUgPSBtX3Byb3BlcnR5U2V0
LT5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5SUQpOworICAgIERvY3VtZW50KiBkb2MgPSBudWxs
cHRyOworICAgIEpTRE9NT2JqZWN0KiB3cmFwID0gd3JhcHBlcigpOworICAgIGlmICh3cmFwKSB7
CisgICAgICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWwgPSB3cmFwLT5nbG9iYWxPYmplY3Qo
KTsKKyAgICAgICAgaWYgKGdsb2JhbCkgeworICAgICAgICAgICAgRE9NV2luZG93JiB3aW5kb3cg
PSBhY3RpdmVET01XaW5kb3coKmdsb2JhbCk7CisgICAgICAgICAgICBkb2MgPSB3aW5kb3cuZG9j
dW1lbnQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBTdHJpbmcgdmFsdWUgPSBtX3Byb3BlcnR5
U2V0LT5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5SUQsIGRvYyk7CiAKICAgICBpZiAoIXZhbHVl
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQ
cm9wZXJ0aWVzLmNwcAppbmRleCA1OTM4Y2Q1MzIzYmM4NjNhNDY4ZmUwYmVhNGViOGY1NzkzNzEy
MGMxLi5hZDA2YzRlOTAzZjFkZTkyNmRhYzEzMjllYzM1YTlmODc5ZmEwODMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtMTc2LDcgKzE3Niw3IEBAIGJvb2wgU3R5
bGVQcm9wZXJ0aWVzOjpzaG9ydGhhbmRIYXNWYXJpYWJsZVJlZmVyZW5jZShDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5SUQsIFN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1TdHJpbmcgU3R5bGVQcm9w
ZXJ0aWVzOjpnZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCkgY29uc3QK
K1N0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBw
cm9wZXJ0eUlELCBEb2N1bWVudCogZG9jdW1lbnQpIGNvbnN0CiB7CiAgICAgaWYgKGF1dG8gdmFs
dWUgPSBnZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5SUQpKSB7CiAgICAgICAgIHN3aXRjaCAo
cHJvcGVydHlJRCkgewpAQCAtMTkwLDcgKzE5MCw3IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6
OmdldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKSBjb25zdAogICAgICAg
ICAgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigq
dmFsdWUpLmRvdWJsZVZhbHVlKCkgLyAxMDApOwogICAgICAgICAgICAgRkFMTFRIUk9VR0g7CiAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWUtPmNzc1RleHQoKTsKKyAg
ICAgICAgICAgIHJldHVybiB2YWx1ZS0+Y3NzVGV4dChkb2N1bWVudCk7CiAgICAgICAgIH0KICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuaAppbmRleCA1ZTRjODcyNjVhZWU3
YzZiY2JlM2QyNTlmOWIxMmE4ZjZiM2VjODlkLi45OWQxYjdiN2UzNDQxNzI2MTEwMjcyNWU3NGZj
ZjMyMjc4ZWJmNDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0
aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5oCkBAIC0xMTMs
NyArMTEzLDcgQEAgcHVibGljOgogICAgIFByb3BlcnR5UmVmZXJlbmNlIHByb3BlcnR5QXQodW5z
aWduZWQpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPENTU1ZhbHVlPiBnZXRQ
cm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5SUQpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JU
IFN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQpIGNvbnN0OworICAgIFdFQkNP
UkVfRVhQT1JUIFN0cmluZyBnZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQsIERvY3VtZW50
KiA9IG51bGxwdHIpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxD
b2xvcj4gcHJvcGVydHlBc0NvbG9yKENTU1Byb3BlcnR5SUQpIGNvbnN0OwogICAgIFdFQkNPUkVf
RVhQT1JUIENTU1ZhbHVlSUQgcHJvcGVydHlBc1ZhbHVlSUQoQ1NTUHJvcGVydHlJRCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1F1aXJrcy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1F1aXJrcy5jcHAKaW5kZXggMjlhN2JiOTRlYjQ5MDMzMGUyYWQzOTI3ZjYzNzEw
M2VlMjdkNTE5OC4uZWYwZmUyYjZhMGZkMTFhMGVlNjgzMDI5ZmM3ZjJjNWFlODBhODRkMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUXVpcmtzLmNwcApAQCAtMTMzMiw2ICsxMzMyLDE4IEBAIGJvb2wgUXVpcmtzOjpu
ZWVkc0FrYW1haU1lZGlhUGxheWVyUXVpcmsoY29uc3QgSFRNTFZpZGVvRWxlbWVudCYgZWxlbWVu
dCkgY29uc3QKICNlbmRpZgogfQogCisvLyBGSVhNRTogcmVtb3ZlIHRoaXMgb25jZSByZGFyOi8v
OTI1MzEyNDAgaGFzIGJlZW4gZml4ZWQuCitib29sIFF1aXJrczo6bmVlZHNGbGlnaHRBd2FyZVNl
cmlhbGl6YXRpb25RdWlyaygpIGNvbnN0Cit7CisgICAgaWYgKCFuZWVkc1F1aXJrcygpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIW1fbmVlZHNGbGlnaHRBd2FyZVNlcmlhbGl6
YXRpb25RdWlyaykKKyAgICAgICAgbV9uZWVkc0ZsaWdodEF3YXJlU2VyaWFsaXphdGlvblF1aXJr
ID0gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UobV9kb2N1bWVudC0+dXJsKCkuaG9zdCgp
LCAiZmxpZ2h0YXdhcmUuY29tIl9zKTsKKworICAgIHJldHVybiAqbV9uZWVkc0ZsaWdodEF3YXJl
U2VyaWFsaXphdGlvblF1aXJrOworfQorCiBib29sIFF1aXJrczo6bmVlZHNCbGFja0Z1bGxzY3Jl
ZW5CYWNrZ3JvdW5kUXVpcmsoKSBjb25zdAogewogICAgIC8vIE1MQi5jb20gc2V0cyBhIGJsYWNr
IGJhY2tncm91bmQtY29sb3Igb24gdGhlIDpiYWNrZHJvcCBwc2V1ZG8gZWxlbWVudCwgd2hpY2gg
V2ViS2l0IGRvZXMgbm90IHlldCBzdXBwb3J0LiBUaGlzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1F1aXJrcy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9RdWlya3MuaAppbmRleCBi
ZjU1YjIxZmFkYmJjZTdjYzdjMWIyZWZjMGQ1ZTQxOTE3ZTk3OGQzLi5mNDMzZmE4ZjAyZGFjYmNk
NjdjMTZkNDhkMTE0MzdmZThiNGY1NmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1F1aXJrcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUXVpcmtzLmgKQEAgLTEzMyw2ICsx
MzMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBuZWVkc0hEUlBpeGVsRGVwdGhRdWlyaygpIGNvbnN0
OwogICAgIAogICAgIGJvb2wgbmVlZHNBa2FtYWlNZWRpYVBsYXllclF1aXJrKGNvbnN0IEhUTUxW
aWRlb0VsZW1lbnQmKSBjb25zdDsKKyAgICBib29sIG5lZWRzRmxpZ2h0QXdhcmVTZXJpYWxpemF0
aW9uUXVpcmsoKSBjb25zdDsKIAogICAgIGJvb2wgbmVlZHNCbGFja0Z1bGxzY3JlZW5CYWNrZ3Jv
dW5kUXVpcmsoKSBjb25zdDsKIApAQCAtMTk0LDYgKzE5NSw3IEBAIHByaXZhdGU6CiAgICAgbXV0
YWJsZSBzdGQ6Om9wdGlvbmFsPGJvb2w+IG1fc2hvdWxkQnlwYXNzQXN5bmNTY3JpcHREZWZlcnJp
bmc7CiAgICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPGJvb2w+IG1fbmVlZHNWUDlGdWxsUmFuZ2VG
bGFnUXVpcms7CiAgICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPGJvb2w+IG1fbmVlZHNIRFJQaXhl
bERlcHRoUXVpcms7CisgICAgbXV0YWJsZSBzdGQ6Om9wdGlvbmFsPGJvb2w+IG1fbmVlZHNGbGln
aHRBd2FyZVNlcmlhbGl6YXRpb25RdWlyazsKICAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8Ym9v
bD4gbV9uZWVkc0JsYWNrRnVsbHNjcmVlbkJhY2tncm91bmRRdWlyazsKICAgICBtdXRhYmxlIHN0
ZDo6b3B0aW9uYWw8Ym9vbD4gbV9yZXF1aXJlc1VzZXJHZXN0dXJlVG9QYXVzZUluUGljdHVyZUlu
UGljdHVyZTsKICAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV9yZXF1aXJlc1VzZXJH
ZXN0dXJlVG9Mb2FkSW5QaWN0dXJlSW5QaWN0dXJlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>