<?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>188950</bug_id>
          
          <creation_ts>2018-08-25 20:40:46 -0700</creation_ts>
          <short_desc>CSS reference filter that references a tiled feTurbulence is blank</short_desc>
          <delta_ts>2018-09-05 08:10:06 -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>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>https://codepen.io/yoksel/pen/BOjmqj?editors=1000</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>189248</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1453700</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-25 20:40:46 -0700</bug_when>
    <thetext>https://codepen.io/yoksel/pen/BOjmqj?editors=1000 shows blank in WebKit (macOS and iOS). It works in Firefox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453701</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-25 20:41:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/43724286&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454698</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-28 21:02:10 -0700</bug_when>
    <thetext>In debug builds we assert:

ASSERTION FAILED: tileWidth &gt; 0 &amp;&amp; tileHeight &gt; 0
./platform/graphics/filters/FETurbulence.cpp(188) : FETurbulence::StitchData WebCore::FETurbulence::computeStitching(WebCore::IntSize, float &amp;, float &amp;) const
1   0x116495479 WTFCrash
2   0x105b0fe4b WTFCrashWithInfo(int, char const*, char const*, int)
3   0x1088fd976 WebCore::FETurbulence::computeStitching(WebCore::IntSize, float&amp;, float&amp;) const
4   0x1088ff138 WebCore::FETurbulence::platformApplySoftware()
5   0x1089005a4 WebCore::FilterEffect::apply()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454701</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-28 21:05:37 -0700</bug_when>
    <thetext>If we early return to avoid the assertion, the content renders, but the turbulence seems to have the wrong resolution on Retina displays.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455940</commentid>
    <comment_count>4</comment_count>
      <attachid>348704</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-31 20:45:41 -0700</bug_when>
    <thetext>Created attachment 348704
Reduction

Seems related to stitchTiles=&quot;stitch&quot; on feTurbulence</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455941</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-31 21:02:18 -0700</bug_when>
    <thetext>tile size is computed from filterPrimitiveSubregion, which we never compute for CSS filters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456265</commentid>
    <comment_count>6</comment_count>
      <attachid>348806</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-09-03 22:16:45 -0700</bug_when>
    <thetext>Created attachment 348806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456266</commentid>
    <comment_count>7</comment_count>
      <attachid>348806</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-09-03 22:17:04 -0700</bug_when>
    <thetext>Comment on attachment 348806
Patch

Depends on the patch in bug 189248.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456443</commentid>
    <comment_count>8</comment_count>
      <attachid>348844</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-09-04 13:51:42 -0700</bug_when>
    <thetext>Created attachment 348844
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456464</commentid>
    <comment_count>9</comment_count>
      <attachid>348848</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-09-04 14:44:13 -0700</bug_when>
    <thetext>Created attachment 348848
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456487</commentid>
    <comment_count>10</comment_count>
      <attachid>348848</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-04 15:51:54 -0700</bug_when>
    <thetext>Comment on attachment 348848
Patch

Clearing flags on attachment: 348848

Committed r235644: &lt;https://trac.webkit.org/changeset/235644&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>348704</attachid>
            <date>2018-08-31 20:45:41 -0700</date>
            <delta_ts>2018-08-31 20:45:41 -0700</delta_ts>
            <desc>Reduction</desc>
            <filename>brain.html</filename>
            <type>text/html</type>
            <size>581</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxzdHlsZT4KICAgICAgICBib2R5IHsK
ICAgICAgICAgIGJhY2tncm91bmQ6IHNpbHZlcjsKICAgICAgICB9CgogICAgICAgIC50ZXh0IHsK
ICAgICAgICAgICAgbWFyZ2luOiAxMDBweDsKICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQg
YmxhY2s7CiAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CiAgICAgICAgICAgIHdpZHRoOiAyMDBw
eDsKICAgICAgICAgICAgZmlsdGVyOiB1cmwoI2ZpbHRlcik7CiAgICAgICAgfQoKICAgICAgICBz
dmcgewogICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICB9ICAgICAgICAgICAgCiAgICA8
L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgogICAgPHN2Zz4KICAgICAgICA8ZmlsdGVyIGlkPSJmaWx0
ZXIiPgogICAgICAgICAgICA8ZmVUdXJidWxlbmNlIHR5cGU9InR1cmJ1bGVuY2UiIGJhc2VGcmVx
dWVuY3k9IjAuMDQiIG51bU9jdGF2ZXM9IjIiIHNlZWQ9IjIiIHN0aXRjaFRpbGVzPSJzdGl0Y2gi
Lz4KICAgICAgICA8L2ZpbHRlcj4KICAgIDwvc3ZnPgogICAgPGRpdiBjbGFzcz0idGV4dCI+PC9k
aXY+CjwvYm9keT4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348806</attachid>
            <date>2018-09-03 22:16:45 -0700</date>
            <delta_ts>2018-09-04 13:51:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188950-20180903221644.patch</filename>
            <type>text/plain</type>
            <size>17125</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTBiNzMwZmQ1NWNkZWZh
ZDRmODk5MWYzMDM5NmI2N2JhMWI5ODcyNi4uMzQ3NWRiZDI5OTJhMzczNTljZmMzZTU3NWE4MWRm
YWI3YjgzYTUyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE4LTA5LTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFRoaXMgU1ZHIGZp
bHRlciBleGFtcGxlIGlzIGJsYW5rIGluIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBXZSBuZWVkIHRvIHJ1biB0aGUgY29kZSB0
aGF0IHdhcyBpbiBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlclByaW1pdGl2ZTo6ZGV0ZXJtaW5lRmls
dGVyUHJpbWl0aXZlU3VicmVnaW9uKCkKKyAgICAgICAgZm9yIENTUyByZWZlcmVuY2UgZmlsdGVy
cywgdG8gc2V0IHVwIHRoZSB2YXJpb3VzIHJlY3RzIGluIHRoZSBmaWx0ZXIgZWZmZWN0cy4KKyAg
ICAgICAgCisgICAgICAgIERvIHRoaXMgYnkgbW92aW5nIHRoZSBjb2RlIHRvIEZpbHRlckVmZmVj
dDo6ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKCksIHdoaWNoIG1ha2VzIHNlbnNl
CisgICAgICAgIGJlY2F1c2UgaXQgcmVjdXJzZXMgb24gdGhlIEZpbHRlckVmZmVjdCBpbnB1dCBj
aGFpbi4gVG8gbWFrZSBpdCBDU1MvU1ZHRmlsdGVyIGFnbm9zdGljLCB3ZSBtb3ZlIGZpbHRlclJl
Z2lvbkluVXNlclNwYWNlKCkKKyAgICAgICAgdG8gdGhlIEZpbHRlciBiYXNlIGNsYXNzIChmb3Ig
Q1NTRmlsdGVyLCBpdCBqdXN0IHJldHVybnMgbV9maWx0ZXJSZWdpb24pLgorCisgICAgICAgIFRl
c3Q6IGNzczMvZmlsdGVycy9yZWZlcmVuY2UtZmlsdGVyLXNldC1maWx0ZXItcmVnaW9ucy5odG1s
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9u
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9DU1NGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
RmlsdGVyOjpkZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24pOgorICAgICAgICAqIHJl
bmRlcmluZy9DU1NGaWx0ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0
ZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyRmlsdGVyczo6YmVnaW5GaWx0
ZXJFZmZlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OmFwcGx5
UmVzb3VyY2UpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0
ZXJQcmltaXRpdmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VGaWx0
ZXJQcmltaXRpdmU6OmRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbik6IERlbGV0ZWQu
CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlclByaW1pdGl2
ZS5oOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oOgorCiAyMDE4
LTA5LTAzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IFNpbXBsaWZ5IFJlbmRlckxheWVyIGZpbHRlciBjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaAppbmRleCAzYmVkZWE3MDViNzZkOWJm
MWExYzUxOWNiMmU0Mzc1YThhZTY4MjgxLi40OWU4YzVhMjZlNzcxYzQyNDk2NzgxOTUyN2E1NjI3
MzUzZGY0NDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZpbHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRmlsdGVyLmgKQEAgLTIwLDExICsyMCwxNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lu
Y2x1ZGUgIkZsb2F0U2l6ZS5oIgorI2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgorI2luY2x1
ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKICNpbmNsdWRlICJJ
bWFnZUJ1ZmZlci5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorY2xhc3MgRmlsdGVyRWZmZWN0OworCiBjbGFzcyBGaWx0ZXIgOiBwdWJsaWMg
UmVmQ291bnRlZDxGaWx0ZXI+IHsKIHB1YmxpYzoKICAgICBGaWx0ZXIoY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiBhYnNvbHV0ZVRyYW5zZm9ybSwgZmxvYXQgZmlsdGVyU2NhbGUgPSAxKQpAQCAtNTQs
NiArNTksNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCBGbG9hdFJlY3Qgc291cmNlSW1h
Z2VSZWN0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgRmxvYXRSZWN0IGZpbHRlclJlZ2lvbigp
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIEZsb2F0UmVjdCBmaWx0ZXJSZWdpb25JblVzZXJTcGFj
ZSgpIGNvbnN0ID0gMDsKIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEZpbHRlcihjb25zdCBG
bG9hdFNpemUmIGZpbHRlclJlc29sdXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKaW5kZXggN2IwNzFm
YzA5MTYxYmJlMjNlNjIwYThmZTM2M2Y1M2NiZDVjMmMzYy4uNjZjMzBhOThjMjhhZWQyZmNmZjUx
OTYwMmQyYzQ3MTM5Zjc2YWVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcApAQCAtOTQsNiArOTQsNTAg
QEAgRmxvYXRSZWN0IEZpbHRlckVmZmVjdDo6ZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShjb25z
dCBJbnRSZWN0JiBzcmNSZWN0KSBjb25zdAogICAgIHJldHVybiB0cmFuc2Zvcm0ubWFwUmVjdChz
cmNSZWN0KTsKIH0KIAorRmxvYXRSZWN0IEZpbHRlckVmZmVjdDo6ZGV0ZXJtaW5lRmlsdGVyUHJp
bWl0aXZlU3VicmVnaW9uKCkKK3sKKyAgICAvLyBGRVRpbGUsIEZFVHVyYnVsZW5jZSwgRkVGbG9v
ZCBkb24ndCBoYXZlIGlucHV0IGVmZmVjdHMsIHRha2UgdGhlIGZpbHRlciByZWdpb24gYXMgdW5p
dGUgcmVjdC4KKyAgICBGbG9hdFJlY3Qgc3VicmVnaW9uOworICAgIGlmICh1bnNpZ25lZCBudW1i
ZXJPZklucHV0RWZmZWN0cyA9IGlucHV0RWZmZWN0cygpLnNpemUoKSkgeworICAgICAgICBzdWJy
ZWdpb24gPSBpbnB1dEVmZmVjdCgwKS0+ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9u
KCk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBudW1iZXJPZklucHV0RWZmZWN0
czsgKytpKSB7CisgICAgICAgICAgICBhdXRvIGlucHV0UHJpbWl0aXZlU3VicmVnaW9uID0gaW5w
dXRFZmZlY3QoaSktPmRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbigpOworICAgICAg
ICAgICAgc3VicmVnaW9uLnVuaXRlKGlucHV0UHJpbWl0aXZlU3VicmVnaW9uKTsKKyAgICAgICAg
fQorICAgIH0gZWxzZQorICAgICAgICBzdWJyZWdpb24gPSBtX2ZpbHRlci5maWx0ZXJSZWdpb25J
blVzZXJTcGFjZSgpOworCisgICAgLy8gQWZ0ZXIgY2FsbGluZyBkZXRlcm1pbmVGaWx0ZXJQcmlt
aXRpdmVTdWJyZWdpb24gb24gdGhlIHRhcmdldCBlZmZlY3QsIHJlc2V0IHRoZSBzdWJyZWdpb24g
YWdhaW4gZm9yIDxmZVRpbGU+LgorICAgIGlmIChmaWx0ZXJFZmZlY3RUeXBlKCkgPT0gRmlsdGVy
RWZmZWN0VHlwZVRpbGUpCisgICAgICAgIHN1YnJlZ2lvbiA9IG1fZmlsdGVyLmZpbHRlclJlZ2lv
bkluVXNlclNwYWNlKCk7CisKKyAgICBhdXRvIGJvdW5kYXJpZXMgPSBlZmZlY3RCb3VuZGFyaWVz
KCk7CisgICAgaWYgKGhhc1goKSkKKyAgICAgICAgc3VicmVnaW9uLnNldFgoYm91bmRhcmllcy54
KCkpOworICAgIGlmIChoYXNZKCkpCisgICAgICAgIHN1YnJlZ2lvbi5zZXRZKGJvdW5kYXJpZXMu
eSgpKTsKKyAgICBpZiAoaGFzV2lkdGgoKSkKKyAgICAgICAgc3VicmVnaW9uLnNldFdpZHRoKGJv
dW5kYXJpZXMud2lkdGgoKSk7CisgICAgaWYgKGhhc0hlaWdodCgpKQorICAgICAgICBzdWJyZWdp
b24uc2V0SGVpZ2h0KGJvdW5kYXJpZXMuaGVpZ2h0KCkpOworCisgICAgc2V0RmlsdGVyUHJpbWl0
aXZlU3VicmVnaW9uKHN1YnJlZ2lvbik7CisKKyAgICBhdXRvIGFic29sdXRlU3VicmVnaW9uID0g
bV9maWx0ZXIuYWJzb2x1dGVUcmFuc2Zvcm0oKS5tYXBSZWN0KHN1YnJlZ2lvbik7CisgICAgYXV0
byBmaWx0ZXJSZXNvbHV0aW9uID0gbV9maWx0ZXIuZmlsdGVyUmVzb2x1dGlvbigpOworICAgIGFi
c29sdXRlU3VicmVnaW9uLnNjYWxlKGZpbHRlclJlc29sdXRpb24pOworICAgIC8vIFNhdmUgdGhp
cyBiZWZvcmUgY2xpcHBpbmcgc28gd2UgY2FuIHVzZSBpdCB0byBtYXAgbGlnaHRpbmcgcG9pbnRz
IGZyb20gdXNlciBzcGFjZSB0byBidWZmZXIgY29vcmRpbmF0ZXMuCisgICAgc2V0VW5jbGlwcGVk
QWJzb2x1dGVTdWJyZWdpb24oYWJzb2x1dGVTdWJyZWdpb24pOworCisgICAgLy8gQ2xpcCBldmVy
eSBmaWx0ZXIgZWZmZWN0IHRvIHRoZSBmaWx0ZXIgcmVnaW9uLgorICAgIGF1dG8gYWJzb2x1dGVT
Y2FsZWRGaWx0ZXJSZWdpb24gPSBtX2ZpbHRlci5maWx0ZXJSZWdpb24oKTsKKyAgICBhYnNvbHV0
ZVNjYWxlZEZpbHRlclJlZ2lvbi5zY2FsZShmaWx0ZXJSZXNvbHV0aW9uKTsKKyAgICBhYnNvbHV0
ZVN1YnJlZ2lvbi5pbnRlcnNlY3QoYWJzb2x1dGVTY2FsZWRGaWx0ZXJSZWdpb24pOworCisgICAg
c2V0TWF4RWZmZWN0UmVjdChhYnNvbHV0ZVN1YnJlZ2lvbik7CisgICAgcmV0dXJuIHN1YnJlZ2lv
bjsKK30KKwogRmlsdGVyRWZmZWN0KiBGaWx0ZXJFZmZlY3Q6OmlucHV0RWZmZWN0KHVuc2lnbmVk
IG51bWJlcikgY29uc3QKIHsKICAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihu
dW1iZXIgPCBtX2lucHV0RWZmZWN0cy5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgKaW5kZXggNWRkZGY0
ZjIwMTQyMmYxNGRhNDQ0MzJhNGVlNGQ3Y2UxNGE1NDIzMC4uYWJiN2IwZjhmOWZiMDI2YzFhYjcz
MzQ5YTAwNjhhODMyZjExNjIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oCkBAIC04Nyw2ICs4Nyw5IEBAIHB1
YmxpYzoKIAogICAgIEZsb2F0UmVjdCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGNvbnN0IElu
dFJlY3QmKSBjb25zdDsKICAgICBJbnRSZWN0IHJlcXVlc3RlZFJlZ2lvbk9mSW5wdXRJbWFnZURh
dGEoY29uc3QgSW50UmVjdCYpIGNvbnN0OworICAgIAorICAgIC8vIFJlY3Vyc2VzIG9uIGlucHV0
cy4KKyAgICBGbG9hdFJlY3QgZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKCk7CiAK
ICAgICAvLyBTb2xpZCBibGFjayBpbWFnZSB3aXRoIGRpZmZlcmVudCBhbHBoYSB2YWx1ZXMuCiAg
ICAgYm9vbCBpc0FscGhhSW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX2FscGhhSW1hZ2U7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAKaW5kZXggODViODQ1YWU0YWU1ODFjMWFj
NzEyM2QwNmUwOWM3NzljZDI3YTBlMC4uZTNiMmU4Yzk0NTcxMmMxNTBkYjY4MmViMmQyZGQ1YjQ5
NGMxMTUyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAKQEAgLTM0MCw2
ICszNDAsMTkgQEAgdm9pZCBDU1NGaWx0ZXI6OmFsbG9jYXRlQmFja2luZ1N0b3JlSWZOZWVkZWQo
Y29uc3QgR3JhcGhpY3NDb250ZXh0JiB0YXJnZXRDb250ZXgKICAgICBtX2dyYXBoaWNzQnVmZmVy
QXR0YWNoZWQgPSB0cnVlOwogfQogCit2b2lkIENTU0ZpbHRlcjo6ZGV0ZXJtaW5lRmlsdGVyUHJp
bWl0aXZlU3VicmVnaW9uKCkKK3sKKyAgICBhdXRvJiBsYXN0RWZmZWN0ID0gbV9lZmZlY3RzLmxh
c3QoKS5nZXQoKTsKKyAgICBsYXN0RWZmZWN0LmRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJl
Z2lvbigpOworICAgIEZsb2F0UmVjdCBzdWJSZWdpb24gPSBsYXN0RWZmZWN0Lm1heEVmZmVjdFJl
Y3QoKTsKKyAgICAvLyBBdCBsZWFzdCBvbmUgRmlsdGVyRWZmZWN0IGhhcyBhIHRvbyBiaWcgaW1h
Z2Ugc2l6ZSwgcmVjYWxjdWxhdGUgdGhlIGVmZmVjdCBzaXplcyB3aXRoIG5ldyBzY2FsZSBmYWN0
b3JzLgorICAgIEZsb2F0U2l6ZSBzY2FsZTsKKyAgICBpZiAoSW1hZ2VCdWZmZXI6OnNpemVOZWVk
c0NsYW1waW5nKHN1YlJlZ2lvbi5zaXplKCksIHNjYWxlKSkgeworICAgICAgICBzZXRGaWx0ZXJS
ZXNvbHV0aW9uKHNjYWxlKTsKKyAgICAgICAgbGFzdEVmZmVjdC5kZXRlcm1pbmVGaWx0ZXJQcmlt
aXRpdmVTdWJyZWdpb24oKTsKKyAgICB9Cit9CisKIHZvaWQgQ1NTRmlsdGVyOjpjbGVhckludGVy
bWVkaWF0ZVJlc3VsdHMoKQogewogICAgIG1fc291cmNlR3JhcGhpYy0+Y2xlYXJSZXN1bHQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuaAppbmRleCA0OTM3MjlmOTQ5MWI5MTE1Mjlm
MmUyNDFhNGI5MjA2ZTIyYmM2N2YyLi4zMzAzYTFhMzVkMGVjMTMxNGU0YTMwMzRmMDZlZTk0Yjhh
MzFmNjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5oCkBAIC01OSw2ICs1OSw4
IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0ZpbHRlclRoYXRNb3Zlc1BpeGVscygpIGNvbnN0IHsg
cmV0dXJuIG1faGFzRmlsdGVyVGhhdE1vdmVzUGl4ZWxzOyB9CiAgICAgYm9vbCBoYXNGaWx0ZXJU
aGF0U2hvdWxkQmVSZXN0cmljdGVkQnlTZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1f
aGFzRmlsdGVyVGhhdFNob3VsZEJlUmVzdHJpY3RlZEJ5U2VjdXJpdHlPcmlnaW47IH0KIAorICAg
IHZvaWQgZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKCk7CisKIHByaXZhdGU6CiAg
ICAgQ1NTRmlsdGVyKCk7CiAgICAgdmlydHVhbCB+Q1NTRmlsdGVyKCk7CkBAIC02Niw3ICs2OCw5
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc0NTU0ZpbHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IHRydWU7IH0KIAogICAgIEZsb2F0UmVjdCBzb3VyY2VJbWFnZVJlY3QoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX3NvdXJjZURyYXdpbmdSZWdpb247IH0KKwogICAgIEZsb2F0UmVjdCBmaWx0ZXJS
ZWdpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2ZpbHRlclJlZ2lvbjsgfQorICAgIEZsb2F0
UmVjdCBmaWx0ZXJSZWdpb25JblVzZXJTcGFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZmls
dGVyUmVnaW9uOyB9CiAKICAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZFJlZmVyZW5jZUZp
bHRlcihSZW5kZXJFbGVtZW50JiwgRmlsdGVyRWZmZWN0JiBwcmV2aW91c0VmZmVjdCwgUmVmZXJl
bmNlRmlsdGVyT3BlcmF0aW9uJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckZpbHRlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyRmlsdGVycy5jcHAKaW5kZXggNzdkOTljOWE4YWVkYzkzYjM4ZjFmZjQxN2ZlNDQ0
ZWFhYmZiYWExMi4uMGEzZWQwNmU4MzA3N2YxZjY0ZTNjMjcyNzk2MTY1MjZhNDgwNWJkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVycy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVycy5jcHAKQEAg
LTE1NSw2ICsxNTUsOCBAQCBHcmFwaGljc0NvbnRleHQqIFJlbmRlckxheWVyRmlsdGVyczo6YmVn
aW5GaWx0ZXJFZmZlY3QoR3JhcGhpY3NDb250ZXh0JiBkZXN0aW5hdAogICAgIG1fcGFpbnRPZmZz
ZXQgPSBmaWx0ZXJTb3VyY2VSZWN0LmxvY2F0aW9uKCk7CiAgICAgcmVzZXREaXJ0eVNvdXJjZVJl
Y3QoKTsKIAorICAgIGZpbHRlci5kZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24oKTsK
KwogICAgIGZpbHRlci5hbGxvY2F0ZUJhY2tpbmdTdG9yZUlmTmVlZGVkKGRlc3RpbmF0aW9uQ29u
dGV4dCk7CiAgICAgYXV0byogc291cmNlR3JhcGhpY3NDb250ZXh0ID0gZmlsdGVyLmlucHV0Q29u
dGV4dCgpOwogICAgIGlmICghc291cmNlR3JhcGhpY3NDb250ZXh0IHx8IGZpbHRlci5maWx0ZXJS
ZWdpb24oKS5pc0VtcHR5KCkgfHwgSW1hZ2VCdWZmZXI6OnNpemVOZWVkc0NsYW1waW5nKGZpbHRl
ci5maWx0ZXJSZWdpb24oKS5zaXplKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcAppbmRleCAyNmZhZjczZjJi
NzUyMzM0NTYwYjJmNWUzNDA1NDZhNWQxNTk0MDgzLi5hZmRlMzhjZmVkYzZhZTA0ZjU5YzAyMjQy
YTlkZjM4ODY2MDU5Yzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcApAQCAtMTc4LDEzICsxNzgsMTMgQEAg
Ym9vbCBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcjo6YXBwbHlSZXNvdXJjZShSZW5kZXJFbGVtZW50
JiByZW5kZXJlciwgY29uc3QgUmVuZGUKIAogICAgIExPR19XSVRIX1NUUkVBTShGaWx0ZXJzLCBz
dHJlYW0gPDwgIlJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjphcHBseVJlc291cmNlXG4iIDw8ICpm
aWx0ZXJEYXRhLT5idWlsZGVyLT5sYXN0RWZmZWN0KCkpOwogCi0gICAgUmVuZGVyU1ZHUmVzb3Vy
Y2VGaWx0ZXJQcmltaXRpdmU6OmRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbigqbGFz
dEVmZmVjdCk7CisgICAgbGFzdEVmZmVjdC0+ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVn
aW9uKCk7CiAgICAgRmxvYXRSZWN0IHN1YlJlZ2lvbiA9IGxhc3RFZmZlY3QtPm1heEVmZmVjdFJl
Y3QoKTsKICAgICAvLyBBdCBsZWFzdCBvbmUgRmlsdGVyRWZmZWN0IGhhcyBhIHRvbyBiaWcgaW1h
Z2Ugc2l6ZSwKICAgICAvLyByZWNhbGN1bGF0ZSB0aGUgZWZmZWN0IHNpemVzIHdpdGggbmV3IHNj
YWxlIGZhY3RvcnMuCiAgICAgaWYgKEltYWdlQnVmZmVyOjpzaXplTmVlZHNDbGFtcGluZyhzdWJS
ZWdpb24uc2l6ZSgpLCBzY2FsZSkpIHsKICAgICAgICAgZmlsdGVyRGF0YS0+ZmlsdGVyLT5zZXRG
aWx0ZXJSZXNvbHV0aW9uKHNjYWxlKTsKLSAgICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQ
cmltaXRpdmU6OmRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbigqbGFzdEVmZmVjdCk7
CisgICAgICAgIGxhc3RFZmZlY3QtPmRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbigp
OwogICAgIH0KIAogICAgIC8vIElmIHRoZSBkcmF3aW5nUmVnaW9uIGlzIGVtcHR5LCB3ZSBoYXZl
IHNvbWV0aGluZyBsaWtlIDxnIGZpbHRlcj0iLi4iLz4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmlt
aXRpdmUuY3BwCmluZGV4IDIzOTVmNjlkZjE0MmM2Y2YwNThjMDViYjQwYTc5ZTNlOTZkZmYzYTku
LjI0ODU2MTdjNTA1NjJmZWEzOThmMDU2MmJjZDcxYTQ1N2ZlYWFiNDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRp
dmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VGaWx0ZXJQcmltaXRpdmUuY3BwCkBAIC03Myw0OCArNzMsNCBAQCB2b2lkIFJlbmRlclNWR1Jl
c291cmNlRmlsdGVyUHJpbWl0aXZlOjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlm
ZiwgY29ucwogICAgIH0KIH0KIAotRmxvYXRSZWN0IFJlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJp
bWl0aXZlOjpkZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24oRmlsdGVyRWZmZWN0JiBl
ZmZlY3QpCi17Ci0gICAgYXV0byYgZmlsdGVyID0gZG93bmNhc3Q8U1ZHRmlsdGVyPihlZmZlY3Qu
ZmlsdGVyKCkpOwotCi0gICAgLy8gRkVUaWxlLCBGRVR1cmJ1bGVuY2UsIEZFRmxvb2QgZG9uJ3Qg
aGF2ZSBpbnB1dCBlZmZlY3RzLCB0YWtlIHRoZSBmaWx0ZXIgcmVnaW9uIGFzIHVuaXRlIHJlY3Qu
Ci0gICAgRmxvYXRSZWN0IHN1YnJlZ2lvbjsKLSAgICBpZiAodW5zaWduZWQgbnVtYmVyT2ZJbnB1
dEVmZmVjdHMgPSBlZmZlY3QuaW5wdXRFZmZlY3RzKCkuc2l6ZSgpKSB7Ci0gICAgICAgIHN1YnJl
Z2lvbiA9IGRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbigqZWZmZWN0LmlucHV0RWZm
ZWN0KDApKTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IG51bWJlck9mSW5wdXRF
ZmZlY3RzOyArK2kpCi0gICAgICAgICAgICBzdWJyZWdpb24udW5pdGUoZGV0ZXJtaW5lRmlsdGVy
UHJpbWl0aXZlU3VicmVnaW9uKCplZmZlY3QuaW5wdXRFZmZlY3QoaSkpKTsKLSAgICB9IGVsc2UK
LSAgICAgICAgc3VicmVnaW9uID0gZmlsdGVyLmZpbHRlclJlZ2lvbkluVXNlclNwYWNlKCk7Ci0K
LSAgICAvLyBBZnRlciBjYWxsaW5nIGRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbiBv
biB0aGUgdGFyZ2V0IGVmZmVjdCwgcmVzZXQgdGhlIHN1YnJlZ2lvbiBhZ2FpbiBmb3IgPGZlVGls
ZT4uCi0gICAgaWYgKGVmZmVjdC5maWx0ZXJFZmZlY3RUeXBlKCkgPT0gRmlsdGVyRWZmZWN0VHlw
ZVRpbGUpCi0gICAgICAgIHN1YnJlZ2lvbiA9IGZpbHRlci5maWx0ZXJSZWdpb25JblVzZXJTcGFj
ZSgpOwotCi0gICAgRmxvYXRSZWN0IGVmZmVjdEJvdW5kYXJpZXMgPSBlZmZlY3QuZWZmZWN0Qm91
bmRhcmllcygpOwotICAgIGlmIChlZmZlY3QuaGFzWCgpKQotICAgICAgICBzdWJyZWdpb24uc2V0
WChlZmZlY3RCb3VuZGFyaWVzLngoKSk7Ci0gICAgaWYgKGVmZmVjdC5oYXNZKCkpCi0gICAgICAg
IHN1YnJlZ2lvbi5zZXRZKGVmZmVjdEJvdW5kYXJpZXMueSgpKTsKLSAgICBpZiAoZWZmZWN0Lmhh
c1dpZHRoKCkpCi0gICAgICAgIHN1YnJlZ2lvbi5zZXRXaWR0aChlZmZlY3RCb3VuZGFyaWVzLndp
ZHRoKCkpOwotICAgIGlmIChlZmZlY3QuaGFzSGVpZ2h0KCkpCi0gICAgICAgIHN1YnJlZ2lvbi5z
ZXRIZWlnaHQoZWZmZWN0Qm91bmRhcmllcy5oZWlnaHQoKSk7Ci0KLSAgICBlZmZlY3Quc2V0Rmls
dGVyUHJpbWl0aXZlU3VicmVnaW9uKHN1YnJlZ2lvbik7Ci0KLSAgICBGbG9hdFJlY3QgYWJzb2x1
dGVTdWJyZWdpb24gPSBmaWx0ZXIuYWJzb2x1dGVUcmFuc2Zvcm0oKS5tYXBSZWN0KHN1YnJlZ2lv
bik7Ci0gICAgRmxvYXRTaXplIGZpbHRlclJlc29sdXRpb24gPSBmaWx0ZXIuZmlsdGVyUmVzb2x1
dGlvbigpOwotICAgIGFic29sdXRlU3VicmVnaW9uLnNjYWxlKGZpbHRlclJlc29sdXRpb24pOwot
ICAgIC8vIFNhdmUgdGhpcyBiZWZvcmUgY2xpcHBpbmcgc28gd2UgY2FuIHVzZSBpdCB0byBtYXAg
bGlnaHRpbmcgcG9pbnRzIGZyb20gdXNlciBzcGFjZSB0byBidWZmZXIgY29vcmRpbmF0ZXMuCi0g
ICAgZWZmZWN0LnNldFVuY2xpcHBlZEFic29sdXRlU3VicmVnaW9uKGFic29sdXRlU3VicmVnaW9u
KTsKLQotICAgIC8vIENsaXAgZXZlcnkgZmlsdGVyIGVmZmVjdCB0byB0aGUgZmlsdGVyIHJlZ2lv
bi4KLSAgICBGbG9hdFJlY3QgYWJzb2x1dGVTY2FsZWRGaWx0ZXJSZWdpb24gPSBmaWx0ZXIuZmls
dGVyUmVnaW9uKCk7Ci0gICAgYWJzb2x1dGVTY2FsZWRGaWx0ZXJSZWdpb24uc2NhbGUoZmlsdGVy
UmVzb2x1dGlvbik7Ci0gICAgYWJzb2x1dGVTdWJyZWdpb24uaW50ZXJzZWN0KGFic29sdXRlU2Nh
bGVkRmlsdGVyUmVnaW9uKTsKLQotICAgIGVmZmVjdC5zZXRNYXhFZmZlY3RSZWN0KGFic29sdXRl
U3VicmVnaW9uKTsKLSAgICByZXR1cm4gc3VicmVnaW9uOwotfQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlLmgKaW5kZXggZTVmNmIwNjk5N2I4NGFm
YWRjMzFhOTY1MGJhMjRjMTZlMDM0YTMzMC4uMTYyNDgzNzcxOTRlYzI0MjgwNWU1ZDQzY2Y5YTNh
YTIyMjAwZjQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSZXNvdXJjZUZpbHRlclByaW1pdGl2ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuaApAQCAtNDMsOSArNDMs
NiBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gIlJlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlIjsgfQogCi0gICAg
Ly8gVGhleSBkZXBlbmQgb24gdGhlIFJlbmRlck9iamVjdCBhcmd1bWVudCBvZiBSZW5kZXJTVkdS
ZXNvdXJjZUZpbHRlcjo6YXBwbHlSZXNvdXJjZS4KLSAgICBzdGF0aWMgRmxvYXRSZWN0IGRldGVy
bWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbihGaWx0ZXJFZmZlY3QmKTsKLQogICAgIGlubGlu
ZSB2b2lkIHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlKQogICAgIHsKICAgICAgICAgUmVuZGVyT2JqZWN0KiBmaWx0ZXIgPSBwYXJlbnQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRl
ci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmgKaW5k
ZXggZjc4MGY1ZTVkOGVmOWM0MDliNzAzNjI5MWE3NTBlOWIxOTdlOTFiMS4uODA5MzE0NmQ2NGFm
ODg4NWJjM2RhNDkzMDJmNWFlYTBmYjE3MDBjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmgKQEAgLTMzLDcgKzMzLDcgQEAgY2xhc3MgU1ZH
RmlsdGVyIGZpbmFsIDogcHVibGljIEZpbHRlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxT
VkdGaWx0ZXI+IGNyZWF0ZShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFJlY3Qm
LCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBib29sKTsKIAotICAgIEZsb2F0
UmVjdCBmaWx0ZXJSZWdpb25JblVzZXJTcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsdGVyUmVn
aW9uOyB9CisgICAgRmxvYXRSZWN0IGZpbHRlclJlZ2lvbkluVXNlclNwYWNlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9maWx0ZXJSZWdpb247IH0KICAgICBGbG9hdFJlY3QgZmlsdGVyUmVnaW9u
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9hYnNvbHV0ZUZpbHRlclJlZ2lvbjsgfQogCiAgICAg
RmxvYXRTaXplIHNjYWxlZEJ5RmlsdGVyUmVzb2x1dGlvbihGbG9hdFNpemUpIGNvbnN0IGZpbmFs
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDQ1MTdiMTE4MmNlM2ExNTViNWU4MTM3YmI4N2YwODU5YmNlZjA0YzIuLjA3Zjg2
ZmYyZThlYTlhYWQyNTA3YjYyNGNkYzZhYTVlMDI4Yjg3ODggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAxOC0wOS0wMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBUaGlzIFNWRyBmaWx0ZXIgZXhhbXBsZSBpcyBibGFuayBpbiBXZWJLaXQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk1MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3NzMy9maWx0ZXJz
L3JlZmVyZW5jZS1maWx0ZXItc2V0LWZpbHRlci1yZWdpb25zLWV4cGVjdGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGNzczMvZmlsdGVycy9yZWZlcmVuY2UtZmlsdGVyLXNldC1maWx0ZXItcmVn
aW9ucy5odG1sOiBBZGRlZC4KKwogMjAxOC0wOC0zMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBDbGVhbiB1cCBUZXN0RXhwZWN0YXRpb25zIHNvIHRo
YXQgLi9Ub29scy9TY3JpcHRzL2xpbnQtdGVzdC1leHBlY3RhdGlvbnMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NzczMvZmlsdGVycy9yZWZlcmVuY2UtZmlsdGVyLXNldC1maWx0ZXItcmVnaW9u
cy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3JlZmVyZW5jZS1maWx0
ZXItc2V0LWZpbHRlci1yZWdpb25zLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGY5NGZlNWNh
ZGUzNjFhY2VkNTNiZGU4NjUwNTBjZTdlMjczMWYwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NzczMvZmlsdGVycy9yZWZlcmVuY2UtZmlsdGVyLXNldC1maWx0ZXItcmVnaW9ucy1l
eHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAg
ICAgLmJveCB7CisgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgIGhlaWdodDogMjAw
cHg7CisgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgIH0KKyAgICA8
L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgY2xhc3M9ImJveCI+PC9kaXY+Cis8L2Jv
ZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVmZXJlbmNlLWZpbHRl
ci1zZXQtZmlsdGVyLXJlZ2lvbnMuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZWZl
cmVuY2UtZmlsdGVyLXNldC1maWx0ZXItcmVnaW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyYWM1OTcw
ZDcxNWRjMTAxNDBkZDhkOGVjMmExZTBhZjNkYmQ4YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVmZXJlbmNlLWZpbHRlci1zZXQtZmlsdGVyLXJlZ2lvbnMu
aHRtbApAQCAtMCwwICsxLDMxIEBACis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIC5ib3gg
eworICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKKyAgICAgICAgICBmaWx0ZXI6IHVybCgj
ZmlsdGVyKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3ZnIHsKKyAgICAgICAgICAg
IGRpc3BsYXk6IG5vbmU7IAorICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorICAgPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIwIiBo
ZWlnaHQ9IjAiIHZlcnNpb249IjEuMSI+CisgICAgPGRlZnM+CisgICAgICAgIDxmaWx0ZXIgaWQ9
ImZpbHRlciI+CisgICAgICAgICAgICA8ZmVUdXJidWxlbmNlIHR5cGU9InR1cmJ1bGVuY2UiIGJh
c2VGcmVxdWVuY3k9IjAuMDEiIG51bU9jdGF2ZXM9IjEiIHNlZWQ9IjUiIHN0aXRjaFRpbGVzPSJz
dGl0Y2giLz4KKyAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9InNhdHVyYXRlIiB2YWx1
ZXM9IjAiLz4KKyAgICAgICAgICAgIDxmZUNvbXBvbmVudFRyYW5zZmVyPgorICAgICAgICAgICAg
ICAgIDxmZUZ1bmNSIHR5cGU9ImxpbmVhciIgc2xvcGU9IjAiIGludGVyY2VwdD0iMCIvPgorICAg
ICAgICAgICAgICAgIDxmZUZ1bmNHIHR5cGU9ImxpbmVhciIgc2xvcGU9IjAiIGludGVyY2VwdD0i
MC41Ii8+CisgICAgICAgICAgICAgICAgPGZlRnVuY0IgdHlwZT0ibGluZWFyIiBzbG9wZT0iMCIg
aW50ZXJjZXB0PSIwIi8+CisgICAgICAgICAgICAgICAgPGZlRnVuY0EgdHlwZT0ibGluZWFyIiBz
bG9wZT0iMCIgaW50ZXJjZXB0PSIxIi8+CisgICAgICAgICAgICA8L2ZlQ29tcG9uZW50VHJhbnNm
ZXI+CisgICAgICAgIDwvZmlsdGVyPgorICAgIDwvZGVmcz4KKyAgPC9zdmc+CisgIDxkaXYgY2xh
c3M9ImJveCI+PC9kaXY+Cis8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348844</attachid>
            <date>2018-09-04 13:51:42 -0700</date>
            <delta_ts>2018-09-04 14:32:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188950-20180904135141.patch</filename>
            <type>text/plain</type>
            <size>17113</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NjMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQyYzA5YjViMmU1NTA5
YTYxMDgyYWFmN2JlYjZlOTE4MTAwMGZkYi4uOGJkMzU1ZDBmY2I5M2E2MDUzMzVjOTVmZTkyNDlm
ZmE5YTkyY2VlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE4LTA5LTA0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFRoaXMgU1ZHIGZp
bHRlciBleGFtcGxlIGlzIGJsYW5rIGluIFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBXZSBuZWVkIHRvIHJ1biB0aGUgY29kZSB0
aGF0IHdhcyBpbiBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlclByaW1pdGl2ZTo6ZGV0ZXJtaW5lRmls
dGVyUHJpbWl0aXZlU3VicmVnaW9uKCkKKyAgICAgICAgZm9yIENTUyByZWZlcmVuY2UgZmlsdGVy
cywgdG8gc2V0IHVwIHRoZSB2YXJpb3VzIHJlY3RzIGluIHRoZSBmaWx0ZXIgZWZmZWN0cy4KKyAg
ICAgICAgCisgICAgICAgIERvIHRoaXMgYnkgbW92aW5nIHRoZSBjb2RlIHRvIEZpbHRlckVmZmVj
dDo6ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKCksIHdoaWNoIG1ha2VzIHNlbnNl
CisgICAgICAgIGJlY2F1c2UgaXQgcmVjdXJzZXMgb24gdGhlIEZpbHRlckVmZmVjdCBpbnB1dCBj
aGFpbi4gVG8gbWFrZSBpdCBDU1MvU1ZHRmlsdGVyIGFnbm9zdGljLCB3ZSBtb3ZlIGZpbHRlclJl
Z2lvbkluVXNlclNwYWNlKCkKKyAgICAgICAgdG8gdGhlIEZpbHRlciBiYXNlIGNsYXNzIChmb3Ig
Q1NTRmlsdGVyLCBpdCBqdXN0IHJldHVybnMgbV9maWx0ZXJSZWdpb24pLgorCisgICAgICAgIFRl
c3Q6IGNzczMvZmlsdGVycy9yZWZlcmVuY2UtZmlsdGVyLXNldC1maWx0ZXItcmVnaW9ucy5odG1s
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9u
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9DU1NGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
RmlsdGVyOjpkZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24pOgorICAgICAgICAqIHJl
bmRlcmluZy9DU1NGaWx0ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0
ZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyRmlsdGVyczo6YmVnaW5GaWx0
ZXJFZmZlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OmFwcGx5
UmVzb3VyY2UpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0
ZXJQcmltaXRpdmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUmVzb3VyY2VGaWx0
ZXJQcmltaXRpdmU6OmRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbik6IERlbGV0ZWQu
CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlclByaW1pdGl2
ZS5oOgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oOgorCiAyMDE4
LTA5LTA0ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWRqdXN0IFhN
TEh0dHBSZXF1ZXN0IHVzZXJuYW1lL3Bhc3N3b3JkIHByZWNlZGVuY2UgcnVsZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCmluZGV4IDNi
ZWRlYTcwNWI3NmQ5YmYxYTFjNTE5Y2IyZTQzNzVhOGFlNjgyODEuLjQ5ZThjNWEyNmU3NzFjNDI0
OTY3ODE5NTI3YTU2MjczNTNkZjQ0OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXIuaApAQCAtMjAsMTEgKzIwLDE2IEBACiAKICNwcmFn
bWEgb25jZQogCi0jaW5jbHVkZSAiRmxvYXRTaXplLmgiCisjaW5jbHVkZSAiQWZmaW5lVHJhbnNm
b3JtLmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5o
IgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBGaWx0ZXJFZmZlY3Q7CisKIGNsYXNzIEZp
bHRlciA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbHRlcj4gewogcHVibGljOgogICAgIEZpbHRlcihj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mIGFic29sdXRlVHJhbnNmb3JtLCBmbG9hdCBmaWx0ZXJTY2Fs
ZSA9IDEpCkBAIC01NCw2ICs1OSw3IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIEZsb2F0
UmVjdCBzb3VyY2VJbWFnZVJlY3QoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBGbG9hdFJlY3Qg
ZmlsdGVyUmVnaW9uKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgRmxvYXRSZWN0IGZpbHRlclJl
Z2lvbkluVXNlclNwYWNlKCkgY29uc3QgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQg
RmlsdGVyKGNvbnN0IEZsb2F0U2l6ZSYgZmlsdGVyUmVzb2x1dGlvbikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNw
cAppbmRleCA3YjA3MWZjMDkxNjFiYmUyM2U2MjBhOGZlMzYzZjUzY2JkNWMyYzNjLi42NmMzMGE5
OGMyOGFlZDJmY2ZmNTE5NjAyZDJjNDcxMzlmNzZhZWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCkBA
IC05NCw2ICs5NCw1MCBAQCBGbG9hdFJlY3QgRmlsdGVyRWZmZWN0OjpkcmF3aW5nUmVnaW9uT2ZJ
bnB1dEltYWdlKGNvbnN0IEludFJlY3QmIHNyY1JlY3QpIGNvbnN0CiAgICAgcmV0dXJuIHRyYW5z
Zm9ybS5tYXBSZWN0KHNyY1JlY3QpOwogfQogCitGbG9hdFJlY3QgRmlsdGVyRWZmZWN0OjpkZXRl
cm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24oKQoreworICAgIC8vIEZFVGlsZSwgRkVUdXJi
dWxlbmNlLCBGRUZsb29kIGRvbid0IGhhdmUgaW5wdXQgZWZmZWN0cywgdGFrZSB0aGUgZmlsdGVy
IHJlZ2lvbiBhcyB1bml0ZSByZWN0LgorICAgIEZsb2F0UmVjdCBzdWJyZWdpb247CisgICAgaWYg
KHVuc2lnbmVkIG51bWJlck9mSW5wdXRFZmZlY3RzID0gaW5wdXRFZmZlY3RzKCkuc2l6ZSgpKSB7
CisgICAgICAgIHN1YnJlZ2lvbiA9IGlucHV0RWZmZWN0KDApLT5kZXRlcm1pbmVGaWx0ZXJQcmlt
aXRpdmVTdWJyZWdpb24oKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgaSA8IG51bWJl
ck9mSW5wdXRFZmZlY3RzOyArK2kpIHsKKyAgICAgICAgICAgIGF1dG8gaW5wdXRQcmltaXRpdmVT
dWJyZWdpb24gPSBpbnB1dEVmZmVjdChpKS0+ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVn
aW9uKCk7CisgICAgICAgICAgICBzdWJyZWdpb24udW5pdGUoaW5wdXRQcmltaXRpdmVTdWJyZWdp
b24pOworICAgICAgICB9CisgICAgfSBlbHNlCisgICAgICAgIHN1YnJlZ2lvbiA9IG1fZmlsdGVy
LmZpbHRlclJlZ2lvbkluVXNlclNwYWNlKCk7CisKKyAgICAvLyBBZnRlciBjYWxsaW5nIGRldGVy
bWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbiBvbiB0aGUgdGFyZ2V0IGVmZmVjdCwgcmVzZXQg
dGhlIHN1YnJlZ2lvbiBhZ2FpbiBmb3IgPGZlVGlsZT4uCisgICAgaWYgKGZpbHRlckVmZmVjdFR5
cGUoKSA9PSBGaWx0ZXJFZmZlY3RUeXBlVGlsZSkKKyAgICAgICAgc3VicmVnaW9uID0gbV9maWx0
ZXIuZmlsdGVyUmVnaW9uSW5Vc2VyU3BhY2UoKTsKKworICAgIGF1dG8gYm91bmRhcmllcyA9IGVm
ZmVjdEJvdW5kYXJpZXMoKTsKKyAgICBpZiAoaGFzWCgpKQorICAgICAgICBzdWJyZWdpb24uc2V0
WChib3VuZGFyaWVzLngoKSk7CisgICAgaWYgKGhhc1koKSkKKyAgICAgICAgc3VicmVnaW9uLnNl
dFkoYm91bmRhcmllcy55KCkpOworICAgIGlmIChoYXNXaWR0aCgpKQorICAgICAgICBzdWJyZWdp
b24uc2V0V2lkdGgoYm91bmRhcmllcy53aWR0aCgpKTsKKyAgICBpZiAoaGFzSGVpZ2h0KCkpCisg
ICAgICAgIHN1YnJlZ2lvbi5zZXRIZWlnaHQoYm91bmRhcmllcy5oZWlnaHQoKSk7CisKKyAgICBz
ZXRGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24oc3VicmVnaW9uKTsKKworICAgIGF1dG8gYWJzb2x1
dGVTdWJyZWdpb24gPSBtX2ZpbHRlci5hYnNvbHV0ZVRyYW5zZm9ybSgpLm1hcFJlY3Qoc3VicmVn
aW9uKTsKKyAgICBhdXRvIGZpbHRlclJlc29sdXRpb24gPSBtX2ZpbHRlci5maWx0ZXJSZXNvbHV0
aW9uKCk7CisgICAgYWJzb2x1dGVTdWJyZWdpb24uc2NhbGUoZmlsdGVyUmVzb2x1dGlvbik7Cisg
ICAgLy8gU2F2ZSB0aGlzIGJlZm9yZSBjbGlwcGluZyBzbyB3ZSBjYW4gdXNlIGl0IHRvIG1hcCBs
aWdodGluZyBwb2ludHMgZnJvbSB1c2VyIHNwYWNlIHRvIGJ1ZmZlciBjb29yZGluYXRlcy4KKyAg
ICBzZXRVbmNsaXBwZWRBYnNvbHV0ZVN1YnJlZ2lvbihhYnNvbHV0ZVN1YnJlZ2lvbik7CisKKyAg
ICAvLyBDbGlwIGV2ZXJ5IGZpbHRlciBlZmZlY3QgdG8gdGhlIGZpbHRlciByZWdpb24uCisgICAg
YXV0byBhYnNvbHV0ZVNjYWxlZEZpbHRlclJlZ2lvbiA9IG1fZmlsdGVyLmZpbHRlclJlZ2lvbigp
OworICAgIGFic29sdXRlU2NhbGVkRmlsdGVyUmVnaW9uLnNjYWxlKGZpbHRlclJlc29sdXRpb24p
OworICAgIGFic29sdXRlU3VicmVnaW9uLmludGVyc2VjdChhYnNvbHV0ZVNjYWxlZEZpbHRlclJl
Z2lvbik7CisKKyAgICBzZXRNYXhFZmZlY3RSZWN0KGFic29sdXRlU3VicmVnaW9uKTsKKyAgICBy
ZXR1cm4gc3VicmVnaW9uOworfQorCiBGaWx0ZXJFZmZlY3QqIEZpbHRlckVmZmVjdDo6aW5wdXRF
ZmZlY3QodW5zaWduZWQgbnVtYmVyKSBjb25zdAogewogICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZ
X0lNUExJQ0FUSU9OKG51bWJlciA8IG1faW5wdXRFZmZlY3RzLnNpemUoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3Qu
aAppbmRleCA1ZGRkZjRmMjAxNDIyZjE0ZGE0NDQzMmE0ZWU0ZDdjZTE0YTU0MjMwLi5hYmI3YjBm
OGY5ZmIwMjZjMWFiNzMzNDlhMDA2OGE4MzJmMTE2MjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgKQEAgLTg3
LDYgKzg3LDkgQEAgcHVibGljOgogCiAgICAgRmxvYXRSZWN0IGRyYXdpbmdSZWdpb25PZklucHV0
SW1hZ2UoY29uc3QgSW50UmVjdCYpIGNvbnN0OwogICAgIEludFJlY3QgcmVxdWVzdGVkUmVnaW9u
T2ZJbnB1dEltYWdlRGF0YShjb25zdCBJbnRSZWN0JikgY29uc3Q7CisgICAgCisgICAgLy8gUmVj
dXJzZXMgb24gaW5wdXRzLgorICAgIEZsb2F0UmVjdCBkZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVT
dWJyZWdpb24oKTsKIAogICAgIC8vIFNvbGlkIGJsYWNrIGltYWdlIHdpdGggZGlmZmVyZW50IGFs
cGhhIHZhbHVlcy4KICAgICBib29sIGlzQWxwaGFJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWxw
aGFJbWFnZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcAppbmRleCA4NWI4
NDVhZTRhZTU4MWMxYWM3MTIzZDA2ZTA5Yzc3OWNkMjdhMGUwLi5lM2IyZThjOTQ1NzEyYzE1MGRi
NjgyZWIyZDJkZDViNDk0YzExNTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvQ1NTRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVy
LmNwcApAQCAtMzQwLDYgKzM0MCwxOSBAQCB2b2lkIENTU0ZpbHRlcjo6YWxsb2NhdGVCYWNraW5n
U3RvcmVJZk5lZWRlZChjb25zdCBHcmFwaGljc0NvbnRleHQmIHRhcmdldENvbnRleAogICAgIG1f
Z3JhcGhpY3NCdWZmZXJBdHRhY2hlZCA9IHRydWU7CiB9CiAKK3ZvaWQgQ1NTRmlsdGVyOjpkZXRl
cm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24oKQoreworICAgIGF1dG8mIGxhc3RFZmZlY3Qg
PSBtX2VmZmVjdHMubGFzdCgpLmdldCgpOworICAgIGxhc3RFZmZlY3QuZGV0ZXJtaW5lRmlsdGVy
UHJpbWl0aXZlU3VicmVnaW9uKCk7CisgICAgRmxvYXRSZWN0IHN1YlJlZ2lvbiA9IGxhc3RFZmZl
Y3QubWF4RWZmZWN0UmVjdCgpOworICAgIC8vIEF0IGxlYXN0IG9uZSBGaWx0ZXJFZmZlY3QgaGFz
IGEgdG9vIGJpZyBpbWFnZSBzaXplLCByZWNhbGN1bGF0ZSB0aGUgZWZmZWN0IHNpemVzIHdpdGgg
bmV3IHNjYWxlIGZhY3RvcnMuCisgICAgRmxvYXRTaXplIHNjYWxlOworICAgIGlmIChJbWFnZUJ1
ZmZlcjo6c2l6ZU5lZWRzQ2xhbXBpbmcoc3ViUmVnaW9uLnNpemUoKSwgc2NhbGUpKSB7CisgICAg
ICAgIHNldEZpbHRlclJlc29sdXRpb24oc2NhbGUpOworICAgICAgICBsYXN0RWZmZWN0LmRldGVy
bWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbigpOworICAgIH0KK30KKwogdm9pZCBDU1NGaWx0
ZXI6OmNsZWFySW50ZXJtZWRpYXRlUmVzdWx0cygpCiB7CiAgICAgbV9zb3VyY2VHcmFwaGljLT5j
bGVhclJlc3VsdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0Zp
bHRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5oCmluZGV4IDQ5Mzcy
OWY5NDkxYjkxMTUyOWYyZTI0MWE0YjkyMDZlMjJiYzY3ZjIuLjMzMDNhMWEzNWQwZWMxMzE0ZTRh
MzAzNGYwNmVlOTRiOGEzMWY2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9DU1NGaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmgK
QEAgLTU5LDYgKzU5LDggQEAgcHVibGljOgogICAgIGJvb2wgaGFzRmlsdGVyVGhhdE1vdmVzUGl4
ZWxzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNGaWx0ZXJUaGF0TW92ZXNQaXhlbHM7IH0KICAgICBi
b29sIGhhc0ZpbHRlclRoYXRTaG91bGRCZVJlc3RyaWN0ZWRCeVNlY3VyaXR5T3JpZ2luKCkgY29u
c3QgeyByZXR1cm4gbV9oYXNGaWx0ZXJUaGF0U2hvdWxkQmVSZXN0cmljdGVkQnlTZWN1cml0eU9y
aWdpbjsgfQogCisgICAgdm9pZCBkZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24oKTsK
KwogcHJpdmF0ZToKICAgICBDU1NGaWx0ZXIoKTsKICAgICB2aXJ0dWFsIH5DU1NGaWx0ZXIoKTsK
QEAgLTY2LDcgKzY4LDkgQEAgcHJpdmF0ZToKICAgICBib29sIGlzQ1NTRmlsdGVyKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgRmxvYXRSZWN0IHNvdXJjZUltYWdlUmVjdCgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc291cmNlRHJhd2luZ1JlZ2lvbjsgfQorCiAgICAgRmxv
YXRSZWN0IGZpbHRlclJlZ2lvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZmlsdGVyUmVnaW9u
OyB9CisgICAgRmxvYXRSZWN0IGZpbHRlclJlZ2lvbkluVXNlclNwYWNlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9maWx0ZXJSZWdpb247IH0KIAogICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGJ1
aWxkUmVmZXJlbmNlRmlsdGVyKFJlbmRlckVsZW1lbnQmLCBGaWx0ZXJFZmZlY3QmIHByZXZpb3Vz
RWZmZWN0LCBSZWZlcmVuY2VGaWx0ZXJPcGVyYXRpb24mKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJzLmNwcAppbmRleCA3N2Q5OWM5YThhZWRjOTNi
MzhmMWZmNDE3ZmU0NDRlYWFiZmJhYTEyLi4wYTNlZDA2ZTgzMDc3ZjFmNjRlM2MyNzI3OTYxNjUy
NmE0ODA1YmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJGaWx0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJG
aWx0ZXJzLmNwcApAQCAtMTU1LDYgKzE1NSw4IEBAIEdyYXBoaWNzQ29udGV4dCogUmVuZGVyTGF5
ZXJGaWx0ZXJzOjpiZWdpbkZpbHRlckVmZmVjdChHcmFwaGljc0NvbnRleHQmIGRlc3RpbmF0CiAg
ICAgbV9wYWludE9mZnNldCA9IGZpbHRlclNvdXJjZVJlY3QubG9jYXRpb24oKTsKICAgICByZXNl
dERpcnR5U291cmNlUmVjdCgpOwogCisgICAgZmlsdGVyLmRldGVybWluZUZpbHRlclByaW1pdGl2
ZVN1YnJlZ2lvbigpOworCiAgICAgZmlsdGVyLmFsbG9jYXRlQmFja2luZ1N0b3JlSWZOZWVkZWQo
ZGVzdGluYXRpb25Db250ZXh0KTsKICAgICBhdXRvKiBzb3VyY2VHcmFwaGljc0NvbnRleHQgPSBm
aWx0ZXIuaW5wdXRDb250ZXh0KCk7CiAgICAgaWYgKCFzb3VyY2VHcmFwaGljc0NvbnRleHQgfHwg
ZmlsdGVyLmZpbHRlclJlZ2lvbigpLmlzRW1wdHkoKSB8fCBJbWFnZUJ1ZmZlcjo6c2l6ZU5lZWRz
Q2xhbXBpbmcoZmlsdGVyLmZpbHRlclJlZ2lvbigpLnNpemUoKSkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCmlu
ZGV4IDI2ZmFmNzNmMmI3NTIzMzQ1NjBiMmY1ZTM0MDU0NmE1ZDE1OTQwODMuLmFmZGUzOGNmZWRj
NmFlMDRmNTljMDIyNDJhOWRmMzg4NjYwNTljOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIuY3BwCkBAIC0xNzgs
MTMgKzE3OCwxMyBAQCBib29sIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjphcHBseVJlc291cmNl
KFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjb25zdCBSZW5kZQogCiAgICAgTE9HX1dJVEhfU1RS
RUFNKEZpbHRlcnMsIHN0cmVhbSA8PCAiUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OmFwcGx5UmVz
b3VyY2VcbiIgPDwgKmZpbHRlckRhdGEtPmJ1aWxkZXItPmxhc3RFZmZlY3QoKSk7CiAKLSAgICBS
ZW5kZXJTVkdSZXNvdXJjZUZpbHRlclByaW1pdGl2ZTo6ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZl
U3VicmVnaW9uKCpsYXN0RWZmZWN0KTsKKyAgICBsYXN0RWZmZWN0LT5kZXRlcm1pbmVGaWx0ZXJQ
cmltaXRpdmVTdWJyZWdpb24oKTsKICAgICBGbG9hdFJlY3Qgc3ViUmVnaW9uID0gbGFzdEVmZmVj
dC0+bWF4RWZmZWN0UmVjdCgpOwogICAgIC8vIEF0IGxlYXN0IG9uZSBGaWx0ZXJFZmZlY3QgaGFz
IGEgdG9vIGJpZyBpbWFnZSBzaXplLAogICAgIC8vIHJlY2FsY3VsYXRlIHRoZSBlZmZlY3Qgc2l6
ZXMgd2l0aCBuZXcgc2NhbGUgZmFjdG9ycy4KICAgICBpZiAoSW1hZ2VCdWZmZXI6OnNpemVOZWVk
c0NsYW1waW5nKHN1YlJlZ2lvbi5zaXplKCksIHNjYWxlKSkgewogICAgICAgICBmaWx0ZXJEYXRh
LT5maWx0ZXItPnNldEZpbHRlclJlc29sdXRpb24oc2NhbGUpOwotICAgICAgICBSZW5kZXJTVkdS
ZXNvdXJjZUZpbHRlclByaW1pdGl2ZTo6ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9u
KCpsYXN0RWZmZWN0KTsKKyAgICAgICAgbGFzdEVmZmVjdC0+ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0
aXZlU3VicmVnaW9uKCk7CiAgICAgfQogCiAgICAgLy8gSWYgdGhlIGRyYXdpbmdSZWdpb24gaXMg
ZW1wdHksIHdlIGhhdmUgc29tZXRoaW5nIGxpa2UgPGcgZmlsdGVyPSIuLiIvPi4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQ
cmltaXRpdmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZUZpbHRlclByaW1pdGl2ZS5jcHAKaW5kZXggMjM5NWY2OWRmMTQyYzZjZjA1OGMwNWJiNDBh
NzllM2U5NmRmZjNhOS4uMjQ4NTYxN2M1MDU2MmZlYTM5OGYwNTYyYmNkNzFhNDU3ZmVhYWI0NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJj
ZUZpbHRlclByaW1pdGl2ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSZXNvdXJjZUZpbHRlclByaW1pdGl2ZS5jcHAKQEAgLTczLDQ4ICs3Myw0IEBAIHZv
aWQgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmU6OnN0eWxlRGlkQ2hhbmdlKFN0eWxl
RGlmZmVyZW5jZSBkaWZmLCBjb25zCiAgICAgfQogfQogCi1GbG9hdFJlY3QgUmVuZGVyU1ZHUmVz
b3VyY2VGaWx0ZXJQcmltaXRpdmU6OmRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbihG
aWx0ZXJFZmZlY3QmIGVmZmVjdCkKLXsKLSAgICBhdXRvJiBmaWx0ZXIgPSBkb3duY2FzdDxTVkdG
aWx0ZXI+KGVmZmVjdC5maWx0ZXIoKSk7Ci0KLSAgICAvLyBGRVRpbGUsIEZFVHVyYnVsZW5jZSwg
RkVGbG9vZCBkb24ndCBoYXZlIGlucHV0IGVmZmVjdHMsIHRha2UgdGhlIGZpbHRlciByZWdpb24g
YXMgdW5pdGUgcmVjdC4KLSAgICBGbG9hdFJlY3Qgc3VicmVnaW9uOwotICAgIGlmICh1bnNpZ25l
ZCBudW1iZXJPZklucHV0RWZmZWN0cyA9IGVmZmVjdC5pbnB1dEVmZmVjdHMoKS5zaXplKCkpIHsK
LSAgICAgICAgc3VicmVnaW9uID0gZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKCpl
ZmZlY3QuaW5wdXRFZmZlY3QoMCkpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwg
bnVtYmVyT2ZJbnB1dEVmZmVjdHM7ICsraSkKLSAgICAgICAgICAgIHN1YnJlZ2lvbi51bml0ZShk
ZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24oKmVmZmVjdC5pbnB1dEVmZmVjdChpKSkp
OwotICAgIH0gZWxzZQotICAgICAgICBzdWJyZWdpb24gPSBmaWx0ZXIuZmlsdGVyUmVnaW9uSW5V
c2VyU3BhY2UoKTsKLQotICAgIC8vIEFmdGVyIGNhbGxpbmcgZGV0ZXJtaW5lRmlsdGVyUHJpbWl0
aXZlU3VicmVnaW9uIG9uIHRoZSB0YXJnZXQgZWZmZWN0LCByZXNldCB0aGUgc3VicmVnaW9uIGFn
YWluIGZvciA8ZmVUaWxlPi4KLSAgICBpZiAoZWZmZWN0LmZpbHRlckVmZmVjdFR5cGUoKSA9PSBG
aWx0ZXJFZmZlY3RUeXBlVGlsZSkKLSAgICAgICAgc3VicmVnaW9uID0gZmlsdGVyLmZpbHRlclJl
Z2lvbkluVXNlclNwYWNlKCk7Ci0KLSAgICBGbG9hdFJlY3QgZWZmZWN0Qm91bmRhcmllcyA9IGVm
ZmVjdC5lZmZlY3RCb3VuZGFyaWVzKCk7Ci0gICAgaWYgKGVmZmVjdC5oYXNYKCkpCi0gICAgICAg
IHN1YnJlZ2lvbi5zZXRYKGVmZmVjdEJvdW5kYXJpZXMueCgpKTsKLSAgICBpZiAoZWZmZWN0Lmhh
c1koKSkKLSAgICAgICAgc3VicmVnaW9uLnNldFkoZWZmZWN0Qm91bmRhcmllcy55KCkpOwotICAg
IGlmIChlZmZlY3QuaGFzV2lkdGgoKSkKLSAgICAgICAgc3VicmVnaW9uLnNldFdpZHRoKGVmZmVj
dEJvdW5kYXJpZXMud2lkdGgoKSk7Ci0gICAgaWYgKGVmZmVjdC5oYXNIZWlnaHQoKSkKLSAgICAg
ICAgc3VicmVnaW9uLnNldEhlaWdodChlZmZlY3RCb3VuZGFyaWVzLmhlaWdodCgpKTsKLQotICAg
IGVmZmVjdC5zZXRGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24oc3VicmVnaW9uKTsKLQotICAgIEZs
b2F0UmVjdCBhYnNvbHV0ZVN1YnJlZ2lvbiA9IGZpbHRlci5hYnNvbHV0ZVRyYW5zZm9ybSgpLm1h
cFJlY3Qoc3VicmVnaW9uKTsKLSAgICBGbG9hdFNpemUgZmlsdGVyUmVzb2x1dGlvbiA9IGZpbHRl
ci5maWx0ZXJSZXNvbHV0aW9uKCk7Ci0gICAgYWJzb2x1dGVTdWJyZWdpb24uc2NhbGUoZmlsdGVy
UmVzb2x1dGlvbik7Ci0gICAgLy8gU2F2ZSB0aGlzIGJlZm9yZSBjbGlwcGluZyBzbyB3ZSBjYW4g
dXNlIGl0IHRvIG1hcCBsaWdodGluZyBwb2ludHMgZnJvbSB1c2VyIHNwYWNlIHRvIGJ1ZmZlciBj
b29yZGluYXRlcy4KLSAgICBlZmZlY3Quc2V0VW5jbGlwcGVkQWJzb2x1dGVTdWJyZWdpb24oYWJz
b2x1dGVTdWJyZWdpb24pOwotCi0gICAgLy8gQ2xpcCBldmVyeSBmaWx0ZXIgZWZmZWN0IHRvIHRo
ZSBmaWx0ZXIgcmVnaW9uLgotICAgIEZsb2F0UmVjdCBhYnNvbHV0ZVNjYWxlZEZpbHRlclJlZ2lv
biA9IGZpbHRlci5maWx0ZXJSZWdpb24oKTsKLSAgICBhYnNvbHV0ZVNjYWxlZEZpbHRlclJlZ2lv
bi5zY2FsZShmaWx0ZXJSZXNvbHV0aW9uKTsKLSAgICBhYnNvbHV0ZVN1YnJlZ2lvbi5pbnRlcnNl
Y3QoYWJzb2x1dGVTY2FsZWRGaWx0ZXJSZWdpb24pOwotCi0gICAgZWZmZWN0LnNldE1heEVmZmVj
dFJlY3QoYWJzb2x1dGVTdWJyZWdpb24pOwotICAgIHJldHVybiBzdWJyZWdpb247Ci19Ci0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuaAppbmRleCBl
NWY2YjA2OTk3Yjg0YWZhZGMzMWE5NjUwYmEyNGMxNmUwMzRhMzMwLi4xNjI0ODM3NzE5NGVjMjQy
ODA1ZTVkNDNjZjlhM2FhMjIyMDBmNDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlclByaW1pdGl2ZS5o
CkBAIC00Myw5ICs0Myw2IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRp
dmUiOyB9CiAKLSAgICAvLyBUaGV5IGRlcGVuZCBvbiB0aGUgUmVuZGVyT2JqZWN0IGFyZ3VtZW50
IG9mIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjphcHBseVJlc291cmNlLgotICAgIHN0YXRpYyBG
bG9hdFJlY3QgZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKEZpbHRlckVmZmVjdCYp
OwotCiAgICAgaW5saW5lIHZvaWQgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyaWJ1dGUpCiAgICAgewogICAgICAgICBSZW5kZXJPYmplY3QqIGZpbHRl
ciA9IHBhcmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2Zp
bHRlcnMvU1ZHRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9T
VkdGaWx0ZXIuaAppbmRleCBmNzgwZjVlNWQ4ZWY5YzQwOWI3MDM2MjkxYTc1MGU5YjE5N2U5MWIx
Li44MDkzMTQ2ZDY0YWY4ODg1YmMzZGE0OTMwMmY1YWVhMGZiMTcwMGNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaApAQCAtMzMsNyArMzMs
NyBAQCBjbGFzcyBTVkdGaWx0ZXIgZmluYWwgOiBwdWJsaWMgRmlsdGVyIHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUmVmPFNWR0ZpbHRlcj4gY3JlYXRlKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNv
bnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGJvb2wp
OwogCi0gICAgRmxvYXRSZWN0IGZpbHRlclJlZ2lvbkluVXNlclNwYWNlKCkgY29uc3QgeyByZXR1
cm4gbV9maWx0ZXJSZWdpb247IH0KKyAgICBGbG9hdFJlY3QgZmlsdGVyUmVnaW9uSW5Vc2VyU3Bh
Y2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2ZpbHRlclJlZ2lvbjsgfQogICAgIEZsb2F0UmVj
dCBmaWx0ZXJSZWdpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Fic29sdXRlRmlsdGVyUmVn
aW9uOyB9CiAKICAgICBGbG9hdFNpemUgc2NhbGVkQnlGaWx0ZXJSZXNvbHV0aW9uKEZsb2F0U2l6
ZSkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTg1MjAyNzg5NThjMTIyZGNmYTg0NjdkODRhOGZmMWRm
NDE5NTliNS4uNjc5ZGU4NzRhMGNiZDZiNmI3ZTY2OWMwMjY3Njk4MzcwYjU2YjQ3YSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDE4LTA5LTA0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgorCisgICAgICAgIFRoaXMgU1ZHIGZpbHRlciBleGFtcGxlIGlzIGJsYW5rIGlu
IFdlYktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTg4OTUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBjc3MzL2ZpbHRlcnMvcmVmZXJlbmNlLWZpbHRlci1zZXQtZmlsdGVyLXJlZ2lvbnMtZXhwZWN0
ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL3JlZmVyZW5jZS1maWx0ZXIt
c2V0LWZpbHRlci1yZWdpb25zLmh0bWw6IEFkZGVkLgorCiAyMDE4LTA5LTA0ICBSb2IgQnVpcyAg
PHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWRqdXN0IFhNTEh0dHBSZXF1ZXN0IHVzZXJu
YW1lL3Bhc3N3b3JkIHByZWNlZGVuY2UgcnVsZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvZmlsdGVycy9yZWZlcmVuY2UtZmlsdGVyLXNldC1maWx0ZXItcmVnaW9ucy1leHBlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3JlZmVyZW5jZS1maWx0ZXItc2V0LWZpbHRl
ci1yZWdpb25zLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGY5NGZlNWNhZGUzNjFhY2VkNTNi
ZGU4NjUwNTBjZTdlMjczMWYwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMv
ZmlsdGVycy9yZWZlcmVuY2UtZmlsdGVyLXNldC1maWx0ZXItcmVnaW9ucy1leHBlY3RlZC5odG1s
CkBAIC0wLDAgKzEsMTIgQEAKKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgLmJveCB7Cisg
ICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHk+CisgIDxkaXYgY2xhc3M9ImJveCI+PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvcmVmZXJlbmNlLWZpbHRlci1zZXQtZmlsdGVy
LXJlZ2lvbnMuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZWZlcmVuY2UtZmlsdGVy
LXNldC1maWx0ZXItcmVnaW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyYWM1OTcwZDcxNWRjMTAxNDBk
ZDhkOGVjMmExZTBhZjNkYmQ4YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3Mz
L2ZpbHRlcnMvcmVmZXJlbmNlLWZpbHRlci1zZXQtZmlsdGVyLXJlZ2lvbnMuaHRtbApAQCAtMCww
ICsxLDMxIEBACis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIC5ib3ggeworICAgICAgICAg
IHdpZHRoOiAyMDBweDsKKyAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgIGJhY2tn
cm91bmQtY29sb3I6IHNpbHZlcjsKKyAgICAgICAgICBmaWx0ZXI6IHVybCgjZmlsdGVyKTsKKyAg
ICAgICAgfQorICAgICAgICAKKyAgICAgICAgc3ZnIHsKKyAgICAgICAgICAgIGRpc3BsYXk6IG5v
bmU7IAorICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgPHN2ZyB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIwIiBoZWlnaHQ9IjAiIHZl
cnNpb249IjEuMSI+CisgICAgPGRlZnM+CisgICAgICAgIDxmaWx0ZXIgaWQ9ImZpbHRlciI+Cisg
ICAgICAgICAgICA8ZmVUdXJidWxlbmNlIHR5cGU9InR1cmJ1bGVuY2UiIGJhc2VGcmVxdWVuY3k9
IjAuMDEiIG51bU9jdGF2ZXM9IjEiIHNlZWQ9IjUiIHN0aXRjaFRpbGVzPSJzdGl0Y2giLz4KKyAg
ICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9InNhdHVyYXRlIiB2YWx1ZXM9IjAiLz4KKyAg
ICAgICAgICAgIDxmZUNvbXBvbmVudFRyYW5zZmVyPgorICAgICAgICAgICAgICAgIDxmZUZ1bmNS
IHR5cGU9ImxpbmVhciIgc2xvcGU9IjAiIGludGVyY2VwdD0iMCIvPgorICAgICAgICAgICAgICAg
IDxmZUZ1bmNHIHR5cGU9ImxpbmVhciIgc2xvcGU9IjAiIGludGVyY2VwdD0iMC41Ii8+CisgICAg
ICAgICAgICAgICAgPGZlRnVuY0IgdHlwZT0ibGluZWFyIiBzbG9wZT0iMCIgaW50ZXJjZXB0PSIw
Ii8+CisgICAgICAgICAgICAgICAgPGZlRnVuY0EgdHlwZT0ibGluZWFyIiBzbG9wZT0iMCIgaW50
ZXJjZXB0PSIxIi8+CisgICAgICAgICAgICA8L2ZlQ29tcG9uZW50VHJhbnNmZXI+CisgICAgICAg
IDwvZmlsdGVyPgorICAgIDwvZGVmcz4KKyAgPC9zdmc+CisgIDxkaXYgY2xhc3M9ImJveCI+PC9k
aXY+Cis8L2JvZHk+Cg==
</data>
<flag name="review"
          id="366457"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348848</attachid>
            <date>2018-09-04 14:44:13 -0700</date>
            <delta_ts>2018-09-04 15:51:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188950-20180904144412.patch</filename>
            <type>text/plain</type>
            <size>17157</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NjMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzQyYzA5YjViMmU1NTA5
YTYxMDgyYWFmN2JlYjZlOTE4MTAwMGZkYi4uYjk4MDYxNWY5NGViZDE3OTFmZjE0NjZkZTIwZjQ2
ZTI3NjEwZjcwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE4LTA5LTA0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIENTUyByZWZlcmVu
Y2UgZmlsdGVyIHRoYXQgcmVmZXJlbmNlcyBhIHRpbGVkIGZlVHVyYnVsZW5jZSBpcyBibGFuawor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4OTUwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorICAgICAgICAKKyAgICAgICAgV2Ug
bmVlZCB0byBydW4gdGhlIGNvZGUgdGhhdCB3YXMgaW4gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQ
cmltaXRpdmU6OmRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbigpCisgICAgICAgIGZv
ciBDU1MgcmVmZXJlbmNlIGZpbHRlcnMsIHRvIHNldCB1cCB0aGUgdmFyaW91cyByZWN0cyBpbiB0
aGUgZmlsdGVyIGVmZmVjdHMuCisgICAgICAgIAorICAgICAgICBEbyB0aGlzIGJ5IG1vdmluZyB0
aGUgY29kZSB0byBGaWx0ZXJFZmZlY3Q6OmRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lv
bigpLCB3aGljaCBtYWtlcyBzZW5zZQorICAgICAgICBiZWNhdXNlIGl0IHJlY3Vyc2VzIG9uIHRo
ZSBGaWx0ZXJFZmZlY3QgaW5wdXQgY2hhaW4uIFRvIG1ha2UgaXQgQ1NTL1NWR0ZpbHRlciBhZ25v
c3RpYywgd2UgbW92ZSBmaWx0ZXJSZWdpb25JblVzZXJTcGFjZSgpCisgICAgICAgIHRvIHRoZSBG
aWx0ZXIgYmFzZSBjbGFzcyAoZm9yIENTU0ZpbHRlciwgaXQganVzdCByZXR1cm5zIG1fZmlsdGVy
UmVnaW9uKS4KKworICAgICAgICBUZXN0OiBjc3MzL2ZpbHRlcnMvcmVmZXJlbmNlLWZpbHRlci1z
ZXQtZmlsdGVyLXJlZ2lvbnMuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GaWx0ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRl
ckVmZmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OmRldGVybWluZUZp
bHRlclByaW1pdGl2ZVN1YnJlZ2lvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GaWx0ZXJFZmZlY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvQ1NTRmlsdGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU0ZpbHRlcjo6ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3Vi
cmVnaW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvQ1NTRmlsdGVyLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyRmlsdGVycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckZpbHRlcnM6OmJlZ2luRmlsdGVyRWZmZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNW
R1Jlc291cmNlRmlsdGVyOjphcHBseVJlc291cmNlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlOjpkZXRlcm1pbmVGaWx0ZXJQcmltaXRp
dmVTdWJyZWdpb24pOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuaDoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvZmlsdGVy
cy9TVkdGaWx0ZXIuaDoKKwogMjAxOC0wOS0wNCAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIEFkanVzdCBYTUxIdHRwUmVxdWVzdCB1c2VybmFtZS9wYXNzd29yZCBwcmVj
ZWRlbmNlIHJ1bGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GaWx0ZXIuaAppbmRleCAzYmVkZWE3MDViNzZkOWJmMWExYzUxOWNiMmU0Mzc1YThhZTY4
MjgxLi40OWU4YzVhMjZlNzcxYzQyNDk2NzgxOTUyN2E1NjI3MzUzZGY0NDk2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyLmgKQEAgLTIw
LDExICsyMCwxNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgor
I2luY2x1ZGUgIkFmZmluZVRyYW5zZm9ybS5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2lu
Y2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgorI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRmls
dGVyRWZmZWN0OworCiBjbGFzcyBGaWx0ZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWx0ZXI+IHsK
IHB1YmxpYzoKICAgICBGaWx0ZXIoY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBhYnNvbHV0ZVRyYW5z
Zm9ybSwgZmxvYXQgZmlsdGVyU2NhbGUgPSAxKQpAQCAtNTQsNiArNTksNyBAQCBwdWJsaWM6CiAg
ICAgCiAgICAgdmlydHVhbCBGbG9hdFJlY3Qgc291cmNlSW1hZ2VSZWN0KCkgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgRmxvYXRSZWN0IGZpbHRlclJlZ2lvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIEZsb2F0UmVjdCBmaWx0ZXJSZWdpb25JblVzZXJTcGFjZSgpIGNvbnN0ID0gMDsKIAogcHJv
dGVjdGVkOgogICAgIGV4cGxpY2l0IEZpbHRlcihjb25zdCBGbG9hdFNpemUmIGZpbHRlclJlc29s
dXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZpbHRlckVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKaW5kZXggN2IwNzFmYzA5MTYxYmJlMjNlNjIwYThmZTM2
M2Y1M2NiZDVjMmMzYy4uNjZjMzBhOThjMjhhZWQyZmNmZjUxOTYwMmQyYzQ3MTM5Zjc2YWVhOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0
ZXJFZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRmlsdGVyRWZmZWN0LmNwcApAQCAtOTQsNiArOTQsNTAgQEAgRmxvYXRSZWN0IEZpbHRlckVm
ZmVjdDo6ZHJhd2luZ1JlZ2lvbk9mSW5wdXRJbWFnZShjb25zdCBJbnRSZWN0JiBzcmNSZWN0KSBj
b25zdAogICAgIHJldHVybiB0cmFuc2Zvcm0ubWFwUmVjdChzcmNSZWN0KTsKIH0KIAorRmxvYXRS
ZWN0IEZpbHRlckVmZmVjdDo6ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKCkKK3sK
KyAgICAvLyBGRVRpbGUsIEZFVHVyYnVsZW5jZSwgRkVGbG9vZCBkb24ndCBoYXZlIGlucHV0IGVm
ZmVjdHMsIHRha2UgdGhlIGZpbHRlciByZWdpb24gYXMgdW5pdGUgcmVjdC4KKyAgICBGbG9hdFJl
Y3Qgc3VicmVnaW9uOworICAgIGlmICh1bnNpZ25lZCBudW1iZXJPZklucHV0RWZmZWN0cyA9IGlu
cHV0RWZmZWN0cygpLnNpemUoKSkgeworICAgICAgICBzdWJyZWdpb24gPSBpbnB1dEVmZmVjdCgw
KS0+ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKCk7CisgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDE7IGkgPCBudW1iZXJPZklucHV0RWZmZWN0czsgKytpKSB7CisgICAgICAgICAg
ICBhdXRvIGlucHV0UHJpbWl0aXZlU3VicmVnaW9uID0gaW5wdXRFZmZlY3QoaSktPmRldGVybWlu
ZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbigpOworICAgICAgICAgICAgc3VicmVnaW9uLnVuaXRl
KGlucHV0UHJpbWl0aXZlU3VicmVnaW9uKTsKKyAgICAgICAgfQorICAgIH0gZWxzZQorICAgICAg
ICBzdWJyZWdpb24gPSBtX2ZpbHRlci5maWx0ZXJSZWdpb25JblVzZXJTcGFjZSgpOworCisgICAg
Ly8gQWZ0ZXIgY2FsbGluZyBkZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24gb24gdGhl
IHRhcmdldCBlZmZlY3QsIHJlc2V0IHRoZSBzdWJyZWdpb24gYWdhaW4gZm9yIDxmZVRpbGU+Lgor
ICAgIGlmIChmaWx0ZXJFZmZlY3RUeXBlKCkgPT0gRmlsdGVyRWZmZWN0VHlwZVRpbGUpCisgICAg
ICAgIHN1YnJlZ2lvbiA9IG1fZmlsdGVyLmZpbHRlclJlZ2lvbkluVXNlclNwYWNlKCk7CisKKyAg
ICBhdXRvIGJvdW5kYXJpZXMgPSBlZmZlY3RCb3VuZGFyaWVzKCk7CisgICAgaWYgKGhhc1goKSkK
KyAgICAgICAgc3VicmVnaW9uLnNldFgoYm91bmRhcmllcy54KCkpOworICAgIGlmIChoYXNZKCkp
CisgICAgICAgIHN1YnJlZ2lvbi5zZXRZKGJvdW5kYXJpZXMueSgpKTsKKyAgICBpZiAoaGFzV2lk
dGgoKSkKKyAgICAgICAgc3VicmVnaW9uLnNldFdpZHRoKGJvdW5kYXJpZXMud2lkdGgoKSk7Cisg
ICAgaWYgKGhhc0hlaWdodCgpKQorICAgICAgICBzdWJyZWdpb24uc2V0SGVpZ2h0KGJvdW5kYXJp
ZXMuaGVpZ2h0KCkpOworCisgICAgc2V0RmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKHN1YnJlZ2lv
bik7CisKKyAgICBhdXRvIGFic29sdXRlU3VicmVnaW9uID0gbV9maWx0ZXIuYWJzb2x1dGVUcmFu
c2Zvcm0oKS5tYXBSZWN0KHN1YnJlZ2lvbik7CisgICAgYXV0byBmaWx0ZXJSZXNvbHV0aW9uID0g
bV9maWx0ZXIuZmlsdGVyUmVzb2x1dGlvbigpOworICAgIGFic29sdXRlU3VicmVnaW9uLnNjYWxl
KGZpbHRlclJlc29sdXRpb24pOworICAgIC8vIFNhdmUgdGhpcyBiZWZvcmUgY2xpcHBpbmcgc28g
d2UgY2FuIHVzZSBpdCB0byBtYXAgbGlnaHRpbmcgcG9pbnRzIGZyb20gdXNlciBzcGFjZSB0byBi
dWZmZXIgY29vcmRpbmF0ZXMuCisgICAgc2V0VW5jbGlwcGVkQWJzb2x1dGVTdWJyZWdpb24oYWJz
b2x1dGVTdWJyZWdpb24pOworCisgICAgLy8gQ2xpcCBldmVyeSBmaWx0ZXIgZWZmZWN0IHRvIHRo
ZSBmaWx0ZXIgcmVnaW9uLgorICAgIGF1dG8gYWJzb2x1dGVTY2FsZWRGaWx0ZXJSZWdpb24gPSBt
X2ZpbHRlci5maWx0ZXJSZWdpb24oKTsKKyAgICBhYnNvbHV0ZVNjYWxlZEZpbHRlclJlZ2lvbi5z
Y2FsZShmaWx0ZXJSZXNvbHV0aW9uKTsKKyAgICBhYnNvbHV0ZVN1YnJlZ2lvbi5pbnRlcnNlY3Qo
YWJzb2x1dGVTY2FsZWRGaWx0ZXJSZWdpb24pOworCisgICAgc2V0TWF4RWZmZWN0UmVjdChhYnNv
bHV0ZVN1YnJlZ2lvbik7CisgICAgcmV0dXJuIHN1YnJlZ2lvbjsKK30KKwogRmlsdGVyRWZmZWN0
KiBGaWx0ZXJFZmZlY3Q6OmlucHV0RWZmZWN0KHVuc2lnbmVkIG51bWJlcikgY29uc3QKIHsKICAg
ICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihudW1iZXIgPCBtX2lucHV0RWZmZWN0
cy5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GaWx0ZXJFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgKaW5kZXggNWRkZGY0ZjIwMTQyMmYxNGRhNDQ0MzJhNGVl
NGQ3Y2UxNGE1NDIzMC4uYWJiN2IwZjhmOWZiMDI2YzFhYjczMzQ5YTAwNjhhODMyZjExNjIyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0
ZXJFZmZlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlckVmZmVjdC5oCkBAIC04Nyw2ICs4Nyw5IEBAIHB1YmxpYzoKIAogICAgIEZsb2F0UmVj
dCBkcmF3aW5nUmVnaW9uT2ZJbnB1dEltYWdlKGNvbnN0IEludFJlY3QmKSBjb25zdDsKICAgICBJ
bnRSZWN0IHJlcXVlc3RlZFJlZ2lvbk9mSW5wdXRJbWFnZURhdGEoY29uc3QgSW50UmVjdCYpIGNv
bnN0OworICAgIAorICAgIC8vIFJlY3Vyc2VzIG9uIGlucHV0cy4KKyAgICBGbG9hdFJlY3QgZGV0
ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKCk7CiAKICAgICAvLyBTb2xpZCBibGFjayBp
bWFnZSB3aXRoIGRpZmZlcmVudCBhbHBoYSB2YWx1ZXMuCiAgICAgYm9vbCBpc0FscGhhSW1hZ2Uo
KSBjb25zdCB7IHJldHVybiBtX2FscGhhSW1hZ2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NT
U0ZpbHRlci5jcHAKaW5kZXggODViODQ1YWU0YWU1ODFjMWFjNzEyM2QwNmUwOWM3NzljZDI3YTBl
MC4uZTNiMmU4Yzk0NTcxMmMxNTBkYjY4MmViMmQyZGQ1YjQ5NGMxMTUyMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0NTU0ZpbHRlci5jcHAKQEAgLTM0MCw2ICszNDAsMTkgQEAgdm9pZCBDU1NG
aWx0ZXI6OmFsbG9jYXRlQmFja2luZ1N0b3JlSWZOZWVkZWQoY29uc3QgR3JhcGhpY3NDb250ZXh0
JiB0YXJnZXRDb250ZXgKICAgICBtX2dyYXBoaWNzQnVmZmVyQXR0YWNoZWQgPSB0cnVlOwogfQog
Cit2b2lkIENTU0ZpbHRlcjo6ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKCkKK3sK
KyAgICBhdXRvJiBsYXN0RWZmZWN0ID0gbV9lZmZlY3RzLmxhc3QoKS5nZXQoKTsKKyAgICBsYXN0
RWZmZWN0LmRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbigpOworICAgIEZsb2F0UmVj
dCBzdWJSZWdpb24gPSBsYXN0RWZmZWN0Lm1heEVmZmVjdFJlY3QoKTsKKyAgICAvLyBBdCBsZWFz
dCBvbmUgRmlsdGVyRWZmZWN0IGhhcyBhIHRvbyBiaWcgaW1hZ2Ugc2l6ZSwgcmVjYWxjdWxhdGUg
dGhlIGVmZmVjdCBzaXplcyB3aXRoIG5ldyBzY2FsZSBmYWN0b3JzLgorICAgIEZsb2F0U2l6ZSBz
Y2FsZTsKKyAgICBpZiAoSW1hZ2VCdWZmZXI6OnNpemVOZWVkc0NsYW1waW5nKHN1YlJlZ2lvbi5z
aXplKCksIHNjYWxlKSkgeworICAgICAgICBzZXRGaWx0ZXJSZXNvbHV0aW9uKHNjYWxlKTsKKyAg
ICAgICAgbGFzdEVmZmVjdC5kZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24oKTsKKyAg
ICB9Cit9CisKIHZvaWQgQ1NTRmlsdGVyOjpjbGVhckludGVybWVkaWF0ZVJlc3VsdHMoKQogewog
ICAgIG1fc291cmNlR3JhcGhpYy0+Y2xlYXJSZXN1bHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9DU1NGaWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9D
U1NGaWx0ZXIuaAppbmRleCA0OTM3MjlmOTQ5MWI5MTE1MjlmMmUyNDFhNGI5MjA2ZTIyYmM2N2Yy
Li4zMzAzYTFhMzVkMGVjMTMxNGU0YTMwMzRmMDZlZTk0YjhhMzFmNjMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0NTU0ZpbHRlci5oCkBAIC01OSw2ICs1OSw4IEBAIHB1YmxpYzoKICAgICBib29s
IGhhc0ZpbHRlclRoYXRNb3Zlc1BpeGVscygpIGNvbnN0IHsgcmV0dXJuIG1faGFzRmlsdGVyVGhh
dE1vdmVzUGl4ZWxzOyB9CiAgICAgYm9vbCBoYXNGaWx0ZXJUaGF0U2hvdWxkQmVSZXN0cmljdGVk
QnlTZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1faGFzRmlsdGVyVGhhdFNob3VsZEJl
UmVzdHJpY3RlZEJ5U2VjdXJpdHlPcmlnaW47IH0KIAorICAgIHZvaWQgZGV0ZXJtaW5lRmlsdGVy
UHJpbWl0aXZlU3VicmVnaW9uKCk7CisKIHByaXZhdGU6CiAgICAgQ1NTRmlsdGVyKCk7CiAgICAg
dmlydHVhbCB+Q1NTRmlsdGVyKCk7CkBAIC02Niw3ICs2OCw5IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBpc0NTU0ZpbHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIEZsb2F0
UmVjdCBzb3VyY2VJbWFnZVJlY3QoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NvdXJjZURyYXdp
bmdSZWdpb247IH0KKwogICAgIEZsb2F0UmVjdCBmaWx0ZXJSZWdpb24oKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX2ZpbHRlclJlZ2lvbjsgfQorICAgIEZsb2F0UmVjdCBmaWx0ZXJSZWdpb25JblVz
ZXJTcGFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZmlsdGVyUmVnaW9uOyB9CiAKICAgICBS
ZWZQdHI8RmlsdGVyRWZmZWN0PiBidWlsZFJlZmVyZW5jZUZpbHRlcihSZW5kZXJFbGVtZW50Jiwg
RmlsdGVyRWZmZWN0JiBwcmV2aW91c0VmZmVjdCwgUmVmZXJlbmNlRmlsdGVyT3BlcmF0aW9uJik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckZpbHRl
cnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVycy5jcHAK
aW5kZXggNzdkOTljOWE4YWVkYzkzYjM4ZjFmZjQxN2ZlNDQ0ZWFhYmZiYWExMi4uMGEzZWQwNmU4
MzA3N2YxZjY0ZTNjMjcyNzk2MTY1MjZhNDgwNWJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyRmlsdGVycy5jcHAKQEAgLTE1NSw2ICsxNTUsOCBAQCBHcmFw
aGljc0NvbnRleHQqIFJlbmRlckxheWVyRmlsdGVyczo6YmVnaW5GaWx0ZXJFZmZlY3QoR3JhcGhp
Y3NDb250ZXh0JiBkZXN0aW5hdAogICAgIG1fcGFpbnRPZmZzZXQgPSBmaWx0ZXJTb3VyY2VSZWN0
LmxvY2F0aW9uKCk7CiAgICAgcmVzZXREaXJ0eVNvdXJjZVJlY3QoKTsKIAorICAgIGZpbHRlci5k
ZXRlcm1pbmVGaWx0ZXJQcmltaXRpdmVTdWJyZWdpb24oKTsKKwogICAgIGZpbHRlci5hbGxvY2F0
ZUJhY2tpbmdTdG9yZUlmTmVlZGVkKGRlc3RpbmF0aW9uQ29udGV4dCk7CiAgICAgYXV0byogc291
cmNlR3JhcGhpY3NDb250ZXh0ID0gZmlsdGVyLmlucHV0Q29udGV4dCgpOwogICAgIGlmICghc291
cmNlR3JhcGhpY3NDb250ZXh0IHx8IGZpbHRlci5maWx0ZXJSZWdpb24oKS5pc0VtcHR5KCkgfHwg
SW1hZ2VCdWZmZXI6OnNpemVOZWVkc0NsYW1waW5nKGZpbHRlci5maWx0ZXJSZWdpb24oKS5zaXpl
KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
ZXNvdXJjZUZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlRmlsdGVyLmNwcAppbmRleCAyNmZhZjczZjJiNzUyMzM0NTYwYjJmNWUzNDA1NDZh
NWQxNTk0MDgzLi5hZmRlMzhjZmVkYzZhZTA0ZjU5YzAyMjQyYTlkZjM4ODY2MDU5Yzk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmls
dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291
cmNlRmlsdGVyLmNwcApAQCAtMTc4LDEzICsxNzgsMTMgQEAgYm9vbCBSZW5kZXJTVkdSZXNvdXJj
ZUZpbHRlcjo6YXBwbHlSZXNvdXJjZShSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgUmVu
ZGUKIAogICAgIExPR19XSVRIX1NUUkVBTShGaWx0ZXJzLCBzdHJlYW0gPDwgIlJlbmRlclNWR1Jl
c291cmNlRmlsdGVyOjphcHBseVJlc291cmNlXG4iIDw8ICpmaWx0ZXJEYXRhLT5idWlsZGVyLT5s
YXN0RWZmZWN0KCkpOwogCi0gICAgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmU6OmRl
dGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbigqbGFzdEVmZmVjdCk7CisgICAgbGFzdEVm
ZmVjdC0+ZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKCk7CiAgICAgRmxvYXRSZWN0
IHN1YlJlZ2lvbiA9IGxhc3RFZmZlY3QtPm1heEVmZmVjdFJlY3QoKTsKICAgICAvLyBBdCBsZWFz
dCBvbmUgRmlsdGVyRWZmZWN0IGhhcyBhIHRvbyBiaWcgaW1hZ2Ugc2l6ZSwKICAgICAvLyByZWNh
bGN1bGF0ZSB0aGUgZWZmZWN0IHNpemVzIHdpdGggbmV3IHNjYWxlIGZhY3RvcnMuCiAgICAgaWYg
KEltYWdlQnVmZmVyOjpzaXplTmVlZHNDbGFtcGluZyhzdWJSZWdpb24uc2l6ZSgpLCBzY2FsZSkp
IHsKICAgICAgICAgZmlsdGVyRGF0YS0+ZmlsdGVyLT5zZXRGaWx0ZXJSZXNvbHV0aW9uKHNjYWxl
KTsKLSAgICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmU6OmRldGVybWluZUZp
bHRlclByaW1pdGl2ZVN1YnJlZ2lvbigqbGFzdEVmZmVjdCk7CisgICAgICAgIGxhc3RFZmZlY3Qt
PmRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbigpOwogICAgIH0KIAogICAgIC8vIElm
IHRoZSBkcmF3aW5nUmVnaW9uIGlzIGVtcHR5LCB3ZSBoYXZlIHNvbWV0aGluZyBsaWtlIDxnIGZp
bHRlcj0iLi4iLz4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuY3BwCmluZGV4IDIzOTVm
NjlkZjE0MmM2Y2YwNThjMDViYjQwYTc5ZTNlOTZkZmYzYTkuLjI0ODU2MTdjNTA1NjJmZWEzOThm
MDU2MmJjZDcxYTQ1N2ZlYWFiNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuY3Bw
CkBAIC03Myw0OCArNzMsNCBAQCB2b2lkIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZl
OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29ucwogICAgIH0KIH0KIAot
RmxvYXRSZWN0IFJlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlOjpkZXRlcm1pbmVGaWx0
ZXJQcmltaXRpdmVTdWJyZWdpb24oRmlsdGVyRWZmZWN0JiBlZmZlY3QpCi17Ci0gICAgYXV0byYg
ZmlsdGVyID0gZG93bmNhc3Q8U1ZHRmlsdGVyPihlZmZlY3QuZmlsdGVyKCkpOwotCi0gICAgLy8g
RkVUaWxlLCBGRVR1cmJ1bGVuY2UsIEZFRmxvb2QgZG9uJ3QgaGF2ZSBpbnB1dCBlZmZlY3RzLCB0
YWtlIHRoZSBmaWx0ZXIgcmVnaW9uIGFzIHVuaXRlIHJlY3QuCi0gICAgRmxvYXRSZWN0IHN1YnJl
Z2lvbjsKLSAgICBpZiAodW5zaWduZWQgbnVtYmVyT2ZJbnB1dEVmZmVjdHMgPSBlZmZlY3QuaW5w
dXRFZmZlY3RzKCkuc2l6ZSgpKSB7Ci0gICAgICAgIHN1YnJlZ2lvbiA9IGRldGVybWluZUZpbHRl
clByaW1pdGl2ZVN1YnJlZ2lvbigqZWZmZWN0LmlucHV0RWZmZWN0KDApKTsKLSAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMTsgaSA8IG51bWJlck9mSW5wdXRFZmZlY3RzOyArK2kpCi0gICAgICAg
ICAgICBzdWJyZWdpb24udW5pdGUoZGV0ZXJtaW5lRmlsdGVyUHJpbWl0aXZlU3VicmVnaW9uKCpl
ZmZlY3QuaW5wdXRFZmZlY3QoaSkpKTsKLSAgICB9IGVsc2UKLSAgICAgICAgc3VicmVnaW9uID0g
ZmlsdGVyLmZpbHRlclJlZ2lvbkluVXNlclNwYWNlKCk7Ci0KLSAgICAvLyBBZnRlciBjYWxsaW5n
IGRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1YnJlZ2lvbiBvbiB0aGUgdGFyZ2V0IGVmZmVjdCwg
cmVzZXQgdGhlIHN1YnJlZ2lvbiBhZ2FpbiBmb3IgPGZlVGlsZT4uCi0gICAgaWYgKGVmZmVjdC5m
aWx0ZXJFZmZlY3RUeXBlKCkgPT0gRmlsdGVyRWZmZWN0VHlwZVRpbGUpCi0gICAgICAgIHN1YnJl
Z2lvbiA9IGZpbHRlci5maWx0ZXJSZWdpb25JblVzZXJTcGFjZSgpOwotCi0gICAgRmxvYXRSZWN0
IGVmZmVjdEJvdW5kYXJpZXMgPSBlZmZlY3QuZWZmZWN0Qm91bmRhcmllcygpOwotICAgIGlmIChl
ZmZlY3QuaGFzWCgpKQotICAgICAgICBzdWJyZWdpb24uc2V0WChlZmZlY3RCb3VuZGFyaWVzLngo
KSk7Ci0gICAgaWYgKGVmZmVjdC5oYXNZKCkpCi0gICAgICAgIHN1YnJlZ2lvbi5zZXRZKGVmZmVj
dEJvdW5kYXJpZXMueSgpKTsKLSAgICBpZiAoZWZmZWN0Lmhhc1dpZHRoKCkpCi0gICAgICAgIHN1
YnJlZ2lvbi5zZXRXaWR0aChlZmZlY3RCb3VuZGFyaWVzLndpZHRoKCkpOwotICAgIGlmIChlZmZl
Y3QuaGFzSGVpZ2h0KCkpCi0gICAgICAgIHN1YnJlZ2lvbi5zZXRIZWlnaHQoZWZmZWN0Qm91bmRh
cmllcy5oZWlnaHQoKSk7Ci0KLSAgICBlZmZlY3Quc2V0RmlsdGVyUHJpbWl0aXZlU3VicmVnaW9u
KHN1YnJlZ2lvbik7Ci0KLSAgICBGbG9hdFJlY3QgYWJzb2x1dGVTdWJyZWdpb24gPSBmaWx0ZXIu
YWJzb2x1dGVUcmFuc2Zvcm0oKS5tYXBSZWN0KHN1YnJlZ2lvbik7Ci0gICAgRmxvYXRTaXplIGZp
bHRlclJlc29sdXRpb24gPSBmaWx0ZXIuZmlsdGVyUmVzb2x1dGlvbigpOwotICAgIGFic29sdXRl
U3VicmVnaW9uLnNjYWxlKGZpbHRlclJlc29sdXRpb24pOwotICAgIC8vIFNhdmUgdGhpcyBiZWZv
cmUgY2xpcHBpbmcgc28gd2UgY2FuIHVzZSBpdCB0byBtYXAgbGlnaHRpbmcgcG9pbnRzIGZyb20g
dXNlciBzcGFjZSB0byBidWZmZXIgY29vcmRpbmF0ZXMuCi0gICAgZWZmZWN0LnNldFVuY2xpcHBl
ZEFic29sdXRlU3VicmVnaW9uKGFic29sdXRlU3VicmVnaW9uKTsKLQotICAgIC8vIENsaXAgZXZl
cnkgZmlsdGVyIGVmZmVjdCB0byB0aGUgZmlsdGVyIHJlZ2lvbi4KLSAgICBGbG9hdFJlY3QgYWJz
b2x1dGVTY2FsZWRGaWx0ZXJSZWdpb24gPSBmaWx0ZXIuZmlsdGVyUmVnaW9uKCk7Ci0gICAgYWJz
b2x1dGVTY2FsZWRGaWx0ZXJSZWdpb24uc2NhbGUoZmlsdGVyUmVzb2x1dGlvbik7Ci0gICAgYWJz
b2x1dGVTdWJyZWdpb24uaW50ZXJzZWN0KGFic29sdXRlU2NhbGVkRmlsdGVyUmVnaW9uKTsKLQot
ICAgIGVmZmVjdC5zZXRNYXhFZmZlY3RSZWN0KGFic29sdXRlU3VicmVnaW9uKTsKLSAgICByZXR1
cm4gc3VicmVnaW9uOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0
aXZlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmls
dGVyUHJpbWl0aXZlLmgKaW5kZXggZTVmNmIwNjk5N2I4NGFmYWRjMzFhOTY1MGJhMjRjMTZlMDM0
YTMzMC4uMTYyNDgzNzcxOTRlYzI0MjgwNWU1ZDQzY2Y5YTNhYTIyMjAwZjQwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlclBy
aW1pdGl2ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVz
b3VyY2VGaWx0ZXJQcmltaXRpdmUuaApAQCAtNDMsOSArNDMsNiBAQCBwdWJsaWM6CiAKICAgICBj
b25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlclNW
R1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlIjsgfQogCi0gICAgLy8gVGhleSBkZXBlbmQgb24gdGhl
IFJlbmRlck9iamVjdCBhcmd1bWVudCBvZiBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlcjo6YXBwbHlS
ZXNvdXJjZS4KLSAgICBzdGF0aWMgRmxvYXRSZWN0IGRldGVybWluZUZpbHRlclByaW1pdGl2ZVN1
YnJlZ2lvbihGaWx0ZXJFZmZlY3QmKTsKLQogICAgIGlubGluZSB2b2lkIHByaW1pdGl2ZUF0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlKQogICAgIHsKICAgICAg
ICAgUmVuZGVyT2JqZWN0KiBmaWx0ZXIgPSBwYXJlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmgKaW5kZXggZjc4MGY1ZTVkOGVmOWM0MDli
NzAzNjI5MWE3NTBlOWIxOTdlOTFiMS4uODA5MzE0NmQ2NGFmODg4NWJjM2RhNDkzMDJmNWFlYTBm
YjE3MDBjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMv
U1ZHRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZH
RmlsdGVyLmgKQEAgLTMzLDcgKzMzLDcgQEAgY2xhc3MgU1ZHRmlsdGVyIGZpbmFsIDogcHVibGlj
IEZpbHRlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTVkdGaWx0ZXI+IGNyZWF0ZShjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBj
b25zdCBGbG9hdFJlY3QmLCBib29sKTsKIAotICAgIEZsb2F0UmVjdCBmaWx0ZXJSZWdpb25JblVz
ZXJTcGFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsdGVyUmVnaW9uOyB9CisgICAgRmxvYXRSZWN0
IGZpbHRlclJlZ2lvbkluVXNlclNwYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9maWx0ZXJS
ZWdpb247IH0KICAgICBGbG9hdFJlY3QgZmlsdGVyUmVnaW9uKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9hYnNvbHV0ZUZpbHRlclJlZ2lvbjsgfQogCiAgICAgRmxvYXRTaXplIHNjYWxlZEJ5Rmls
dGVyUmVzb2x1dGlvbihGbG9hdFNpemUpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE4NTIwMjc4OTU4
YzEyMmRjZmE4NDY3ZDg0YThmZjFkZjQxOTU5YjUuLjVjMDE2ZjUyMjM0NDgxZWQ2ZWI0MmRiNDZh
ZmIwODc2YWM0ZGJjZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxOC0wOS0wNCAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBDU1MgcmVmZXJlbmNl
IGZpbHRlciB0aGF0IHJlZmVyZW5jZXMgYSB0aWxlZCBmZVR1cmJ1bGVuY2UgaXMgYmxhbmsKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODk1MAorCisg
ICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICAqIGNzczMvZmlsdGVy
cy9yZWZlcmVuY2UtZmlsdGVyLXNldC1maWx0ZXItcmVnaW9ucy1leHBlY3RlZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvcmVmZXJlbmNlLWZpbHRlci1zZXQtZmlsdGVyLXJl
Z2lvbnMuaHRtbDogQWRkZWQuCisKIDIwMTgtMDktMDQgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlh
LmNvbT4KIAogICAgICAgICBBZGp1c3QgWE1MSHR0cFJlcXVlc3QgdXNlcm5hbWUvcGFzc3dvcmQg
cHJlY2VkZW5jZSBydWxlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3Jl
ZmVyZW5jZS1maWx0ZXItc2V0LWZpbHRlci1yZWdpb25zLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9jc3MzL2ZpbHRlcnMvcmVmZXJlbmNlLWZpbHRlci1zZXQtZmlsdGVyLXJlZ2lvbnMtZXhw
ZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjk0ZmU1Y2FkZTM2MWFjZWQ1M2JkZTg2NTA1MGNlN2Uy
NzMxZjAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3JlZmVy
ZW5jZS1maWx0ZXItc2V0LWZpbHRlci1yZWdpb25zLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwx
MiBAQAorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICAuYm94IHsKKyAgICAgICAgICB3aWR0
aDogMjAwcHg7CisgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBncmVlbjsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4K
KyAgPGRpdiBjbGFzcz0iYm94Ij48L2Rpdj4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NzczMvZmlsdGVycy9yZWZlcmVuY2UtZmlsdGVyLXNldC1maWx0ZXItcmVnaW9ucy5odG1s
IGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3JlZmVyZW5jZS1maWx0ZXItc2V0LWZpbHRlci1y
ZWdpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODJhYzU5NzBkNzE1ZGMxMDE0MGRkOGQ4ZWMyYTFlMGFm
M2RiZDhhNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9yZWZl
cmVuY2UtZmlsdGVyLXNldC1maWx0ZXItcmVnaW9ucy5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzxo
ZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgLmJveCB7CisgICAgICAgICAgd2lkdGg6IDIwMHB4
OworICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
c2lsdmVyOworICAgICAgICAgIGZpbHRlcjogdXJsKCNmaWx0ZXIpOworICAgICAgICB9CisgICAg
ICAgIAorICAgICAgICBzdmcgeworICAgICAgICAgICAgZGlzcGxheTogbm9uZTsgCisgICAgICAg
IH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICA8c3ZnIHhtbG5zPSJodHRwOi8v
d3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjAiIGhlaWdodD0iMCIgdmVyc2lvbj0iMS4xIj4K
KyAgICA8ZGVmcz4KKyAgICAgICAgPGZpbHRlciBpZD0iZmlsdGVyIj4KKyAgICAgICAgICAgIDxm
ZVR1cmJ1bGVuY2UgdHlwZT0idHVyYnVsZW5jZSIgYmFzZUZyZXF1ZW5jeT0iMC4wMSIgbnVtT2N0
YXZlcz0iMSIgc2VlZD0iNSIgc3RpdGNoVGlsZXM9InN0aXRjaCIvPgorICAgICAgICAgICAgPGZl
Q29sb3JNYXRyaXggdHlwZT0ic2F0dXJhdGUiIHZhbHVlcz0iMCIvPgorICAgICAgICAgICAgPGZl
Q29tcG9uZW50VHJhbnNmZXI+CisgICAgICAgICAgICAgICAgPGZlRnVuY1IgdHlwZT0ibGluZWFy
IiBzbG9wZT0iMCIgaW50ZXJjZXB0PSIwIi8+CisgICAgICAgICAgICAgICAgPGZlRnVuY0cgdHlw
ZT0ibGluZWFyIiBzbG9wZT0iMCIgaW50ZXJjZXB0PSIwLjUiLz4KKyAgICAgICAgICAgICAgICA8
ZmVGdW5jQiB0eXBlPSJsaW5lYXIiIHNsb3BlPSIwIiBpbnRlcmNlcHQ9IjAiLz4KKyAgICAgICAg
ICAgICAgICA8ZmVGdW5jQSB0eXBlPSJsaW5lYXIiIHNsb3BlPSIwIiBpbnRlcmNlcHQ9IjEiLz4K
KyAgICAgICAgICAgIDwvZmVDb21wb25lbnRUcmFuc2Zlcj4KKyAgICAgICAgPC9maWx0ZXI+Cisg
ICAgPC9kZWZzPgorICA8L3N2Zz4KKyAgPGRpdiBjbGFzcz0iYm94Ij48L2Rpdj4KKzwvYm9keT4K
</data>

          </attachment>
      

    </bug>

</bugzilla>