<?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>160682</bug_id>
          
          <creation_ts>2016-08-08 19:30:11 -0700</creation_ts>
          <short_desc>getElementsByTagName() should take a qualifiedName in parameter</short_desc>
          <delta_ts>2016-11-13 19:32:07 -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>DOM</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>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>164705</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1218675</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-08 19:30:11 -0700</bug_when>
    <thetext>getElementsByTagName() should take a qualifiedName in parameter, not a localName:
- https://dom.spec.whatwg.org/#dom-document-getelementsbytagname
- https://dom.spec.whatwg.org/#concept-getelementsbytagname</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219538</commentid>
    <comment_count>1</comment_count>
      <attachid>285894</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-11 22:07:22 -0700</bug_when>
    <thetext>Created attachment 285894
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219543</commentid>
    <comment_count>2</comment_count>
      <attachid>285896</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-11 22:29:41 -0700</bug_when>
    <thetext>Created attachment 285896
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219544</commentid>
    <comment_count>3</comment_count>
      <attachid>285897</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-11 22:31:26 -0700</bug_when>
    <thetext>Created attachment 285897
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219587</commentid>
    <comment_count>4</comment_count>
      <attachid>285913</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-12 08:45:29 -0700</bug_when>
    <thetext>Created attachment 285913
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219588</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-12 08:46:00 -0700</bug_when>
    <thetext>This passes all the tests. I&apos;ll evaluate performance on Speedometer and Dromaeo today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219605</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-12 10:03:33 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; This passes all the tests. I&apos;ll evaluate performance on Speedometer and
&gt; Dromaeo today.

Seems to be perf-neutral on Dromaeo DOM core. However, it looks like this is a 1-3% regression on Speedometer. I&apos;ll see what I can do to avoid regressing Speedometer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219615</commentid>
    <comment_count>7</comment_count>
      <attachid>285920</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-12 10:56:40 -0700</bug_when>
    <thetext>Created attachment 285920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219616</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-12 10:57:16 -0700</bug_when>
    <thetext>Ok, this now seems to be perf-neutral on Speedometer as well. I&apos;ll closely monitor the perf bots when it lands though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219763</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-12 15:55:59 -0700</bug_when>
    <thetext>Relevant spec discussion:
https://github.com/whatwg/dom/issues/143</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219823</commentid>
    <comment_count>10</comment_count>
      <attachid>285920</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-08-12 18:38:45 -0700</bug_when>
    <thetext>Comment on attachment 285920
Patch

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

&gt; Source/WebCore/dom/AllDescendantsCollection.h:32
&gt; +// Collection that matches all element descendants.

I don&apos;t think this comment is necessary given the code below that says:
CachedHTMLCollection&lt;AllDescendantsCollection,

&gt; Source/WebCore/dom/AllDescendantsCollection.h:33
&gt; +class AllDescendantsCollection final : public CachedHTMLCollection&lt;AllDescendantsCollection, CollectionTypeTraits&lt;AllDescendants&gt;::traversalType&gt; {

Can we use this in HTMLAllCollection as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219840</commentid>
    <comment_count>11</comment_count>
      <attachid>285920</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-12 19:21:11 -0700</bug_when>
    <thetext>Comment on attachment 285920
Patch

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

&gt;&gt; Source/WebCore/dom/AllDescendantsCollection.h:33
&gt;&gt; +class AllDescendantsCollection final : public CachedHTMLCollection&lt;AllDescendantsCollection, CollectionTypeTraits&lt;AllDescendants&gt;::traversalType&gt; {
&gt; 
&gt; Can we use this in HTMLAllCollection as well?

Do you mean have HTMLAllCollection subclass AllDescendantsCollection to avoid duplicating the elementMatches() implementation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219849</commentid>
    <comment_count>12</comment_count>
      <attachid>286000</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-12 20:23:22 -0700</bug_when>
    <thetext>Created attachment 286000
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219851</commentid>
    <comment_count>13</comment_count>
      <attachid>286000</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-12 21:22:02 -0700</bug_when>
    <thetext>Comment on attachment 286000
Patch

Clearing flags on attachment: 286000

Committed r204441: &lt;http://trac.webkit.org/changeset/204441&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219852</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-12 21:22:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219899</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-08-13 15:42:46 -0700</bug_when>
    <thetext>I monitored the perf bots and did not see any obvious regression from this change.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285894</attachid>
            <date>2016-08-11 22:07:22 -0700</date>
            <delta_ts>2016-08-11 22:29:41 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>160682_getElementsByTagName_WIP.patch</filename>
            <type>text/plain</type>
            <size>33466</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL25vZGVzL0RvY3VtZW50LWdldEVsZW1lbnRzQnlUYWdOYW1lLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3Vt
ZW50LWdldEVsZW1lbnRzQnlUYWdOYW1lLWV4cGVjdGVkLnR4dAppbmRleCA3NjhmNzgyLi43OTBi
NzVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9k
ZXMvRG9jdW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUtZXhwZWN0ZWQudHh0CkBAIC0xMiwxMSAr
MTIsMTEgQEAgUEFTUyBoYXNPd25Qcm9wZXJ0eSwgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLCBn
ZXRPd25Qcm9wZXJ0eU5hbWVzCiBQQVNTIEhUTUwgZWxlbWVudCB3aXRoIHVwcGVyY2FzZSB0YWdO
YW1lIG5ldmVyIG1hdGNoZXMgaW4gSFRNTCBEb2N1bWVudHMgCiBQQVNTIEVsZW1lbnQgaW4gbm9u
LUhUTUwgbmFtZXNwYWNlLCBubyBwcmVmaXgsIGxvd2VyY2FzZSBuYW1lIAogUEFTUyBFbGVtZW50
IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgbm8gcHJlZml4LCB1cHBlcmNhc2UgbmFtZSAKLUZBSUwg
RWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwgbG93ZXJjYXNlIG5hbWUgYXNz
ZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDAgZ290IDEKLUZBSUwg
RWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwgdXBwZXJjYXNlIG5hbWUgYXNz
ZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDAgZ290IDEKK1BBU1Mg
RWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwgbG93ZXJjYXNlIG5hbWUgCitQ
QVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVmaXgsIHVwcGVyY2FzZSBuYW1l
IAogUEFTUyBFbGVtZW50IGluIEhUTUwgbmFtZXNwYWNlLCBubyBwcmVmaXgsIG5vbi1hc2NpaSBj
aGFyYWN0ZXJzIGluIG5hbWUgCiBQQVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBu
b24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAotRkFJTCBFbGVtZW50IGluIEhUTUwgbmFtZXNw
YWNlLCBwcmVmaXgsIG5vbi1hc2NpaSBjaGFyYWN0ZXJzIGluIG5hbWUgYXNzZXJ0X2FycmF5X2Vx
dWFsczogQWxsIHVwcGVyY2FzZSBpbnB1dCBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMSBnb3Qg
MAotRkFJTCBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkg
Y2hhcmFjdGVycyBpbiBuYW1lIGFzc2VydF9hcnJheV9lcXVhbHM6IEFsbCB1cHBlcmNhc2UgaW5w
dXQgbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKK1BBU1MgRWxlbWVudCBpbiBIVE1M
IG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAorUEFTUyBF
bGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVy
cyBpbiBuYW1lIAogUEFTUyBnZXRFbGVtZW50c0J5VGFnTmFtZSgnKicpIAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9E
b2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS14aHRtbC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1n
ZXRFbGVtZW50c0J5VGFnTmFtZS14aHRtbC1leHBlY3RlZC50eHQKaW5kZXggMzZhYzI3Ny4uMmMw
MWZkYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUteGh0bWwtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL25vZGVzL0RvY3VtZW50LWdldEVsZW1lbnRzQnlUYWdOYW1lLXhodG1sLWV4cGVjdGVkLnR4
dApAQCAtMiw4ICsyLDggQEAKIFBBU1MgSFRNTCBlbGVtZW50IHdpdGggdXBwZXJjYXNlIHRhZyBu
YW1lIG1hdGNoZXMgaW4gWEhUTUwgZG9jdW1lbnRzIAogUEFTUyBFbGVtZW50IGluIG5vbi1IVE1M
IG5hbWVzcGFjZSwgbm8gcHJlZml4LCBsb3dlcmNhc2UgbmFtZSAKIFBBU1MgRWxlbWVudCBpbiBu
b24tSFRNTCBuYW1lc3BhY2UsIG5vIHByZWZpeCwgdXBwZXJjYXNlIG5hbWUgCi1GQUlMIEVsZW1l
bnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVmaXgsIGxvd2VyY2FzZSBuYW1lIGFzc2VydF9h
cnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAwIGdvdCAxCi1GQUlMIEVsZW1l
bnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVmaXgsIHVwcGVyY2FzZSBuYW1lIGFzc2VydF9h
cnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAwIGdvdCAxCitQQVNTIEVsZW1l
bnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVmaXgsIGxvd2VyY2FzZSBuYW1lIAorUEFTUyBF
bGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgcHJlZml4LCB1cHBlcmNhc2UgbmFtZSAKIFBB
U1MgRWxlbWVudCBpbiBIVE1MIG5hbWVzcGFjZSwgbm8gcHJlZml4LCBub24tYXNjaWkgY2hhcmFj
dGVycyBpbiBuYW1lIAogUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgbm9uLWFz
Y2lpIGNoYXJhY3RlcnMgaW4gbmFtZSAKIFBBU1MgRWxlbWVudCBpbiBIVE1MIG5hbWVzcGFjZSwg
cHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQt
Z2V0RWxlbWVudHNCeVRhZ05hbWUteGh0bWwueGh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5VGFn
TmFtZS14aHRtbC54aHRtbAppbmRleCAyYWU5MDc0Li4zMDlhMjlhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVu
dC1nZXRFbGVtZW50c0J5VGFnTmFtZS14aHRtbC54aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50
c0J5VGFnTmFtZS14aHRtbC54aHRtbApAQCAtNzEsMTcgKzcxLDE3IEBAIHRlc3QoZnVuY3Rpb24o
KSB7CiB0ZXN0KGZ1bmN0aW9uKCkgewogICB2YXIgdCA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
IiwgInRlc3Q6YcOHIikpCiAgIHRoaXMuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7ZG9jdW1lbnQu
Ym9keS5yZW1vdmVDaGlsZCh0KX0pCi0gIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoIkHDhyIpLCBbXSwgIkFsbCB1cHBlcmNhc2UgaW5wdXQiKQotICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhw4ciKSwg
W3RdLCAiQXNjaWkgbG93ZXJjYXNlIGlucHV0IikKLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhkb2N1
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYcOnIiksIFtdLCAiQWxsIGxvd2VyY2FzZSBpbnB1
dCIpCisgIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
IlRFU1Q6QcOHIiksIFtdLCAiQWxsIHVwcGVyY2FzZSBpbnB1dCIpCisgIGFzc2VydF9hcnJheV9l
cXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRlc3Q6YcOHIiksIFt0XSwgIkFz
Y2lpIGxvd2VyY2FzZSBpbnB1dCIpCisgIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoInRlc3Q6YcOnIiksIFtdLCAiQWxsIGxvd2VyY2FzZSBpbnB1dCIp
CiB9LCAiRWxlbWVudCBpbiBIVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFj
dGVycyBpbiBuYW1lIikKIAogdGVzdChmdW5jdGlvbigpIHsKLSAgdmFyIHQgPSBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygidGVzdCIsICJ0ZXN0OkHD
hyIpKQorICB2YXIgdCA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
RWxlbWVudE5TKCJ0ZXN0IiwgIlRFU1Q6QcOHIikpCiAgIHRoaXMuYWRkX2NsZWFudXAoZnVuY3Rp
b24oKSB7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0KX0pCi0gIGFzc2VydF9hcnJheV9lcXVh
bHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIkHDhyIpLCBbdF0sICJBbGwgdXBwZXJj
YXNlIGlucHV0IikKLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgiYcOHIiksIFtdLCAiQXNjaWkgbG93ZXJjYXNlIGlucHV0IikKLSAgYXNzZXJ0X2Fy
cmF5X2VxdWFscyhkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYcOnIiksIFtdLCAiQWxs
IGxvd2VyY2FzZSBpbnB1dCIpCisgIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoIlRFU1Q6QcOHIiksIFt0XSwgIkFsbCB1cHBlcmNhc2UgaW5wdXQiKQor
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZXN0
OmHDhyIpLCBbXSwgIkFzY2lpIGxvd2VyY2FzZSBpbnB1dCIpCisgIGFzc2VydF9hcnJheV9lcXVh
bHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRlc3Q6YcOnIiksIFtdLCAiQWxsIGxv
d2VyY2FzZSBpbnB1dCIpCiB9LCAiRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZp
eCwgbm9uLWFzY2lpIGNoYXJhY3RlcnMgaW4gbmFtZSIpCiAKIHRlc3QoZnVuY3Rpb24oKSB7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9ub2Rlcy9FbGVtZW50LWdldEVsZW1lbnRzQnlUYWdOYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQt
Z2V0RWxlbWVudHNCeVRhZ05hbWUtZXhwZWN0ZWQudHh0CmluZGV4IGVlZDg3NTMuLmNjN2FlNWQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL25vZGVzL0VsZW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0Vs
ZW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUtZXhwZWN0ZWQudHh0CkBAIC0xMiwxMiArMTIsMTIg
QEAgUEFTUyBoYXNPd25Qcm9wZXJ0eSwgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLCBnZXRPd25Q
cm9wZXJ0eU5hbWVzCiBQQVNTIEhUTUwgZWxlbWVudCB3aXRoIHVwcGVyY2FzZSB0YWdOYW1lIG5l
dmVyIG1hdGNoZXMgaW4gSFRNTCBEb2N1bWVudHMgCiBQQVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwg
bmFtZXNwYWNlLCBubyBwcmVmaXgsIGxvd2VyY2FzZSBuYW1lIAogUEFTUyBFbGVtZW50IGluIG5v
bi1IVE1MIG5hbWVzcGFjZSwgbm8gcHJlZml4LCB1cHBlcmNhc2UgbmFtZSAKLUZBSUwgRWxlbWVu
dCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwgbG93ZXJjYXNlIG5hbWUgYXNzZXJ0X2Fy
cmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDAgZ290IDEKLUZBSUwgRWxlbWVu
dCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwgdXBwZXJjYXNlIG5hbWUgYXNzZXJ0X2Fy
cmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDAgZ290IDEKK1BBU1MgRWxlbWVu
dCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwgbG93ZXJjYXNlIG5hbWUgCitQQVNTIEVs
ZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVmaXgsIHVwcGVyY2FzZSBuYW1lIAogUEFT
UyBFbGVtZW50IGluIEhUTUwgbmFtZXNwYWNlLCBubyBwcmVmaXgsIG5vbi1hc2NpaSBjaGFyYWN0
ZXJzIGluIG5hbWUgCiBQQVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBub24tYXNj
aWkgY2hhcmFjdGVycyBpbiBuYW1lIAotRkFJTCBFbGVtZW50IGluIEhUTUwgbmFtZXNwYWNlLCBw
cmVmaXgsIG5vbi1hc2NpaSBjaGFyYWN0ZXJzIGluIG5hbWUgYXNzZXJ0X2FycmF5X2VxdWFsczog
QWxsIHVwcGVyY2FzZSBpbnB1dCBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMSBnb3QgMAotRkFJ
TCBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFj
dGVycyBpbiBuYW1lIGFzc2VydF9hcnJheV9lcXVhbHM6IEFsbCB1cHBlcmNhc2UgaW5wdXQgbGVu
Z3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKK1BBU1MgRWxlbWVudCBpbiBIVE1MIG5hbWVz
cGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAorUEFTUyBFbGVtZW50
IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBu
YW1lIAogUEFTUyBnZXRFbGVtZW50c0J5VGFnTmFtZSgnKicpIAogUEFTUyBNYXRjaGluZyB0aGUg
Y29udGV4dCBvYmplY3QgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL2Nhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvY2FzZS1leHBlY3Rl
ZC50eHQKaW5kZXggZTJiMjg4Mi4uZjQyZWU3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvY2FzZS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9k
ZXMvY2FzZS1leHBlY3RlZC50eHQKQEAgLTIsMjcgKzIsMjcgQEAKIFBBU1MgY3JlYXRlRWxlbWVu
dCBhYmMgCiBQQVNTIHNldEF0dHJpYnV0ZSBhYmMgCiBQQVNTIGdldEF0dHJpYnV0ZSBhYmMgCi1G
QUlMIGdldEVsZW1lbnRzQnlUYWdOYW1lIGE6YWJjIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0
aHMgZGlmZmVyLCBleHBlY3RlZCAwIGdvdCAzCitQQVNTIGdldEVsZW1lbnRzQnlUYWdOYW1lIGE6
YWJjIAogUEFTUyBnZXRFbGVtZW50c0J5VGFnTmFtZSBhYmMgCiBQQVNTIGNyZWF0ZUVsZW1lbnQg
QWJjIAogUEFTUyBzZXRBdHRyaWJ1dGUgQWJjIAogUEFTUyBnZXRBdHRyaWJ1dGUgQWJjIAotRkFJ
TCBnZXRFbGVtZW50c0J5VGFnTmFtZSBhOkFiYyBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhz
IGRpZmZlciwgZXhwZWN0ZWQgMCBnb3QgMworUEFTUyBnZXRFbGVtZW50c0J5VGFnTmFtZSBhOkFi
YyAKIFBBU1MgZ2V0RWxlbWVudHNCeVRhZ05hbWUgQWJjIAogUEFTUyBjcmVhdGVFbGVtZW50IEFC
QyAKIFBBU1Mgc2V0QXR0cmlidXRlIEFCQyAKIFBBU1MgZ2V0QXR0cmlidXRlIEFCQyAKLUZBSUwg
Z2V0RWxlbWVudHNCeVRhZ05hbWUgYTpBQkMgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBk
aWZmZXIsIGV4cGVjdGVkIDAgZ290IDMKK1BBU1MgZ2V0RWxlbWVudHNCeVRhZ05hbWUgYTpBQkMg
CiBQQVNTIGdldEVsZW1lbnRzQnlUYWdOYW1lIEFCQyAKIFBBU1MgY3JlYXRlRWxlbWVudCDDpCAK
IFBBU1Mgc2V0QXR0cmlidXRlIMOkIAogUEFTUyBnZXRBdHRyaWJ1dGUgw6QgCi1GQUlMIGdldEVs
ZW1lbnRzQnlUYWdOYW1lIGE6w6QgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIs
IGV4cGVjdGVkIDAgZ290IDMKK1BBU1MgZ2V0RWxlbWVudHNCeVRhZ05hbWUgYTrDpCAKIFBBU1Mg
Z2V0RWxlbWVudHNCeVRhZ05hbWUgw6QgCiBQQVNTIGNyZWF0ZUVsZW1lbnQgw4QgCiBQQVNTIHNl
dEF0dHJpYnV0ZSDDhCAKIFBBU1MgZ2V0QXR0cmlidXRlIMOEIAotRkFJTCBnZXRFbGVtZW50c0J5
VGFnTmFtZSBhOsOEIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3Rl
ZCAwIGdvdCAzCitQQVNTIGdldEVsZW1lbnRzQnlUYWdOYW1lIGE6w4QgCiBQQVNTIGdldEVsZW1l
bnRzQnlUYWdOYW1lIMOEIAogUEFTUyBjcmVhdGVFbGVtZW50TlMgaHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbCxhYmMsYWJjIAogUEFTUyBzZXRBdHRyaWJ1dGVOUyBodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sLGFiYyxhYmMgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzc0NzAwOC4uNGMwNzI0MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjk0OSw2
ICsyOTQ5LDcgQEAKIAkJODNBNEE5RjkxQ0U3RkQ4MTAwNzA5QjAwIC8qIEpTWE1MRG9jdW1lbnRD
dXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODNBNEE5RjgxQ0U3RkQ3RTAwNzA5QjAwIC8qIEpTWE1MRG9jdW1lbnRDdXN0b20uY3BwICovOyB9
OwogCQk4M0IyRDE3NTFCOEJDRDZBMDBBMDJFNDcgLyogTmF0aXZlTm9kZUZpbHRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNFOTU5RTExQjhCQzIy
QjAwNEQ5Mzg1IC8qIE5hdGl2ZU5vZGVGaWx0ZXIuaCAqLzsgfTsKIAkJODNCOTY4N0IxOUY4QUI4
MzAwNEVGN0FGIC8qIFN0eWxlQnVpbGRlckNvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNCOTY4NzkxOUY4QUI4MzAwNEVGN0FGIC8qIFN0
eWxlQnVpbGRlckNvbnZlcnRlci5oICovOyB9OworCQk4M0JCNUM4ODFENUQ2RjQ1MDA1QTcxRjQg
LyogQWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4M0JCNUM4NzFENUQ2RjNBMDA1QTcxRjQgLyogQWxsRGVzY2Vu
ZGFudHNDb2xsZWN0aW9uLmggKi87IH07CiAJCTgzQzA1QTVBMUE2ODYyMTIwMDdFNURFQSAvKiBT
dHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQzA1QTU4MUE2ODYyMTIwMDdFNURFQSAvKiBTdHls
ZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmNwcCAqLzsgfTsKIAkJODNDMDVBNUIxQTY4NjIx
MjAwN0U1REVBIC8qIFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQzA1QTU5MUE2ODYyMTIwMDdF
NURFQSAvKiBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmggKi87IH07CiAJCTgzQzFE
NDI1MTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQXJjQWJzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0MxRDQxMzE3OEQ1QUI0MDAxNDFFNjgg
LyogU1ZHUGF0aFNlZ0FyY0Ficy5oICovOyB9OwpAQCAtMTAzODAsNiArMTAzODEsNyBAQAogCQk4
MzlBQUZFQjFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdCUkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFdCUkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODNBNEE5RjgxQ0U3RkQ3RTAwNzA5QjAwIC8qIEpTWE1MRG9jdW1lbnRDdXN0
b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNYTUxEb2N1bWVu
dEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzQjk2ODc5MTlGOEFC
ODMwMDRFRjdBRiAvKiBTdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3R5bGVCdWlsZGVyQ29udmVydGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTgzQkI1Qzg3MUQ1RDZGM0EwMDVBNzFGNCAvKiBBbGxEZXNjZW5kYW50c0Nv
bGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWxsRGVzY2VuZGFu
dHNDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzQzA1QTU4MUE2
ODYyMTIwMDdFNURFQSAvKiBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlUHJvcGVydHlTaG9ydGhhbmRG
dW5jdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0MwNUE1OTFBNjg2
MjEyMDA3RTVERUEgLyogU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25z
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzQzFENDEzMTc4RDVBQjQwMDE0MUU2
OCAvKiBTVkdQYXRoU2VnQXJjQWJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNWR1BhdGhTZWdBcmNBYnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNTEy
LDggKzExNTE0LDggQEAKIAkJOUJENEU5MTgxQzQ2MkNGQzAwNTA2NUJDIC8qIEN1c3RvbUVsZW1l
bnRzUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3Vz
dG9tRWxlbWVudHNSZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlC
RDRFOTE5MUM0NjJDRkMwMDUwNjVCQyAvKiBDdXN0b21FbGVtZW50c1JlZ2lzdHJ5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1c3RvbUVsZW1lbnRzUmVnaXN0cnkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJEOEE5NTkxOEJFRkM3NjAwOTg3RTlBIC8qIENv
bGxlY3Rpb25JbmRleENhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENvbGxlY3Rpb25JbmRleENhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJOUJFNjcxMDkxRDVBRUIwNDAwMzQ1NTE0IC8qIEpTQ3VzdG9tRWxlbWVudHNSZWdpc3RyeS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU0N1c3RvbUVsZW1lbnRz
UmVnaXN0cnkuY3BwOyBwYXRoID0gIkpTQ3VzdG9tRWxlbWVudHNSZWdpc3RyeS5jcHAiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5QkU2NzEwQTFENUFFQjA0MDAzNDU1MTQgLyogSlND
dXN0b21FbGVtZW50c1JlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IEpTQ3VzdG9tRWxlbWVudHNSZWdpc3RyeS5oOyBwYXRoID0gIkpTQ3VzdG9tRWxlbWVudHNSZWdp
c3RyeS5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUJFNjcxMDkxRDVBRUIwNDAw
MzQ1NTE0IC8qIEpTQ3VzdG9tRWxlbWVudHNSZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0N1c3RvbUVsZW1lbnRzUmVnaXN0cnkuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5QkU2NzEwQTFENUFFQjA0MDAzNDU1MTQgLyogSlNDdXN0
b21FbGVtZW50c1JlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpT
Q3VzdG9tRWxlbWVudHNSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
QkY5QTg3RTE2NDhERDJGMDAxQzZCMjMgLyogSlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxGb3JtQ29udHJv
bHNDb2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJGOUE4N0Yx
NjQ4REQyRjAwMUM2QjIzIC8qIEpTSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RDYzODAwRjFBRjE2RTE2MDAzMUExNUMg
LyogU3R5bGVTZWxmQWxpZ25tZW50RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTdHlsZVNlbGZBbGlnbm1lbnREYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yMzg5Miw2ICsyMzg5NCw3IEBACiAJCQkJN0NEMEJBMDMxQjhGNzlDOTAwNUNFQkJFIC8q
IEFjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrLmggKi8sCiAJCQkJRTFDNERFNkQwRUE3NUM2NTAw
MjNDQ0Q2IC8qIEFjdGl2ZURPTU9iamVjdC5jcHAgKi8sCiAJCQkJRTFDNERFNjgwRUE3NUMxRTAw
MjNDQ0Q2IC8qIEFjdGl2ZURPTU9iamVjdC5oICovLAorCQkJCTgzQkI1Qzg3MUQ1RDZGM0EwMDVB
NzFGNCAvKiBBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24uaCAqLywKIAkJCQkzMTk4NDdGRTFBMUQ4
MTY3MDBBMTMzMTggLyogQW5pbWF0aW9uRXZlbnQuY3BwICovLAogCQkJCTMxOTg0N0ZGMUExRDgx
NjcwMEExMzMxOCAvKiBBbmltYXRpb25FdmVudC5oICovLAogCQkJCTMxOTg0ODAwMUExRDgxNjcw
MEExMzMxOCAvKiBBbmltYXRpb25FdmVudC5pZGwgKi8sCkBAIC0yNjM5Nyw2ICsyNjQwMCw3IEBA
CiAJCQkJQjY1OEZGQTIxNTIyRUYzQTAwREQ1NTk1IC8qIEpTUmFkaW9Ob2RlTGlzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNjVERjMyMDIwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTUmFuZ2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTdDNEM5NkREMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3Ry
ZWFtLmggaW4gSGVhZGVycyAqLywKKwkJCQk4M0JCNUM4ODFENUQ2RjQ1MDA1QTcxRjQgLyogQWxs
RGVzY2VuZGFudHNDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk2QzRDOTZERjFBRDQ0
ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVh
bURlZmF1bHRSZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMjlERjg2MUJCNUI4MEMwMDMy
MkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNvbnN0cnVjdG9ycy5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQWxsRGVzY2VuZGFudHNDb2xsZWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzBlOTZiMgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24uaApAQCAtMCww
ICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDYWNoZWRI
VE1MQ29sbGVjdGlvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIENvbGxlY3Rpb24g
dGhhdCBtYXRjaGVzIGFsbCBlbGVtZW50IGRlc2NlbmRhbnRzLgorY2xhc3MgQWxsRGVzY2VuZGFu
dHNDb2xsZWN0aW9uIGZpbmFsIDogcHVibGljIENhY2hlZEhUTUxDb2xsZWN0aW9uPEFsbERlc2Nl
bmRhbnRzQ29sbGVjdGlvbiwgQ29sbGVjdGlvblR5cGVUcmFpdHM8QWxsRGVzY2VuZGFudHM+Ojp0
cmF2ZXJzYWxUeXBlPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxBbGxEZXNjZW5kYW50c0Nv
bGxlY3Rpb24+IGNyZWF0ZShDb250YWluZXJOb2RlJiByb290Tm9kZSwgQ29sbGVjdGlvblR5cGUg
dHlwZSkKKyAgICB7CisgICAgICAgIEFTU0VSVF9VTlVTRUQodHlwZSwgdHlwZSA9PSBBbGxEZXNj
ZW5kYW50cyk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFsbERlc2NlbmRhbnRzQ29s
bGVjdGlvbihyb290Tm9kZSkpOworICAgIH0KKworICAgIGJvb2wgZWxlbWVudE1hdGNoZXMoRWxl
bWVudCYpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBB
bGxEZXNjZW5kYW50c0NvbGxlY3Rpb24oQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUpCisgICAgICAg
IDogQ2FjaGVkSFRNTENvbGxlY3Rpb248QWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uLCBDb2xsZWN0
aW9uVHlwZVRyYWl0czxBbGxEZXNjZW5kYW50cz46OnRyYXZlcnNhbFR5cGU+KHJvb3ROb2RlLCBB
bGxEZXNjZW5kYW50cykKKyAgICB7IH0KK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJO
b2RlLmNwcAppbmRleCA1ZTk3ZWU3Li5iZTBjNWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5l
ck5vZGUuY3BwCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZS5oIgog
CiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIkFsbERlc2NlbmRhbnRzQ29s
bGVjdGlvbi5oIgogI2luY2x1ZGUgIkNoaWxkTGlzdE11dGF0aW9uU2NvcGUuaCIKICNpbmNsdWRl
ICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKQEAgLTgyMCwyMyArODIxLDIy
IEBAIFJlZlB0cjxOb2RlTGlzdD4gQ29udGFpbmVyTm9kZTo6cXVlcnlTZWxlY3RvckFsbChjb25z
dCBTdHJpbmcmIHNlbGVjdG9ycywgRXhjZXB0CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVJl
ZjxIVE1MQ29sbGVjdGlvbj4gQ29udGFpbmVyTm9kZTo6Z2V0RWxlbWVudHNCeVRhZ05hbWUoY29u
c3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCitSZWY8SFRNTENvbGxlY3Rpb24+IENvbnRhaW5l
ck5vZGU6OmdldEVsZW1lbnRzQnlUYWdOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgcXVhbGlmaWVk
TmFtZSkKIHsKLSAgICBBU1NFUlQoIWxvY2FsTmFtZS5pc051bGwoKSk7CisgICAgQVNTRVJUKCFx
dWFsaWZpZWROYW1lLmlzTnVsbCgpKTsKKworICAgIGlmIChxdWFsaWZpZWROYW1lID09IHN0YXJB
dG9tKQorICAgICAgICByZXR1cm4gZW5zdXJlUmFyZURhdGEoKS5lbnN1cmVOb2RlTGlzdHMoKS5h
ZGRDYWNoZWRDb2xsZWN0aW9uPEFsbERlc2NlbmRhbnRzQ29sbGVjdGlvbj4oKnRoaXMsIEFsbERl
c2NlbmRhbnRzKTsKIAogICAgIGlmIChkb2N1bWVudCgpLmlzSFRNTERvY3VtZW50KCkpCi0gICAg
ICAgIHJldHVybiBlbnN1cmVSYXJlRGF0YSgpLmVuc3VyZU5vZGVMaXN0cygpLmFkZENhY2hlZENv
bGxlY3Rpb248SFRNTFRhZ0NvbGxlY3Rpb24+KCp0aGlzLCBCeUhUTUxUYWcsIGxvY2FsTmFtZSk7
Ci0gICAgcmV0dXJuIGVuc3VyZVJhcmVEYXRhKCkuZW5zdXJlTm9kZUxpc3RzKCkuYWRkQ2FjaGVk
Q29sbGVjdGlvbjxUYWdDb2xsZWN0aW9uPigqdGhpcywgQnlUYWcsIGxvY2FsTmFtZSk7CisgICAg
ICAgIHJldHVybiBlbnN1cmVSYXJlRGF0YSgpLmVuc3VyZU5vZGVMaXN0cygpLmFkZENhY2hlZENv
bGxlY3Rpb248SFRNTFRhZ0NvbGxlY3Rpb24+KCp0aGlzLCBCeUhUTUxUYWcsIHF1YWxpZmllZE5h
bWUpOworICAgIHJldHVybiBlbnN1cmVSYXJlRGF0YSgpLmVuc3VyZU5vZGVMaXN0cygpLmFkZENh
Y2hlZENvbGxlY3Rpb248VGFnQ29sbGVjdGlvbj4oKnRoaXMsIEJ5VGFnLCBxdWFsaWZpZWROYW1l
KTsKIH0KIAogUmVmPEhUTUxDb2xsZWN0aW9uPiBDb250YWluZXJOb2RlOjpnZXRFbGVtZW50c0J5
VGFnTmFtZU5TKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBBdG9taWNT
dHJpbmcmIGxvY2FsTmFtZSkKIHsKICAgICBBU1NFUlQoIWxvY2FsTmFtZS5pc051bGwoKSk7Ci0K
LSAgICBpZiAobmFtZXNwYWNlVVJJID09IHN0YXJBdG9tKQotICAgICAgICByZXR1cm4gZ2V0RWxl
bWVudHNCeVRhZ05hbWUobG9jYWxOYW1lKTsKLQotICAgIHJldHVybiBlbnN1cmVSYXJlRGF0YSgp
LmVuc3VyZU5vZGVMaXN0cygpLmFkZENhY2hlZENvbGxlY3Rpb25XaXRoUXVhbGlmaWVkTmFtZSgq
dGhpcywgbmFtZXNwYWNlVVJJLmlzRW1wdHkoKSA/IG51bGxBdG9tIDogbmFtZXNwYWNlVVJJLCBs
b2NhbE5hbWUpOworICAgIHJldHVybiBlbnN1cmVSYXJlRGF0YSgpLmVuc3VyZU5vZGVMaXN0cygp
LmFkZENhY2hlZFRhZ0NvbGxlY3Rpb25OUygqdGhpcywgbmFtZXNwYWNlVVJJLmlzRW1wdHkoKSA/
IG51bGxBdG9tIDogbmFtZXNwYWNlVVJJLCBsb2NhbE5hbWUpOwogfQogCiBSZWY8Tm9kZUxpc3Q+
IENvbnRhaW5lck5vZGU6OmdldEVsZW1lbnRzQnlOYW1lKGNvbnN0IFN0cmluZyYgZWxlbWVudE5h
bWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAKaW5kZXggNTZkN2Y1OC4uMWQ0MjEwOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cApAQCAtMTg3Niw3ICsxODc2LDcgQEAgdm9pZCBOb2RlTGlzdHNOb2RlRGF0YTo6aW52YWxpZGF0
ZUNhY2hlcyhjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRyTmFtZSkKICAgICBpZiAoYXR0ck5hbWUp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGZvciAoYXV0byYgdGFnQ29sbGVjdGlvbiA6IG1fdGFn
Q29sbGVjdGlvbkNhY2hlTlMpCisgICAgZm9yIChhdXRvJiB0YWdDb2xsZWN0aW9uIDogbV90YWdD
b2xsZWN0aW9uTlNDYWNoZSkKICAgICAgICAgdGFnQ29sbGVjdGlvbi52YWx1ZS0+aW52YWxpZGF0
ZUNhY2hlRm9yQXR0cmlidXRlKG51bGxwdHIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZVJhcmVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRh
LmgKaW5kZXggMDkyZTU2ZC4uYzEwYzc3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaApA
QCAtMTE0LDcgKzExNCw3IEBAIHB1YmxpYzoKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxzdGQ6OnBh
aXI8dW5zaWduZWQgY2hhciwgQXRvbWljU3RyaW5nPiwgTGl2ZU5vZGVMaXN0KiwgTm9kZUxpc3RD
YWNoZU1hcEVudHJ5SGFzaD4gTm9kZUxpc3RBdG9taWNOYW1lQ2FjaGVNYXA7CiAgICAgdHlwZWRl
ZiBIYXNoTWFwPHN0ZDo6cGFpcjx1bnNpZ25lZCBjaGFyLCBBdG9taWNTdHJpbmc+LCBIVE1MQ29s
bGVjdGlvbiosIE5vZGVMaXN0Q2FjaGVNYXBFbnRyeUhhc2g+IENvbGxlY3Rpb25DYWNoZU1hcDsK
LSAgICB0eXBlZGVmIEhhc2hNYXA8UXVhbGlmaWVkTmFtZSwgVGFnQ29sbGVjdGlvbio+IFRhZ0Nv
bGxlY3Rpb25DYWNoZU5TOworICAgIHR5cGVkZWYgSGFzaE1hcDxRdWFsaWZpZWROYW1lLCBUYWdD
b2xsZWN0aW9uTlMqPiBUYWdDb2xsZWN0aW9uTlNDYWNoZTsKIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQsIHR5cGVuYW1lIENvbnRhaW5lclR5cGU+CiAgICAgQUxXQVlTX0lOTElORSBSZWY8VD4g
YWRkQ2FjaGVXaXRoQXRvbWljTmFtZShDb250YWluZXJUeXBlJiBjb250YWluZXIsIGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZSkKQEAgLTEyOCwxNCArMTI4LDE0IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIGxpc3Q7CiAgICAgfQogCi0gICAgQUxXQVlTX0lOTElORSBSZWY8VGFnQ29sbGVjdGlv
bj4gYWRkQ2FjaGVkQ29sbGVjdGlvbldpdGhRdWFsaWZpZWROYW1lKENvbnRhaW5lck5vZGUmIG5v
ZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBBdG9taWNTdHJpbmcm
IGxvY2FsTmFtZSkKKyAgICBBTFdBWVNfSU5MSU5FIFJlZjxUYWdDb2xsZWN0aW9uTlM+IGFkZENh
Y2hlZFRhZ0NvbGxlY3Rpb25OUyhDb250YWluZXJOb2RlJiBub2RlLCBjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCiAgICAgewog
ICAgICAgICBRdWFsaWZpZWROYW1lIG5hbWUobnVsbEF0b20sIGxvY2FsTmFtZSwgbmFtZXNwYWNl
VVJJKTsKLSAgICAgICAgVGFnQ29sbGVjdGlvbkNhY2hlTlM6OkFkZFJlc3VsdCByZXN1bHQgPSBt
X3RhZ0NvbGxlY3Rpb25DYWNoZU5TLmZhc3RBZGQobmFtZSwgbnVsbHB0cik7CisgICAgICAgIFRh
Z0NvbGxlY3Rpb25OU0NhY2hlOjpBZGRSZXN1bHQgcmVzdWx0ID0gbV90YWdDb2xsZWN0aW9uTlND
YWNoZS5mYXN0QWRkKG5hbWUsIG51bGxwdHIpOwogICAgICAgICBpZiAoIXJlc3VsdC5pc05ld0Vu
dHJ5KQogICAgICAgICAgICAgcmV0dXJuICpyZXN1bHQuaXRlcmF0b3ItPnZhbHVlOwogCi0gICAg
ICAgIGF1dG8gbGlzdCA9IFRhZ0NvbGxlY3Rpb246OmNyZWF0ZShub2RlLCBuYW1lc3BhY2VVUkks
IGxvY2FsTmFtZSk7CisgICAgICAgIGF1dG8gbGlzdCA9IFRhZ0NvbGxlY3Rpb25OUzo6Y3JlYXRl
KG5vZGUsIG5hbWVzcGFjZVVSSSwgbG9jYWxOYW1lKTsKICAgICAgICAgcmVzdWx0Lml0ZXJhdG9y
LT52YWx1ZSA9IGxpc3QucHRyKCk7CiAgICAgICAgIHJldHVybiBsaXN0OwogICAgIH0KQEAgLTE3
OSwxMyArMTc5LDEzIEBAIHB1YmxpYzoKICAgICAgICAgbV9hdG9taWNOYW1lQ2FjaGVzLnJlbW92
ZShuYW1lZE5vZGVMaXN0S2V5PE5vZGVMaXN0VHlwZT4obmFtZSkpOwogICAgIH0KIAotICAgIHZv
aWQgcmVtb3ZlQ2FjaGVkQ29sbGVjdGlvbldpdGhRdWFsaWZpZWROYW1lKEhUTUxDb2xsZWN0aW9u
JiBjb2xsZWN0aW9uLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRv
bWljU3RyaW5nJiBsb2NhbE5hbWUpCisgICAgdm9pZCByZW1vdmVDYWNoZWRUYWdDb2xsZWN0aW9u
TlMoSFRNTENvbGxlY3Rpb24mIGNvbGxlY3Rpb24sIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNw
YWNlVVJJLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSkKICAgICB7CiAgICAgICAgIFF1
YWxpZmllZE5hbWUgbmFtZShudWxsQXRvbSwgbG9jYWxOYW1lLCBuYW1lc3BhY2VVUkkpOwotICAg
ICAgICBBU1NFUlQoJmNvbGxlY3Rpb24gPT0gbV90YWdDb2xsZWN0aW9uQ2FjaGVOUy5nZXQobmFt
ZSkpOworICAgICAgICBBU1NFUlQoJmNvbGxlY3Rpb24gPT0gbV90YWdDb2xsZWN0aW9uTlNDYWNo
ZS5nZXQobmFtZSkpOwogICAgICAgICBpZiAoZGVsZXRlVGhpc0FuZFVwZGF0ZU5vZGVSYXJlRGF0
YUlmQWJvdXRUb1JlbW92ZUxhc3RMaXN0KGNvbGxlY3Rpb24ub3duZXJOb2RlKCkpKQogICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICBtX3RhZ0NvbGxlY3Rpb25DYWNoZU5TLnJlbW92ZShuYW1l
KTsKKyAgICAgICAgbV90YWdDb2xsZWN0aW9uTlNDYWNoZS5yZW1vdmUobmFtZSk7CiAgICAgfQog
CiAgICAgdm9pZCByZW1vdmVDYWNoZWRDb2xsZWN0aW9uKEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0
aW9uLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBzdGFyQXRvbSkKQEAgLTIxNCw3ICsyMTQs
NyBAQCBwdWJsaWM6CiAgICAgICAgIGZvciAoYXV0byYgY2FjaGUgOiBtX2F0b21pY05hbWVDYWNo
ZXMudmFsdWVzKCkpCiAgICAgICAgICAgICBjYWNoZS0+aW52YWxpZGF0ZUNhY2hlKCpvbGREb2N1
bWVudCk7CiAKLSAgICAgICAgZm9yIChhdXRvJiBsaXN0IDogbV90YWdDb2xsZWN0aW9uQ2FjaGVO
Uy52YWx1ZXMoKSkgeworICAgICAgICBmb3IgKGF1dG8mIGxpc3QgOiBtX3RhZ0NvbGxlY3Rpb25O
U0NhY2hlLnZhbHVlcygpKSB7CiAgICAgICAgICAgICBBU1NFUlQoIWxpc3QtPmlzUm9vdGVkQXRE
b2N1bWVudCgpKTsKICAgICAgICAgICAgIGxpc3QtPmludmFsaWRhdGVDYWNoZSgqb2xkRG9jdW1l
bnQpOwogICAgICAgICB9CkBAIC0yNDIsNyArMjQyLDcgQEAgcHJpdmF0ZToKICAgICBFbXB0eU5v
ZGVMaXN0KiBtX2VtcHR5Q2hpbGROb2RlTGlzdDsKIAogICAgIE5vZGVMaXN0QXRvbWljTmFtZUNh
Y2hlTWFwIG1fYXRvbWljTmFtZUNhY2hlczsKLSAgICBUYWdDb2xsZWN0aW9uQ2FjaGVOUyBtX3Rh
Z0NvbGxlY3Rpb25DYWNoZU5TOworICAgIFRhZ0NvbGxlY3Rpb25OU0NhY2hlIG1fdGFnQ29sbGVj
dGlvbk5TQ2FjaGU7CiAgICAgQ29sbGVjdGlvbkNhY2hlTWFwIG1fY2FjaGVkQ29sbGVjdGlvbnM7
CiB9OwogCkBAIC0zMDMsNyArMzAzLDcgQEAgaW5saW5lIGJvb2wgTm9kZUxpc3RzTm9kZURhdGE6
OmRlbGV0ZVRoaXNBbmRVcGRhdGVOb2RlUmFyZURhdGFJZkFib3V0VG9SZW1vdmVMYXMKIHsKICAg
ICBBU1NFUlQob3duZXJOb2RlLm5vZGVMaXN0cygpID09IHRoaXMpOwogICAgIGlmICgobV9jaGls
ZE5vZGVMaXN0ID8gMSA6IDApICsgKG1fZW1wdHlDaGlsZE5vZGVMaXN0ID8gMSA6IDApICsgbV9h
dG9taWNOYW1lQ2FjaGVzLnNpemUoKQotICAgICAgICArIG1fdGFnQ29sbGVjdGlvbkNhY2hlTlMu
c2l6ZSgpICsgbV9jYWNoZWRDb2xsZWN0aW9ucy5zaXplKCkgIT0gMSkKKyAgICAgICAgKyBtX3Rh
Z0NvbGxlY3Rpb25OU0NhY2hlLnNpemUoKSArIG1fY2FjaGVkQ29sbGVjdGlvbnMuc2l6ZSgpICE9
IDEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBvd25lck5vZGUuY2xlYXJOb2RlTGlzdHMo
KTsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UYWdD
b2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UYWdDb2xsZWN0aW9uLmNwcAppbmRl
eCA4MTQwM2I2Li43OTE5NzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGFnQ29s
bGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RhZ0NvbGxlY3Rpb24uY3BwCkBA
IC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtk
ZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtk
ZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5v
cmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNywgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNywgMjAxNC0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CkBAIC0yOCwzMiArMjgsNjAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1UYWdDb2xsZWN0
aW9uOjpUYWdDb2xsZWN0aW9uKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCi0gICAg
OiBDYWNoZWRIVE1MQ29sbGVjdGlvbjxUYWdDb2xsZWN0aW9uLCBDb2xsZWN0aW9uVHlwZVRyYWl0
czxCeVRhZz46OnRyYXZlcnNhbFR5cGU+KHJvb3ROb2RlLCBCeVRhZykKK3N0YXRpYyBpbmxpbmUg
dm9pZCBzcGxpdFF1YWxpZmllZE5hbWUoY29uc3QgU3RyaW5nJiBxdWFsaWZpZWROYW1lLCBBdG9t
aWNTdHJpbmcmIHByZWZpeCwgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCit7CisgICAgc2l6ZV90
IGluZGV4ID0gcXVhbGlmaWVkTmFtZS5maW5kKCc6Jyk7CisgICAgaWYgKGluZGV4ID09IG5vdEZv
dW5kKQorICAgICAgICBsb2NhbE5hbWUgPSBxdWFsaWZpZWROYW1lOworICAgIGVsc2UgeworICAg
ICAgICBwcmVmaXggPSBxdWFsaWZpZWROYW1lLnN1YnN0cmluZygwLCBpbmRleCk7CisgICAgICAg
IGxvY2FsTmFtZSA9IHF1YWxpZmllZE5hbWUuc3Vic3RyaW5nKGluZGV4ICsgMSk7CisgICAgfQor
ICAgIEFTU0VSVChtYWtlUXVhbGlmaWVkTmFtZShwcmVmaXgsIGxvY2FsTmFtZSkgPT0gcXVhbGlm
aWVkTmFtZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgQXRvbWljU3RyaW5nIG1ha2VRdWFsaWZpZWRO
YW1lKGNvbnN0IFN0cmluZyYgcHJlZml4LCBjb25zdCBTdHJpbmcmIGxvY2FsTmFtZSkKK3sKKyAg
ICBpZiAocHJlZml4LmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gbG9jYWxOYW1lOworICAgIHJl
dHVybiBwcmVmaXggKyAnOicgKyBsb2NhbE5hbWU7Cit9CisKK1RhZ0NvbGxlY3Rpb25OUzo6VGFn
Q29sbGVjdGlvbk5TKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCisgICAgOiBDYWNo
ZWRIVE1MQ29sbGVjdGlvbjxUYWdDb2xsZWN0aW9uTlMsIENvbGxlY3Rpb25UeXBlVHJhaXRzPEJ5
VGFnPjo6dHJhdmVyc2FsVHlwZT4ocm9vdE5vZGUsIEJ5VGFnKQogICAgICwgbV9uYW1lc3BhY2VV
UkkobmFtZXNwYWNlVVJJKQogICAgICwgbV9sb2NhbE5hbWUobG9jYWxOYW1lKQogewogICAgIEFT
U0VSVChtX25hbWVzcGFjZVVSSS5pc051bGwoKSB8fCAhbV9uYW1lc3BhY2VVUkkuaXNFbXB0eSgp
KTsKIH0KIAorVGFnQ29sbGVjdGlvbk5TOjp+VGFnQ29sbGVjdGlvbk5TKCkKK3sKKyAgICBvd25l
ck5vZGUoKS5ub2RlTGlzdHMoKS0+cmVtb3ZlQ2FjaGVkVGFnQ29sbGVjdGlvbk5TKCp0aGlzLCBt
X25hbWVzcGFjZVVSSSwgbV9sb2NhbE5hbWUpOworfQorCitUYWdDb2xsZWN0aW9uOjpUYWdDb2xs
ZWN0aW9uKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIHF1YWxp
ZmllZE5hbWUpCisgICAgOiBDYWNoZWRIVE1MQ29sbGVjdGlvbjxUYWdDb2xsZWN0aW9uLCBDb2xs
ZWN0aW9uVHlwZVRyYWl0czxCeVRhZz46OnRyYXZlcnNhbFR5cGU+KHJvb3ROb2RlLCBCeVRhZykK
K3sKKyAgICBzcGxpdFF1YWxpZmllZE5hbWUocXVhbGlmaWVkTmFtZSwgbV9wcmVmaXgsIG1fbG9j
YWxOYW1lKTsKK30KKwogVGFnQ29sbGVjdGlvbjo6flRhZ0NvbGxlY3Rpb24oKQogewotICAgIGlm
IChtX25hbWVzcGFjZVVSSSA9PSBzdGFyQXRvbSkKLSAgICAgICAgb3duZXJOb2RlKCkubm9kZUxp
c3RzKCktPnJlbW92ZUNhY2hlZENvbGxlY3Rpb24odGhpcywgbV9sb2NhbE5hbWUpOwotICAgIGVs
c2UKLSAgICAgICAgb3duZXJOb2RlKCkubm9kZUxpc3RzKCktPnJlbW92ZUNhY2hlZENvbGxlY3Rp
b25XaXRoUXVhbGlmaWVkTmFtZSgqdGhpcywgbV9uYW1lc3BhY2VVUkksIG1fbG9jYWxOYW1lKTsK
KyAgICBvd25lck5vZGUoKS5ub2RlTGlzdHMoKS0+cmVtb3ZlQ2FjaGVkQ29sbGVjdGlvbih0aGlz
LCBtYWtlUXVhbGlmaWVkTmFtZShtX3ByZWZpeCwgbV9sb2NhbE5hbWUpKTsKIH0KIAotSFRNTFRh
Z0NvbGxlY3Rpb246OkhUTUxUYWdDb2xsZWN0aW9uKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBj
b25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSkKK0hUTUxUYWdDb2xsZWN0aW9uOjpIVE1MVGFn
Q29sbGVjdGlvbihDb250YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBx
dWFsaWZpZWROYW1lKQogICAgIDogQ2FjaGVkSFRNTENvbGxlY3Rpb248SFRNTFRhZ0NvbGxlY3Rp
b24sIENvbGxlY3Rpb25UeXBlVHJhaXRzPEJ5SFRNTFRhZz46OnRyYXZlcnNhbFR5cGU+KHJvb3RO
b2RlLCBCeUhUTUxUYWcpCi0gICAgLCBtX2xvY2FsTmFtZShsb2NhbE5hbWUpCi0gICAgLCBtX2xv
d2VyZWRMb2NhbE5hbWUobG9jYWxOYW1lLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCkpCiB7Cisg
ICAgc3BsaXRRdWFsaWZpZWROYW1lKHF1YWxpZmllZE5hbWUsIG1fcHJlZml4LCBtX2xvY2FsTmFt
ZSk7CisgICAgbV9sb3dlcmVkUHJlZml4ID0gbV9wcmVmaXguY29udmVydFRvQVNDSUlMb3dlcmNh
c2UoKTsKKyAgICBtX2xvd2VyZWRMb2NhbE5hbWUgPSBtX2xvY2FsTmFtZS5jb252ZXJ0VG9BU0NJ
SUxvd2VyY2FzZSgpOwogfQogCiBIVE1MVGFnQ29sbGVjdGlvbjo6fkhUTUxUYWdDb2xsZWN0aW9u
KCkKIHsKLSAgICBvd25lck5vZGUoKS5ub2RlTGlzdHMoKS0+cmVtb3ZlQ2FjaGVkQ29sbGVjdGlv
bih0aGlzLCBtX2xvY2FsTmFtZSk7CisgICAgb3duZXJOb2RlKCkubm9kZUxpc3RzKCktPnJlbW92
ZUNhY2hlZENvbGxlY3Rpb24odGhpcywgbWFrZVF1YWxpZmllZE5hbWUobV9wcmVmaXgsIG1fbG9j
YWxOYW1lKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UYWdDb2xsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGFnQ29s
bGVjdGlvbi5oCmluZGV4IDRjZmQzODEuLjQ2ODFjYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9UYWdDb2xsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RhZ0NvbGxl
Y3Rpb24uaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xs
IChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChr
b2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVl
bGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDgsIDIwMTQsIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDgs
IDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgpAQCAtMzIsNjQgKzMyLDc3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vIEhU
TUxDb2xsZWN0aW9uIHRoYXQgbGltaXRzIHRvIGEgcGFydGljdWxhciB0YWcuCiBjbGFzcyBUYWdD
b2xsZWN0aW9uIGZpbmFsIDogcHVibGljIENhY2hlZEhUTUxDb2xsZWN0aW9uPFRhZ0NvbGxlY3Rp
b24sIENvbGxlY3Rpb25UeXBlVHJhaXRzPEJ5VGFnPjo6dHJhdmVyc2FsVHlwZT4gewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8VGFnQ29sbGVjdGlvbj4gY3JlYXRlKENvbnRhaW5lck5vZGUmIHJv
b3ROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3Ry
aW5nJiBsb2NhbE5hbWUpCi0gICAgewotICAgICAgICBBU1NFUlQobmFtZXNwYWNlVVJJICE9IHN0
YXJBdG9tKTsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGFnQ29sbGVjdGlvbihyb290
Tm9kZSwgbmFtZXNwYWNlVVJJLCBsb2NhbE5hbWUpKTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgUmVm
PFRhZ0NvbGxlY3Rpb24+IGNyZWF0ZShDb250YWluZXJOb2RlJiByb290Tm9kZSwgQ29sbGVjdGlv
blR5cGUgdHlwZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCisgICAgc3RhdGljIFJl
ZjxUYWdDb2xsZWN0aW9uPiBjcmVhdGUoQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIENvbGxlY3Rp
b25UeXBlIHR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYgcXVhbGlmaWVkTmFtZSkKICAgICB7CiAg
ICAgICAgIEFTU0VSVF9VTlVTRUQodHlwZSwgdHlwZSA9PSBCeVRhZyk7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFRhZ0NvbGxlY3Rpb24ocm9vdE5vZGUsIHN0YXJBdG9tLCBsb2NhbE5h
bWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGFnQ29sbGVjdGlvbihyb290Tm9k
ZSwgcXVhbGlmaWVkTmFtZSkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgflRhZ0NvbGxlY3Rpb24o
KTsKLQogICAgIGJvb2wgZWxlbWVudE1hdGNoZXMoRWxlbWVudCYpIGNvbnN0OwogCi1wcm90ZWN0
ZWQ6Ci0gICAgVGFnQ29sbGVjdGlvbihDb250YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKTsK
K3ByaXZhdGU6CisgICAgVGFnQ29sbGVjdGlvbihDb250YWluZXJOb2RlJiByb290Tm9kZSwgY29u
c3QgQXRvbWljU3RyaW5nJiBxdWFsaWZpZWROYW1lKTsKIAotICAgIEF0b21pY1N0cmluZyBtX25h
bWVzcGFjZVVSSTsKKyAgICBBdG9taWNTdHJpbmcgbV9wcmVmaXg7CiAgICAgQXRvbWljU3RyaW5n
IG1fbG9jYWxOYW1lOwogfTsKIAotaW5saW5lIGJvb2wgVGFnQ29sbGVjdGlvbjo6ZWxlbWVudE1h
dGNoZXMoRWxlbWVudCYgZWxlbWVudCkgY29uc3QKLXsKLSAgICAvLyBJbXBsZW1lbnRzIGh0dHA6
Ly9kdmNzLnczLm9yZy9oZy9kb21jb3JlL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI2NvbmNl
cHQtZ2V0ZWxlbWVudHNieXRhZ25hbWVucwotICAgIGlmIChtX2xvY2FsTmFtZSAhPSBzdGFyQXRv
bSAmJiBtX2xvY2FsTmFtZSAhPSBlbGVtZW50LmxvY2FsTmFtZSgpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7CitjbGFzcyBUYWdDb2xsZWN0aW9uTlMgZmluYWwgOiBwdWJsaWMgQ2FjaGVkSFRNTENv
bGxlY3Rpb248VGFnQ29sbGVjdGlvbk5TLCBDb2xsZWN0aW9uVHlwZVRyYWl0czxCeVRhZz46OnRy
YXZlcnNhbFR5cGU+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFRhZ0NvbGxlY3Rpb25OUz4g
Y3JlYXRlKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVz
cGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBUYWdDb2xsZWN0aW9uTlMocm9vdE5vZGUsIG5hbWVzcGFjZVVS
SSwgbG9jYWxOYW1lKSk7CisgICAgfQogCi0gICAgcmV0dXJuIG1fbmFtZXNwYWNlVVJJID09IHN0
YXJBdG9tIHx8IG1fbmFtZXNwYWNlVVJJID09IGVsZW1lbnQubmFtZXNwYWNlVVJJKCk7Ci19Cisg
ICAgdmlydHVhbCB+VGFnQ29sbGVjdGlvbk5TKCk7CisgICAgYm9vbCBlbGVtZW50TWF0Y2hlcyhF
bGVtZW50JikgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgVGFnQ29sbGVjdGlvbk5TKENvbnRhaW5l
ck5vZGUmIHJvb3ROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3Qg
QXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpOworCisgICAgQXRvbWljU3RyaW5nIG1fbmFtZXNwYWNl
VVJJOworICAgIEF0b21pY1N0cmluZyBtX2xvY2FsTmFtZTsKK307CiAKIGNsYXNzIEhUTUxUYWdD
b2xsZWN0aW9uIGZpbmFsIDogcHVibGljIENhY2hlZEhUTUxDb2xsZWN0aW9uPEhUTUxUYWdDb2xs
ZWN0aW9uLCBDb2xsZWN0aW9uVHlwZVRyYWl0czxCeUhUTUxUYWc+Ojp0cmF2ZXJzYWxUeXBlPiB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxIVE1MVGFnQ29sbGVjdGlvbj4gY3JlYXRlKENvbnRh
aW5lck5vZGUmIHJvb3ROb2RlLCBDb2xsZWN0aW9uVHlwZSB0eXBlLCBjb25zdCBBdG9taWNTdHJp
bmcmIGxvY2FsTmFtZSkKKyAgICBzdGF0aWMgUmVmPEhUTUxUYWdDb2xsZWN0aW9uPiBjcmVhdGUo
Q29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIENvbGxlY3Rpb25UeXBlIHR5cGUsIGNvbnN0IEF0b21p
Y1N0cmluZyYgcXVhbGlmaWVkTmFtZSkKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQodHlw
ZSwgdHlwZSA9PSBCeUhUTUxUYWcpOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1M
VGFnQ29sbGVjdGlvbihyb290Tm9kZSwgbG9jYWxOYW1lKSk7CisgICAgICAgIEFTU0VSVChxdWFs
aWZpZWROYW1lICE9IHN0YXJBdG9tKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRN
TFRhZ0NvbGxlY3Rpb24ocm9vdE5vZGUsIHF1YWxpZmllZE5hbWUpKTsKICAgICB9CiAKICAgICB2
aXJ0dWFsIH5IVE1MVGFnQ29sbGVjdGlvbigpOwotCiAgICAgYm9vbCBlbGVtZW50TWF0Y2hlcyhF
bGVtZW50JikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgSFRNTFRhZ0NvbGxlY3Rpb24oQ29udGFp
bmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKTsKKyAgICBI
VE1MVGFnQ29sbGVjdGlvbihDb250YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3QgQXRvbWljU3Ry
aW5nJiBxdWFsaWZpZWROYW1lKTsKIAorICAgIEF0b21pY1N0cmluZyBtX3ByZWZpeDsKKyAgICBB
dG9taWNTdHJpbmcgbV9sb3dlcmVkUHJlZml4OwogICAgIEF0b21pY1N0cmluZyBtX2xvY2FsTmFt
ZTsKICAgICBBdG9taWNTdHJpbmcgbV9sb3dlcmVkTG9jYWxOYW1lOwogfTsKIAoraW5saW5lIGJv
b2wgVGFnQ29sbGVjdGlvbjo6ZWxlbWVudE1hdGNoZXMoRWxlbWVudCYgZWxlbWVudCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9sb2NhbE5hbWUgPT0gZWxlbWVudC5sb2NhbE5hbWUoKSAmJiBtX3By
ZWZpeCA9PSBlbGVtZW50LnByZWZpeCgpOworfQorCitpbmxpbmUgYm9vbCBUYWdDb2xsZWN0aW9u
TlM6OmVsZW1lbnRNYXRjaGVzKEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0Cit7CisgICAgaWYgKG1f
bG9jYWxOYW1lICE9IHN0YXJBdG9tICYmIG1fbG9jYWxOYW1lICE9IGVsZW1lbnQubG9jYWxOYW1l
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9uYW1lc3BhY2VVUkkgPT0g
c3RhckF0b20gfHwgbV9uYW1lc3BhY2VVUkkgPT0gZWxlbWVudC5uYW1lc3BhY2VVUkkoKTsKK30K
KwogaW5saW5lIGJvb2wgSFRNTFRhZ0NvbGxlY3Rpb246OmVsZW1lbnRNYXRjaGVzKEVsZW1lbnQm
IGVsZW1lbnQpIGNvbnN0CiB7Ci0gICAgLy8gSW1wbGVtZW50cyBodHRwOi8vZHZjcy53My5vcmcv
aGcvZG9tY29yZS9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNjb25jZXB0LWdldGVsZW1lbnRz
Ynl0YWduYW1lCi0gICAgaWYgKG1fbG9jYWxOYW1lID09IHN0YXJBdG9tKQotICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSA9IGVsZW1lbnQuaXNI
VE1MRWxlbWVudCgpID8gbV9sb3dlcmVkTG9jYWxOYW1lIDogbV9sb2NhbE5hbWU7Ci0gICAgcmV0
dXJuIGxvY2FsTmFtZSA9PSBlbGVtZW50LmxvY2FsTmFtZSgpOworICAgIGlmIChlbGVtZW50Lmlz
SFRNTEVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIG1fbG93ZXJlZExvY2FsTmFtZSA9PSBlbGVt
ZW50LmxvY2FsTmFtZSgpICYmIG1fbG93ZXJlZFByZWZpeCA9PSBlbGVtZW50LnByZWZpeCgpOwor
ICAgIHJldHVybiBtX2xvY2FsTmFtZSA9PSBlbGVtZW50LmxvY2FsTmFtZSgpICYmIG1fcHJlZml4
ID09IGVsZW1lbnQucHJlZml4KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sbGVjdGlvblR5cGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQ29sbGVjdGlvblR5cGUuaAppbmRleCA4MzFkNjc2OS4uZDc2YTkwMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xsZWN0aW9uVHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ29sbGVjdGlvblR5cGUuaApAQCAtNTQsNiArNTQsNyBAQCBlbnVtIENvbGxl
Y3Rpb25UeXBlIHsKICAgICBCeUNsYXNzLAogICAgIEJ5VGFnLAogICAgIEJ5SFRNTFRhZywKKyAg
ICBBbGxEZXNjZW5kYW50cwogfTsKIAogZW51bSBjbGFzcyBDb2xsZWN0aW9uVHJhdmVyc2FsVHlw
ZSB7IERlc2NlbmRhbnRzLCBDaGlsZHJlbk9ubHksIEN1c3RvbUZvcndhcmRPbmx5IH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0dlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0dlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5jcHAK
aW5kZXggMjc1MmU0YS4uODMwNTJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9H
ZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
R2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmNwcApAQCAtNzUsNiArNzUsNyBAQCBib29sIEdl
bmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbjx0cmF2ZXJzYWxUeXBlPjo6ZWxlbWVudE1hdGNoZXMo
RWxlbWVudCYgZWxlbWVudAogICAgIGNhc2UgQnlDbGFzczoKICAgICBjYXNlIEJ5VGFnOgogICAg
IGNhc2UgQnlIVE1MVGFnOgorICAgIGNhc2UgQWxsRGVzY2VuZGFudHM6CiAgICAgY2FzZSBEb2NB
bGw6CiAgICAgY2FzZSBEb2N1bWVudE5hbWVkSXRlbXM6CiAgICAgY2FzZSBGb3JtQ29udHJvbHM6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwCmluZGV4IDkyOWY0ZTYuLjhjMTcz
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwCkBAIC00Niw2ICs0Niw3
IEBAIGlubGluZSBhdXRvIEhUTUxDb2xsZWN0aW9uOjpyb290VHlwZUZyb21Db2xsZWN0aW9uVHlw
ZShDb2xsZWN0aW9uVHlwZSB0eXBlKSAtPiBSCiAgICAgY2FzZSBEb2N1bWVudE5hbWVkSXRlbXM6
CiAgICAgY2FzZSBGb3JtQ29udHJvbHM6CiAgICAgICAgIHJldHVybiBIVE1MQ29sbGVjdGlvbjo6
SXNSb290ZWRBdERvY3VtZW50OworICAgIGNhc2UgQWxsRGVzY2VuZGFudHM6CiAgICAgY2FzZSBC
eUNsYXNzOgogICAgIGNhc2UgQnlUYWc6CiAgICAgY2FzZSBCeUhUTUxUYWc6CkBAIC02OSw2ICs3
MCw3IEBAIHN0YXRpYyBOb2RlTGlzdEludmFsaWRhdGlvblR5cGUgaW52YWxpZGF0aW9uVHlwZUV4
Y2x1ZGluZ0lkQW5kTmFtZUF0dHJpYnV0ZXMoQ29sCiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAg
Y2FzZSBCeVRhZzoKICAgICBjYXNlIEJ5SFRNTFRhZzoKKyAgICBjYXNlIEFsbERlc2NlbmRhbnRz
OgogICAgIGNhc2UgRG9jSW1hZ2VzOgogICAgIGNhc2UgRG9jRW1iZWRzOgogICAgIGNhc2UgRG9j
Rm9ybXM6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285896</attachid>
            <date>2016-08-11 22:29:41 -0700</date>
            <delta_ts>2016-08-11 22:31:26 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>160682_getElementsByTagName_WIP.patch</filename>
            <type>text/plain</type>
            <size>34630</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUv
MDEwLnhtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUvMDEw
LnhtbAppbmRleCA0NGY4NDc0Li41Y2E3ODg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9nZXRFbGVtZW50c0J5Q2xhc3NOYW1lLzAxMC54bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vZ2V0RWxlbWVudHNCeUNsYXNzTmFtZS8wMTAueG1sCkBAIC03LDYgKzcsNiBAQAogICA8
cCBpZD0iciI+RkFJTCAoc2NyaXB0IGRpZCBub3QgcnVuKTwvcD4gIAogICA8eCBjbGFzcz0iYSIv
PgogICA8Zzp4IGNsYXNzPSJhIi8+Ci0gIDxzY3JpcHQ+IHQoZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eUNsYXNzTmFtZSgiYSIpLCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgieCIpKSA8L3Nj
cmlwdD4KKyAgPHNjcmlwdD4gdChkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJhIiks
IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lTlMoIioiLCAieCIpKSA8L3NjcmlwdD4KICA8
L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nZXRFbGVt
ZW50c0J5Q2xhc3NOYW1lLzAxMS54bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nZXRFbGVtZW50
c0J5Q2xhc3NOYW1lLzAxMS54bWwKaW5kZXggNjc5MGI1YS4uODI3YTJmMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vZ2V0RWxlbWVudHNCeUNsYXNzTmFtZS8wMTEueG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUvMDExLnhtbApAQCAt
MTIsNyArMTIsNyBAQAogICA8dDp4IGNsYXNzPSJhIiB0OmNsYXNzPSJhIiBoOmNsYXNzPSJhIiBn
OmNsYXNzPSJhIi8+CiAgIDxzY3JpcHQ+CiAgICB2YXIgY29sbGVjdGlvbiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlDbGFzc05hbWUoImEiKSwKLSAgICAgICB0ZXN0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoIngiKQorICAgICAgIHRlc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZU5TKCIqIiwgIngiKQogICAgdChjb2xsZWN0aW9uLCBbdGVzdFswXSwgdGVzdFsxXV0p
CiAgIDwvc2NyaXB0PgogIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWdldEVsZW1lbnRzQnlU
YWdOYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWdldEVsZW1lbnRzQnlUYWdOYW1lLWV4cGVjdGVk
LnR4dAppbmRleCA3NjhmNzgyLi43OTBiNzVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50
c0J5VGFnTmFtZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUt
ZXhwZWN0ZWQudHh0CkBAIC0xMiwxMSArMTIsMTEgQEAgUEFTUyBoYXNPd25Qcm9wZXJ0eSwgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yLCBnZXRPd25Qcm9wZXJ0eU5hbWVzCiBQQVNTIEhUTUwgZWxl
bWVudCB3aXRoIHVwcGVyY2FzZSB0YWdOYW1lIG5ldmVyIG1hdGNoZXMgaW4gSFRNTCBEb2N1bWVu
dHMgCiBQQVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBubyBwcmVmaXgsIGxvd2Vy
Y2FzZSBuYW1lIAogUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgbm8gcHJlZml4
LCB1cHBlcmNhc2UgbmFtZSAKLUZBSUwgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHBy
ZWZpeCwgbG93ZXJjYXNlIG5hbWUgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIs
IGV4cGVjdGVkIDAgZ290IDEKLUZBSUwgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHBy
ZWZpeCwgdXBwZXJjYXNlIG5hbWUgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIs
IGV4cGVjdGVkIDAgZ290IDEKK1BBU1MgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHBy
ZWZpeCwgbG93ZXJjYXNlIG5hbWUgCitQQVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNl
LCBwcmVmaXgsIHVwcGVyY2FzZSBuYW1lIAogUEFTUyBFbGVtZW50IGluIEhUTUwgbmFtZXNwYWNl
LCBubyBwcmVmaXgsIG5vbi1hc2NpaSBjaGFyYWN0ZXJzIGluIG5hbWUgCiBQQVNTIEVsZW1lbnQg
aW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAotRkFJ
TCBFbGVtZW50IGluIEhUTUwgbmFtZXNwYWNlLCBwcmVmaXgsIG5vbi1hc2NpaSBjaGFyYWN0ZXJz
IGluIG5hbWUgYXNzZXJ0X2FycmF5X2VxdWFsczogQWxsIHVwcGVyY2FzZSBpbnB1dCBsZW5ndGhz
IGRpZmZlciwgZXhwZWN0ZWQgMSBnb3QgMAotRkFJTCBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVz
cGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIGFzc2VydF9hcnJheV9l
cXVhbHM6IEFsbCB1cHBlcmNhc2UgaW5wdXQgbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290
IDAKK1BBU1MgRWxlbWVudCBpbiBIVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hh
cmFjdGVycyBpbiBuYW1lIAorUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgcHJl
Zml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAogUEFTUyBnZXRFbGVtZW50c0J5VGFn
TmFtZSgnKicpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS14aHRt
bC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS14aHRtbC1leHBlY3Rl
ZC50eHQKaW5kZXggMzZhYzI3Ny4uMmMwMWZkYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtZ2V0RWxlbWVu
dHNCeVRhZ05hbWUteGh0bWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWdldEVsZW1lbnRzQnlU
YWdOYW1lLXhodG1sLWV4cGVjdGVkLnR4dApAQCAtMiw4ICsyLDggQEAKIFBBU1MgSFRNTCBlbGVt
ZW50IHdpdGggdXBwZXJjYXNlIHRhZyBuYW1lIG1hdGNoZXMgaW4gWEhUTUwgZG9jdW1lbnRzIAog
UEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgbm8gcHJlZml4LCBsb3dlcmNhc2Ug
bmFtZSAKIFBBU1MgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIG5vIHByZWZpeCwgdXBw
ZXJjYXNlIG5hbWUgCi1GQUlMIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVmaXgs
IGxvd2VyY2FzZSBuYW1lIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBl
Y3RlZCAwIGdvdCAxCi1GQUlMIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVmaXgs
IHVwcGVyY2FzZSBuYW1lIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBl
Y3RlZCAwIGdvdCAxCitQQVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVmaXgs
IGxvd2VyY2FzZSBuYW1lIAorUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgcHJl
Zml4LCB1cHBlcmNhc2UgbmFtZSAKIFBBU1MgRWxlbWVudCBpbiBIVE1MIG5hbWVzcGFjZSwgbm8g
cHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAogUEFTUyBFbGVtZW50IGluIG5v
bi1IVE1MIG5hbWVzcGFjZSwgbm9uLWFzY2lpIGNoYXJhY3RlcnMgaW4gbmFtZSAKIFBBU1MgRWxl
bWVudCBpbiBIVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBu
YW1lIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUteGh0bWwueGh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9E
b2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS14aHRtbC54aHRtbAppbmRleCAyYWU5MDc0Li4z
MDlhMjlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS14aHRtbC54aHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9u
b2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS14aHRtbC54aHRtbApAQCAtNzEsMTcg
KzcxLDE3IEBAIHRlc3QoZnVuY3Rpb24oKSB7CiB0ZXN0KGZ1bmN0aW9uKCkgewogICB2YXIgdCA9
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwgInRlc3Q6YcOHIikpCiAgIHRoaXMuYWRkX2NsZWFu
dXAoZnVuY3Rpb24oKSB7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0KX0pCi0gIGFzc2VydF9h
cnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIkHDhyIpLCBbXSwgIkFs
bCB1cHBlcmNhc2UgaW5wdXQiKQotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCJhw4ciKSwgW3RdLCAiQXNjaWkgbG93ZXJjYXNlIGlucHV0IikKLSAg
YXNzZXJ0X2FycmF5X2VxdWFscyhkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYcOnIiks
IFtdLCAiQWxsIGxvd2VyY2FzZSBpbnB1dCIpCisgIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRFU1Q6QcOHIiksIFtdLCAiQWxsIHVwcGVyY2FzZSBp
bnB1dCIpCisgIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoInRlc3Q6YcOHIiksIFt0XSwgIkFzY2lpIGxvd2VyY2FzZSBpbnB1dCIpCisgIGFzc2VydF9h
cnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRlc3Q6YcOnIiksIFtd
LCAiQWxsIGxvd2VyY2FzZSBpbnB1dCIpCiB9LCAiRWxlbWVudCBpbiBIVE1MIG5hbWVzcGFjZSwg
cHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIikKIAogdGVzdChmdW5jdGlvbigp
IHsKLSAgdmFyIHQgPSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnROUygidGVzdCIsICJ0ZXN0OkHDhyIpKQorICB2YXIgdCA9IGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJ0ZXN0IiwgIlRFU1Q6QcOHIikpCiAg
IHRoaXMuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0
KX0pCi0gIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
IkHDhyIpLCBbdF0sICJBbGwgdXBwZXJjYXNlIGlucHV0IikKLSAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYcOHIiksIFtdLCAiQXNjaWkgbG93ZXJj
YXNlIGlucHV0IikKLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgiYcOnIiksIFtdLCAiQWxsIGxvd2VyY2FzZSBpbnB1dCIpCisgIGFzc2VydF9hcnJh
eV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRFU1Q6QcOHIiksIFt0XSwg
IkFsbCB1cHBlcmNhc2UgaW5wdXQiKQorICBhc3NlcnRfYXJyYXlfZXF1YWxzKGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZXN0OmHDhyIpLCBbXSwgIkFzY2lpIGxvd2VyY2FzZSBpbnB1
dCIpCisgIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
InRlc3Q6YcOnIiksIFtdLCAiQWxsIGxvd2VyY2FzZSBpbnB1dCIpCiB9LCAiRWxlbWVudCBpbiBu
b24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwgbm9uLWFzY2lpIGNoYXJhY3RlcnMgaW4gbmFtZSIp
CiAKIHRlc3QoZnVuY3Rpb24oKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWdldEVsZW1lbnRzQnlUYWdO
YW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUtZXhwZWN0ZWQudHh0
CmluZGV4IGVlZDg3NTMuLmNjN2FlNWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtZ2V0RWxlbWVudHNCeVRh
Z05hbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUtZXhwZWN0
ZWQudHh0CkBAIC0xMiwxMiArMTIsMTIgQEAgUEFTUyBoYXNPd25Qcm9wZXJ0eSwgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yLCBnZXRPd25Qcm9wZXJ0eU5hbWVzCiBQQVNTIEhUTUwgZWxlbWVudCB3
aXRoIHVwcGVyY2FzZSB0YWdOYW1lIG5ldmVyIG1hdGNoZXMgaW4gSFRNTCBEb2N1bWVudHMgCiBQ
QVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBubyBwcmVmaXgsIGxvd2VyY2FzZSBu
YW1lIAogUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgbm8gcHJlZml4LCB1cHBl
cmNhc2UgbmFtZSAKLUZBSUwgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwg
bG93ZXJjYXNlIG5hbWUgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVj
dGVkIDAgZ290IDEKLUZBSUwgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwg
dXBwZXJjYXNlIG5hbWUgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVj
dGVkIDAgZ290IDEKK1BBU1MgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwg
bG93ZXJjYXNlIG5hbWUgCitQQVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVm
aXgsIHVwcGVyY2FzZSBuYW1lIAogUEFTUyBFbGVtZW50IGluIEhUTUwgbmFtZXNwYWNlLCBubyBw
cmVmaXgsIG5vbi1hc2NpaSBjaGFyYWN0ZXJzIGluIG5hbWUgCiBQQVNTIEVsZW1lbnQgaW4gbm9u
LUhUTUwgbmFtZXNwYWNlLCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAotRkFJTCBFbGVt
ZW50IGluIEhUTUwgbmFtZXNwYWNlLCBwcmVmaXgsIG5vbi1hc2NpaSBjaGFyYWN0ZXJzIGluIG5h
bWUgYXNzZXJ0X2FycmF5X2VxdWFsczogQWxsIHVwcGVyY2FzZSBpbnB1dCBsZW5ndGhzIGRpZmZl
ciwgZXhwZWN0ZWQgMSBnb3QgMAotRkFJTCBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwg
cHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIGFzc2VydF9hcnJheV9lcXVhbHM6
IEFsbCB1cHBlcmNhc2UgaW5wdXQgbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKK1BB
U1MgRWxlbWVudCBpbiBIVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVy
cyBpbiBuYW1lIAorUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBu
b24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAogUEFTUyBnZXRFbGVtZW50c0J5VGFnTmFtZSgn
KicpIAogUEFTUyBNYXRjaGluZyB0aGUgY29udGV4dCBvYmplY3QgCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL2Nhc2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vbm9kZXMvY2FzZS1leHBlY3RlZC50eHQKaW5kZXggZTJiMjg4Mi4uZjQyZWU3MCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
bm9kZXMvY2FzZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvY2FzZS1leHBlY3RlZC50eHQKQEAgLTIsMjcgKzIs
MjcgQEAKIFBBU1MgY3JlYXRlRWxlbWVudCBhYmMgCiBQQVNTIHNldEF0dHJpYnV0ZSBhYmMgCiBQ
QVNTIGdldEF0dHJpYnV0ZSBhYmMgCi1GQUlMIGdldEVsZW1lbnRzQnlUYWdOYW1lIGE6YWJjIGFz
c2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAwIGdvdCAzCitQQVNT
IGdldEVsZW1lbnRzQnlUYWdOYW1lIGE6YWJjIAogUEFTUyBnZXRFbGVtZW50c0J5VGFnTmFtZSBh
YmMgCiBQQVNTIGNyZWF0ZUVsZW1lbnQgQWJjIAogUEFTUyBzZXRBdHRyaWJ1dGUgQWJjIAogUEFT
UyBnZXRBdHRyaWJ1dGUgQWJjIAotRkFJTCBnZXRFbGVtZW50c0J5VGFnTmFtZSBhOkFiYyBhc3Nl
cnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMCBnb3QgMworUEFTUyBn
ZXRFbGVtZW50c0J5VGFnTmFtZSBhOkFiYyAKIFBBU1MgZ2V0RWxlbWVudHNCeVRhZ05hbWUgQWJj
IAogUEFTUyBjcmVhdGVFbGVtZW50IEFCQyAKIFBBU1Mgc2V0QXR0cmlidXRlIEFCQyAKIFBBU1Mg
Z2V0QXR0cmlidXRlIEFCQyAKLUZBSUwgZ2V0RWxlbWVudHNCeVRhZ05hbWUgYTpBQkMgYXNzZXJ0
X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDAgZ290IDMKK1BBU1MgZ2V0
RWxlbWVudHNCeVRhZ05hbWUgYTpBQkMgCiBQQVNTIGdldEVsZW1lbnRzQnlUYWdOYW1lIEFCQyAK
IFBBU1MgY3JlYXRlRWxlbWVudCDDpCAKIFBBU1Mgc2V0QXR0cmlidXRlIMOkIAogUEFTUyBnZXRB
dHRyaWJ1dGUgw6QgCi1GQUlMIGdldEVsZW1lbnRzQnlUYWdOYW1lIGE6w6QgYXNzZXJ0X2FycmF5
X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDAgZ290IDMKK1BBU1MgZ2V0RWxlbWVu
dHNCeVRhZ05hbWUgYTrDpCAKIFBBU1MgZ2V0RWxlbWVudHNCeVRhZ05hbWUgw6QgCiBQQVNTIGNy
ZWF0ZUVsZW1lbnQgw4QgCiBQQVNTIHNldEF0dHJpYnV0ZSDDhCAKIFBBU1MgZ2V0QXR0cmlidXRl
IMOEIAotRkFJTCBnZXRFbGVtZW50c0J5VGFnTmFtZSBhOsOEIGFzc2VydF9hcnJheV9lcXVhbHM6
IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAwIGdvdCAzCitQQVNTIGdldEVsZW1lbnRzQnlUYWdO
YW1lIGE6w4QgCiBQQVNTIGdldEVsZW1lbnRzQnlUYWdOYW1lIMOEIAogUEFTUyBjcmVhdGVFbGVt
ZW50TlMgaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCxhYmMsYWJjIAogUEFTUyBzZXRBdHRy
aWJ1dGVOUyBodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sLGFiYyxhYmMgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzc0NzAw
OC4uNGMwNzI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjk0OSw2ICsyOTQ5LDcgQEAKIAkJODNBNEE5RjkxQ0U3RkQ4MTAw
NzA5QjAwIC8qIEpTWE1MRG9jdW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNBNEE5RjgxQ0U3RkQ3RTAwNzA5QjAwIC8qIEpTWE1M
RG9jdW1lbnRDdXN0b20uY3BwICovOyB9OwogCQk4M0IyRDE3NTFCOEJDRDZBMDBBMDJFNDcgLyog
TmF0aXZlTm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNFOTU5RTExQjhCQzIyQjAwNEQ5Mzg1IC8qIE5hdGl2ZU5vZGVGaWx0ZXIuaCAq
LzsgfTsKIAkJODNCOTY4N0IxOUY4QUI4MzAwNEVGN0FGIC8qIFN0eWxlQnVpbGRlckNvbnZlcnRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNCOTY4
NzkxOUY4QUI4MzAwNEVGN0FGIC8qIFN0eWxlQnVpbGRlckNvbnZlcnRlci5oICovOyB9OworCQk4
M0JCNUM4ODFENUQ2RjQ1MDA1QTcxRjQgLyogQWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0JCNUM4NzFENUQ2
RjNBMDA1QTcxRjQgLyogQWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uLmggKi87IH07CiAJCTgzQzA1
QTVBMUE2ODYyMTIwMDdFNURFQSAvKiBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQzA1QTU4
MUE2ODYyMTIwMDdFNURFQSAvKiBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmNwcCAq
LzsgfTsKIAkJODNDMDVBNUIxQTY4NjIxMjAwN0U1REVBIC8qIFN0eWxlUHJvcGVydHlTaG9ydGhh
bmRGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzQzA1QTU5MUE2ODYyMTIwMDdFNURFQSAvKiBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVu
Y3Rpb25zLmggKi87IH07CiAJCTgzQzFENDI1MTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2Vn
QXJjQWJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0MxRDQxMzE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0FyY0Ficy5oICovOyB9OwpAQCAt
MTAzODAsNiArMTAzODEsNyBAQAogCQk4MzlBQUZFQjFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdC
UkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFdCUkVsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNBNEE5RjgxQ0U3RkQ3RTAwNzA5
QjAwIC8qIEpTWE1MRG9jdW1lbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNYTUxEb2N1bWVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzQjk2ODc5MTlGOEFCODMwMDRFRjdBRiAvKiBTdHlsZUJ1aWxkZXJDb252ZXJ0
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVCdWlsZGVyQ29udmVy
dGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzQkI1Qzg3MUQ1RDZGM0EwMDVB
NzFGNCAvKiBBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzQzA1QTU4MUE2ODYyMTIwMDdFNURFQSAvKiBTdHlsZVByb3BlcnR5U2hv
cnRoYW5kRnVuY3Rpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4M0MwNUE1OTFBNjg2MjEyMDA3RTVERUEgLyogU3R5bGVQcm9wZXJ0eVNob3J0
aGFuZEZ1bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZVBy
b3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTgzQzFENDEzMTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQXJjQWJzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BhdGhTZWdBcmNBYnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTExNTEyLDggKzExNTE0LDggQEAKIAkJOUJENEU5MTgxQzQ2MkNG
QzAwNTA2NUJDIC8qIEN1c3RvbUVsZW1lbnRzUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ3VzdG9tRWxlbWVudHNSZWdpc3RyeS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCRDRFOTE5MUM0NjJDRkMwMDUwNjVCQyAvKiBDdXN0b21F
bGVtZW50c1JlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1c3Rv
bUVsZW1lbnRzUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJEOEE5
NTkxOEJFRkM3NjAwOTg3RTlBIC8qIENvbGxlY3Rpb25JbmRleENhY2hlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbGxlY3Rpb25JbmRleENhY2hlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOUJFNjcxMDkxRDVBRUIwNDAwMzQ1NTE0IC8qIEpT
Q3VzdG9tRWxlbWVudHNSZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBKU0N1c3RvbUVsZW1lbnRzUmVnaXN0cnkuY3BwOyBwYXRoID0gIkpTQ3VzdG9tRWxl
bWVudHNSZWdpc3RyeS5jcHAiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5QkU2NzEw
QTFENUFFQjA0MDAzNDU1MTQgLyogSlNDdXN0b21FbGVtZW50c1JlZ2lzdHJ5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTQ3VzdG9tRWxlbWVudHNSZWdpc3RyeS5oOyBwYXRo
ID0gIkpTQ3VzdG9tRWxlbWVudHNSZWdpc3RyeS5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOUJFNjcxMDkxRDVBRUIwNDAwMzQ1NTE0IC8qIEpTQ3VzdG9tRWxlbWVudHNSZWdpc3Ry
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0N1c3RvbUVsZW1l
bnRzUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QkU2NzEwQTFE
NUFFQjA0MDAzNDU1MTQgLyogSlNDdXN0b21FbGVtZW50c1JlZ2lzdHJ5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ3VzdG9tRWxlbWVudHNSZWdpc3RyeS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5QkY5QTg3RTE2NDhERDJGMDAxQzZCMjMgLyogSlNIVE1M
Rm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOUJGOUE4N0YxNjQ4REQyRjAwMUM2QjIzIC8qIEpTSFRNTEZvcm1Db250
cm9sc0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1M
Rm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
RDYzODAwRjFBRjE2RTE2MDAzMUExNUMgLyogU3R5bGVTZWxmQWxpZ25tZW50RGF0YS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZVNlbGZBbGlnbm1lbnREYXRhLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzg5Miw2ICsyMzg5NCw3IEBACiAJCQkJN0NE
MEJBMDMxQjhGNzlDOTAwNUNFQkJFIC8qIEFjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrLmggKi8s
CiAJCQkJRTFDNERFNkQwRUE3NUM2NTAwMjNDQ0Q2IC8qIEFjdGl2ZURPTU9iamVjdC5jcHAgKi8s
CiAJCQkJRTFDNERFNjgwRUE3NUMxRTAwMjNDQ0Q2IC8qIEFjdGl2ZURPTU9iamVjdC5oICovLAor
CQkJCTgzQkI1Qzg3MUQ1RDZGM0EwMDVBNzFGNCAvKiBBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24u
aCAqLywKIAkJCQkzMTk4NDdGRTFBMUQ4MTY3MDBBMTMzMTggLyogQW5pbWF0aW9uRXZlbnQuY3Bw
ICovLAogCQkJCTMxOTg0N0ZGMUExRDgxNjcwMEExMzMxOCAvKiBBbmltYXRpb25FdmVudC5oICov
LAogCQkJCTMxOTg0ODAwMUExRDgxNjcwMEExMzMxOCAvKiBBbmltYXRpb25FdmVudC5pZGwgKi8s
CkBAIC0yNjM5Nyw2ICsyNjQwMCw3IEBACiAJCQkJQjY1OEZGQTIxNTIyRUYzQTAwREQ1NTk1IC8q
IEpTUmFkaW9Ob2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVERjMyMDIwOUQxQ0M2MDAw
MEJFMzI1IC8qIEpTUmFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNEM5NkREMUFENDQ4MzUw
MDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggaW4gSGVhZGVycyAqLywKKwkJCQk4M0JCNUM4
ODFENUQ2RjQ1MDA1QTcxRjQgLyogQWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURl
ZmF1bHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzRDOTZERjFBRDQ0ODM1MDAz
NjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxMjlERjg2MUJCNUI4MEMwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNv
bnN0cnVjdG9ycy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWxsRGVz
Y2VuZGFudHNDb2xsZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MzBlOTZiMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BbGxEZXNjZW5k
YW50c0NvbGxlY3Rpb24uaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJDYWNoZWRIVE1MQ29sbGVjdGlvbi5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKKy8vIENvbGxlY3Rpb24gdGhhdCBtYXRjaGVzIGFsbCBlbGVtZW50IGRlc2NlbmRh
bnRzLgorY2xhc3MgQWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uIGZpbmFsIDogcHVibGljIENhY2hl
ZEhUTUxDb2xsZWN0aW9uPEFsbERlc2NlbmRhbnRzQ29sbGVjdGlvbiwgQ29sbGVjdGlvblR5cGVU
cmFpdHM8QWxsRGVzY2VuZGFudHM+Ojp0cmF2ZXJzYWxUeXBlPiB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24+IGNyZWF0ZShDb250YWluZXJOb2RlJiBy
b290Tm9kZSwgQ29sbGVjdGlvblR5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIEFTU0VSVF9VTlVT
RUQodHlwZSwgdHlwZSA9PSBBbGxEZXNjZW5kYW50cyk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEFsbERlc2NlbmRhbnRzQ29sbGVjdGlvbihyb290Tm9kZSkpOworICAgIH0KKworICAg
IGJvb2wgZWxlbWVudE1hdGNoZXMoRWxlbWVudCYpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKwor
cHJpdmF0ZToKKyAgICBleHBsaWNpdCBBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24oQ29udGFpbmVy
Tm9kZSYgcm9vdE5vZGUpCisgICAgICAgIDogQ2FjaGVkSFRNTENvbGxlY3Rpb248QWxsRGVzY2Vu
ZGFudHNDb2xsZWN0aW9uLCBDb2xsZWN0aW9uVHlwZVRyYWl0czxBbGxEZXNjZW5kYW50cz46OnRy
YXZlcnNhbFR5cGU+KHJvb3ROb2RlLCBBbGxEZXNjZW5kYW50cykKKyAgICB7IH0KK307CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCA1ZTk3ZWU3Li5iZTBjNWQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5j
bHVkZSAiQ29udGFpbmVyTm9kZS5oIgogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2lu
Y2x1ZGUgIkFsbERlc2NlbmRhbnRzQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkNoaWxkTGlzdE11
dGF0aW9uU2NvcGUuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGll
bnQuaCIKQEAgLTgyMCwyMyArODIxLDIyIEBAIFJlZlB0cjxOb2RlTGlzdD4gQ29udGFpbmVyTm9k
ZTo6cXVlcnlTZWxlY3RvckFsbChjb25zdCBTdHJpbmcmIHNlbGVjdG9ycywgRXhjZXB0CiAgICAg
cmV0dXJuIG51bGxwdHI7CiB9CiAKLVJlZjxIVE1MQ29sbGVjdGlvbj4gQ29udGFpbmVyTm9kZTo6
Z2V0RWxlbWVudHNCeVRhZ05hbWUoY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCitSZWY8
SFRNTENvbGxlY3Rpb24+IENvbnRhaW5lck5vZGU6OmdldEVsZW1lbnRzQnlUYWdOYW1lKGNvbnN0
IEF0b21pY1N0cmluZyYgcXVhbGlmaWVkTmFtZSkKIHsKLSAgICBBU1NFUlQoIWxvY2FsTmFtZS5p
c051bGwoKSk7CisgICAgQVNTRVJUKCFxdWFsaWZpZWROYW1lLmlzTnVsbCgpKTsKKworICAgIGlm
IChxdWFsaWZpZWROYW1lID09IHN0YXJBdG9tKQorICAgICAgICByZXR1cm4gZW5zdXJlUmFyZURh
dGEoKS5lbnN1cmVOb2RlTGlzdHMoKS5hZGRDYWNoZWRDb2xsZWN0aW9uPEFsbERlc2NlbmRhbnRz
Q29sbGVjdGlvbj4oKnRoaXMsIEFsbERlc2NlbmRhbnRzKTsKIAogICAgIGlmIChkb2N1bWVudCgp
LmlzSFRNTERvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBlbnN1cmVSYXJlRGF0YSgpLmVuc3Vy
ZU5vZGVMaXN0cygpLmFkZENhY2hlZENvbGxlY3Rpb248SFRNTFRhZ0NvbGxlY3Rpb24+KCp0aGlz
LCBCeUhUTUxUYWcsIGxvY2FsTmFtZSk7Ci0gICAgcmV0dXJuIGVuc3VyZVJhcmVEYXRhKCkuZW5z
dXJlTm9kZUxpc3RzKCkuYWRkQ2FjaGVkQ29sbGVjdGlvbjxUYWdDb2xsZWN0aW9uPigqdGhpcywg
QnlUYWcsIGxvY2FsTmFtZSk7CisgICAgICAgIHJldHVybiBlbnN1cmVSYXJlRGF0YSgpLmVuc3Vy
ZU5vZGVMaXN0cygpLmFkZENhY2hlZENvbGxlY3Rpb248SFRNTFRhZ0NvbGxlY3Rpb24+KCp0aGlz
LCBCeUhUTUxUYWcsIHF1YWxpZmllZE5hbWUpOworICAgIHJldHVybiBlbnN1cmVSYXJlRGF0YSgp
LmVuc3VyZU5vZGVMaXN0cygpLmFkZENhY2hlZENvbGxlY3Rpb248VGFnQ29sbGVjdGlvbj4oKnRo
aXMsIEJ5VGFnLCBxdWFsaWZpZWROYW1lKTsKIH0KIAogUmVmPEhUTUxDb2xsZWN0aW9uPiBDb250
YWluZXJOb2RlOjpnZXRFbGVtZW50c0J5VGFnTmFtZU5TKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZXNwYWNlVVJJLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSkKIHsKICAgICBBU1NFUlQo
IWxvY2FsTmFtZS5pc051bGwoKSk7Ci0KLSAgICBpZiAobmFtZXNwYWNlVVJJID09IHN0YXJBdG9t
KQotICAgICAgICByZXR1cm4gZ2V0RWxlbWVudHNCeVRhZ05hbWUobG9jYWxOYW1lKTsKLQotICAg
IHJldHVybiBlbnN1cmVSYXJlRGF0YSgpLmVuc3VyZU5vZGVMaXN0cygpLmFkZENhY2hlZENvbGxl
Y3Rpb25XaXRoUXVhbGlmaWVkTmFtZSgqdGhpcywgbmFtZXNwYWNlVVJJLmlzRW1wdHkoKSA/IG51
bGxBdG9tIDogbmFtZXNwYWNlVVJJLCBsb2NhbE5hbWUpOworICAgIHJldHVybiBlbnN1cmVSYXJl
RGF0YSgpLmVuc3VyZU5vZGVMaXN0cygpLmFkZENhY2hlZFRhZ0NvbGxlY3Rpb25OUygqdGhpcywg
bmFtZXNwYWNlVVJJLmlzRW1wdHkoKSA/IG51bGxBdG9tIDogbmFtZXNwYWNlVVJJLCBsb2NhbE5h
bWUpOwogfQogCiBSZWY8Tm9kZUxpc3Q+IENvbnRhaW5lck5vZGU6OmdldEVsZW1lbnRzQnlOYW1l
KGNvbnN0IFN0cmluZyYgZWxlbWVudE5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggNTZkN2Y1OC4u
MWQ0MjEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMTg3Niw3ICsxODc2LDcgQEAgdm9pZCBOb2Rl
TGlzdHNOb2RlRGF0YTo6aW52YWxpZGF0ZUNhY2hlcyhjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRy
TmFtZSkKICAgICBpZiAoYXR0ck5hbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGZvciAoYXV0
byYgdGFnQ29sbGVjdGlvbiA6IG1fdGFnQ29sbGVjdGlvbkNhY2hlTlMpCisgICAgZm9yIChhdXRv
JiB0YWdDb2xsZWN0aW9uIDogbV90YWdDb2xsZWN0aW9uTlNDYWNoZSkKICAgICAgICAgdGFnQ29s
bGVjdGlvbi52YWx1ZS0+aW52YWxpZGF0ZUNhY2hlRm9yQXR0cmlidXRlKG51bGxwdHIpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKaW5kZXggMDkyZTU2ZC4uYzEwYzc3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmFyZURhdGEuaApAQCAtMTE0LDcgKzExNCw3IEBAIHB1YmxpYzoKIAogICAg
IHR5cGVkZWYgSGFzaE1hcDxzdGQ6OnBhaXI8dW5zaWduZWQgY2hhciwgQXRvbWljU3RyaW5nPiwg
TGl2ZU5vZGVMaXN0KiwgTm9kZUxpc3RDYWNoZU1hcEVudHJ5SGFzaD4gTm9kZUxpc3RBdG9taWNO
YW1lQ2FjaGVNYXA7CiAgICAgdHlwZWRlZiBIYXNoTWFwPHN0ZDo6cGFpcjx1bnNpZ25lZCBjaGFy
LCBBdG9taWNTdHJpbmc+LCBIVE1MQ29sbGVjdGlvbiosIE5vZGVMaXN0Q2FjaGVNYXBFbnRyeUhh
c2g+IENvbGxlY3Rpb25DYWNoZU1hcDsKLSAgICB0eXBlZGVmIEhhc2hNYXA8UXVhbGlmaWVkTmFt
ZSwgVGFnQ29sbGVjdGlvbio+IFRhZ0NvbGxlY3Rpb25DYWNoZU5TOworICAgIHR5cGVkZWYgSGFz
aE1hcDxRdWFsaWZpZWROYW1lLCBUYWdDb2xsZWN0aW9uTlMqPiBUYWdDb2xsZWN0aW9uTlNDYWNo
ZTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIENvbnRhaW5lclR5cGU+CiAg
ICAgQUxXQVlTX0lOTElORSBSZWY8VD4gYWRkQ2FjaGVXaXRoQXRvbWljTmFtZShDb250YWluZXJU
eXBlJiBjb250YWluZXIsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKQEAgLTEyOCwxNCArMTI4
LDE0IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGxpc3Q7CiAgICAgfQogCi0gICAgQUxXQVlT
X0lOTElORSBSZWY8VGFnQ29sbGVjdGlvbj4gYWRkQ2FjaGVkQ29sbGVjdGlvbldpdGhRdWFsaWZp
ZWROYW1lKENvbnRhaW5lck5vZGUmIG5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNl
VVJJLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSkKKyAgICBBTFdBWVNfSU5MSU5FIFJl
ZjxUYWdDb2xsZWN0aW9uTlM+IGFkZENhY2hlZFRhZ0NvbGxlY3Rpb25OUyhDb250YWluZXJOb2Rl
JiBub2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3Ry
aW5nJiBsb2NhbE5hbWUpCiAgICAgewogICAgICAgICBRdWFsaWZpZWROYW1lIG5hbWUobnVsbEF0
b20sIGxvY2FsTmFtZSwgbmFtZXNwYWNlVVJJKTsKLSAgICAgICAgVGFnQ29sbGVjdGlvbkNhY2hl
TlM6OkFkZFJlc3VsdCByZXN1bHQgPSBtX3RhZ0NvbGxlY3Rpb25DYWNoZU5TLmZhc3RBZGQobmFt
ZSwgbnVsbHB0cik7CisgICAgICAgIFRhZ0NvbGxlY3Rpb25OU0NhY2hlOjpBZGRSZXN1bHQgcmVz
dWx0ID0gbV90YWdDb2xsZWN0aW9uTlNDYWNoZS5mYXN0QWRkKG5hbWUsIG51bGxwdHIpOwogICAg
ICAgICBpZiAoIXJlc3VsdC5pc05ld0VudHJ5KQogICAgICAgICAgICAgcmV0dXJuICpyZXN1bHQu
aXRlcmF0b3ItPnZhbHVlOwogCi0gICAgICAgIGF1dG8gbGlzdCA9IFRhZ0NvbGxlY3Rpb246OmNy
ZWF0ZShub2RlLCBuYW1lc3BhY2VVUkksIGxvY2FsTmFtZSk7CisgICAgICAgIGF1dG8gbGlzdCA9
IFRhZ0NvbGxlY3Rpb25OUzo6Y3JlYXRlKG5vZGUsIG5hbWVzcGFjZVVSSSwgbG9jYWxOYW1lKTsK
ICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IGxpc3QucHRyKCk7CiAgICAgICAgIHJl
dHVybiBsaXN0OwogICAgIH0KQEAgLTE3OSwxMyArMTc5LDEzIEBAIHB1YmxpYzoKICAgICAgICAg
bV9hdG9taWNOYW1lQ2FjaGVzLnJlbW92ZShuYW1lZE5vZGVMaXN0S2V5PE5vZGVMaXN0VHlwZT4o
bmFtZSkpOwogICAgIH0KIAotICAgIHZvaWQgcmVtb3ZlQ2FjaGVkQ29sbGVjdGlvbldpdGhRdWFs
aWZpZWROYW1lKEhUTUxDb2xsZWN0aW9uJiBjb2xsZWN0aW9uLCBjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCisgICAgdm9pZCBy
ZW1vdmVDYWNoZWRUYWdDb2xsZWN0aW9uTlMoSFRNTENvbGxlY3Rpb24mIGNvbGxlY3Rpb24sIGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2Fs
TmFtZSkKICAgICB7CiAgICAgICAgIFF1YWxpZmllZE5hbWUgbmFtZShudWxsQXRvbSwgbG9jYWxO
YW1lLCBuYW1lc3BhY2VVUkkpOwotICAgICAgICBBU1NFUlQoJmNvbGxlY3Rpb24gPT0gbV90YWdD
b2xsZWN0aW9uQ2FjaGVOUy5nZXQobmFtZSkpOworICAgICAgICBBU1NFUlQoJmNvbGxlY3Rpb24g
PT0gbV90YWdDb2xsZWN0aW9uTlNDYWNoZS5nZXQobmFtZSkpOwogICAgICAgICBpZiAoZGVsZXRl
VGhpc0FuZFVwZGF0ZU5vZGVSYXJlRGF0YUlmQWJvdXRUb1JlbW92ZUxhc3RMaXN0KGNvbGxlY3Rp
b24ub3duZXJOb2RlKCkpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX3RhZ0NvbGxl
Y3Rpb25DYWNoZU5TLnJlbW92ZShuYW1lKTsKKyAgICAgICAgbV90YWdDb2xsZWN0aW9uTlNDYWNo
ZS5yZW1vdmUobmFtZSk7CiAgICAgfQogCiAgICAgdm9pZCByZW1vdmVDYWNoZWRDb2xsZWN0aW9u
KEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBz
dGFyQXRvbSkKQEAgLTIxNCw3ICsyMTQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGZvciAoYXV0byYg
Y2FjaGUgOiBtX2F0b21pY05hbWVDYWNoZXMudmFsdWVzKCkpCiAgICAgICAgICAgICBjYWNoZS0+
aW52YWxpZGF0ZUNhY2hlKCpvbGREb2N1bWVudCk7CiAKLSAgICAgICAgZm9yIChhdXRvJiBsaXN0
IDogbV90YWdDb2xsZWN0aW9uQ2FjaGVOUy52YWx1ZXMoKSkgeworICAgICAgICBmb3IgKGF1dG8m
IGxpc3QgOiBtX3RhZ0NvbGxlY3Rpb25OU0NhY2hlLnZhbHVlcygpKSB7CiAgICAgICAgICAgICBB
U1NFUlQoIWxpc3QtPmlzUm9vdGVkQXREb2N1bWVudCgpKTsKICAgICAgICAgICAgIGxpc3QtPmlu
dmFsaWRhdGVDYWNoZSgqb2xkRG9jdW1lbnQpOwogICAgICAgICB9CkBAIC0yNDIsNyArMjQyLDcg
QEAgcHJpdmF0ZToKICAgICBFbXB0eU5vZGVMaXN0KiBtX2VtcHR5Q2hpbGROb2RlTGlzdDsKIAog
ICAgIE5vZGVMaXN0QXRvbWljTmFtZUNhY2hlTWFwIG1fYXRvbWljTmFtZUNhY2hlczsKLSAgICBU
YWdDb2xsZWN0aW9uQ2FjaGVOUyBtX3RhZ0NvbGxlY3Rpb25DYWNoZU5TOworICAgIFRhZ0NvbGxl
Y3Rpb25OU0NhY2hlIG1fdGFnQ29sbGVjdGlvbk5TQ2FjaGU7CiAgICAgQ29sbGVjdGlvbkNhY2hl
TWFwIG1fY2FjaGVkQ29sbGVjdGlvbnM7CiB9OwogCkBAIC0zMDMsNyArMzAzLDcgQEAgaW5saW5l
IGJvb2wgTm9kZUxpc3RzTm9kZURhdGE6OmRlbGV0ZVRoaXNBbmRVcGRhdGVOb2RlUmFyZURhdGFJ
ZkFib3V0VG9SZW1vdmVMYXMKIHsKICAgICBBU1NFUlQob3duZXJOb2RlLm5vZGVMaXN0cygpID09
IHRoaXMpOwogICAgIGlmICgobV9jaGlsZE5vZGVMaXN0ID8gMSA6IDApICsgKG1fZW1wdHlDaGls
ZE5vZGVMaXN0ID8gMSA6IDApICsgbV9hdG9taWNOYW1lQ2FjaGVzLnNpemUoKQotICAgICAgICAr
IG1fdGFnQ29sbGVjdGlvbkNhY2hlTlMuc2l6ZSgpICsgbV9jYWNoZWRDb2xsZWN0aW9ucy5zaXpl
KCkgIT0gMSkKKyAgICAgICAgKyBtX3RhZ0NvbGxlY3Rpb25OU0NhY2hlLnNpemUoKSArIG1fY2Fj
aGVkQ29sbGVjdGlvbnMuc2l6ZSgpICE9IDEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBv
d25lck5vZGUuY2xlYXJOb2RlTGlzdHMoKTsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UYWdDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UYWdDb2xsZWN0aW9uLmNwcAppbmRleCA4MTQwM2I2Li43OTE5NzdjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vVGFnQ29sbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1RhZ0NvbGxlY3Rpb24uY3BwCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAx
OTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50
dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDEgRGly
ayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNywg
MjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAwNywgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yOCwzMiArMjgsNjAgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1UYWdDb2xsZWN0aW9uOjpUYWdDb2xsZWN0aW9uKENvbnRhaW5lck5vZGUm
IHJvb3ROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWlj
U3RyaW5nJiBsb2NhbE5hbWUpCi0gICAgOiBDYWNoZWRIVE1MQ29sbGVjdGlvbjxUYWdDb2xsZWN0
aW9uLCBDb2xsZWN0aW9uVHlwZVRyYWl0czxCeVRhZz46OnRyYXZlcnNhbFR5cGU+KHJvb3ROb2Rl
LCBCeVRhZykKK3N0YXRpYyBpbmxpbmUgdm9pZCBzcGxpdFF1YWxpZmllZE5hbWUoY29uc3QgU3Ry
aW5nJiBxdWFsaWZpZWROYW1lLCBBdG9taWNTdHJpbmcmIHByZWZpeCwgQXRvbWljU3RyaW5nJiBs
b2NhbE5hbWUpCit7CisgICAgc2l6ZV90IGluZGV4ID0gcXVhbGlmaWVkTmFtZS5maW5kKCc6Jyk7
CisgICAgaWYgKGluZGV4ID09IG5vdEZvdW5kKQorICAgICAgICBsb2NhbE5hbWUgPSBxdWFsaWZp
ZWROYW1lOworICAgIGVsc2UgeworICAgICAgICBwcmVmaXggPSBxdWFsaWZpZWROYW1lLnN1YnN0
cmluZygwLCBpbmRleCk7CisgICAgICAgIGxvY2FsTmFtZSA9IHF1YWxpZmllZE5hbWUuc3Vic3Ry
aW5nKGluZGV4ICsgMSk7CisgICAgfQorICAgIEFTU0VSVChtYWtlUXVhbGlmaWVkTmFtZShwcmVm
aXgsIGxvY2FsTmFtZSkgPT0gcXVhbGlmaWVkTmFtZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgQXRv
bWljU3RyaW5nIG1ha2VRdWFsaWZpZWROYW1lKGNvbnN0IFN0cmluZyYgcHJlZml4LCBjb25zdCBT
dHJpbmcmIGxvY2FsTmFtZSkKK3sKKyAgICBpZiAocHJlZml4LmlzTnVsbCgpKQorICAgICAgICBy
ZXR1cm4gbG9jYWxOYW1lOworICAgIHJldHVybiBwcmVmaXggKyAnOicgKyBsb2NhbE5hbWU7Cit9
CisKK1RhZ0NvbGxlY3Rpb25OUzo6VGFnQ29sbGVjdGlvbk5TKENvbnRhaW5lck5vZGUmIHJvb3RO
b2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5n
JiBsb2NhbE5hbWUpCisgICAgOiBDYWNoZWRIVE1MQ29sbGVjdGlvbjxUYWdDb2xsZWN0aW9uTlMs
IENvbGxlY3Rpb25UeXBlVHJhaXRzPEJ5VGFnPjo6dHJhdmVyc2FsVHlwZT4ocm9vdE5vZGUsIEJ5
VGFnKQogICAgICwgbV9uYW1lc3BhY2VVUkkobmFtZXNwYWNlVVJJKQogICAgICwgbV9sb2NhbE5h
bWUobG9jYWxOYW1lKQogewogICAgIEFTU0VSVChtX25hbWVzcGFjZVVSSS5pc051bGwoKSB8fCAh
bV9uYW1lc3BhY2VVUkkuaXNFbXB0eSgpKTsKIH0KIAorVGFnQ29sbGVjdGlvbk5TOjp+VGFnQ29s
bGVjdGlvbk5TKCkKK3sKKyAgICBvd25lck5vZGUoKS5ub2RlTGlzdHMoKS0+cmVtb3ZlQ2FjaGVk
VGFnQ29sbGVjdGlvbk5TKCp0aGlzLCBtX25hbWVzcGFjZVVSSSwgbV9sb2NhbE5hbWUpOworfQor
CitUYWdDb2xsZWN0aW9uOjpUYWdDb2xsZWN0aW9uKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBj
b25zdCBBdG9taWNTdHJpbmcmIHF1YWxpZmllZE5hbWUpCisgICAgOiBDYWNoZWRIVE1MQ29sbGVj
dGlvbjxUYWdDb2xsZWN0aW9uLCBDb2xsZWN0aW9uVHlwZVRyYWl0czxCeVRhZz46OnRyYXZlcnNh
bFR5cGU+KHJvb3ROb2RlLCBCeVRhZykKK3sKKyAgICBzcGxpdFF1YWxpZmllZE5hbWUocXVhbGlm
aWVkTmFtZSwgbV9wcmVmaXgsIG1fbG9jYWxOYW1lKTsKK30KKwogVGFnQ29sbGVjdGlvbjo6flRh
Z0NvbGxlY3Rpb24oKQogewotICAgIGlmIChtX25hbWVzcGFjZVVSSSA9PSBzdGFyQXRvbSkKLSAg
ICAgICAgb3duZXJOb2RlKCkubm9kZUxpc3RzKCktPnJlbW92ZUNhY2hlZENvbGxlY3Rpb24odGhp
cywgbV9sb2NhbE5hbWUpOwotICAgIGVsc2UKLSAgICAgICAgb3duZXJOb2RlKCkubm9kZUxpc3Rz
KCktPnJlbW92ZUNhY2hlZENvbGxlY3Rpb25XaXRoUXVhbGlmaWVkTmFtZSgqdGhpcywgbV9uYW1l
c3BhY2VVUkksIG1fbG9jYWxOYW1lKTsKKyAgICBvd25lck5vZGUoKS5ub2RlTGlzdHMoKS0+cmVt
b3ZlQ2FjaGVkQ29sbGVjdGlvbih0aGlzLCBtYWtlUXVhbGlmaWVkTmFtZShtX3ByZWZpeCwgbV9s
b2NhbE5hbWUpKTsKIH0KIAotSFRNTFRhZ0NvbGxlY3Rpb246OkhUTUxUYWdDb2xsZWN0aW9uKENv
bnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSkKK0hU
TUxUYWdDb2xsZWN0aW9uOjpIVE1MVGFnQ29sbGVjdGlvbihDb250YWluZXJOb2RlJiByb290Tm9k
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBxdWFsaWZpZWROYW1lKQogICAgIDogQ2FjaGVkSFRNTENv
bGxlY3Rpb248SFRNTFRhZ0NvbGxlY3Rpb24sIENvbGxlY3Rpb25UeXBlVHJhaXRzPEJ5SFRNTFRh
Zz46OnRyYXZlcnNhbFR5cGU+KHJvb3ROb2RlLCBCeUhUTUxUYWcpCi0gICAgLCBtX2xvY2FsTmFt
ZShsb2NhbE5hbWUpCi0gICAgLCBtX2xvd2VyZWRMb2NhbE5hbWUobG9jYWxOYW1lLmNvbnZlcnRU
b0FTQ0lJTG93ZXJjYXNlKCkpCiB7CisgICAgc3BsaXRRdWFsaWZpZWROYW1lKHF1YWxpZmllZE5h
bWUsIG1fcHJlZml4LCBtX2xvY2FsTmFtZSk7CisgICAgbV9sb3dlcmVkUHJlZml4ID0gbV9wcmVm
aXguY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKKyAgICBtX2xvd2VyZWRMb2NhbE5hbWUgPSBt
X2xvY2FsTmFtZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwogfQogCiBIVE1MVGFnQ29sbGVj
dGlvbjo6fkhUTUxUYWdDb2xsZWN0aW9uKCkKIHsKLSAgICBvd25lck5vZGUoKS5ub2RlTGlzdHMo
KS0+cmVtb3ZlQ2FjaGVkQ29sbGVjdGlvbih0aGlzLCBtX2xvY2FsTmFtZSk7CisgICAgb3duZXJO
b2RlKCkubm9kZUxpc3RzKCktPnJlbW92ZUNhY2hlZENvbGxlY3Rpb24odGhpcywgbWFrZVF1YWxp
ZmllZE5hbWUobV9wcmVmaXgsIG1fbG9jYWxOYW1lKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UYWdDb2xsZWN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vVGFnQ29sbGVjdGlvbi5oCmluZGV4IDRjZmQzODEuLjQ2ODFjYzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UYWdDb2xsZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1RhZ0NvbGxlY3Rpb24uaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHly
aWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChD
KSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChD
KSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAy
MDA0LTIwMDgsIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA0LTIwMDgsIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzIsNjQgKzMyLDc3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIC8vIEhUTUxDb2xsZWN0aW9uIHRoYXQgbGltaXRzIHRvIGEgcGFy
dGljdWxhciB0YWcuCiBjbGFzcyBUYWdDb2xsZWN0aW9uIGZpbmFsIDogcHVibGljIENhY2hlZEhU
TUxDb2xsZWN0aW9uPFRhZ0NvbGxlY3Rpb24sIENvbGxlY3Rpb25UeXBlVHJhaXRzPEJ5VGFnPjo6
dHJhdmVyc2FsVHlwZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VGFnQ29sbGVjdGlvbj4g
Y3JlYXRlKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVz
cGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCi0gICAgewotICAgICAgICBB
U1NFUlQobmFtZXNwYWNlVVJJICE9IHN0YXJBdG9tKTsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVGFnQ29sbGVjdGlvbihyb290Tm9kZSwgbmFtZXNwYWNlVVJJLCBsb2NhbE5hbWUpKTsK
LSAgICB9Ci0KLSAgICBzdGF0aWMgUmVmPFRhZ0NvbGxlY3Rpb24+IGNyZWF0ZShDb250YWluZXJO
b2RlJiByb290Tm9kZSwgQ29sbGVjdGlvblR5cGUgdHlwZSwgY29uc3QgQXRvbWljU3RyaW5nJiBs
b2NhbE5hbWUpCisgICAgc3RhdGljIFJlZjxUYWdDb2xsZWN0aW9uPiBjcmVhdGUoQ29udGFpbmVy
Tm9kZSYgcm9vdE5vZGUsIENvbGxlY3Rpb25UeXBlIHR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYg
cXVhbGlmaWVkTmFtZSkKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQodHlwZSwgdHlwZSA9
PSBCeVRhZyk7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRhZ0NvbGxlY3Rpb24ocm9v
dE5vZGUsIHN0YXJBdG9tLCBsb2NhbE5hbWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgVGFnQ29sbGVjdGlvbihyb290Tm9kZSwgcXVhbGlmaWVkTmFtZSkpOwogICAgIH0KIAogICAg
IHZpcnR1YWwgflRhZ0NvbGxlY3Rpb24oKTsKLQogICAgIGJvb2wgZWxlbWVudE1hdGNoZXMoRWxl
bWVudCYpIGNvbnN0OwogCi1wcm90ZWN0ZWQ6Ci0gICAgVGFnQ29sbGVjdGlvbihDb250YWluZXJO
b2RlJiByb290Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0
b21pY1N0cmluZyYgbG9jYWxOYW1lKTsKK3ByaXZhdGU6CisgICAgVGFnQ29sbGVjdGlvbihDb250
YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBxdWFsaWZpZWROYW1lKTsK
IAotICAgIEF0b21pY1N0cmluZyBtX25hbWVzcGFjZVVSSTsKKyAgICBBdG9taWNTdHJpbmcgbV9w
cmVmaXg7CiAgICAgQXRvbWljU3RyaW5nIG1fbG9jYWxOYW1lOwogfTsKIAotaW5saW5lIGJvb2wg
VGFnQ29sbGVjdGlvbjo6ZWxlbWVudE1hdGNoZXMoRWxlbWVudCYgZWxlbWVudCkgY29uc3QKLXsK
LSAgICAvLyBJbXBsZW1lbnRzIGh0dHA6Ly9kdmNzLnczLm9yZy9oZy9kb21jb3JlL3Jhdy1maWxl
L3RpcC9PdmVydmlldy5odG1sI2NvbmNlcHQtZ2V0ZWxlbWVudHNieXRhZ25hbWVucwotICAgIGlm
IChtX2xvY2FsTmFtZSAhPSBzdGFyQXRvbSAmJiBtX2xvY2FsTmFtZSAhPSBlbGVtZW50LmxvY2Fs
TmFtZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7CitjbGFzcyBUYWdDb2xsZWN0aW9uTlMgZmlu
YWwgOiBwdWJsaWMgQ2FjaGVkSFRNTENvbGxlY3Rpb248VGFnQ29sbGVjdGlvbk5TLCBDb2xsZWN0
aW9uVHlwZVRyYWl0czxCeVRhZz46OnRyYXZlcnNhbFR5cGU+IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFRhZ0NvbGxlY3Rpb25OUz4gY3JlYXRlKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2Nh
bE5hbWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUYWdDb2xsZWN0aW9u
TlMocm9vdE5vZGUsIG5hbWVzcGFjZVVSSSwgbG9jYWxOYW1lKSk7CisgICAgfQogCi0gICAgcmV0
dXJuIG1fbmFtZXNwYWNlVVJJID09IHN0YXJBdG9tIHx8IG1fbmFtZXNwYWNlVVJJID09IGVsZW1l
bnQubmFtZXNwYWNlVVJJKCk7Ci19CisgICAgdmlydHVhbCB+VGFnQ29sbGVjdGlvbk5TKCk7Cisg
ICAgYm9vbCBlbGVtZW50TWF0Y2hlcyhFbGVtZW50JikgY29uc3Q7CisKK3ByaXZhdGU6CisgICAg
VGFnQ29sbGVjdGlvbk5TKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpOworCisgICAg
QXRvbWljU3RyaW5nIG1fbmFtZXNwYWNlVVJJOworICAgIEF0b21pY1N0cmluZyBtX2xvY2FsTmFt
ZTsKK307CiAKIGNsYXNzIEhUTUxUYWdDb2xsZWN0aW9uIGZpbmFsIDogcHVibGljIENhY2hlZEhU
TUxDb2xsZWN0aW9uPEhUTUxUYWdDb2xsZWN0aW9uLCBDb2xsZWN0aW9uVHlwZVRyYWl0czxCeUhU
TUxUYWc+Ojp0cmF2ZXJzYWxUeXBlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxIVE1MVGFn
Q29sbGVjdGlvbj4gY3JlYXRlKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBDb2xsZWN0aW9uVHlw
ZSB0eXBlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSkKKyAgICBzdGF0aWMgUmVmPEhU
TUxUYWdDb2xsZWN0aW9uPiBjcmVhdGUoQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIENvbGxlY3Rp
b25UeXBlIHR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYgcXVhbGlmaWVkTmFtZSkKICAgICB7CiAg
ICAgICAgIEFTU0VSVF9VTlVTRUQodHlwZSwgdHlwZSA9PSBCeUhUTUxUYWcpOwotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MVGFnQ29sbGVjdGlvbihyb290Tm9kZSwgbG9jYWxOYW1l
KSk7CisgICAgICAgIEFTU0VSVChxdWFsaWZpZWROYW1lICE9IHN0YXJBdG9tKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTFRhZ0NvbGxlY3Rpb24ocm9vdE5vZGUsIHF1YWxpZmll
ZE5hbWUpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5IVE1MVGFnQ29sbGVjdGlvbigpOwotCiAg
ICAgYm9vbCBlbGVtZW50TWF0Y2hlcyhFbGVtZW50JikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAg
SFRNTFRhZ0NvbGxlY3Rpb24oQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IEF0b21pY1N0
cmluZyYgbG9jYWxOYW1lKTsKKyAgICBIVE1MVGFnQ29sbGVjdGlvbihDb250YWluZXJOb2RlJiBy
b290Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBxdWFsaWZpZWROYW1lKTsKIAorICAgIEF0b21p
Y1N0cmluZyBtX3ByZWZpeDsKKyAgICBBdG9taWNTdHJpbmcgbV9sb3dlcmVkUHJlZml4OwogICAg
IEF0b21pY1N0cmluZyBtX2xvY2FsTmFtZTsKICAgICBBdG9taWNTdHJpbmcgbV9sb3dlcmVkTG9j
YWxOYW1lOwogfTsKIAoraW5saW5lIGJvb2wgVGFnQ29sbGVjdGlvbjo6ZWxlbWVudE1hdGNoZXMo
RWxlbWVudCYgZWxlbWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9sb2NhbE5hbWUgPT0gZWxl
bWVudC5sb2NhbE5hbWUoKSAmJiBtX3ByZWZpeCA9PSBlbGVtZW50LnByZWZpeCgpOworfQorCitp
bmxpbmUgYm9vbCBUYWdDb2xsZWN0aW9uTlM6OmVsZW1lbnRNYXRjaGVzKEVsZW1lbnQmIGVsZW1l
bnQpIGNvbnN0Cit7CisgICAgaWYgKG1fbG9jYWxOYW1lICE9IHN0YXJBdG9tICYmIG1fbG9jYWxO
YW1lICE9IGVsZW1lbnQubG9jYWxOYW1lKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBy
ZXR1cm4gbV9uYW1lc3BhY2VVUkkgPT0gc3RhckF0b20gfHwgbV9uYW1lc3BhY2VVUkkgPT0gZWxl
bWVudC5uYW1lc3BhY2VVUkkoKTsKK30KKwogaW5saW5lIGJvb2wgSFRNTFRhZ0NvbGxlY3Rpb246
OmVsZW1lbnRNYXRjaGVzKEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0CiB7Ci0gICAgLy8gSW1wbGVt
ZW50cyBodHRwOi8vZHZjcy53My5vcmcvaGcvZG9tY29yZS9yYXctZmlsZS90aXAvT3ZlcnZpZXcu
aHRtbCNjb25jZXB0LWdldGVsZW1lbnRzYnl0YWduYW1lCi0gICAgaWYgKG1fbG9jYWxOYW1lID09
IHN0YXJBdG9tKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcm
IGxvY2FsTmFtZSA9IGVsZW1lbnQuaXNIVE1MRWxlbWVudCgpID8gbV9sb3dlcmVkTG9jYWxOYW1l
IDogbV9sb2NhbE5hbWU7Ci0gICAgcmV0dXJuIGxvY2FsTmFtZSA9PSBlbGVtZW50LmxvY2FsTmFt
ZSgpOworICAgIGlmIChlbGVtZW50LmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIG1f
bG93ZXJlZExvY2FsTmFtZSA9PSBlbGVtZW50LmxvY2FsTmFtZSgpICYmIG1fbG93ZXJlZFByZWZp
eCA9PSBlbGVtZW50LnByZWZpeCgpOworICAgIHJldHVybiBtX2xvY2FsTmFtZSA9PSBlbGVtZW50
LmxvY2FsTmFtZSgpICYmIG1fcHJlZml4ID09IGVsZW1lbnQucHJlZml4KCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sbGVj
dGlvblR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sbGVjdGlvblR5cGUuaAppbmRleCA4
MzFkNjc2OS4uZDc2YTkwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xsZWN0
aW9uVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sbGVjdGlvblR5cGUuaApAQCAt
NTQsNiArNTQsNyBAQCBlbnVtIENvbGxlY3Rpb25UeXBlIHsKICAgICBCeUNsYXNzLAogICAgIEJ5
VGFnLAogICAgIEJ5SFRNTFRhZywKKyAgICBBbGxEZXNjZW5kYW50cwogfTsKIAogZW51bSBjbGFz
cyBDb2xsZWN0aW9uVHJhdmVyc2FsVHlwZSB7IERlc2NlbmRhbnRzLCBDaGlsZHJlbk9ubHksIEN1
c3RvbUZvcndhcmRPbmx5IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0dlbmVy
aWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0dlbmVyaWND
YWNoZWRIVE1MQ29sbGVjdGlvbi5jcHAKaW5kZXggMjc1MmU0YS4uODMwNTJlYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9HZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmNwcApA
QCAtNzUsNiArNzUsNyBAQCBib29sIEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbjx0cmF2ZXJz
YWxUeXBlPjo6ZWxlbWVudE1hdGNoZXMoRWxlbWVudCYgZWxlbWVudAogICAgIGNhc2UgQnlDbGFz
czoKICAgICBjYXNlIEJ5VGFnOgogICAgIGNhc2UgQnlIVE1MVGFnOgorICAgIGNhc2UgQWxsRGVz
Y2VuZGFudHM6CiAgICAgY2FzZSBEb2NBbGw6CiAgICAgY2FzZSBEb2N1bWVudE5hbWVkSXRlbXM6
CiAgICAgY2FzZSBGb3JtQ29udHJvbHM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24u
Y3BwCmluZGV4IDkyOWY0ZTYuLjhjMTczOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENvbGxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxl
Y3Rpb24uY3BwCkBAIC00Niw2ICs0Niw3IEBAIGlubGluZSBhdXRvIEhUTUxDb2xsZWN0aW9uOjpy
b290VHlwZUZyb21Db2xsZWN0aW9uVHlwZShDb2xsZWN0aW9uVHlwZSB0eXBlKSAtPiBSCiAgICAg
Y2FzZSBEb2N1bWVudE5hbWVkSXRlbXM6CiAgICAgY2FzZSBGb3JtQ29udHJvbHM6CiAgICAgICAg
IHJldHVybiBIVE1MQ29sbGVjdGlvbjo6SXNSb290ZWRBdERvY3VtZW50OworICAgIGNhc2UgQWxs
RGVzY2VuZGFudHM6CiAgICAgY2FzZSBCeUNsYXNzOgogICAgIGNhc2UgQnlUYWc6CiAgICAgY2Fz
ZSBCeUhUTUxUYWc6CkBAIC02OSw2ICs3MCw3IEBAIHN0YXRpYyBOb2RlTGlzdEludmFsaWRhdGlv
blR5cGUgaW52YWxpZGF0aW9uVHlwZUV4Y2x1ZGluZ0lkQW5kTmFtZUF0dHJpYnV0ZXMoQ29sCiAg
ICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBCeVRhZzoKICAgICBjYXNlIEJ5SFRNTFRhZzoK
KyAgICBjYXNlIEFsbERlc2NlbmRhbnRzOgogICAgIGNhc2UgRG9jSW1hZ2VzOgogICAgIGNhc2Ug
RG9jRW1iZWRzOgogICAgIGNhc2UgRG9jRm9ybXM6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285897</attachid>
            <date>2016-08-11 22:31:26 -0700</date>
            <delta_ts>2016-08-12 08:45:25 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>160682_getElementsByTagName_WIP.patch</filename>
            <type>text/plain</type>
            <size>34630</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUv
MDEwLnhtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUvMDEw
LnhtbAppbmRleCA0NGY4NDc0Li41Y2E3ODg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9nZXRFbGVtZW50c0J5Q2xhc3NOYW1lLzAxMC54bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vZ2V0RWxlbWVudHNCeUNsYXNzTmFtZS8wMTAueG1sCkBAIC03LDYgKzcsNiBAQAogICA8
cCBpZD0iciI+RkFJTCAoc2NyaXB0IGRpZCBub3QgcnVuKTwvcD4gIAogICA8eCBjbGFzcz0iYSIv
PgogICA8Zzp4IGNsYXNzPSJhIi8+Ci0gIDxzY3JpcHQ+IHQoZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eUNsYXNzTmFtZSgiYSIpLCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgieCIpKSA8L3Nj
cmlwdD4KKyAgPHNjcmlwdD4gdChkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJhIiks
IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lTlMoIioiLCAieCIpKSA8L3NjcmlwdD4KICA8
L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nZXRFbGVt
ZW50c0J5Q2xhc3NOYW1lLzAxMS54bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nZXRFbGVtZW50
c0J5Q2xhc3NOYW1lLzAxMS54bWwKaW5kZXggNjc5MGI1YS4uODI3YTJmMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vZ2V0RWxlbWVudHNCeUNsYXNzTmFtZS8wMTEueG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUvMDExLnhtbApAQCAt
MTIsNyArMTIsNyBAQAogICA8dDp4IGNsYXNzPSJhIiB0OmNsYXNzPSJhIiBoOmNsYXNzPSJhIiBn
OmNsYXNzPSJhIi8+CiAgIDxzY3JpcHQ+CiAgICB2YXIgY29sbGVjdGlvbiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlDbGFzc05hbWUoImEiKSwKLSAgICAgICB0ZXN0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoIngiKQorICAgICAgIHRlc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZU5TKCIqIiwgIngiKQogICAgdChjb2xsZWN0aW9uLCBbdGVzdFswXSwgdGVzdFsxXV0p
CiAgIDwvc2NyaXB0PgogIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWdldEVsZW1lbnRzQnlU
YWdOYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWdldEVsZW1lbnRzQnlUYWdOYW1lLWV4cGVjdGVk
LnR4dAppbmRleCA3NjhmNzgyLi43OTBiNzVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50
c0J5VGFnTmFtZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUt
ZXhwZWN0ZWQudHh0CkBAIC0xMiwxMSArMTIsMTEgQEAgUEFTUyBoYXNPd25Qcm9wZXJ0eSwgZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yLCBnZXRPd25Qcm9wZXJ0eU5hbWVzCiBQQVNTIEhUTUwgZWxl
bWVudCB3aXRoIHVwcGVyY2FzZSB0YWdOYW1lIG5ldmVyIG1hdGNoZXMgaW4gSFRNTCBEb2N1bWVu
dHMgCiBQQVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBubyBwcmVmaXgsIGxvd2Vy
Y2FzZSBuYW1lIAogUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgbm8gcHJlZml4
LCB1cHBlcmNhc2UgbmFtZSAKLUZBSUwgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHBy
ZWZpeCwgbG93ZXJjYXNlIG5hbWUgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIs
IGV4cGVjdGVkIDAgZ290IDEKLUZBSUwgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHBy
ZWZpeCwgdXBwZXJjYXNlIG5hbWUgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIs
IGV4cGVjdGVkIDAgZ290IDEKK1BBU1MgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHBy
ZWZpeCwgbG93ZXJjYXNlIG5hbWUgCitQQVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNl
LCBwcmVmaXgsIHVwcGVyY2FzZSBuYW1lIAogUEFTUyBFbGVtZW50IGluIEhUTUwgbmFtZXNwYWNl
LCBubyBwcmVmaXgsIG5vbi1hc2NpaSBjaGFyYWN0ZXJzIGluIG5hbWUgCiBQQVNTIEVsZW1lbnQg
aW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAotRkFJ
TCBFbGVtZW50IGluIEhUTUwgbmFtZXNwYWNlLCBwcmVmaXgsIG5vbi1hc2NpaSBjaGFyYWN0ZXJz
IGluIG5hbWUgYXNzZXJ0X2FycmF5X2VxdWFsczogQWxsIHVwcGVyY2FzZSBpbnB1dCBsZW5ndGhz
IGRpZmZlciwgZXhwZWN0ZWQgMSBnb3QgMAotRkFJTCBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVz
cGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIGFzc2VydF9hcnJheV9l
cXVhbHM6IEFsbCB1cHBlcmNhc2UgaW5wdXQgbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290
IDAKK1BBU1MgRWxlbWVudCBpbiBIVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hh
cmFjdGVycyBpbiBuYW1lIAorUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgcHJl
Zml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAogUEFTUyBnZXRFbGVtZW50c0J5VGFn
TmFtZSgnKicpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS14aHRt
bC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS14aHRtbC1leHBlY3Rl
ZC50eHQKaW5kZXggMzZhYzI3Ny4uMmMwMWZkYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtZ2V0RWxlbWVu
dHNCeVRhZ05hbWUteGh0bWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWdldEVsZW1lbnRzQnlU
YWdOYW1lLXhodG1sLWV4cGVjdGVkLnR4dApAQCAtMiw4ICsyLDggQEAKIFBBU1MgSFRNTCBlbGVt
ZW50IHdpdGggdXBwZXJjYXNlIHRhZyBuYW1lIG1hdGNoZXMgaW4gWEhUTUwgZG9jdW1lbnRzIAog
UEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgbm8gcHJlZml4LCBsb3dlcmNhc2Ug
bmFtZSAKIFBBU1MgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIG5vIHByZWZpeCwgdXBw
ZXJjYXNlIG5hbWUgCi1GQUlMIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVmaXgs
IGxvd2VyY2FzZSBuYW1lIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBl
Y3RlZCAwIGdvdCAxCi1GQUlMIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVmaXgs
IHVwcGVyY2FzZSBuYW1lIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBl
Y3RlZCAwIGdvdCAxCitQQVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVmaXgs
IGxvd2VyY2FzZSBuYW1lIAorUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgcHJl
Zml4LCB1cHBlcmNhc2UgbmFtZSAKIFBBU1MgRWxlbWVudCBpbiBIVE1MIG5hbWVzcGFjZSwgbm8g
cHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAogUEFTUyBFbGVtZW50IGluIG5v
bi1IVE1MIG5hbWVzcGFjZSwgbm9uLWFzY2lpIGNoYXJhY3RlcnMgaW4gbmFtZSAKIFBBU1MgRWxl
bWVudCBpbiBIVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBu
YW1lIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUteGh0bWwueGh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9E
b2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS14aHRtbC54aHRtbAppbmRleCAyYWU5MDc0Li4z
MDlhMjlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS14aHRtbC54aHRt
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9u
b2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS14aHRtbC54aHRtbApAQCAtNzEsMTcg
KzcxLDE3IEBAIHRlc3QoZnVuY3Rpb24oKSB7CiB0ZXN0KGZ1bmN0aW9uKCkgewogICB2YXIgdCA9
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwgInRlc3Q6YcOHIikpCiAgIHRoaXMuYWRkX2NsZWFu
dXAoZnVuY3Rpb24oKSB7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0KX0pCi0gIGFzc2VydF9h
cnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIkHDhyIpLCBbXSwgIkFs
bCB1cHBlcmNhc2UgaW5wdXQiKQotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCJhw4ciKSwgW3RdLCAiQXNjaWkgbG93ZXJjYXNlIGlucHV0IikKLSAg
YXNzZXJ0X2FycmF5X2VxdWFscyhkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYcOnIiks
IFtdLCAiQWxsIGxvd2VyY2FzZSBpbnB1dCIpCisgIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRFU1Q6QcOHIiksIFtdLCAiQWxsIHVwcGVyY2FzZSBp
bnB1dCIpCisgIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoInRlc3Q6YcOHIiksIFt0XSwgIkFzY2lpIGxvd2VyY2FzZSBpbnB1dCIpCisgIGFzc2VydF9h
cnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRlc3Q6YcOnIiksIFtd
LCAiQWxsIGxvd2VyY2FzZSBpbnB1dCIpCiB9LCAiRWxlbWVudCBpbiBIVE1MIG5hbWVzcGFjZSwg
cHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIikKIAogdGVzdChmdW5jdGlvbigp
IHsKLSAgdmFyIHQgPSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnROUygidGVzdCIsICJ0ZXN0OkHDhyIpKQorICB2YXIgdCA9IGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJ0ZXN0IiwgIlRFU1Q6QcOHIikpCiAg
IHRoaXMuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0
KX0pCi0gIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
IkHDhyIpLCBbdF0sICJBbGwgdXBwZXJjYXNlIGlucHV0IikKLSAgYXNzZXJ0X2FycmF5X2VxdWFs
cyhkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYcOHIiksIFtdLCAiQXNjaWkgbG93ZXJj
YXNlIGlucHV0IikKLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgiYcOnIiksIFtdLCAiQWxsIGxvd2VyY2FzZSBpbnB1dCIpCisgIGFzc2VydF9hcnJh
eV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRFU1Q6QcOHIiksIFt0XSwg
IkFsbCB1cHBlcmNhc2UgaW5wdXQiKQorICBhc3NlcnRfYXJyYXlfZXF1YWxzKGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZXN0OmHDhyIpLCBbXSwgIkFzY2lpIGxvd2VyY2FzZSBpbnB1
dCIpCisgIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
InRlc3Q6YcOnIiksIFtdLCAiQWxsIGxvd2VyY2FzZSBpbnB1dCIpCiB9LCAiRWxlbWVudCBpbiBu
b24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwgbm9uLWFzY2lpIGNoYXJhY3RlcnMgaW4gbmFtZSIp
CiAKIHRlc3QoZnVuY3Rpb24oKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWdldEVsZW1lbnRzQnlUYWdO
YW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUtZXhwZWN0ZWQudHh0
CmluZGV4IGVlZDg3NTMuLmNjN2FlNWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtZ2V0RWxlbWVudHNCeVRh
Z05hbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUtZXhwZWN0
ZWQudHh0CkBAIC0xMiwxMiArMTIsMTIgQEAgUEFTUyBoYXNPd25Qcm9wZXJ0eSwgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yLCBnZXRPd25Qcm9wZXJ0eU5hbWVzCiBQQVNTIEhUTUwgZWxlbWVudCB3
aXRoIHVwcGVyY2FzZSB0YWdOYW1lIG5ldmVyIG1hdGNoZXMgaW4gSFRNTCBEb2N1bWVudHMgCiBQ
QVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBubyBwcmVmaXgsIGxvd2VyY2FzZSBu
YW1lIAogUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgbm8gcHJlZml4LCB1cHBl
cmNhc2UgbmFtZSAKLUZBSUwgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwg
bG93ZXJjYXNlIG5hbWUgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVj
dGVkIDAgZ290IDEKLUZBSUwgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwg
dXBwZXJjYXNlIG5hbWUgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVj
dGVkIDAgZ290IDEKK1BBU1MgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwg
bG93ZXJjYXNlIG5hbWUgCitQQVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVm
aXgsIHVwcGVyY2FzZSBuYW1lIAogUEFTUyBFbGVtZW50IGluIEhUTUwgbmFtZXNwYWNlLCBubyBw
cmVmaXgsIG5vbi1hc2NpaSBjaGFyYWN0ZXJzIGluIG5hbWUgCiBQQVNTIEVsZW1lbnQgaW4gbm9u
LUhUTUwgbmFtZXNwYWNlLCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAotRkFJTCBFbGVt
ZW50IGluIEhUTUwgbmFtZXNwYWNlLCBwcmVmaXgsIG5vbi1hc2NpaSBjaGFyYWN0ZXJzIGluIG5h
bWUgYXNzZXJ0X2FycmF5X2VxdWFsczogQWxsIHVwcGVyY2FzZSBpbnB1dCBsZW5ndGhzIGRpZmZl
ciwgZXhwZWN0ZWQgMSBnb3QgMAotRkFJTCBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwg
cHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIGFzc2VydF9hcnJheV9lcXVhbHM6
IEFsbCB1cHBlcmNhc2UgaW5wdXQgbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKK1BB
U1MgRWxlbWVudCBpbiBIVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVy
cyBpbiBuYW1lIAorUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBu
b24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAogUEFTUyBnZXRFbGVtZW50c0J5VGFnTmFtZSgn
KicpIAogUEFTUyBNYXRjaGluZyB0aGUgY29udGV4dCBvYmplY3QgCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL2Nhc2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vbm9kZXMvY2FzZS1leHBlY3RlZC50eHQKaW5kZXggZTJiMjg4Mi4uZjQyZWU3MCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
bm9kZXMvY2FzZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvY2FzZS1leHBlY3RlZC50eHQKQEAgLTIsMjcgKzIs
MjcgQEAKIFBBU1MgY3JlYXRlRWxlbWVudCBhYmMgCiBQQVNTIHNldEF0dHJpYnV0ZSBhYmMgCiBQ
QVNTIGdldEF0dHJpYnV0ZSBhYmMgCi1GQUlMIGdldEVsZW1lbnRzQnlUYWdOYW1lIGE6YWJjIGFz
c2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAwIGdvdCAzCitQQVNT
IGdldEVsZW1lbnRzQnlUYWdOYW1lIGE6YWJjIAogUEFTUyBnZXRFbGVtZW50c0J5VGFnTmFtZSBh
YmMgCiBQQVNTIGNyZWF0ZUVsZW1lbnQgQWJjIAogUEFTUyBzZXRBdHRyaWJ1dGUgQWJjIAogUEFT
UyBnZXRBdHRyaWJ1dGUgQWJjIAotRkFJTCBnZXRFbGVtZW50c0J5VGFnTmFtZSBhOkFiYyBhc3Nl
cnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMCBnb3QgMworUEFTUyBn
ZXRFbGVtZW50c0J5VGFnTmFtZSBhOkFiYyAKIFBBU1MgZ2V0RWxlbWVudHNCeVRhZ05hbWUgQWJj
IAogUEFTUyBjcmVhdGVFbGVtZW50IEFCQyAKIFBBU1Mgc2V0QXR0cmlidXRlIEFCQyAKIFBBU1Mg
Z2V0QXR0cmlidXRlIEFCQyAKLUZBSUwgZ2V0RWxlbWVudHNCeVRhZ05hbWUgYTpBQkMgYXNzZXJ0
X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDAgZ290IDMKK1BBU1MgZ2V0
RWxlbWVudHNCeVRhZ05hbWUgYTpBQkMgCiBQQVNTIGdldEVsZW1lbnRzQnlUYWdOYW1lIEFCQyAK
IFBBU1MgY3JlYXRlRWxlbWVudCDDpCAKIFBBU1Mgc2V0QXR0cmlidXRlIMOkIAogUEFTUyBnZXRB
dHRyaWJ1dGUgw6QgCi1GQUlMIGdldEVsZW1lbnRzQnlUYWdOYW1lIGE6w6QgYXNzZXJ0X2FycmF5
X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDAgZ290IDMKK1BBU1MgZ2V0RWxlbWVu
dHNCeVRhZ05hbWUgYTrDpCAKIFBBU1MgZ2V0RWxlbWVudHNCeVRhZ05hbWUgw6QgCiBQQVNTIGNy
ZWF0ZUVsZW1lbnQgw4QgCiBQQVNTIHNldEF0dHJpYnV0ZSDDhCAKIFBBU1MgZ2V0QXR0cmlidXRl
IMOEIAotRkFJTCBnZXRFbGVtZW50c0J5VGFnTmFtZSBhOsOEIGFzc2VydF9hcnJheV9lcXVhbHM6
IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAwIGdvdCAzCitQQVNTIGdldEVsZW1lbnRzQnlUYWdO
YW1lIGE6w4QgCiBQQVNTIGdldEVsZW1lbnRzQnlUYWdOYW1lIMOEIAogUEFTUyBjcmVhdGVFbGVt
ZW50TlMgaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCxhYmMsYWJjIAogUEFTUyBzZXRBdHRy
aWJ1dGVOUyBodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sLGFiYyxhYmMgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzc0NzAw
OC4uNGMwNzI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjk0OSw2ICsyOTQ5LDcgQEAKIAkJODNBNEE5RjkxQ0U3RkQ4MTAw
NzA5QjAwIC8qIEpTWE1MRG9jdW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNBNEE5RjgxQ0U3RkQ3RTAwNzA5QjAwIC8qIEpTWE1M
RG9jdW1lbnRDdXN0b20uY3BwICovOyB9OwogCQk4M0IyRDE3NTFCOEJDRDZBMDBBMDJFNDcgLyog
TmF0aXZlTm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNFOTU5RTExQjhCQzIyQjAwNEQ5Mzg1IC8qIE5hdGl2ZU5vZGVGaWx0ZXIuaCAq
LzsgfTsKIAkJODNCOTY4N0IxOUY4QUI4MzAwNEVGN0FGIC8qIFN0eWxlQnVpbGRlckNvbnZlcnRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNCOTY4
NzkxOUY4QUI4MzAwNEVGN0FGIC8qIFN0eWxlQnVpbGRlckNvbnZlcnRlci5oICovOyB9OworCQk4
M0JCNUM4ODFENUQ2RjQ1MDA1QTcxRjQgLyogQWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0JCNUM4NzFENUQ2
RjNBMDA1QTcxRjQgLyogQWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uLmggKi87IH07CiAJCTgzQzA1
QTVBMUE2ODYyMTIwMDdFNURFQSAvKiBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQzA1QTU4
MUE2ODYyMTIwMDdFNURFQSAvKiBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmNwcCAq
LzsgfTsKIAkJODNDMDVBNUIxQTY4NjIxMjAwN0U1REVBIC8qIFN0eWxlUHJvcGVydHlTaG9ydGhh
bmRGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzQzA1QTU5MUE2ODYyMTIwMDdFNURFQSAvKiBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVu
Y3Rpb25zLmggKi87IH07CiAJCTgzQzFENDI1MTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2Vn
QXJjQWJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0MxRDQxMzE3OEQ1QUI0MDAxNDFFNjggLyogU1ZHUGF0aFNlZ0FyY0Ficy5oICovOyB9OwpAQCAt
MTAzODAsNiArMTAzODEsNyBAQAogCQk4MzlBQUZFQjFBMEMwQzhEMDA2MDVGOTkgLyogSFRNTFdC
UkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTFdCUkVsZW1l
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNBNEE5RjgxQ0U3RkQ3RTAwNzA5
QjAwIC8qIEpTWE1MRG9jdW1lbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNYTUxEb2N1bWVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzQjk2ODc5MTlGOEFCODMwMDRFRjdBRiAvKiBTdHlsZUJ1aWxkZXJDb252ZXJ0
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVCdWlsZGVyQ29udmVy
dGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzQkI1Qzg3MUQ1RDZGM0EwMDVB
NzFGNCAvKiBBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzQzA1QTU4MUE2ODYyMTIwMDdFNURFQSAvKiBTdHlsZVByb3BlcnR5U2hv
cnRoYW5kRnVuY3Rpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4M0MwNUE1OTFBNjg2MjEyMDA3RTVERUEgLyogU3R5bGVQcm9wZXJ0eVNob3J0
aGFuZEZ1bmN0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZVBy
b3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTgzQzFENDEzMTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQXJjQWJzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1BhdGhTZWdBcmNBYnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTExNTEyLDggKzExNTE0LDggQEAKIAkJOUJENEU5MTgxQzQ2MkNG
QzAwNTA2NUJDIC8qIEN1c3RvbUVsZW1lbnRzUmVnaXN0cnkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ3VzdG9tRWxlbWVudHNSZWdpc3RyeS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCRDRFOTE5MUM0NjJDRkMwMDUwNjVCQyAvKiBDdXN0b21F
bGVtZW50c1JlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1c3Rv
bUVsZW1lbnRzUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJEOEE5
NTkxOEJFRkM3NjAwOTg3RTlBIC8qIENvbGxlY3Rpb25JbmRleENhY2hlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbGxlY3Rpb25JbmRleENhY2hlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOUJFNjcxMDkxRDVBRUIwNDAwMzQ1NTE0IC8qIEpT
Q3VzdG9tRWxlbWVudHNSZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBKU0N1c3RvbUVsZW1lbnRzUmVnaXN0cnkuY3BwOyBwYXRoID0gIkpTQ3VzdG9tRWxl
bWVudHNSZWdpc3RyeS5jcHAiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5QkU2NzEw
QTFENUFFQjA0MDAzNDU1MTQgLyogSlNDdXN0b21FbGVtZW50c1JlZ2lzdHJ5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEpTQ3VzdG9tRWxlbWVudHNSZWdpc3RyeS5oOyBwYXRo
ID0gIkpTQ3VzdG9tRWxlbWVudHNSZWdpc3RyeS5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOUJFNjcxMDkxRDVBRUIwNDAwMzQ1NTE0IC8qIEpTQ3VzdG9tRWxlbWVudHNSZWdpc3Ry
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0N1c3RvbUVsZW1l
bnRzUmVnaXN0cnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QkU2NzEwQTFE
NUFFQjA0MDAzNDU1MTQgLyogSlNDdXN0b21FbGVtZW50c1JlZ2lzdHJ5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ3VzdG9tRWxlbWVudHNSZWdpc3RyeS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5QkY5QTg3RTE2NDhERDJGMDAxQzZCMjMgLyogSlNIVE1M
Rm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOUJGOUE4N0YxNjQ4REQyRjAwMUM2QjIzIC8qIEpTSFRNTEZvcm1Db250
cm9sc0NvbGxlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1M
Rm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
RDYzODAwRjFBRjE2RTE2MDAzMUExNUMgLyogU3R5bGVTZWxmQWxpZ25tZW50RGF0YS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZVNlbGZBbGlnbm1lbnREYXRhLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzg5Miw2ICsyMzg5NCw3IEBACiAJCQkJN0NE
MEJBMDMxQjhGNzlDOTAwNUNFQkJFIC8qIEFjdGl2ZURPTUNhbGxiYWNrTWljcm90YXNrLmggKi8s
CiAJCQkJRTFDNERFNkQwRUE3NUM2NTAwMjNDQ0Q2IC8qIEFjdGl2ZURPTU9iamVjdC5jcHAgKi8s
CiAJCQkJRTFDNERFNjgwRUE3NUMxRTAwMjNDQ0Q2IC8qIEFjdGl2ZURPTU9iamVjdC5oICovLAor
CQkJCTgzQkI1Qzg3MUQ1RDZGM0EwMDVBNzFGNCAvKiBBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24u
aCAqLywKIAkJCQkzMTk4NDdGRTFBMUQ4MTY3MDBBMTMzMTggLyogQW5pbWF0aW9uRXZlbnQuY3Bw
ICovLAogCQkJCTMxOTg0N0ZGMUExRDgxNjcwMEExMzMxOCAvKiBBbmltYXRpb25FdmVudC5oICov
LAogCQkJCTMxOTg0ODAwMUExRDgxNjcwMEExMzMxOCAvKiBBbmltYXRpb25FdmVudC5pZGwgKi8s
CkBAIC0yNjM5Nyw2ICsyNjQwMCw3IEBACiAJCQkJQjY1OEZGQTIxNTIyRUYzQTAwREQ1NTk1IC8q
IEpTUmFkaW9Ob2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVERjMyMDIwOUQxQ0M2MDAw
MEJFMzI1IC8qIEpTUmFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNEM5NkREMUFENDQ4MzUw
MDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtLmggaW4gSGVhZGVycyAqLywKKwkJCQk4M0JCNUM4
ODFENUQ2RjQ1MDA1QTcxRjQgLyogQWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2QzRDOTZERjFBRDQ0ODM1MDAzNjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURl
ZmF1bHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzRDOTZERjFBRDQ0ODM1MDAz
NjVBNTAgLyogSlNSZWFkYWJsZVN0cmVhbURlZmF1bHRSZWFkZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxMjlERjg2MUJCNUI4MEMwMDMyMkExNiAvKiBKU1JlYWRhYmxlU3RyZWFtUHJpdmF0ZUNv
bnN0cnVjdG9ycy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWxsRGVz
Y2VuZGFudHNDb2xsZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MzBlOTZiMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BbGxEZXNjZW5k
YW50c0NvbGxlY3Rpb24uaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJDYWNoZWRIVE1MQ29sbGVjdGlvbi5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKKy8vIENvbGxlY3Rpb24gdGhhdCBtYXRjaGVzIGFsbCBlbGVtZW50IGRlc2NlbmRh
bnRzLgorY2xhc3MgQWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uIGZpbmFsIDogcHVibGljIENhY2hl
ZEhUTUxDb2xsZWN0aW9uPEFsbERlc2NlbmRhbnRzQ29sbGVjdGlvbiwgQ29sbGVjdGlvblR5cGVU
cmFpdHM8QWxsRGVzY2VuZGFudHM+Ojp0cmF2ZXJzYWxUeXBlPiB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24+IGNyZWF0ZShDb250YWluZXJOb2RlJiBy
b290Tm9kZSwgQ29sbGVjdGlvblR5cGUgdHlwZSkKKyAgICB7CisgICAgICAgIEFTU0VSVF9VTlVT
RUQodHlwZSwgdHlwZSA9PSBBbGxEZXNjZW5kYW50cyk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEFsbERlc2NlbmRhbnRzQ29sbGVjdGlvbihyb290Tm9kZSkpOworICAgIH0KKworICAg
IGJvb2wgZWxlbWVudE1hdGNoZXMoRWxlbWVudCYpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKwor
cHJpdmF0ZToKKyAgICBleHBsaWNpdCBBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24oQ29udGFpbmVy
Tm9kZSYgcm9vdE5vZGUpCisgICAgICAgIDogQ2FjaGVkSFRNTENvbGxlY3Rpb248QWxsRGVzY2Vu
ZGFudHNDb2xsZWN0aW9uLCBDb2xsZWN0aW9uVHlwZVRyYWl0czxBbGxEZXNjZW5kYW50cz46OnRy
YXZlcnNhbFR5cGU+KHJvb3ROb2RlLCBBbGxEZXNjZW5kYW50cykKKyAgICB7IH0KK307CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCA1ZTk3ZWU3Li5iZTBjNWQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5j
bHVkZSAiQ29udGFpbmVyTm9kZS5oIgogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgorI2lu
Y2x1ZGUgIkFsbERlc2NlbmRhbnRzQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkNoaWxkTGlzdE11
dGF0aW9uU2NvcGUuaCIKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGll
bnQuaCIKQEAgLTgyMCwyMyArODIxLDIyIEBAIFJlZlB0cjxOb2RlTGlzdD4gQ29udGFpbmVyTm9k
ZTo6cXVlcnlTZWxlY3RvckFsbChjb25zdCBTdHJpbmcmIHNlbGVjdG9ycywgRXhjZXB0CiAgICAg
cmV0dXJuIG51bGxwdHI7CiB9CiAKLVJlZjxIVE1MQ29sbGVjdGlvbj4gQ29udGFpbmVyTm9kZTo6
Z2V0RWxlbWVudHNCeVRhZ05hbWUoY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCitSZWY8
SFRNTENvbGxlY3Rpb24+IENvbnRhaW5lck5vZGU6OmdldEVsZW1lbnRzQnlUYWdOYW1lKGNvbnN0
IEF0b21pY1N0cmluZyYgcXVhbGlmaWVkTmFtZSkKIHsKLSAgICBBU1NFUlQoIWxvY2FsTmFtZS5p
c051bGwoKSk7CisgICAgQVNTRVJUKCFxdWFsaWZpZWROYW1lLmlzTnVsbCgpKTsKKworICAgIGlm
IChxdWFsaWZpZWROYW1lID09IHN0YXJBdG9tKQorICAgICAgICByZXR1cm4gZW5zdXJlUmFyZURh
dGEoKS5lbnN1cmVOb2RlTGlzdHMoKS5hZGRDYWNoZWRDb2xsZWN0aW9uPEFsbERlc2NlbmRhbnRz
Q29sbGVjdGlvbj4oKnRoaXMsIEFsbERlc2NlbmRhbnRzKTsKIAogICAgIGlmIChkb2N1bWVudCgp
LmlzSFRNTERvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBlbnN1cmVSYXJlRGF0YSgpLmVuc3Vy
ZU5vZGVMaXN0cygpLmFkZENhY2hlZENvbGxlY3Rpb248SFRNTFRhZ0NvbGxlY3Rpb24+KCp0aGlz
LCBCeUhUTUxUYWcsIGxvY2FsTmFtZSk7Ci0gICAgcmV0dXJuIGVuc3VyZVJhcmVEYXRhKCkuZW5z
dXJlTm9kZUxpc3RzKCkuYWRkQ2FjaGVkQ29sbGVjdGlvbjxUYWdDb2xsZWN0aW9uPigqdGhpcywg
QnlUYWcsIGxvY2FsTmFtZSk7CisgICAgICAgIHJldHVybiBlbnN1cmVSYXJlRGF0YSgpLmVuc3Vy
ZU5vZGVMaXN0cygpLmFkZENhY2hlZENvbGxlY3Rpb248SFRNTFRhZ0NvbGxlY3Rpb24+KCp0aGlz
LCBCeUhUTUxUYWcsIHF1YWxpZmllZE5hbWUpOworICAgIHJldHVybiBlbnN1cmVSYXJlRGF0YSgp
LmVuc3VyZU5vZGVMaXN0cygpLmFkZENhY2hlZENvbGxlY3Rpb248VGFnQ29sbGVjdGlvbj4oKnRo
aXMsIEJ5VGFnLCBxdWFsaWZpZWROYW1lKTsKIH0KIAogUmVmPEhUTUxDb2xsZWN0aW9uPiBDb250
YWluZXJOb2RlOjpnZXRFbGVtZW50c0J5VGFnTmFtZU5TKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZXNwYWNlVVJJLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSkKIHsKICAgICBBU1NFUlQo
IWxvY2FsTmFtZS5pc051bGwoKSk7Ci0KLSAgICBpZiAobmFtZXNwYWNlVVJJID09IHN0YXJBdG9t
KQotICAgICAgICByZXR1cm4gZ2V0RWxlbWVudHNCeVRhZ05hbWUobG9jYWxOYW1lKTsKLQotICAg
IHJldHVybiBlbnN1cmVSYXJlRGF0YSgpLmVuc3VyZU5vZGVMaXN0cygpLmFkZENhY2hlZENvbGxl
Y3Rpb25XaXRoUXVhbGlmaWVkTmFtZSgqdGhpcywgbmFtZXNwYWNlVVJJLmlzRW1wdHkoKSA/IG51
bGxBdG9tIDogbmFtZXNwYWNlVVJJLCBsb2NhbE5hbWUpOworICAgIHJldHVybiBlbnN1cmVSYXJl
RGF0YSgpLmVuc3VyZU5vZGVMaXN0cygpLmFkZENhY2hlZFRhZ0NvbGxlY3Rpb25OUygqdGhpcywg
bmFtZXNwYWNlVVJJLmlzRW1wdHkoKSA/IG51bGxBdG9tIDogbmFtZXNwYWNlVVJJLCBsb2NhbE5h
bWUpOwogfQogCiBSZWY8Tm9kZUxpc3Q+IENvbnRhaW5lck5vZGU6OmdldEVsZW1lbnRzQnlOYW1l
KGNvbnN0IFN0cmluZyYgZWxlbWVudE5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggNTZkN2Y1OC4u
MWQ0MjEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMTg3Niw3ICsxODc2LDcgQEAgdm9pZCBOb2Rl
TGlzdHNOb2RlRGF0YTo6aW52YWxpZGF0ZUNhY2hlcyhjb25zdCBRdWFsaWZpZWROYW1lKiBhdHRy
TmFtZSkKICAgICBpZiAoYXR0ck5hbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGZvciAoYXV0
byYgdGFnQ29sbGVjdGlvbiA6IG1fdGFnQ29sbGVjdGlvbkNhY2hlTlMpCisgICAgZm9yIChhdXRv
JiB0YWdDb2xsZWN0aW9uIDogbV90YWdDb2xsZWN0aW9uTlNDYWNoZSkKICAgICAgICAgdGFnQ29s
bGVjdGlvbi52YWx1ZS0+aW52YWxpZGF0ZUNhY2hlRm9yQXR0cmlidXRlKG51bGxwdHIpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKaW5kZXggMDkyZTU2ZC4uYzEwYzc3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmFyZURhdGEuaApAQCAtMTE0LDcgKzExNCw3IEBAIHB1YmxpYzoKIAogICAg
IHR5cGVkZWYgSGFzaE1hcDxzdGQ6OnBhaXI8dW5zaWduZWQgY2hhciwgQXRvbWljU3RyaW5nPiwg
TGl2ZU5vZGVMaXN0KiwgTm9kZUxpc3RDYWNoZU1hcEVudHJ5SGFzaD4gTm9kZUxpc3RBdG9taWNO
YW1lQ2FjaGVNYXA7CiAgICAgdHlwZWRlZiBIYXNoTWFwPHN0ZDo6cGFpcjx1bnNpZ25lZCBjaGFy
LCBBdG9taWNTdHJpbmc+LCBIVE1MQ29sbGVjdGlvbiosIE5vZGVMaXN0Q2FjaGVNYXBFbnRyeUhh
c2g+IENvbGxlY3Rpb25DYWNoZU1hcDsKLSAgICB0eXBlZGVmIEhhc2hNYXA8UXVhbGlmaWVkTmFt
ZSwgVGFnQ29sbGVjdGlvbio+IFRhZ0NvbGxlY3Rpb25DYWNoZU5TOworICAgIHR5cGVkZWYgSGFz
aE1hcDxRdWFsaWZpZWROYW1lLCBUYWdDb2xsZWN0aW9uTlMqPiBUYWdDb2xsZWN0aW9uTlNDYWNo
ZTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIENvbnRhaW5lclR5cGU+CiAg
ICAgQUxXQVlTX0lOTElORSBSZWY8VD4gYWRkQ2FjaGVXaXRoQXRvbWljTmFtZShDb250YWluZXJU
eXBlJiBjb250YWluZXIsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKQEAgLTEyOCwxNCArMTI4
LDE0IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGxpc3Q7CiAgICAgfQogCi0gICAgQUxXQVlT
X0lOTElORSBSZWY8VGFnQ29sbGVjdGlvbj4gYWRkQ2FjaGVkQ29sbGVjdGlvbldpdGhRdWFsaWZp
ZWROYW1lKENvbnRhaW5lck5vZGUmIG5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNl
VVJJLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSkKKyAgICBBTFdBWVNfSU5MSU5FIFJl
ZjxUYWdDb2xsZWN0aW9uTlM+IGFkZENhY2hlZFRhZ0NvbGxlY3Rpb25OUyhDb250YWluZXJOb2Rl
JiBub2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3Ry
aW5nJiBsb2NhbE5hbWUpCiAgICAgewogICAgICAgICBRdWFsaWZpZWROYW1lIG5hbWUobnVsbEF0
b20sIGxvY2FsTmFtZSwgbmFtZXNwYWNlVVJJKTsKLSAgICAgICAgVGFnQ29sbGVjdGlvbkNhY2hl
TlM6OkFkZFJlc3VsdCByZXN1bHQgPSBtX3RhZ0NvbGxlY3Rpb25DYWNoZU5TLmZhc3RBZGQobmFt
ZSwgbnVsbHB0cik7CisgICAgICAgIFRhZ0NvbGxlY3Rpb25OU0NhY2hlOjpBZGRSZXN1bHQgcmVz
dWx0ID0gbV90YWdDb2xsZWN0aW9uTlNDYWNoZS5mYXN0QWRkKG5hbWUsIG51bGxwdHIpOwogICAg
ICAgICBpZiAoIXJlc3VsdC5pc05ld0VudHJ5KQogICAgICAgICAgICAgcmV0dXJuICpyZXN1bHQu
aXRlcmF0b3ItPnZhbHVlOwogCi0gICAgICAgIGF1dG8gbGlzdCA9IFRhZ0NvbGxlY3Rpb246OmNy
ZWF0ZShub2RlLCBuYW1lc3BhY2VVUkksIGxvY2FsTmFtZSk7CisgICAgICAgIGF1dG8gbGlzdCA9
IFRhZ0NvbGxlY3Rpb25OUzo6Y3JlYXRlKG5vZGUsIG5hbWVzcGFjZVVSSSwgbG9jYWxOYW1lKTsK
ICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IGxpc3QucHRyKCk7CiAgICAgICAgIHJl
dHVybiBsaXN0OwogICAgIH0KQEAgLTE3OSwxMyArMTc5LDEzIEBAIHB1YmxpYzoKICAgICAgICAg
bV9hdG9taWNOYW1lQ2FjaGVzLnJlbW92ZShuYW1lZE5vZGVMaXN0S2V5PE5vZGVMaXN0VHlwZT4o
bmFtZSkpOwogICAgIH0KIAotICAgIHZvaWQgcmVtb3ZlQ2FjaGVkQ29sbGVjdGlvbldpdGhRdWFs
aWZpZWROYW1lKEhUTUxDb2xsZWN0aW9uJiBjb2xsZWN0aW9uLCBjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCisgICAgdm9pZCBy
ZW1vdmVDYWNoZWRUYWdDb2xsZWN0aW9uTlMoSFRNTENvbGxlY3Rpb24mIGNvbGxlY3Rpb24sIGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2Fs
TmFtZSkKICAgICB7CiAgICAgICAgIFF1YWxpZmllZE5hbWUgbmFtZShudWxsQXRvbSwgbG9jYWxO
YW1lLCBuYW1lc3BhY2VVUkkpOwotICAgICAgICBBU1NFUlQoJmNvbGxlY3Rpb24gPT0gbV90YWdD
b2xsZWN0aW9uQ2FjaGVOUy5nZXQobmFtZSkpOworICAgICAgICBBU1NFUlQoJmNvbGxlY3Rpb24g
PT0gbV90YWdDb2xsZWN0aW9uTlNDYWNoZS5nZXQobmFtZSkpOwogICAgICAgICBpZiAoZGVsZXRl
VGhpc0FuZFVwZGF0ZU5vZGVSYXJlRGF0YUlmQWJvdXRUb1JlbW92ZUxhc3RMaXN0KGNvbGxlY3Rp
b24ub3duZXJOb2RlKCkpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBtX3RhZ0NvbGxl
Y3Rpb25DYWNoZU5TLnJlbW92ZShuYW1lKTsKKyAgICAgICAgbV90YWdDb2xsZWN0aW9uTlNDYWNo
ZS5yZW1vdmUobmFtZSk7CiAgICAgfQogCiAgICAgdm9pZCByZW1vdmVDYWNoZWRDb2xsZWN0aW9u
KEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBz
dGFyQXRvbSkKQEAgLTIxNCw3ICsyMTQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGZvciAoYXV0byYg
Y2FjaGUgOiBtX2F0b21pY05hbWVDYWNoZXMudmFsdWVzKCkpCiAgICAgICAgICAgICBjYWNoZS0+
aW52YWxpZGF0ZUNhY2hlKCpvbGREb2N1bWVudCk7CiAKLSAgICAgICAgZm9yIChhdXRvJiBsaXN0
IDogbV90YWdDb2xsZWN0aW9uQ2FjaGVOUy52YWx1ZXMoKSkgeworICAgICAgICBmb3IgKGF1dG8m
IGxpc3QgOiBtX3RhZ0NvbGxlY3Rpb25OU0NhY2hlLnZhbHVlcygpKSB7CiAgICAgICAgICAgICBB
U1NFUlQoIWxpc3QtPmlzUm9vdGVkQXREb2N1bWVudCgpKTsKICAgICAgICAgICAgIGxpc3QtPmlu
dmFsaWRhdGVDYWNoZSgqb2xkRG9jdW1lbnQpOwogICAgICAgICB9CkBAIC0yNDIsNyArMjQyLDcg
QEAgcHJpdmF0ZToKICAgICBFbXB0eU5vZGVMaXN0KiBtX2VtcHR5Q2hpbGROb2RlTGlzdDsKIAog
ICAgIE5vZGVMaXN0QXRvbWljTmFtZUNhY2hlTWFwIG1fYXRvbWljTmFtZUNhY2hlczsKLSAgICBU
YWdDb2xsZWN0aW9uQ2FjaGVOUyBtX3RhZ0NvbGxlY3Rpb25DYWNoZU5TOworICAgIFRhZ0NvbGxl
Y3Rpb25OU0NhY2hlIG1fdGFnQ29sbGVjdGlvbk5TQ2FjaGU7CiAgICAgQ29sbGVjdGlvbkNhY2hl
TWFwIG1fY2FjaGVkQ29sbGVjdGlvbnM7CiB9OwogCkBAIC0zMDMsNyArMzAzLDcgQEAgaW5saW5l
IGJvb2wgTm9kZUxpc3RzTm9kZURhdGE6OmRlbGV0ZVRoaXNBbmRVcGRhdGVOb2RlUmFyZURhdGFJ
ZkFib3V0VG9SZW1vdmVMYXMKIHsKICAgICBBU1NFUlQob3duZXJOb2RlLm5vZGVMaXN0cygpID09
IHRoaXMpOwogICAgIGlmICgobV9jaGlsZE5vZGVMaXN0ID8gMSA6IDApICsgKG1fZW1wdHlDaGls
ZE5vZGVMaXN0ID8gMSA6IDApICsgbV9hdG9taWNOYW1lQ2FjaGVzLnNpemUoKQotICAgICAgICAr
IG1fdGFnQ29sbGVjdGlvbkNhY2hlTlMuc2l6ZSgpICsgbV9jYWNoZWRDb2xsZWN0aW9ucy5zaXpl
KCkgIT0gMSkKKyAgICAgICAgKyBtX3RhZ0NvbGxlY3Rpb25OU0NhY2hlLnNpemUoKSArIG1fY2Fj
aGVkQ29sbGVjdGlvbnMuc2l6ZSgpICE9IDEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBv
d25lck5vZGUuY2xlYXJOb2RlTGlzdHMoKTsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9UYWdDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UYWdDb2xsZWN0aW9uLmNwcAppbmRleCA4MTQwM2I2Li44MjhkNjg0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vVGFnQ29sbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1RhZ0NvbGxlY3Rpb24uY3BwCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAx
OTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50
dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDEgRGly
ayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwNywg
MjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAwNywgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC0yOCwzMiArMjgsNjAgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1UYWdDb2xsZWN0aW9uOjpUYWdDb2xsZWN0aW9uKENvbnRhaW5lck5vZGUm
IHJvb3ROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWlj
U3RyaW5nJiBsb2NhbE5hbWUpCi0gICAgOiBDYWNoZWRIVE1MQ29sbGVjdGlvbjxUYWdDb2xsZWN0
aW9uLCBDb2xsZWN0aW9uVHlwZVRyYWl0czxCeVRhZz46OnRyYXZlcnNhbFR5cGU+KHJvb3ROb2Rl
LCBCeVRhZykKK3N0YXRpYyBpbmxpbmUgQXRvbWljU3RyaW5nIG1ha2VRdWFsaWZpZWROYW1lKGNv
bnN0IFN0cmluZyYgcHJlZml4LCBjb25zdCBTdHJpbmcmIGxvY2FsTmFtZSkKK3sKKyAgICBpZiAo
cHJlZml4LmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gbG9jYWxOYW1lOworICAgIHJldHVybiBw
cmVmaXggKyAnOicgKyBsb2NhbE5hbWU7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBzcGxpdFF1
YWxpZmllZE5hbWUoY29uc3QgU3RyaW5nJiBxdWFsaWZpZWROYW1lLCBBdG9taWNTdHJpbmcmIHBy
ZWZpeCwgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCit7CisgICAgc2l6ZV90IGluZGV4ID0gcXVh
bGlmaWVkTmFtZS5maW5kKCc6Jyk7CisgICAgaWYgKGluZGV4ID09IG5vdEZvdW5kKQorICAgICAg
ICBsb2NhbE5hbWUgPSBxdWFsaWZpZWROYW1lOworICAgIGVsc2UgeworICAgICAgICBwcmVmaXgg
PSBxdWFsaWZpZWROYW1lLnN1YnN0cmluZygwLCBpbmRleCk7CisgICAgICAgIGxvY2FsTmFtZSA9
IHF1YWxpZmllZE5hbWUuc3Vic3RyaW5nKGluZGV4ICsgMSk7CisgICAgfQorICAgIEFTU0VSVCht
YWtlUXVhbGlmaWVkTmFtZShwcmVmaXgsIGxvY2FsTmFtZSkgPT0gcXVhbGlmaWVkTmFtZSk7Cit9
CisKK1RhZ0NvbGxlY3Rpb25OUzo6VGFnQ29sbGVjdGlvbk5TKENvbnRhaW5lck5vZGUmIHJvb3RO
b2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5n
JiBsb2NhbE5hbWUpCisgICAgOiBDYWNoZWRIVE1MQ29sbGVjdGlvbjxUYWdDb2xsZWN0aW9uTlMs
IENvbGxlY3Rpb25UeXBlVHJhaXRzPEJ5VGFnPjo6dHJhdmVyc2FsVHlwZT4ocm9vdE5vZGUsIEJ5
VGFnKQogICAgICwgbV9uYW1lc3BhY2VVUkkobmFtZXNwYWNlVVJJKQogICAgICwgbV9sb2NhbE5h
bWUobG9jYWxOYW1lKQogewogICAgIEFTU0VSVChtX25hbWVzcGFjZVVSSS5pc051bGwoKSB8fCAh
bV9uYW1lc3BhY2VVUkkuaXNFbXB0eSgpKTsKIH0KIAorVGFnQ29sbGVjdGlvbk5TOjp+VGFnQ29s
bGVjdGlvbk5TKCkKK3sKKyAgICBvd25lck5vZGUoKS5ub2RlTGlzdHMoKS0+cmVtb3ZlQ2FjaGVk
VGFnQ29sbGVjdGlvbk5TKCp0aGlzLCBtX25hbWVzcGFjZVVSSSwgbV9sb2NhbE5hbWUpOworfQor
CitUYWdDb2xsZWN0aW9uOjpUYWdDb2xsZWN0aW9uKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBj
b25zdCBBdG9taWNTdHJpbmcmIHF1YWxpZmllZE5hbWUpCisgICAgOiBDYWNoZWRIVE1MQ29sbGVj
dGlvbjxUYWdDb2xsZWN0aW9uLCBDb2xsZWN0aW9uVHlwZVRyYWl0czxCeVRhZz46OnRyYXZlcnNh
bFR5cGU+KHJvb3ROb2RlLCBCeVRhZykKK3sKKyAgICBzcGxpdFF1YWxpZmllZE5hbWUocXVhbGlm
aWVkTmFtZSwgbV9wcmVmaXgsIG1fbG9jYWxOYW1lKTsKK30KKwogVGFnQ29sbGVjdGlvbjo6flRh
Z0NvbGxlY3Rpb24oKQogewotICAgIGlmIChtX25hbWVzcGFjZVVSSSA9PSBzdGFyQXRvbSkKLSAg
ICAgICAgb3duZXJOb2RlKCkubm9kZUxpc3RzKCktPnJlbW92ZUNhY2hlZENvbGxlY3Rpb24odGhp
cywgbV9sb2NhbE5hbWUpOwotICAgIGVsc2UKLSAgICAgICAgb3duZXJOb2RlKCkubm9kZUxpc3Rz
KCktPnJlbW92ZUNhY2hlZENvbGxlY3Rpb25XaXRoUXVhbGlmaWVkTmFtZSgqdGhpcywgbV9uYW1l
c3BhY2VVUkksIG1fbG9jYWxOYW1lKTsKKyAgICBvd25lck5vZGUoKS5ub2RlTGlzdHMoKS0+cmVt
b3ZlQ2FjaGVkQ29sbGVjdGlvbih0aGlzLCBtYWtlUXVhbGlmaWVkTmFtZShtX3ByZWZpeCwgbV9s
b2NhbE5hbWUpKTsKIH0KIAotSFRNTFRhZ0NvbGxlY3Rpb246OkhUTUxUYWdDb2xsZWN0aW9uKENv
bnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSkKK0hU
TUxUYWdDb2xsZWN0aW9uOjpIVE1MVGFnQ29sbGVjdGlvbihDb250YWluZXJOb2RlJiByb290Tm9k
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBxdWFsaWZpZWROYW1lKQogICAgIDogQ2FjaGVkSFRNTENv
bGxlY3Rpb248SFRNTFRhZ0NvbGxlY3Rpb24sIENvbGxlY3Rpb25UeXBlVHJhaXRzPEJ5SFRNTFRh
Zz46OnRyYXZlcnNhbFR5cGU+KHJvb3ROb2RlLCBCeUhUTUxUYWcpCi0gICAgLCBtX2xvY2FsTmFt
ZShsb2NhbE5hbWUpCi0gICAgLCBtX2xvd2VyZWRMb2NhbE5hbWUobG9jYWxOYW1lLmNvbnZlcnRU
b0FTQ0lJTG93ZXJjYXNlKCkpCiB7CisgICAgc3BsaXRRdWFsaWZpZWROYW1lKHF1YWxpZmllZE5h
bWUsIG1fcHJlZml4LCBtX2xvY2FsTmFtZSk7CisgICAgbV9sb3dlcmVkUHJlZml4ID0gbV9wcmVm
aXguY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKKyAgICBtX2xvd2VyZWRMb2NhbE5hbWUgPSBt
X2xvY2FsTmFtZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwogfQogCiBIVE1MVGFnQ29sbGVj
dGlvbjo6fkhUTUxUYWdDb2xsZWN0aW9uKCkKIHsKLSAgICBvd25lck5vZGUoKS5ub2RlTGlzdHMo
KS0+cmVtb3ZlQ2FjaGVkQ29sbGVjdGlvbih0aGlzLCBtX2xvY2FsTmFtZSk7CisgICAgb3duZXJO
b2RlKCkubm9kZUxpc3RzKCktPnJlbW92ZUNhY2hlZENvbGxlY3Rpb24odGhpcywgbWFrZVF1YWxp
ZmllZE5hbWUobV9wcmVmaXgsIG1fbG9jYWxOYW1lKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UYWdDb2xsZWN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vVGFnQ29sbGVjdGlvbi5oCmluZGV4IDRjZmQzODEuLjQ2ODFjYzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UYWdDb2xsZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1RhZ0NvbGxlY3Rpb24uaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHly
aWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChD
KSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChD
KSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAy
MDA0LTIwMDgsIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA0LTIwMDgsIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzIsNjQgKzMyLDc3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIC8vIEhUTUxDb2xsZWN0aW9uIHRoYXQgbGltaXRzIHRvIGEgcGFy
dGljdWxhciB0YWcuCiBjbGFzcyBUYWdDb2xsZWN0aW9uIGZpbmFsIDogcHVibGljIENhY2hlZEhU
TUxDb2xsZWN0aW9uPFRhZ0NvbGxlY3Rpb24sIENvbGxlY3Rpb25UeXBlVHJhaXRzPEJ5VGFnPjo6
dHJhdmVyc2FsVHlwZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VGFnQ29sbGVjdGlvbj4g
Y3JlYXRlKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVz
cGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCi0gICAgewotICAgICAgICBB
U1NFUlQobmFtZXNwYWNlVVJJICE9IHN0YXJBdG9tKTsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgVGFnQ29sbGVjdGlvbihyb290Tm9kZSwgbmFtZXNwYWNlVVJJLCBsb2NhbE5hbWUpKTsK
LSAgICB9Ci0KLSAgICBzdGF0aWMgUmVmPFRhZ0NvbGxlY3Rpb24+IGNyZWF0ZShDb250YWluZXJO
b2RlJiByb290Tm9kZSwgQ29sbGVjdGlvblR5cGUgdHlwZSwgY29uc3QgQXRvbWljU3RyaW5nJiBs
b2NhbE5hbWUpCisgICAgc3RhdGljIFJlZjxUYWdDb2xsZWN0aW9uPiBjcmVhdGUoQ29udGFpbmVy
Tm9kZSYgcm9vdE5vZGUsIENvbGxlY3Rpb25UeXBlIHR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYg
cXVhbGlmaWVkTmFtZSkKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQodHlwZSwgdHlwZSA9
PSBCeVRhZyk7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRhZ0NvbGxlY3Rpb24ocm9v
dE5vZGUsIHN0YXJBdG9tLCBsb2NhbE5hbWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgVGFnQ29sbGVjdGlvbihyb290Tm9kZSwgcXVhbGlmaWVkTmFtZSkpOwogICAgIH0KIAogICAg
IHZpcnR1YWwgflRhZ0NvbGxlY3Rpb24oKTsKLQogICAgIGJvb2wgZWxlbWVudE1hdGNoZXMoRWxl
bWVudCYpIGNvbnN0OwogCi1wcm90ZWN0ZWQ6Ci0gICAgVGFnQ29sbGVjdGlvbihDb250YWluZXJO
b2RlJiByb290Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0
b21pY1N0cmluZyYgbG9jYWxOYW1lKTsKK3ByaXZhdGU6CisgICAgVGFnQ29sbGVjdGlvbihDb250
YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBxdWFsaWZpZWROYW1lKTsK
IAotICAgIEF0b21pY1N0cmluZyBtX25hbWVzcGFjZVVSSTsKKyAgICBBdG9taWNTdHJpbmcgbV9w
cmVmaXg7CiAgICAgQXRvbWljU3RyaW5nIG1fbG9jYWxOYW1lOwogfTsKIAotaW5saW5lIGJvb2wg
VGFnQ29sbGVjdGlvbjo6ZWxlbWVudE1hdGNoZXMoRWxlbWVudCYgZWxlbWVudCkgY29uc3QKLXsK
LSAgICAvLyBJbXBsZW1lbnRzIGh0dHA6Ly9kdmNzLnczLm9yZy9oZy9kb21jb3JlL3Jhdy1maWxl
L3RpcC9PdmVydmlldy5odG1sI2NvbmNlcHQtZ2V0ZWxlbWVudHNieXRhZ25hbWVucwotICAgIGlm
IChtX2xvY2FsTmFtZSAhPSBzdGFyQXRvbSAmJiBtX2xvY2FsTmFtZSAhPSBlbGVtZW50LmxvY2Fs
TmFtZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7CitjbGFzcyBUYWdDb2xsZWN0aW9uTlMgZmlu
YWwgOiBwdWJsaWMgQ2FjaGVkSFRNTENvbGxlY3Rpb248VGFnQ29sbGVjdGlvbk5TLCBDb2xsZWN0
aW9uVHlwZVRyYWl0czxCeVRhZz46OnRyYXZlcnNhbFR5cGU+IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUmVmPFRhZ0NvbGxlY3Rpb25OUz4gY3JlYXRlKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2Nh
bE5hbWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUYWdDb2xsZWN0aW9u
TlMocm9vdE5vZGUsIG5hbWVzcGFjZVVSSSwgbG9jYWxOYW1lKSk7CisgICAgfQogCi0gICAgcmV0
dXJuIG1fbmFtZXNwYWNlVVJJID09IHN0YXJBdG9tIHx8IG1fbmFtZXNwYWNlVVJJID09IGVsZW1l
bnQubmFtZXNwYWNlVVJJKCk7Ci19CisgICAgdmlydHVhbCB+VGFnQ29sbGVjdGlvbk5TKCk7Cisg
ICAgYm9vbCBlbGVtZW50TWF0Y2hlcyhFbGVtZW50JikgY29uc3Q7CisKK3ByaXZhdGU6CisgICAg
VGFnQ29sbGVjdGlvbk5TKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpOworCisgICAg
QXRvbWljU3RyaW5nIG1fbmFtZXNwYWNlVVJJOworICAgIEF0b21pY1N0cmluZyBtX2xvY2FsTmFt
ZTsKK307CiAKIGNsYXNzIEhUTUxUYWdDb2xsZWN0aW9uIGZpbmFsIDogcHVibGljIENhY2hlZEhU
TUxDb2xsZWN0aW9uPEhUTUxUYWdDb2xsZWN0aW9uLCBDb2xsZWN0aW9uVHlwZVRyYWl0czxCeUhU
TUxUYWc+Ojp0cmF2ZXJzYWxUeXBlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxIVE1MVGFn
Q29sbGVjdGlvbj4gY3JlYXRlKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBDb2xsZWN0aW9uVHlw
ZSB0eXBlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSkKKyAgICBzdGF0aWMgUmVmPEhU
TUxUYWdDb2xsZWN0aW9uPiBjcmVhdGUoQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIENvbGxlY3Rp
b25UeXBlIHR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYgcXVhbGlmaWVkTmFtZSkKICAgICB7CiAg
ICAgICAgIEFTU0VSVF9VTlVTRUQodHlwZSwgdHlwZSA9PSBCeUhUTUxUYWcpOwotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MVGFnQ29sbGVjdGlvbihyb290Tm9kZSwgbG9jYWxOYW1l
KSk7CisgICAgICAgIEFTU0VSVChxdWFsaWZpZWROYW1lICE9IHN0YXJBdG9tKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTFRhZ0NvbGxlY3Rpb24ocm9vdE5vZGUsIHF1YWxpZmll
ZE5hbWUpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5IVE1MVGFnQ29sbGVjdGlvbigpOwotCiAg
ICAgYm9vbCBlbGVtZW50TWF0Y2hlcyhFbGVtZW50JikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAg
SFRNTFRhZ0NvbGxlY3Rpb24oQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IEF0b21pY1N0
cmluZyYgbG9jYWxOYW1lKTsKKyAgICBIVE1MVGFnQ29sbGVjdGlvbihDb250YWluZXJOb2RlJiBy
b290Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBxdWFsaWZpZWROYW1lKTsKIAorICAgIEF0b21p
Y1N0cmluZyBtX3ByZWZpeDsKKyAgICBBdG9taWNTdHJpbmcgbV9sb3dlcmVkUHJlZml4OwogICAg
IEF0b21pY1N0cmluZyBtX2xvY2FsTmFtZTsKICAgICBBdG9taWNTdHJpbmcgbV9sb3dlcmVkTG9j
YWxOYW1lOwogfTsKIAoraW5saW5lIGJvb2wgVGFnQ29sbGVjdGlvbjo6ZWxlbWVudE1hdGNoZXMo
RWxlbWVudCYgZWxlbWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9sb2NhbE5hbWUgPT0gZWxl
bWVudC5sb2NhbE5hbWUoKSAmJiBtX3ByZWZpeCA9PSBlbGVtZW50LnByZWZpeCgpOworfQorCitp
bmxpbmUgYm9vbCBUYWdDb2xsZWN0aW9uTlM6OmVsZW1lbnRNYXRjaGVzKEVsZW1lbnQmIGVsZW1l
bnQpIGNvbnN0Cit7CisgICAgaWYgKG1fbG9jYWxOYW1lICE9IHN0YXJBdG9tICYmIG1fbG9jYWxO
YW1lICE9IGVsZW1lbnQubG9jYWxOYW1lKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBy
ZXR1cm4gbV9uYW1lc3BhY2VVUkkgPT0gc3RhckF0b20gfHwgbV9uYW1lc3BhY2VVUkkgPT0gZWxl
bWVudC5uYW1lc3BhY2VVUkkoKTsKK30KKwogaW5saW5lIGJvb2wgSFRNTFRhZ0NvbGxlY3Rpb246
OmVsZW1lbnRNYXRjaGVzKEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0CiB7Ci0gICAgLy8gSW1wbGVt
ZW50cyBodHRwOi8vZHZjcy53My5vcmcvaGcvZG9tY29yZS9yYXctZmlsZS90aXAvT3ZlcnZpZXcu
aHRtbCNjb25jZXB0LWdldGVsZW1lbnRzYnl0YWduYW1lCi0gICAgaWYgKG1fbG9jYWxOYW1lID09
IHN0YXJBdG9tKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjb25zdCBBdG9taWNTdHJpbmcm
IGxvY2FsTmFtZSA9IGVsZW1lbnQuaXNIVE1MRWxlbWVudCgpID8gbV9sb3dlcmVkTG9jYWxOYW1l
IDogbV9sb2NhbE5hbWU7Ci0gICAgcmV0dXJuIGxvY2FsTmFtZSA9PSBlbGVtZW50LmxvY2FsTmFt
ZSgpOworICAgIGlmIChlbGVtZW50LmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIG1f
bG93ZXJlZExvY2FsTmFtZSA9PSBlbGVtZW50LmxvY2FsTmFtZSgpICYmIG1fbG93ZXJlZFByZWZp
eCA9PSBlbGVtZW50LnByZWZpeCgpOworICAgIHJldHVybiBtX2xvY2FsTmFtZSA9PSBlbGVtZW50
LmxvY2FsTmFtZSgpICYmIG1fcHJlZml4ID09IGVsZW1lbnQucHJlZml4KCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sbGVj
dGlvblR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sbGVjdGlvblR5cGUuaAppbmRleCA4
MzFkNjc2OS4uZDc2YTkwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xsZWN0
aW9uVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sbGVjdGlvblR5cGUuaApAQCAt
NTQsNiArNTQsNyBAQCBlbnVtIENvbGxlY3Rpb25UeXBlIHsKICAgICBCeUNsYXNzLAogICAgIEJ5
VGFnLAogICAgIEJ5SFRNTFRhZywKKyAgICBBbGxEZXNjZW5kYW50cwogfTsKIAogZW51bSBjbGFz
cyBDb2xsZWN0aW9uVHJhdmVyc2FsVHlwZSB7IERlc2NlbmRhbnRzLCBDaGlsZHJlbk9ubHksIEN1
c3RvbUZvcndhcmRPbmx5IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0dlbmVy
aWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0dlbmVyaWND
YWNoZWRIVE1MQ29sbGVjdGlvbi5jcHAKaW5kZXggMjc1MmU0YS4uODMwNTJlYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9HZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmNwcApA
QCAtNzUsNiArNzUsNyBAQCBib29sIEdlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbjx0cmF2ZXJz
YWxUeXBlPjo6ZWxlbWVudE1hdGNoZXMoRWxlbWVudCYgZWxlbWVudAogICAgIGNhc2UgQnlDbGFz
czoKICAgICBjYXNlIEJ5VGFnOgogICAgIGNhc2UgQnlIVE1MVGFnOgorICAgIGNhc2UgQWxsRGVz
Y2VuZGFudHM6CiAgICAgY2FzZSBEb2NBbGw6CiAgICAgY2FzZSBEb2N1bWVudE5hbWVkSXRlbXM6
CiAgICAgY2FzZSBGb3JtQ29udHJvbHM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24u
Y3BwCmluZGV4IDkyOWY0ZTYuLjhjMTczOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENvbGxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxl
Y3Rpb24uY3BwCkBAIC00Niw2ICs0Niw3IEBAIGlubGluZSBhdXRvIEhUTUxDb2xsZWN0aW9uOjpy
b290VHlwZUZyb21Db2xsZWN0aW9uVHlwZShDb2xsZWN0aW9uVHlwZSB0eXBlKSAtPiBSCiAgICAg
Y2FzZSBEb2N1bWVudE5hbWVkSXRlbXM6CiAgICAgY2FzZSBGb3JtQ29udHJvbHM6CiAgICAgICAg
IHJldHVybiBIVE1MQ29sbGVjdGlvbjo6SXNSb290ZWRBdERvY3VtZW50OworICAgIGNhc2UgQWxs
RGVzY2VuZGFudHM6CiAgICAgY2FzZSBCeUNsYXNzOgogICAgIGNhc2UgQnlUYWc6CiAgICAgY2Fz
ZSBCeUhUTUxUYWc6CkBAIC02OSw2ICs3MCw3IEBAIHN0YXRpYyBOb2RlTGlzdEludmFsaWRhdGlv
blR5cGUgaW52YWxpZGF0aW9uVHlwZUV4Y2x1ZGluZ0lkQW5kTmFtZUF0dHJpYnV0ZXMoQ29sCiAg
ICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBCeVRhZzoKICAgICBjYXNlIEJ5SFRNTFRhZzoK
KyAgICBjYXNlIEFsbERlc2NlbmRhbnRzOgogICAgIGNhc2UgRG9jSW1hZ2VzOgogICAgIGNhc2Ug
RG9jRW1iZWRzOgogICAgIGNhc2UgRG9jRm9ybXM6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285913</attachid>
            <date>2016-08-12 08:45:29 -0700</date>
            <delta_ts>2016-08-12 10:56:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160682-20160812084350.patch</filename>
            <type>text/plain</type>
            <size>40432</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTBlZmI3MWVlODNjNDFl
ZDRkNTgxYzVjMTQ4YTliZGI0NGM1OWU3My4uMTJmODZjZDY4YTgxYmMxYzIyZDRhYmE5ZDgyMmM4
ZmUzYjNhYzg3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE2LTA4LTEyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgZ2V0RWxlbWVudHNCeVRhZ05h
bWUoKSBzaG91bGQgdGFrZSBhIHF1YWxpZmllZE5hbWUgaW4gcGFyYW1ldGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2ODIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBnZXRFbGVtZW50c0J5VGFnTmFt
ZSgpIHNob3VsZCB0YWtlIGEgcXVhbGlmaWVkTmFtZSBpbiBwYXJhbWV0ZXIsIG5vdCBhCisgICAg
ICAgIGxvY2FsTmFtZSwgYWNjb3JkaW5nIHRvIHRoZSBsYXRlc3QgRE9NIHNwZWNpZmljYXRpb246
CisgICAgICAgIC0gaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNkb20tZG9jdW1lbnQtZ2V0
ZWxlbWVudHNieXRhZ25hbWUKKyAgICAgICAgLSBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcv
I2NvbmNlcHQtZ2V0ZWxlbWVudHNieXRhZ25hbWUKKworICAgICAgICBUaGUgbmV3IGJlaGF2aW9y
IG1hdGNoZXMgRmlyZWZveCBhbmQgRWRnZS4gVGhlcmUgaXMgYSBzbGlnaHQKKyAgICAgICAgY29t
cGF0aWJsaXR5IHJpc2sgYnV0IHdlIHNob3VsZCBnaXZlIGl0IGEgdHJ5LgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cywgcmViYXNlbGluZWQgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0FsbERlc2NlbmRh
bnRzQ29sbGVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9kZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpnZXRFbGVtZW50c0J5VGFnTmFtZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpnZXRFbGVtZW50c0J5VGFnTmFtZU5T
KToKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlTGlzdHNO
b2RlRGF0YTo6aW52YWxpZGF0ZUNhY2hlcyk6CisgICAgICAgICogZG9tL05vZGVSYXJlRGF0YS5o
OgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3RzTm9kZURhdGE6OmFkZENhY2hlZFRhZ0NvbGxl
Y3Rpb25OUyk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlTGlzdHNOb2RlRGF0YTo6cmVtb3ZlQ2Fj
aGVkVGFnQ29sbGVjdGlvbk5TKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVMaXN0c05vZGVEYXRh
OjphZG9wdERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVMaXN0c05vZGVEYXRhOjpk
ZWxldGVUaGlzQW5kVXBkYXRlTm9kZVJhcmVEYXRhSWZBYm91dFRvUmVtb3ZlTGFzdExpc3QpOgor
ICAgICAgICAqIGRvbS9UYWdDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VR
dWFsaWZpZWROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OnNwbGl0UXVhbGlmaWVkTmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpUYWdDb2xsZWN0aW9uTlM6OlRhZ0NvbGxlY3Rpb25OUyk6CisgICAg
ICAgIChXZWJDb3JlOjpUYWdDb2xsZWN0aW9uTlM6On5UYWdDb2xsZWN0aW9uTlMpOgorICAgICAg
ICAoV2ViQ29yZTo6VGFnQ29sbGVjdGlvbjo6VGFnQ29sbGVjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpUYWdDb2xsZWN0aW9uOjp+VGFnQ29sbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVGFnQ29sbGVjdGlvbjo6SFRNTFRhZ0NvbGxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRhZ0NvbGxlY3Rpb246On5IVE1MVGFnQ29sbGVjdGlvbik6CisgICAgICAgICogZG9tL1Rh
Z0NvbGxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OlRhZ0NvbGxlY3Rpb246OmVsZW1lbnRN
YXRjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlRhZ0NvbGxlY3Rpb25OUzo6ZWxlbWVudE1hdGNo
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhZ0NvbGxlY3Rpb246OmVsZW1lbnRNYXRjaGVz
KToKKyAgICAgICAgKiBodG1sL0NvbGxlY3Rpb25UeXBlLmg6CisgICAgICAgICogaHRtbC9HZW5l
cmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY0Nh
Y2hlZEhUTUxDb2xsZWN0aW9uPHRyYXZlcnNhbFR5cGU+OjplbGVtZW50TWF0Y2hlcyk6CisgICAg
ICAgICogaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbnZhbGlk
YXRpb25UeXBlRXhjbHVkaW5nSWRBbmROYW1lQXR0cmlidXRlcyk6CisKIDIwMTYtMDgtMTEgIE15
bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBNaWdyYXRl
IGZyb20gaW50cyB0byB1bnNpZ25lZHMgd2hlbiByZWZlcnJpbmcgdG8gaW5kaWNlcyBpbnRvIHN0
cmluZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA3NzQ3MDA4MzY3ZmU2NTBkYjg2ZGU0ZDA5MThjYTE0NDljOGE5N2M2Li40YzA3
MjQwNzU4MTg0OGQ5YTUzYWU2N2Q2ZmU4OWU3ZGQ2MGJhMWU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yOTQ5LDYgKzI5NDks
NyBAQAogCQk4M0E0QTlGOTFDRTdGRDgxMDA3MDlCMDAgLyogSlNYTUxEb2N1bWVudEN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0E0QTlG
ODFDRTdGRDdFMDA3MDlCMDAgLyogSlNYTUxEb2N1bWVudEN1c3RvbS5jcHAgKi87IH07CiAJCTgz
QjJEMTc1MUI4QkNENkEwMEEwMkU0NyAvKiBOYXRpdmVOb2RlRmlsdGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0U5NTlFMTFCOEJDMjJCMDA0RDkz
ODUgLyogTmF0aXZlTm9kZUZpbHRlci5oICovOyB9OwogCQk4M0I5Njg3QjE5RjhBQjgzMDA0RUY3
QUYgLyogU3R5bGVCdWlsZGVyQ29udmVydGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4M0I5Njg3OTE5RjhBQjgzMDA0RUY3QUYgLyogU3R5bGVCdWls
ZGVyQ29udmVydGVyLmggKi87IH07CisJCTgzQkI1Qzg4MUQ1RDZGNDUwMDVBNzFGNCAvKiBBbGxE
ZXNjZW5kYW50c0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzQkI1Qzg3MUQ1RDZGM0EwMDVBNzFGNCAvKiBBbGxEZXNjZW5kYW50c0Nv
bGxlY3Rpb24uaCAqLzsgfTsKIAkJODNDMDVBNUExQTY4NjIxMjAwN0U1REVBIC8qIFN0eWxlUHJv
cGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODNDMDVBNTgxQTY4NjIxMjAwN0U1REVBIC8qIFN0eWxlUHJvcGVy
dHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwICovOyB9OwogCQk4M0MwNUE1QjFBNjg2MjEyMDA3RTVE
RUEgLyogU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNDMDVBNTkxQTY4NjIxMjAwN0U1REVBIC8q
IFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuaCAqLzsgfTsKIAkJODNDMUQ0MjUxNzhE
NUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdBcmNBYnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQzFENDEzMTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQ
YXRoU2VnQXJjQWJzLmggKi87IH07CkBAIC0xMDM4MCw2ICsxMDM4MSw3IEBACiAJCTgzOUFBRkVC
MUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBIVE1MV0JSRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4M0E0QTlGODFDRTdGRDdFMDA3MDlCMDAgLyogSlNYTUxEb2N1bWVudEN1c3RvbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1hNTERvY3VtZW50Q3VzdG9t
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNCOTY4NzkxOUY4QUI4MzAwNEVG
N0FGIC8qIFN0eWxlQnVpbGRlckNvbnZlcnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJODNCQjVDODcxRDVENkYzQTAwNUE3MUY0IC8qIEFsbERlc2NlbmRhbnRzQ29sbGVjdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBbGxEZXNjZW5kYW50c0NvbGxl
Y3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNDMDVBNTgxQTY4NjIxMjAw
N0U1REVBIC8qIFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9u
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzQzA1QTU5MUE2ODYyMTIwMDdF
NURFQSAvKiBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNDMUQ0MTMxNzhENUFCNDAwMTQxRTY4IC8qIFNW
R1BhdGhTZWdBcmNBYnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGF0
aFNlZ0FyY0Ficy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE1MTIsOCArMTE1
MTQsOCBAQAogCQk5QkQ0RTkxODFDNDYyQ0ZDMDA1MDY1QkMgLyogQ3VzdG9tRWxlbWVudHNSZWdp
c3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXN0b21FbGVt
ZW50c1JlZ2lzdHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJENEU5MTkx
QzQ2MkNGQzAwNTA2NUJDIC8qIEN1c3RvbUVsZW1lbnRzUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ3VzdG9tRWxlbWVudHNSZWdpc3RyeS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5QkQ4QTk1OTE4QkVGQzc2MDA5ODdFOUEgLyogQ29sbGVjdGlv
bkluZGV4Q2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29s
bGVjdGlvbkluZGV4Q2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5QkU2
NzEwOTFENUFFQjA0MDAzNDU1MTQgLyogSlNDdXN0b21FbGVtZW50c1JlZ2lzdHJ5LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTQ3VzdG9tRWxlbWVudHNSZWdpc3Ry
eS5jcHA7IHBhdGggPSAiSlNDdXN0b21FbGVtZW50c1JlZ2lzdHJ5LmNwcCI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTlCRTY3MTBBMUQ1QUVCMDQwMDM0NTUxNCAvKiBKU0N1c3RvbUVs
ZW1lbnRzUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNDdXN0
b21FbGVtZW50c1JlZ2lzdHJ5Lmg7IHBhdGggPSAiSlNDdXN0b21FbGVtZW50c1JlZ2lzdHJ5Lmgi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QkU2NzEwOTFENUFFQjA0MDAzNDU1MTQg
LyogSlNDdXN0b21FbGVtZW50c1JlZ2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTQ3VzdG9tRWxlbWVudHNSZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTlCRTY3MTBBMUQ1QUVCMDQwMDM0NTUxNCAvKiBKU0N1c3RvbUVsZW1l
bnRzUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDdXN0b21F
bGVtZW50c1JlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCRjlBODdF
MTY0OEREMkYwMDFDNkIyMyAvKiBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTEZvcm1Db250cm9sc0NvbGxl
Y3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QkY5QTg3RjE2NDhERDJG
MDAxQzZCMjMgLyogSlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlENjM4MDBGMUFGMTZFMTYwMDMxQTE1QyAvKiBTdHls
ZVNlbGZBbGlnbm1lbnREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
eWxlU2VsZkFsaWdubWVudERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIz
ODkyLDYgKzIzODk0LDcgQEAKIAkJCQk3Q0QwQkEwMzFCOEY3OUM5MDA1Q0VCQkUgLyogQWN0aXZl
RE9NQ2FsbGJhY2tNaWNyb3Rhc2suaCAqLywKIAkJCQlFMUM0REU2RDBFQTc1QzY1MDAyM0NDRDYg
LyogQWN0aXZlRE9NT2JqZWN0LmNwcCAqLywKIAkJCQlFMUM0REU2ODBFQTc1QzFFMDAyM0NDRDYg
LyogQWN0aXZlRE9NT2JqZWN0LmggKi8sCisJCQkJODNCQjVDODcxRDVENkYzQTAwNUE3MUY0IC8q
IEFsbERlc2NlbmRhbnRzQ29sbGVjdGlvbi5oICovLAogCQkJCTMxOTg0N0ZFMUExRDgxNjcwMEEx
MzMxOCAvKiBBbmltYXRpb25FdmVudC5jcHAgKi8sCiAJCQkJMzE5ODQ3RkYxQTFEODE2NzAwQTEz
MzE4IC8qIEFuaW1hdGlvbkV2ZW50LmggKi8sCiAJCQkJMzE5ODQ4MDAxQTFEODE2NzAwQTEzMzE4
IC8qIEFuaW1hdGlvbkV2ZW50LmlkbCAqLywKQEAgLTI2Mzk3LDYgKzI2NDAwLDcgQEAKIAkJCQlC
NjU4RkZBMjE1MjJFRjNBMDBERDU1OTUgLyogSlNSYWRpb05vZGVMaXN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk2NURGMzIwMjA5RDFDQzYwMDAwQkUzMjUgLyogSlNSYW5nZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJN0M0Qzk2REQxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0uaCBp
biBIZWFkZXJzICovLAorCQkJCTgzQkI1Qzg4MUQ1RDZGNDUwMDVBNzFGNCAvKiBBbGxEZXNjZW5k
YW50c0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTZDNEM5NkRGMUFENDQ4MzUwMDM2
NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdDNEM5NkRGMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVs
dFJlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEyOURGODYxQkI1QjgwQzAwMzIyQTE2IC8q
IEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmggaW4gSGVhZGVycyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9BbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24uaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zMGU5NmIyNWRjZjg5ZDY2N2FjMDY0NWNmZDBkNjIxNjMzMWRmMTRlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0FsbERlc2NlbmRhbnRzQ29sbGVjdGlvbi5oCkBAIC0w
LDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNhY2hl
ZEhUTUxDb2xsZWN0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gQ29sbGVjdGlv
biB0aGF0IG1hdGNoZXMgYWxsIGVsZW1lbnQgZGVzY2VuZGFudHMuCitjbGFzcyBBbGxEZXNjZW5k
YW50c0NvbGxlY3Rpb24gZmluYWwgOiBwdWJsaWMgQ2FjaGVkSFRNTENvbGxlY3Rpb248QWxsRGVz
Y2VuZGFudHNDb2xsZWN0aW9uLCBDb2xsZWN0aW9uVHlwZVRyYWl0czxBbGxEZXNjZW5kYW50cz46
OnRyYXZlcnNhbFR5cGU+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEFsbERlc2NlbmRhbnRz
Q29sbGVjdGlvbj4gY3JlYXRlKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBDb2xsZWN0aW9uVHlw
ZSB0eXBlKQorICAgIHsKKyAgICAgICAgQVNTRVJUX1VOVVNFRCh0eXBlLCB0eXBlID09IEFsbERl
c2NlbmRhbnRzKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWxsRGVzY2VuZGFudHND
b2xsZWN0aW9uKHJvb3ROb2RlKSk7CisgICAgfQorCisgICAgYm9vbCBlbGVtZW50TWF0Y2hlcyhF
bGVtZW50JikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0
IEFsbERlc2NlbmRhbnRzQ29sbGVjdGlvbihDb250YWluZXJOb2RlJiByb290Tm9kZSkKKyAgICAg
ICAgOiBDYWNoZWRIVE1MQ29sbGVjdGlvbjxBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24sIENvbGxl
Y3Rpb25UeXBlVHJhaXRzPEFsbERlc2NlbmRhbnRzPjo6dHJhdmVyc2FsVHlwZT4ocm9vdE5vZGUs
IEFsbERlc2NlbmRhbnRzKQorICAgIHsgfQorfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5l
ck5vZGUuY3BwCmluZGV4IDVlOTdlZTc2MDU2NTFlNDMxMTkyZmM5YzViMGRhNjg4MmQ1MGM5MWEu
LmJlMGM1ZDUyNTQwNjFiNWU1ZTY4MmJjYWFkNDdkMTk5YjA4OWIxZTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJDb250YWlu
ZXJOb2RlLmgiCiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiQWxsRGVz
Y2VuZGFudHNDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5o
IgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgpAQCAtODIw
LDIzICs4MjEsMjIgQEAgUmVmUHRyPE5vZGVMaXN0PiBDb250YWluZXJOb2RlOjpxdWVyeVNlbGVj
dG9yQWxsKGNvbnN0IFN0cmluZyYgc2VsZWN0b3JzLCBFeGNlcHQKICAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAotUmVmPEhUTUxDb2xsZWN0aW9uPiBDb250YWluZXJOb2RlOjpnZXRFbGVtZW50c0J5
VGFnTmFtZShjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSkKK1JlZjxIVE1MQ29sbGVjdGlv
bj4gQ29udGFpbmVyTm9kZTo6Z2V0RWxlbWVudHNCeVRhZ05hbWUoY29uc3QgQXRvbWljU3RyaW5n
JiBxdWFsaWZpZWROYW1lKQogewotICAgIEFTU0VSVCghbG9jYWxOYW1lLmlzTnVsbCgpKTsKKyAg
ICBBU1NFUlQoIXF1YWxpZmllZE5hbWUuaXNOdWxsKCkpOworCisgICAgaWYgKHF1YWxpZmllZE5h
bWUgPT0gc3RhckF0b20pCisgICAgICAgIHJldHVybiBlbnN1cmVSYXJlRGF0YSgpLmVuc3VyZU5v
ZGVMaXN0cygpLmFkZENhY2hlZENvbGxlY3Rpb248QWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uPigq
dGhpcywgQWxsRGVzY2VuZGFudHMpOwogCiAgICAgaWYgKGRvY3VtZW50KCkuaXNIVE1MRG9jdW1l
bnQoKSkKLSAgICAgICAgcmV0dXJuIGVuc3VyZVJhcmVEYXRhKCkuZW5zdXJlTm9kZUxpc3RzKCku
YWRkQ2FjaGVkQ29sbGVjdGlvbjxIVE1MVGFnQ29sbGVjdGlvbj4oKnRoaXMsIEJ5SFRNTFRhZywg
bG9jYWxOYW1lKTsKLSAgICByZXR1cm4gZW5zdXJlUmFyZURhdGEoKS5lbnN1cmVOb2RlTGlzdHMo
KS5hZGRDYWNoZWRDb2xsZWN0aW9uPFRhZ0NvbGxlY3Rpb24+KCp0aGlzLCBCeVRhZywgbG9jYWxO
YW1lKTsKKyAgICAgICAgcmV0dXJuIGVuc3VyZVJhcmVEYXRhKCkuZW5zdXJlTm9kZUxpc3RzKCku
YWRkQ2FjaGVkQ29sbGVjdGlvbjxIVE1MVGFnQ29sbGVjdGlvbj4oKnRoaXMsIEJ5SFRNTFRhZywg
cXVhbGlmaWVkTmFtZSk7CisgICAgcmV0dXJuIGVuc3VyZVJhcmVEYXRhKCkuZW5zdXJlTm9kZUxp
c3RzKCkuYWRkQ2FjaGVkQ29sbGVjdGlvbjxUYWdDb2xsZWN0aW9uPigqdGhpcywgQnlUYWcsIHF1
YWxpZmllZE5hbWUpOwogfQogCiBSZWY8SFRNTENvbGxlY3Rpb24+IENvbnRhaW5lck5vZGU6Omdl
dEVsZW1lbnRzQnlUYWdOYW1lTlMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNv
bnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKQogewogICAgIEFTU0VSVCghbG9jYWxOYW1lLmlz
TnVsbCgpKTsKLQotICAgIGlmIChuYW1lc3BhY2VVUkkgPT0gc3RhckF0b20pCi0gICAgICAgIHJl
dHVybiBnZXRFbGVtZW50c0J5VGFnTmFtZShsb2NhbE5hbWUpOwotCi0gICAgcmV0dXJuIGVuc3Vy
ZVJhcmVEYXRhKCkuZW5zdXJlTm9kZUxpc3RzKCkuYWRkQ2FjaGVkQ29sbGVjdGlvbldpdGhRdWFs
aWZpZWROYW1lKCp0aGlzLCBuYW1lc3BhY2VVUkkuaXNFbXB0eSgpID8gbnVsbEF0b20gOiBuYW1l
c3BhY2VVUkksIGxvY2FsTmFtZSk7CisgICAgcmV0dXJuIGVuc3VyZVJhcmVEYXRhKCkuZW5zdXJl
Tm9kZUxpc3RzKCkuYWRkQ2FjaGVkVGFnQ29sbGVjdGlvbk5TKCp0aGlzLCBuYW1lc3BhY2VVUkku
aXNFbXB0eSgpID8gbnVsbEF0b20gOiBuYW1lc3BhY2VVUkksIGxvY2FsTmFtZSk7CiB9CiAKIFJl
ZjxOb2RlTGlzdD4gQ29udGFpbmVyTm9kZTo6Z2V0RWxlbWVudHNCeU5hbWUoY29uc3QgU3RyaW5n
JiBlbGVtZW50TmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA1NmQ3ZjU4NmJlYjMwNmFjNGQ1ZWE5
ZmZjNmJmMmYxZDIxM2FjNmJhLi4xZDQyMTA4YzBlMjNlMzU5M2MwZjA1YjhhYzYyMzM3MDFkNGY4
OGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0xODc2LDcgKzE4NzYsNyBAQCB2b2lkIE5vZGVMaXN0
c05vZGVEYXRhOjppbnZhbGlkYXRlQ2FjaGVzKGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJOYW1l
KQogICAgIGlmIChhdHRyTmFtZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZm9yIChhdXRvJiB0
YWdDb2xsZWN0aW9uIDogbV90YWdDb2xsZWN0aW9uQ2FjaGVOUykKKyAgICBmb3IgKGF1dG8mIHRh
Z0NvbGxlY3Rpb24gOiBtX3RhZ0NvbGxlY3Rpb25OU0NhY2hlKQogICAgICAgICB0YWdDb2xsZWN0
aW9uLnZhbHVlLT5pbnZhbGlkYXRlQ2FjaGVGb3JBdHRyaWJ1dGUobnVsbHB0cik7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmFyZURhdGEuaAppbmRleCAwOTJlNTZkN2MyMjZlMTdlOWUxYzM0OGFiMGQ5
YzkzNTUzOTVlYmU0Li5jMTBjNzc2ZDUzMDM2YzRmZTUzZmM3YjUxNTlhOTBjNDQ1YjQyN2UxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCkBAIC0xMTQsNyArMTE0LDcgQEAgcHVibGljOgog
CiAgICAgdHlwZWRlZiBIYXNoTWFwPHN0ZDo6cGFpcjx1bnNpZ25lZCBjaGFyLCBBdG9taWNTdHJp
bmc+LCBMaXZlTm9kZUxpc3QqLCBOb2RlTGlzdENhY2hlTWFwRW50cnlIYXNoPiBOb2RlTGlzdEF0
b21pY05hbWVDYWNoZU1hcDsKICAgICB0eXBlZGVmIEhhc2hNYXA8c3RkOjpwYWlyPHVuc2lnbmVk
IGNoYXIsIEF0b21pY1N0cmluZz4sIEhUTUxDb2xsZWN0aW9uKiwgTm9kZUxpc3RDYWNoZU1hcEVu
dHJ5SGFzaD4gQ29sbGVjdGlvbkNhY2hlTWFwOwotICAgIHR5cGVkZWYgSGFzaE1hcDxRdWFsaWZp
ZWROYW1lLCBUYWdDb2xsZWN0aW9uKj4gVGFnQ29sbGVjdGlvbkNhY2hlTlM7CisgICAgdHlwZWRl
ZiBIYXNoTWFwPFF1YWxpZmllZE5hbWUsIFRhZ0NvbGxlY3Rpb25OUyo+IFRhZ0NvbGxlY3Rpb25O
U0NhY2hlOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQ29udGFpbmVyVHlw
ZT4KICAgICBBTFdBWVNfSU5MSU5FIFJlZjxUPiBhZGRDYWNoZVdpdGhBdG9taWNOYW1lKENvbnRh
aW5lclR5cGUmIGNvbnRhaW5lciwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQpAQCAtMTI4LDE0
ICsxMjgsMTQgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbGlzdDsKICAgICB9CiAKLSAgICBB
TFdBWVNfSU5MSU5FIFJlZjxUYWdDb2xsZWN0aW9uPiBhZGRDYWNoZWRDb2xsZWN0aW9uV2l0aFF1
YWxpZmllZE5hbWUoQ29udGFpbmVyTm9kZSYgbm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1l
c3BhY2VVUkksIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKQorICAgIEFMV0FZU19JTkxJ
TkUgUmVmPFRhZ0NvbGxlY3Rpb25OUz4gYWRkQ2FjaGVkVGFnQ29sbGVjdGlvbk5TKENvbnRhaW5l
ck5vZGUmIG5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBBdG9t
aWNTdHJpbmcmIGxvY2FsTmFtZSkKICAgICB7CiAgICAgICAgIFF1YWxpZmllZE5hbWUgbmFtZShu
dWxsQXRvbSwgbG9jYWxOYW1lLCBuYW1lc3BhY2VVUkkpOwotICAgICAgICBUYWdDb2xsZWN0aW9u
Q2FjaGVOUzo6QWRkUmVzdWx0IHJlc3VsdCA9IG1fdGFnQ29sbGVjdGlvbkNhY2hlTlMuZmFzdEFk
ZChuYW1lLCBudWxscHRyKTsKKyAgICAgICAgVGFnQ29sbGVjdGlvbk5TQ2FjaGU6OkFkZFJlc3Vs
dCByZXN1bHQgPSBtX3RhZ0NvbGxlY3Rpb25OU0NhY2hlLmZhc3RBZGQobmFtZSwgbnVsbHB0cik7
CiAgICAgICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgICAgICByZXR1cm4gKnJl
c3VsdC5pdGVyYXRvci0+dmFsdWU7CiAKLSAgICAgICAgYXV0byBsaXN0ID0gVGFnQ29sbGVjdGlv
bjo6Y3JlYXRlKG5vZGUsIG5hbWVzcGFjZVVSSSwgbG9jYWxOYW1lKTsKKyAgICAgICAgYXV0byBs
aXN0ID0gVGFnQ29sbGVjdGlvbk5TOjpjcmVhdGUobm9kZSwgbmFtZXNwYWNlVVJJLCBsb2NhbE5h
bWUpOwogICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gbGlzdC5wdHIoKTsKICAgICAg
ICAgcmV0dXJuIGxpc3Q7CiAgICAgfQpAQCAtMTc5LDEzICsxNzksMTMgQEAgcHVibGljOgogICAg
ICAgICBtX2F0b21pY05hbWVDYWNoZXMucmVtb3ZlKG5hbWVkTm9kZUxpc3RLZXk8Tm9kZUxpc3RU
eXBlPihuYW1lKSk7CiAgICAgfQogCi0gICAgdm9pZCByZW1vdmVDYWNoZWRDb2xsZWN0aW9uV2l0
aFF1YWxpZmllZE5hbWUoSFRNTENvbGxlY3Rpb24mIGNvbGxlY3Rpb24sIGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSkKKyAgICB2
b2lkIHJlbW92ZUNhY2hlZFRhZ0NvbGxlY3Rpb25OUyhIVE1MQ29sbGVjdGlvbiYgY29sbGVjdGlv
biwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21pY1N0cmluZyYg
bG9jYWxOYW1lKQogICAgIHsKICAgICAgICAgUXVhbGlmaWVkTmFtZSBuYW1lKG51bGxBdG9tLCBs
b2NhbE5hbWUsIG5hbWVzcGFjZVVSSSk7Ci0gICAgICAgIEFTU0VSVCgmY29sbGVjdGlvbiA9PSBt
X3RhZ0NvbGxlY3Rpb25DYWNoZU5TLmdldChuYW1lKSk7CisgICAgICAgIEFTU0VSVCgmY29sbGVj
dGlvbiA9PSBtX3RhZ0NvbGxlY3Rpb25OU0NhY2hlLmdldChuYW1lKSk7CiAgICAgICAgIGlmIChk
ZWxldGVUaGlzQW5kVXBkYXRlTm9kZVJhcmVEYXRhSWZBYm91dFRvUmVtb3ZlTGFzdExpc3QoY29s
bGVjdGlvbi5vd25lck5vZGUoKSkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fdGFn
Q29sbGVjdGlvbkNhY2hlTlMucmVtb3ZlKG5hbWUpOworICAgICAgICBtX3RhZ0NvbGxlY3Rpb25O
U0NhY2hlLnJlbW92ZShuYW1lKTsKICAgICB9CiAKICAgICB2b2lkIHJlbW92ZUNhY2hlZENvbGxl
Y3Rpb24oSFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24sIGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSA9IHN0YXJBdG9tKQpAQCAtMjE0LDcgKzIxNCw3IEBAIHB1YmxpYzoKICAgICAgICAgZm9yIChh
dXRvJiBjYWNoZSA6IG1fYXRvbWljTmFtZUNhY2hlcy52YWx1ZXMoKSkKICAgICAgICAgICAgIGNh
Y2hlLT5pbnZhbGlkYXRlQ2FjaGUoKm9sZERvY3VtZW50KTsKIAotICAgICAgICBmb3IgKGF1dG8m
IGxpc3QgOiBtX3RhZ0NvbGxlY3Rpb25DYWNoZU5TLnZhbHVlcygpKSB7CisgICAgICAgIGZvciAo
YXV0byYgbGlzdCA6IG1fdGFnQ29sbGVjdGlvbk5TQ2FjaGUudmFsdWVzKCkpIHsKICAgICAgICAg
ICAgIEFTU0VSVCghbGlzdC0+aXNSb290ZWRBdERvY3VtZW50KCkpOwogICAgICAgICAgICAgbGlz
dC0+aW52YWxpZGF0ZUNhY2hlKCpvbGREb2N1bWVudCk7CiAgICAgICAgIH0KQEAgLTI0Miw3ICsy
NDIsNyBAQCBwcml2YXRlOgogICAgIEVtcHR5Tm9kZUxpc3QqIG1fZW1wdHlDaGlsZE5vZGVMaXN0
OwogCiAgICAgTm9kZUxpc3RBdG9taWNOYW1lQ2FjaGVNYXAgbV9hdG9taWNOYW1lQ2FjaGVzOwot
ICAgIFRhZ0NvbGxlY3Rpb25DYWNoZU5TIG1fdGFnQ29sbGVjdGlvbkNhY2hlTlM7CisgICAgVGFn
Q29sbGVjdGlvbk5TQ2FjaGUgbV90YWdDb2xsZWN0aW9uTlNDYWNoZTsKICAgICBDb2xsZWN0aW9u
Q2FjaGVNYXAgbV9jYWNoZWRDb2xsZWN0aW9uczsKIH07CiAKQEAgLTMwMyw3ICszMDMsNyBAQCBp
bmxpbmUgYm9vbCBOb2RlTGlzdHNOb2RlRGF0YTo6ZGVsZXRlVGhpc0FuZFVwZGF0ZU5vZGVSYXJl
RGF0YUlmQWJvdXRUb1JlbW92ZUxhcwogewogICAgIEFTU0VSVChvd25lck5vZGUubm9kZUxpc3Rz
KCkgPT0gdGhpcyk7CiAgICAgaWYgKChtX2NoaWxkTm9kZUxpc3QgPyAxIDogMCkgKyAobV9lbXB0
eUNoaWxkTm9kZUxpc3QgPyAxIDogMCkgKyBtX2F0b21pY05hbWVDYWNoZXMuc2l6ZSgpCi0gICAg
ICAgICsgbV90YWdDb2xsZWN0aW9uQ2FjaGVOUy5zaXplKCkgKyBtX2NhY2hlZENvbGxlY3Rpb25z
LnNpemUoKSAhPSAxKQorICAgICAgICArIG1fdGFnQ29sbGVjdGlvbk5TQ2FjaGUuc2l6ZSgpICsg
bV9jYWNoZWRDb2xsZWN0aW9ucy5zaXplKCkgIT0gMSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIG93bmVyTm9kZS5jbGVhck5vZGVMaXN0cygpOwogICAgIHJldHVybiB0cnVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RhZ0NvbGxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RhZ0NvbGxlY3Rpb24uY3BwCmluZGV4IDgxNDAzYjZlYWY4MzQzNmI4YzM5YmY5Y2Y4
YzM1NTZlMDFiZTlkNGQuLmM1M2Q5YjljMTFlNWZkZTkxYTAzMGM3NWZmMTFjZjYwNDU3OTg4MDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UYWdDb2xsZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vVGFnQ29sbGVjdGlvbi5jcHAKQEAgLTIsNyArMiw3IEBACiAgKiBD
b3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAgICAg
ICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAg
ICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAqIENvcHlyaWdodCAo
QykgMjAwNC0yMDA3LCAyMDE0LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA3LCAyMDE0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI4LDMyICsyOCw2MiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVRhZ0NvbGxlY3Rpb246OlRhZ0NvbGxlY3Rpb24o
Q29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJ
LCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSkKLSAgICA6IENhY2hlZEhUTUxDb2xsZWN0
aW9uPFRhZ0NvbGxlY3Rpb24sIENvbGxlY3Rpb25UeXBlVHJhaXRzPEJ5VGFnPjo6dHJhdmVyc2Fs
VHlwZT4ocm9vdE5vZGUsIEJ5VGFnKQorc3RhdGljIGlubGluZSBBdG9taWNTdHJpbmcgbWFrZVF1
YWxpZmllZE5hbWUoY29uc3QgU3RyaW5nJiBwcmVmaXgsIGNvbnN0IFN0cmluZyYgbG9jYWxOYW1l
KQoreworICAgIGlmIChwcmVmaXguaXNOdWxsKCkpCisgICAgICAgIHJldHVybiBsb2NhbE5hbWU7
CisgICAgcmV0dXJuIHByZWZpeCArICc6JyArIGxvY2FsTmFtZTsKK30KKworc3RhdGljIGlubGlu
ZSB2b2lkIHNwbGl0UXVhbGlmaWVkTmFtZShjb25zdCBTdHJpbmcmIHF1YWxpZmllZE5hbWUsIEF0
b21pY1N0cmluZyYgcHJlZml4LCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSkKK3sKKyAgICBzaXpl
X3QgaW5kZXggPSBxdWFsaWZpZWROYW1lLmZpbmQoJzonKTsKKyAgICBpZiAoaW5kZXggPT0gbm90
Rm91bmQpCisgICAgICAgIGxvY2FsTmFtZSA9IHF1YWxpZmllZE5hbWU7CisgICAgZWxzZSB7Cisg
ICAgICAgIHByZWZpeCA9IHF1YWxpZmllZE5hbWUuc3Vic3RyaW5nKDAsIGluZGV4KTsKKyAgICAg
ICAgbG9jYWxOYW1lID0gcXVhbGlmaWVkTmFtZS5zdWJzdHJpbmcoaW5kZXggKyAxKTsKKyAgICB9
CisgICAgQVNTRVJUKG1ha2VRdWFsaWZpZWROYW1lKHByZWZpeCwgbG9jYWxOYW1lKSA9PSBxdWFs
aWZpZWROYW1lKTsKK30KKworVGFnQ29sbGVjdGlvbk5TOjpUYWdDb2xsZWN0aW9uTlMoQ29udGFp
bmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25z
dCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSkKKyAgICA6IENhY2hlZEhUTUxDb2xsZWN0aW9uPFRh
Z0NvbGxlY3Rpb25OUywgQ29sbGVjdGlvblR5cGVUcmFpdHM8QnlUYWc+Ojp0cmF2ZXJzYWxUeXBl
Pihyb290Tm9kZSwgQnlUYWcpCiAgICAgLCBtX25hbWVzcGFjZVVSSShuYW1lc3BhY2VVUkkpCiAg
ICAgLCBtX2xvY2FsTmFtZShsb2NhbE5hbWUpCiB7CiAgICAgQVNTRVJUKG1fbmFtZXNwYWNlVVJJ
LmlzTnVsbCgpIHx8ICFtX25hbWVzcGFjZVVSSS5pc0VtcHR5KCkpOwogfQogCitUYWdDb2xsZWN0
aW9uTlM6On5UYWdDb2xsZWN0aW9uTlMoKQoreworICAgIG93bmVyTm9kZSgpLm5vZGVMaXN0cygp
LT5yZW1vdmVDYWNoZWRUYWdDb2xsZWN0aW9uTlMoKnRoaXMsIG1fbmFtZXNwYWNlVVJJLCBtX2xv
Y2FsTmFtZSk7Cit9CisKK1RhZ0NvbGxlY3Rpb246OlRhZ0NvbGxlY3Rpb24oQ29udGFpbmVyTm9k
ZSYgcm9vdE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgcXVhbGlmaWVkTmFtZSkKKyAgICA6IENh
Y2hlZEhUTUxDb2xsZWN0aW9uPFRhZ0NvbGxlY3Rpb24sIENvbGxlY3Rpb25UeXBlVHJhaXRzPEJ5
VGFnPjo6dHJhdmVyc2FsVHlwZT4ocm9vdE5vZGUsIEJ5VGFnKQoreworICAgIEFTU0VSVChxdWFs
aWZpZWROYW1lICE9IHN0YXJBdG9tKTsKKyAgICBzcGxpdFF1YWxpZmllZE5hbWUocXVhbGlmaWVk
TmFtZSwgbV9wcmVmaXgsIG1fbG9jYWxOYW1lKTsKK30KKwogVGFnQ29sbGVjdGlvbjo6flRhZ0Nv
bGxlY3Rpb24oKQogewotICAgIGlmIChtX25hbWVzcGFjZVVSSSA9PSBzdGFyQXRvbSkKLSAgICAg
ICAgb3duZXJOb2RlKCkubm9kZUxpc3RzKCktPnJlbW92ZUNhY2hlZENvbGxlY3Rpb24odGhpcywg
bV9sb2NhbE5hbWUpOwotICAgIGVsc2UKLSAgICAgICAgb3duZXJOb2RlKCkubm9kZUxpc3RzKCkt
PnJlbW92ZUNhY2hlZENvbGxlY3Rpb25XaXRoUXVhbGlmaWVkTmFtZSgqdGhpcywgbV9uYW1lc3Bh
Y2VVUkksIG1fbG9jYWxOYW1lKTsKKyAgICBvd25lck5vZGUoKS5ub2RlTGlzdHMoKS0+cmVtb3Zl
Q2FjaGVkQ29sbGVjdGlvbih0aGlzLCBtYWtlUXVhbGlmaWVkTmFtZShtX3ByZWZpeCwgbV9sb2Nh
bE5hbWUpKTsKIH0KIAotSFRNTFRhZ0NvbGxlY3Rpb246OkhUTUxUYWdDb2xsZWN0aW9uKENvbnRh
aW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSkKK0hUTUxU
YWdDb2xsZWN0aW9uOjpIVE1MVGFnQ29sbGVjdGlvbihDb250YWluZXJOb2RlJiByb290Tm9kZSwg
Y29uc3QgQXRvbWljU3RyaW5nJiBxdWFsaWZpZWROYW1lKQogICAgIDogQ2FjaGVkSFRNTENvbGxl
Y3Rpb248SFRNTFRhZ0NvbGxlY3Rpb24sIENvbGxlY3Rpb25UeXBlVHJhaXRzPEJ5SFRNTFRhZz46
OnRyYXZlcnNhbFR5cGU+KHJvb3ROb2RlLCBCeUhUTUxUYWcpCi0gICAgLCBtX2xvY2FsTmFtZShs
b2NhbE5hbWUpCi0gICAgLCBtX2xvd2VyZWRMb2NhbE5hbWUobG9jYWxOYW1lLmNvbnZlcnRUb0FT
Q0lJTG93ZXJjYXNlKCkpCiB7CisgICAgQVNTRVJUKHF1YWxpZmllZE5hbWUgIT0gc3RhckF0b20p
OworICAgIHNwbGl0UXVhbGlmaWVkTmFtZShxdWFsaWZpZWROYW1lLCBtX3ByZWZpeCwgbV9sb2Nh
bE5hbWUpOworICAgIG1fbG93ZXJlZFByZWZpeCA9IG1fcHJlZml4LmNvbnZlcnRUb0FTQ0lJTG93
ZXJjYXNlKCk7CisgICAgbV9sb3dlcmVkTG9jYWxOYW1lID0gbV9sb2NhbE5hbWUuY29udmVydFRv
QVNDSUlMb3dlcmNhc2UoKTsKIH0KIAogSFRNTFRhZ0NvbGxlY3Rpb246On5IVE1MVGFnQ29sbGVj
dGlvbigpCiB7Ci0gICAgb3duZXJOb2RlKCkubm9kZUxpc3RzKCktPnJlbW92ZUNhY2hlZENvbGxl
Y3Rpb24odGhpcywgbV9sb2NhbE5hbWUpOworICAgIG93bmVyTm9kZSgpLm5vZGVMaXN0cygpLT5y
ZW1vdmVDYWNoZWRDb2xsZWN0aW9uKHRoaXMsIG1ha2VRdWFsaWZpZWROYW1lKG1fcHJlZml4LCBt
X2xvY2FsTmFtZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vVGFnQ29sbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Rh
Z0NvbGxlY3Rpb24uaAppbmRleCA0Y2ZkMzgxNjdhNzhkZTQ3ZWEzMzZjYzBjZmNlZmYwYTJjYzRm
ZmFlLi41Nzg4OTk4NjY1Yzg1YWExZDc5ZTk5NWI1ZjY1ZDQ1ZTkzZWY5ZWNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vVGFnQ29sbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UYWdDb2xsZWN0aW9uLmgKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5
OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0
aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMSBEaXJr
IE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA4LCAy
MDE0LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwNC0yMDA4LCAyMDE0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTMyLDY0ICszMiw3NiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAvLyBIVE1MQ29sbGVjdGlvbiB0aGF0IGxpbWl0cyB0byBhIHBhcnRpY3VsYXIgdGFn
LgogY2xhc3MgVGFnQ29sbGVjdGlvbiBmaW5hbCA6IHB1YmxpYyBDYWNoZWRIVE1MQ29sbGVjdGlv
bjxUYWdDb2xsZWN0aW9uLCBDb2xsZWN0aW9uVHlwZVRyYWl0czxCeVRhZz46OnRyYXZlcnNhbFR5
cGU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFRhZ0NvbGxlY3Rpb24+IGNyZWF0ZShDb250
YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNv
bnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG5hbWVz
cGFjZVVSSSAhPSBzdGFyQXRvbSk7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRhZ0Nv
bGxlY3Rpb24ocm9vdE5vZGUsIG5hbWVzcGFjZVVSSSwgbG9jYWxOYW1lKSk7Ci0gICAgfQotCi0g
ICAgc3RhdGljIFJlZjxUYWdDb2xsZWN0aW9uPiBjcmVhdGUoQ29udGFpbmVyTm9kZSYgcm9vdE5v
ZGUsIENvbGxlY3Rpb25UeXBlIHR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKQor
ICAgIHN0YXRpYyBSZWY8VGFnQ29sbGVjdGlvbj4gY3JlYXRlKENvbnRhaW5lck5vZGUmIHJvb3RO
b2RlLCBDb2xsZWN0aW9uVHlwZSB0eXBlLCBjb25zdCBBdG9taWNTdHJpbmcmIHF1YWxpZmllZE5h
bWUpCiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKHR5cGUsIHR5cGUgPT0gQnlUYWcpOwot
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUYWdDb2xsZWN0aW9uKHJvb3ROb2RlLCBzdGFy
QXRvbSwgbG9jYWxOYW1lKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRhZ0NvbGxl
Y3Rpb24ocm9vdE5vZGUsIHF1YWxpZmllZE5hbWUpKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIH5U
YWdDb2xsZWN0aW9uKCk7Ci0KICAgICBib29sIGVsZW1lbnRNYXRjaGVzKEVsZW1lbnQmKSBjb25z
dDsKIAotcHJvdGVjdGVkOgotICAgIFRhZ0NvbGxlY3Rpb24oQ29udGFpbmVyTm9kZSYgcm9vdE5v
ZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBBdG9taWNTdHJpbmcm
IGxvY2FsTmFtZSk7Citwcml2YXRlOgorICAgIFRhZ0NvbGxlY3Rpb24oQ29udGFpbmVyTm9kZSYg
cm9vdE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgcXVhbGlmaWVkTmFtZSk7CiAKLSAgICBBdG9t
aWNTdHJpbmcgbV9uYW1lc3BhY2VVUkk7CisgICAgQXRvbWljU3RyaW5nIG1fcHJlZml4OwogICAg
IEF0b21pY1N0cmluZyBtX2xvY2FsTmFtZTsKIH07CiAKLWlubGluZSBib29sIFRhZ0NvbGxlY3Rp
b246OmVsZW1lbnRNYXRjaGVzKEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0Ci17Ci0gICAgLy8gSW1w
bGVtZW50cyBodHRwOi8vZHZjcy53My5vcmcvaGcvZG9tY29yZS9yYXctZmlsZS90aXAvT3ZlcnZp
ZXcuaHRtbCNjb25jZXB0LWdldGVsZW1lbnRzYnl0YWduYW1lbnMKLSAgICBpZiAobV9sb2NhbE5h
bWUgIT0gc3RhckF0b20gJiYgbV9sb2NhbE5hbWUgIT0gZWxlbWVudC5sb2NhbE5hbWUoKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOworY2xhc3MgVGFnQ29sbGVjdGlvbk5TIGZpbmFsIDogcHVibGlj
IENhY2hlZEhUTUxDb2xsZWN0aW9uPFRhZ0NvbGxlY3Rpb25OUywgQ29sbGVjdGlvblR5cGVUcmFp
dHM8QnlUYWc+Ojp0cmF2ZXJzYWxUeXBlPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxUYWdD
b2xsZWN0aW9uTlM+IGNyZWF0ZShDb250YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGFnQ29sbGVjdGlvbk5TKHJvb3ROb2Rl
LCBuYW1lc3BhY2VVUkksIGxvY2FsTmFtZSkpOworICAgIH0KIAotICAgIHJldHVybiBtX25hbWVz
cGFjZVVSSSA9PSBzdGFyQXRvbSB8fCBtX25hbWVzcGFjZVVSSSA9PSBlbGVtZW50Lm5hbWVzcGFj
ZVVSSSgpOwotfQorICAgIHZpcnR1YWwgflRhZ0NvbGxlY3Rpb25OUygpOworICAgIGJvb2wgZWxl
bWVudE1hdGNoZXMoRWxlbWVudCYpIGNvbnN0OworCitwcml2YXRlOgorICAgIFRhZ0NvbGxlY3Rp
b25OUyhDb250YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3Bh
Y2VVUkksIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKTsKKworICAgIEF0b21pY1N0cmlu
ZyBtX25hbWVzcGFjZVVSSTsKKyAgICBBdG9taWNTdHJpbmcgbV9sb2NhbE5hbWU7Cit9OwogCiBj
bGFzcyBIVE1MVGFnQ29sbGVjdGlvbiBmaW5hbCA6IHB1YmxpYyBDYWNoZWRIVE1MQ29sbGVjdGlv
bjxIVE1MVGFnQ29sbGVjdGlvbiwgQ29sbGVjdGlvblR5cGVUcmFpdHM8QnlIVE1MVGFnPjo6dHJh
dmVyc2FsVHlwZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8SFRNTFRhZ0NvbGxlY3Rpb24+
IGNyZWF0ZShDb250YWluZXJOb2RlJiByb290Tm9kZSwgQ29sbGVjdGlvblR5cGUgdHlwZSwgY29u
c3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCisgICAgc3RhdGljIFJlZjxIVE1MVGFnQ29sbGVj
dGlvbj4gY3JlYXRlKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBDb2xsZWN0aW9uVHlwZSB0eXBl
LCBjb25zdCBBdG9taWNTdHJpbmcmIHF1YWxpZmllZE5hbWUpCiAgICAgewogICAgICAgICBBU1NF
UlRfVU5VU0VEKHR5cGUsIHR5cGUgPT0gQnlIVE1MVGFnKTsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgSFRNTFRhZ0NvbGxlY3Rpb24ocm9vdE5vZGUsIGxvY2FsTmFtZSkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MVGFnQ29sbGVjdGlvbihyb290Tm9kZSwgcXVhbGlm
aWVkTmFtZSkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfkhUTUxUYWdDb2xsZWN0aW9uKCk7Ci0K
ICAgICBib29sIGVsZW1lbnRNYXRjaGVzKEVsZW1lbnQmKSBjb25zdDsKIAogcHJpdmF0ZToKLSAg
ICBIVE1MVGFnQ29sbGVjdGlvbihDb250YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3QgQXRvbWlj
U3RyaW5nJiBsb2NhbE5hbWUpOworICAgIEhUTUxUYWdDb2xsZWN0aW9uKENvbnRhaW5lck5vZGUm
IHJvb3ROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIHF1YWxpZmllZE5hbWUpOwogCisgICAgQXRv
bWljU3RyaW5nIG1fcHJlZml4OworICAgIEF0b21pY1N0cmluZyBtX2xvd2VyZWRQcmVmaXg7CiAg
ICAgQXRvbWljU3RyaW5nIG1fbG9jYWxOYW1lOwogICAgIEF0b21pY1N0cmluZyBtX2xvd2VyZWRM
b2NhbE5hbWU7CiB9OwogCitpbmxpbmUgYm9vbCBUYWdDb2xsZWN0aW9uOjplbGVtZW50TWF0Y2hl
cyhFbGVtZW50JiBlbGVtZW50KSBjb25zdAoreworICAgIHJldHVybiBtX2xvY2FsTmFtZSA9PSBl
bGVtZW50LmxvY2FsTmFtZSgpICYmIG1fcHJlZml4ID09IGVsZW1lbnQucHJlZml4KCk7Cit9CisK
K2lubGluZSBib29sIFRhZ0NvbGxlY3Rpb25OUzo6ZWxlbWVudE1hdGNoZXMoRWxlbWVudCYgZWxl
bWVudCkgY29uc3QKK3sKKyAgICBpZiAobV9sb2NhbE5hbWUgIT0gc3RhckF0b20gJiYgbV9sb2Nh
bE5hbWUgIT0gZWxlbWVudC5sb2NhbE5hbWUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiBtX25hbWVzcGFjZVVSSSA9PSBzdGFyQXRvbSB8fCBtX25hbWVzcGFjZVVSSSA9PSBl
bGVtZW50Lm5hbWVzcGFjZVVSSSgpOworfQorCiBpbmxpbmUgYm9vbCBIVE1MVGFnQ29sbGVjdGlv
bjo6ZWxlbWVudE1hdGNoZXMoRWxlbWVudCYgZWxlbWVudCkgY29uc3QKIHsKLSAgICAvLyBJbXBs
ZW1lbnRzIGh0dHA6Ly9kdmNzLnczLm9yZy9oZy9kb21jb3JlL3Jhdy1maWxlL3RpcC9PdmVydmll
dy5odG1sI2NvbmNlcHQtZ2V0ZWxlbWVudHNieXRhZ25hbWUKLSAgICBpZiAobV9sb2NhbE5hbWUg
PT0gc3RhckF0b20pCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbG9jYWxOYW1lID0gZWxlbWVudC5pc0hUTUxFbGVtZW50KCkgPyBtX2xvd2VyZWRMb2NhbE5h
bWUgOiBtX2xvY2FsTmFtZTsKLSAgICByZXR1cm4gbG9jYWxOYW1lID09IGVsZW1lbnQubG9jYWxO
YW1lKCk7CisgICAgaWYgKGVsZW1lbnQuaXNIVE1MRWxlbWVudCgpKQorICAgICAgICByZXR1cm4g
bV9sb3dlcmVkTG9jYWxOYW1lID09IGVsZW1lbnQubG9jYWxOYW1lKCkgJiYgbV9sb3dlcmVkUHJl
Zml4ID09IGVsZW1lbnQucHJlZml4KCk7CisgICAgcmV0dXJuIG1fbG9jYWxOYW1lID09IGVsZW1l
bnQubG9jYWxOYW1lKCkgJiYgbV9wcmVmaXggPT0gZWxlbWVudC5wcmVmaXgoKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xs
ZWN0aW9uVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xsZWN0aW9uVHlwZS5oCmluZGV4
IDgzMWQ2NzY5NmQ2ZDIwOGEwOTI2OTYwNzkyMGNmMDgyMTQyODY3YWUuLmQ3NmE5MDJiYWJlNTRh
ZTQ4N2Y5YTc5OTI0N2Y1NTZmZGQyOGVjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQ29sbGVjdGlvblR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbGxlY3Rpb25U
eXBlLmgKQEAgLTU0LDYgKzU0LDcgQEAgZW51bSBDb2xsZWN0aW9uVHlwZSB7CiAgICAgQnlDbGFz
cywKICAgICBCeVRhZywKICAgICBCeUhUTUxUYWcsCisgICAgQWxsRGVzY2VuZGFudHMKIH07CiAK
IGVudW0gY2xhc3MgQ29sbGVjdGlvblRyYXZlcnNhbFR5cGUgeyBEZXNjZW5kYW50cywgQ2hpbGRy
ZW5Pbmx5LCBDdXN0b21Gb3J3YXJkT25seSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9HZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9HZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uY3BwCmluZGV4IDI3NTJlNGE2MzBhZDQzMmE4
ZDhkNjcyZWU0OTQ4MzM2ZmVlNDliODYuLjgzMDUyZWNmODY4ZDRhOTgxNTBiZDcxYzlhYWU1OGI1
MWFjMmQ4NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvR2VuZXJpY0NhY2hlZEhU
TUxDb2xsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0dlbmVyaWNDYWNoZWRI
VE1MQ29sbGVjdGlvbi5jcHAKQEAgLTc1LDYgKzc1LDcgQEAgYm9vbCBHZW5lcmljQ2FjaGVkSFRN
TENvbGxlY3Rpb248dHJhdmVyc2FsVHlwZT46OmVsZW1lbnRNYXRjaGVzKEVsZW1lbnQmIGVsZW1l
bnQKICAgICBjYXNlIEJ5Q2xhc3M6CiAgICAgY2FzZSBCeVRhZzoKICAgICBjYXNlIEJ5SFRNTFRh
ZzoKKyAgICBjYXNlIEFsbERlc2NlbmRhbnRzOgogICAgIGNhc2UgRG9jQWxsOgogICAgIGNhc2Ug
RG9jdW1lbnROYW1lZEl0ZW1zOgogICAgIGNhc2UgRm9ybUNvbnRyb2xzOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDb2xsZWN0aW9uLmNwcAppbmRleCA5MjlmNGU2ZmE2NzZlZTAxY2Q3OGFkOWFkYTE4
NzQ0NWYwZDQ2YTVhLi44YzE3MzhhZTM1NWI5NzdhYWFjYjFkNmU2Y2JjODg2YzliYTI4NDgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNwcApAQCAtNDYsNiArNDYsNyBAQCBp
bmxpbmUgYXV0byBIVE1MQ29sbGVjdGlvbjo6cm9vdFR5cGVGcm9tQ29sbGVjdGlvblR5cGUoQ29s
bGVjdGlvblR5cGUgdHlwZSkgLT4gUgogICAgIGNhc2UgRG9jdW1lbnROYW1lZEl0ZW1zOgogICAg
IGNhc2UgRm9ybUNvbnRyb2xzOgogICAgICAgICByZXR1cm4gSFRNTENvbGxlY3Rpb246OklzUm9v
dGVkQXREb2N1bWVudDsKKyAgICBjYXNlIEFsbERlc2NlbmRhbnRzOgogICAgIGNhc2UgQnlDbGFz
czoKICAgICBjYXNlIEJ5VGFnOgogICAgIGNhc2UgQnlIVE1MVGFnOgpAQCAtNjksNiArNzAsNyBA
QCBzdGF0aWMgTm9kZUxpc3RJbnZhbGlkYXRpb25UeXBlIGludmFsaWRhdGlvblR5cGVFeGNsdWRp
bmdJZEFuZE5hbWVBdHRyaWJ1dGVzKENvbAogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2Ug
QnlUYWc6CiAgICAgY2FzZSBCeUhUTUxUYWc6CisgICAgY2FzZSBBbGxEZXNjZW5kYW50czoKICAg
ICBjYXNlIERvY0ltYWdlczoKICAgICBjYXNlIERvY0VtYmVkczoKICAgICBjYXNlIERvY0Zvcm1z
OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDRiNGJjMTlkNDc3MjVjNzEwYmNlZDVkYjY5ZWJlMGFkNzNmYTdjYmEuLjMyZDAw
NGJmYTJjNzliMzIyYzY4ZTJiZWJhNWJmNjYwMmUxYTAwYmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAxNi0wOC0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAg
IGdldEVsZW1lbnRzQnlUYWdOYW1lKCkgc2hvdWxkIHRha2UgYSBxdWFsaWZpZWROYW1lIGluIHBh
cmFtZXRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTYwNjgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXBkYXRlIGV4aXN0aW5nIHRlc3RzIHRvIHJlZmxlY3QgYmVoYXZpb3IgY2hhbmdlLgorCisgICAg
ICAgICogZmFzdC9kb20vZ2V0RWxlbWVudHNCeUNsYXNzTmFtZS8wMTAueG1sOgorICAgICAgICAq
IGZhc3QvZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUvMDExLnhtbDoKKwogMjAxNi0wOC0xMSAg
UnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJraW5nIHRy
YW5zaXRpb25zL2NsaXAtcGF0aC10cmFuc2l0aW9ucy5odG1sIGFuZCB0cmFuc2l0aW9ucy9jbGlw
LXBhdGgtcGF0aC10cmFuc2l0aW9ucy5odG1sIGFzIGZsYWt5IG9uIGlvcy1zaW11bGF0b3IuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAxMTE3OTM4MTVkMGU1Mzg4M2E5NjVhZjNi
ZjhjYWY0NzNhMzNiMWExLi5lNDNjOGVlYWMwNmQzMjZiNTc1YzMyZjYxMjA1NzA4YmE1YWNiZjhm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNi0w
OC0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIGdldEVsZW1l
bnRzQnlUYWdOYW1lKCkgc2hvdWxkIHRha2UgYSBxdWFsaWZpZWROYW1lIGluIHBhcmFtZXRlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjgyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWdldEVsZW1lbnRzQnlUYWdOYW1lLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50
LWdldEVsZW1lbnRzQnlUYWdOYW1lLXhodG1sLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvY2FzZS1l
eHBlY3RlZC50eHQ6CisgICAgICAgIFJlYmFzZWxpbmUgc2V2ZXJhbCBXM0MgdGVzdHMgbm93IHRo
YXQgbW9yZSBjaGVja3MgYXJlIHBhc3NpbmcuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvZG9tL25vZGVzL0RvY3VtZW50LWdldEVsZW1lbnRzQnlUYWdOYW1lLXhodG1sLnhodG1sOgor
ICAgICAgICBSZS1zeW5jIHRoaXMgdGVzdCBmcm9tIHVwc3RyZWFtIGFzIGl0IHdhcyBvdXRkYXRl
ZCBhZnRlcjoKKyAgICAgICAgLSBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9wdWxsLzM0NTcKKwogMjAxNi0wOC0xMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFsaWduIFJhbmdlLnN1cnJvdW5kQ29udGVudHMoKSB3aXRoIHRoZSBs
YXRlc3QgRE9NIHNwZWNpZmljYXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L2dldEVsZW1lbnRzQnlDbGFzc05hbWUvMDEwLnhtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dl
dEVsZW1lbnRzQnlDbGFzc05hbWUvMDEwLnhtbAppbmRleCA0NGY4NDc0YmFmOWNjOTlhYTU0MDE3
YTVkNzkyZGZhYTg3MzkyYjRiLi41Y2E3ODg4ZDkzODEyMTlkMjI3YzU1ODc3ZDFhNWI0YjZkZjE4
NDgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nZXRFbGVtZW50c0J5Q2xhc3NO
YW1lLzAxMC54bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2V0RWxlbWVudHNCeUNsYXNz
TmFtZS8wMTAueG1sCkBAIC03LDYgKzcsNiBAQAogICA8cCBpZD0iciI+RkFJTCAoc2NyaXB0IGRp
ZCBub3QgcnVuKTwvcD4gIAogICA8eCBjbGFzcz0iYSIvPgogICA8Zzp4IGNsYXNzPSJhIi8+Ci0g
IDxzY3JpcHQ+IHQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiYSIpLCBkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgieCIpKSA8L3NjcmlwdD4KKyAgPHNjcmlwdD4gdChkb2N1
bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJhIiksIGRvY3VtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lTlMoIioiLCAieCIpKSA8L3NjcmlwdD4KICA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nZXRFbGVtZW50c0J5Q2xhc3NOYW1lLzAxMS54bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nZXRFbGVtZW50c0J5Q2xhc3NOYW1lLzAxMS54bWwKaW5k
ZXggNjc5MGI1YTM0NWYwNzg1NzM5ZjQxMTk0YWJhOWQyNzljODQ0YmI2ZC4uODI3YTJmMzVkNzNm
ZmIxZmYyZTNmYjZhMTc1MWIwYWE4NzU5ZjMzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vZ2V0RWxlbWVudHNCeUNsYXNzTmFtZS8wMTEueG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUvMDExLnhtbApAQCAtMTIsNyArMTIsNyBAQAog
ICA8dDp4IGNsYXNzPSJhIiB0OmNsYXNzPSJhIiBoOmNsYXNzPSJhIiBnOmNsYXNzPSJhIi8+CiAg
IDxzY3JpcHQ+CiAgICB2YXIgY29sbGVjdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFz
c05hbWUoImEiKSwKLSAgICAgICB0ZXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
IngiKQorICAgICAgIHRlc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZU5TKCIqIiwg
IngiKQogICAgdChjb2xsZWN0aW9uLCBbdGVzdFswXSwgdGVzdFsxXV0pCiAgIDwvc2NyaXB0Pgog
IDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWdldEVsZW1lbnRzQnlUYWdOYW1lLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25v
ZGVzL0RvY3VtZW50LWdldEVsZW1lbnRzQnlUYWdOYW1lLWV4cGVjdGVkLnR4dAppbmRleCA3Njhm
NzgyYzJkMWE0YjU0MGMxN2EyYWYyYzk0YmEyMGU3NTVhY2RhLi43OTBiNzVjMTQ4NGNiOTM4NjQ2
MjZmY2JiN2FkMjBhOGRmYzFlOTM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5VGFn
TmFtZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUtZXhwZWN0
ZWQudHh0CkBAIC0xMiwxMSArMTIsMTEgQEAgUEFTUyBoYXNPd25Qcm9wZXJ0eSwgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yLCBnZXRPd25Qcm9wZXJ0eU5hbWVzCiBQQVNTIEhUTUwgZWxlbWVudCB3
aXRoIHVwcGVyY2FzZSB0YWdOYW1lIG5ldmVyIG1hdGNoZXMgaW4gSFRNTCBEb2N1bWVudHMgCiBQ
QVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBubyBwcmVmaXgsIGxvd2VyY2FzZSBu
YW1lIAogUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgbm8gcHJlZml4LCB1cHBl
cmNhc2UgbmFtZSAKLUZBSUwgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwg
bG93ZXJjYXNlIG5hbWUgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVj
dGVkIDAgZ290IDEKLUZBSUwgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwg
dXBwZXJjYXNlIG5hbWUgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVj
dGVkIDAgZ290IDEKK1BBU1MgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwg
bG93ZXJjYXNlIG5hbWUgCitQQVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVm
aXgsIHVwcGVyY2FzZSBuYW1lIAogUEFTUyBFbGVtZW50IGluIEhUTUwgbmFtZXNwYWNlLCBubyBw
cmVmaXgsIG5vbi1hc2NpaSBjaGFyYWN0ZXJzIGluIG5hbWUgCiBQQVNTIEVsZW1lbnQgaW4gbm9u
LUhUTUwgbmFtZXNwYWNlLCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAotRkFJTCBFbGVt
ZW50IGluIEhUTUwgbmFtZXNwYWNlLCBwcmVmaXgsIG5vbi1hc2NpaSBjaGFyYWN0ZXJzIGluIG5h
bWUgYXNzZXJ0X2FycmF5X2VxdWFsczogQWxsIHVwcGVyY2FzZSBpbnB1dCBsZW5ndGhzIGRpZmZl
ciwgZXhwZWN0ZWQgMSBnb3QgMAotRkFJTCBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwg
cHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIGFzc2VydF9hcnJheV9lcXVhbHM6
IEFsbCB1cHBlcmNhc2UgaW5wdXQgbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKK1BB
U1MgRWxlbWVudCBpbiBIVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVy
cyBpbiBuYW1lIAorUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBu
b24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAogUEFTUyBnZXRFbGVtZW50c0J5VGFnTmFtZSgn
KicpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS14aHRtbC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Rv
bS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS14aHRtbC1leHBlY3RlZC50eHQK
aW5kZXggMzZhYzI3N2UxZWFiMDc1OTIwMmU3MmM1YWY2NTljNWY5ZWIwMzJiMi4uMmMwMWZkY2Ni
Zjk2NjY1M2M0M2Y1NjgyMDBhYTcyYjYxZmNmNmU0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtZ2V0RWxl
bWVudHNCeVRhZ05hbWUteGh0bWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWdldEVsZW1lbnRz
QnlUYWdOYW1lLXhodG1sLWV4cGVjdGVkLnR4dApAQCAtMiw4ICsyLDggQEAKIFBBU1MgSFRNTCBl
bGVtZW50IHdpdGggdXBwZXJjYXNlIHRhZyBuYW1lIG1hdGNoZXMgaW4gWEhUTUwgZG9jdW1lbnRz
IAogUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgbm8gcHJlZml4LCBsb3dlcmNh
c2UgbmFtZSAKIFBBU1MgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIG5vIHByZWZpeCwg
dXBwZXJjYXNlIG5hbWUgCi1GQUlMIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVm
aXgsIGxvd2VyY2FzZSBuYW1lIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBl
eHBlY3RlZCAwIGdvdCAxCi1GQUlMIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVm
aXgsIHVwcGVyY2FzZSBuYW1lIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBl
eHBlY3RlZCAwIGdvdCAxCitQQVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVm
aXgsIGxvd2VyY2FzZSBuYW1lIAorUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwg
cHJlZml4LCB1cHBlcmNhc2UgbmFtZSAKIFBBU1MgRWxlbWVudCBpbiBIVE1MIG5hbWVzcGFjZSwg
bm8gcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAogUEFTUyBFbGVtZW50IGlu
IG5vbi1IVE1MIG5hbWVzcGFjZSwgbm9uLWFzY2lpIGNoYXJhY3RlcnMgaW4gbmFtZSAKIFBBU1Mg
RWxlbWVudCBpbiBIVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBp
biBuYW1lIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUteGh0bWwueGh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rl
cy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS14aHRtbC54aHRtbAppbmRleCAyYWU5MDc0
OGMyZmZhZTM5NTUwZjQ3N2UwYjQ4OWVmZDkzOWZmOTZkLi4zMDlhMjlhZTc3MjM1MWQ3MTU3N2Ew
ZGY3NzkyYThhM2ZiMjE0ZDc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFt
ZS14aHRtbC54aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS14aHRtbC54aHRt
bApAQCAtNzEsMTcgKzcxLDE3IEBAIHRlc3QoZnVuY3Rpb24oKSB7CiB0ZXN0KGZ1bmN0aW9uKCkg
ewogICB2YXIgdCA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwgInRlc3Q6YcOHIikpCiAgIHRo
aXMuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0KX0p
Ci0gIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIkHD
hyIpLCBbXSwgIkFsbCB1cHBlcmNhc2UgaW5wdXQiKQotICBhc3NlcnRfYXJyYXlfZXF1YWxzKGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhw4ciKSwgW3RdLCAiQXNjaWkgbG93ZXJjYXNl
IGlucHV0IikKLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgiYcOnIiksIFtdLCAiQWxsIGxvd2VyY2FzZSBpbnB1dCIpCisgIGFzc2VydF9hcnJheV9l
cXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRFU1Q6QcOHIiksIFtdLCAiQWxs
IHVwcGVyY2FzZSBpbnB1dCIpCisgIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoInRlc3Q6YcOHIiksIFt0XSwgIkFzY2lpIGxvd2VyY2FzZSBpbnB1dCIp
CisgIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRl
c3Q6YcOnIiksIFtdLCAiQWxsIGxvd2VyY2FzZSBpbnB1dCIpCiB9LCAiRWxlbWVudCBpbiBIVE1M
IG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIikKIAogdGVz
dChmdW5jdGlvbigpIHsKLSAgdmFyIHQgPSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnROUygidGVzdCIsICJ0ZXN0OkHDhyIpKQorICB2YXIgdCA9IGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJ0ZXN0IiwgIlRF
U1Q6QcOHIikpCiAgIHRoaXMuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7ZG9jdW1lbnQuYm9keS5y
ZW1vdmVDaGlsZCh0KX0pCi0gIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoIkHDhyIpLCBbdF0sICJBbGwgdXBwZXJjYXNlIGlucHV0IikKLSAgYXNzZXJ0
X2FycmF5X2VxdWFscyhkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYcOHIiksIFtdLCAi
QXNjaWkgbG93ZXJjYXNlIGlucHV0IikKLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhkb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgiYcOnIiksIFtdLCAiQWxsIGxvd2VyY2FzZSBpbnB1dCIpCisg
IGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRFU1Q6
QcOHIiksIFt0XSwgIkFsbCB1cHBlcmNhc2UgaW5wdXQiKQorICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZXN0OmHDhyIpLCBbXSwgIkFzY2lpIGxv
d2VyY2FzZSBpbnB1dCIpCisgIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoInRlc3Q6YcOnIiksIFtdLCAiQWxsIGxvd2VyY2FzZSBpbnB1dCIpCiB9LCAi
RWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwgbm9uLWFzY2lpIGNoYXJhY3Rl
cnMgaW4gbmFtZSIpCiAKIHRlc3QoZnVuY3Rpb24oKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWdldEVs
ZW1lbnRzQnlUYWdOYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUt
ZXhwZWN0ZWQudHh0CmluZGV4IGVlZDg3NTMzMjlhZGE3ZWZlOWYzZjA2NjIzMWU2M2MzNTk2MjQ2
NjAuLmNjN2FlNWRkMTU0MGRmOTUyYjZlMmVhOGJjMzE4Yjk2NWFkMWI1NjIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0Vs
ZW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtZ2V0RWxl
bWVudHNCeVRhZ05hbWUtZXhwZWN0ZWQudHh0CkBAIC0xMiwxMiArMTIsMTIgQEAgUEFTUyBoYXNP
d25Qcm9wZXJ0eSwgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLCBnZXRPd25Qcm9wZXJ0eU5hbWVz
CiBQQVNTIEhUTUwgZWxlbWVudCB3aXRoIHVwcGVyY2FzZSB0YWdOYW1lIG5ldmVyIG1hdGNoZXMg
aW4gSFRNTCBEb2N1bWVudHMgCiBQQVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBu
byBwcmVmaXgsIGxvd2VyY2FzZSBuYW1lIAogUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVz
cGFjZSwgbm8gcHJlZml4LCB1cHBlcmNhc2UgbmFtZSAKLUZBSUwgRWxlbWVudCBpbiBub24tSFRN
TCBuYW1lc3BhY2UsIHByZWZpeCwgbG93ZXJjYXNlIG5hbWUgYXNzZXJ0X2FycmF5X2VxdWFsczog
bGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDAgZ290IDEKLUZBSUwgRWxlbWVudCBpbiBub24tSFRN
TCBuYW1lc3BhY2UsIHByZWZpeCwgdXBwZXJjYXNlIG5hbWUgYXNzZXJ0X2FycmF5X2VxdWFsczog
bGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDAgZ290IDEKK1BBU1MgRWxlbWVudCBpbiBub24tSFRN
TCBuYW1lc3BhY2UsIHByZWZpeCwgbG93ZXJjYXNlIG5hbWUgCitQQVNTIEVsZW1lbnQgaW4gbm9u
LUhUTUwgbmFtZXNwYWNlLCBwcmVmaXgsIHVwcGVyY2FzZSBuYW1lIAogUEFTUyBFbGVtZW50IGlu
IEhUTUwgbmFtZXNwYWNlLCBubyBwcmVmaXgsIG5vbi1hc2NpaSBjaGFyYWN0ZXJzIGluIG5hbWUg
CiBQQVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBub24tYXNjaWkgY2hhcmFjdGVy
cyBpbiBuYW1lIAotRkFJTCBFbGVtZW50IGluIEhUTUwgbmFtZXNwYWNlLCBwcmVmaXgsIG5vbi1h
c2NpaSBjaGFyYWN0ZXJzIGluIG5hbWUgYXNzZXJ0X2FycmF5X2VxdWFsczogQWxsIHVwcGVyY2Fz
ZSBpbnB1dCBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMSBnb3QgMAotRkFJTCBFbGVtZW50IGlu
IG5vbi1IVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1l
IGFzc2VydF9hcnJheV9lcXVhbHM6IEFsbCB1cHBlcmNhc2UgaW5wdXQgbGVuZ3RocyBkaWZmZXIs
IGV4cGVjdGVkIDEgZ290IDAKK1BBU1MgRWxlbWVudCBpbiBIVE1MIG5hbWVzcGFjZSwgcHJlZml4
LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAorUEFTUyBFbGVtZW50IGluIG5vbi1IVE1M
IG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAogUEFTUyBn
ZXRFbGVtZW50c0J5VGFnTmFtZSgnKicpIAogUEFTUyBNYXRjaGluZyB0aGUgY29udGV4dCBvYmpl
Y3QgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL2Nhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvY2FzZS1leHBlY3RlZC50eHQKaW5kZXgg
ZTJiMjg4MjdiZDU2NjNkNTdiNTYwYTc2ZjBlNGVlODU3YTdjYjFhYi4uZjQyZWU3MGQ2MGI2OWQy
ODc2OGU2YmFiYjViNjZiMmZjNzZjYWQzYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvY2FzZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMv
Y2FzZS1leHBlY3RlZC50eHQKQEAgLTIsMjcgKzIsMjcgQEAKIFBBU1MgY3JlYXRlRWxlbWVudCBh
YmMgCiBQQVNTIHNldEF0dHJpYnV0ZSBhYmMgCiBQQVNTIGdldEF0dHJpYnV0ZSBhYmMgCi1GQUlM
IGdldEVsZW1lbnRzQnlUYWdOYW1lIGE6YWJjIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMg
ZGlmZmVyLCBleHBlY3RlZCAwIGdvdCAzCitQQVNTIGdldEVsZW1lbnRzQnlUYWdOYW1lIGE6YWJj
IAogUEFTUyBnZXRFbGVtZW50c0J5VGFnTmFtZSBhYmMgCiBQQVNTIGNyZWF0ZUVsZW1lbnQgQWJj
IAogUEFTUyBzZXRBdHRyaWJ1dGUgQWJjIAogUEFTUyBnZXRBdHRyaWJ1dGUgQWJjIAotRkFJTCBn
ZXRFbGVtZW50c0J5VGFnTmFtZSBhOkFiYyBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRp
ZmZlciwgZXhwZWN0ZWQgMCBnb3QgMworUEFTUyBnZXRFbGVtZW50c0J5VGFnTmFtZSBhOkFiYyAK
IFBBU1MgZ2V0RWxlbWVudHNCeVRhZ05hbWUgQWJjIAogUEFTUyBjcmVhdGVFbGVtZW50IEFCQyAK
IFBBU1Mgc2V0QXR0cmlidXRlIEFCQyAKIFBBU1MgZ2V0QXR0cmlidXRlIEFCQyAKLUZBSUwgZ2V0
RWxlbWVudHNCeVRhZ05hbWUgYTpBQkMgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZm
ZXIsIGV4cGVjdGVkIDAgZ290IDMKK1BBU1MgZ2V0RWxlbWVudHNCeVRhZ05hbWUgYTpBQkMgCiBQ
QVNTIGdldEVsZW1lbnRzQnlUYWdOYW1lIEFCQyAKIFBBU1MgY3JlYXRlRWxlbWVudCDDpCAKIFBB
U1Mgc2V0QXR0cmlidXRlIMOkIAogUEFTUyBnZXRBdHRyaWJ1dGUgw6QgCi1GQUlMIGdldEVsZW1l
bnRzQnlUYWdOYW1lIGE6w6QgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4
cGVjdGVkIDAgZ290IDMKK1BBU1MgZ2V0RWxlbWVudHNCeVRhZ05hbWUgYTrDpCAKIFBBU1MgZ2V0
RWxlbWVudHNCeVRhZ05hbWUgw6QgCiBQQVNTIGNyZWF0ZUVsZW1lbnQgw4QgCiBQQVNTIHNldEF0
dHJpYnV0ZSDDhCAKIFBBU1MgZ2V0QXR0cmlidXRlIMOEIAotRkFJTCBnZXRFbGVtZW50c0J5VGFn
TmFtZSBhOsOEIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAw
IGdvdCAzCitQQVNTIGdldEVsZW1lbnRzQnlUYWdOYW1lIGE6w4QgCiBQQVNTIGdldEVsZW1lbnRz
QnlUYWdOYW1lIMOEIAogUEFTUyBjcmVhdGVFbGVtZW50TlMgaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCxhYmMsYWJjIAogUEFTUyBzZXRBdHRyaWJ1dGVOUyBodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sLGFiYyxhYmMgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285920</attachid>
            <date>2016-08-12 10:56:40 -0700</date>
            <delta_ts>2016-08-12 20:23:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160682-20160812105500.patch</filename>
            <type>text/plain</type>
            <size>40450</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTBlZmI3MWVlODNjNDFl
ZDRkNTgxYzVjMTQ4YTliZGI0NGM1OWU3My4uMTJmODZjZDY4YTgxYmMxYzIyZDRhYmE5ZDgyMmM4
ZmUzYjNhYzg3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE2LTA4LTEyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgZ2V0RWxlbWVudHNCeVRhZ05h
bWUoKSBzaG91bGQgdGFrZSBhIHF1YWxpZmllZE5hbWUgaW4gcGFyYW1ldGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2ODIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBnZXRFbGVtZW50c0J5VGFnTmFt
ZSgpIHNob3VsZCB0YWtlIGEgcXVhbGlmaWVkTmFtZSBpbiBwYXJhbWV0ZXIsIG5vdCBhCisgICAg
ICAgIGxvY2FsTmFtZSwgYWNjb3JkaW5nIHRvIHRoZSBsYXRlc3QgRE9NIHNwZWNpZmljYXRpb246
CisgICAgICAgIC0gaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNkb20tZG9jdW1lbnQtZ2V0
ZWxlbWVudHNieXRhZ25hbWUKKyAgICAgICAgLSBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5vcmcv
I2NvbmNlcHQtZ2V0ZWxlbWVudHNieXRhZ25hbWUKKworICAgICAgICBUaGUgbmV3IGJlaGF2aW9y
IG1hdGNoZXMgRmlyZWZveCBhbmQgRWRnZS4gVGhlcmUgaXMgYSBzbGlnaHQKKyAgICAgICAgY29t
cGF0aWJsaXR5IHJpc2sgYnV0IHdlIHNob3VsZCBnaXZlIGl0IGEgdHJ5LgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cywgcmViYXNlbGluZWQgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0FsbERlc2NlbmRh
bnRzQ29sbGVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9kZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpnZXRFbGVtZW50c0J5VGFnTmFtZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpnZXRFbGVtZW50c0J5VGFnTmFtZU5T
KToKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlTGlzdHNO
b2RlRGF0YTo6aW52YWxpZGF0ZUNhY2hlcyk6CisgICAgICAgICogZG9tL05vZGVSYXJlRGF0YS5o
OgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3RzTm9kZURhdGE6OmFkZENhY2hlZFRhZ0NvbGxl
Y3Rpb25OUyk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlTGlzdHNOb2RlRGF0YTo6cmVtb3ZlQ2Fj
aGVkVGFnQ29sbGVjdGlvbk5TKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVMaXN0c05vZGVEYXRh
OjphZG9wdERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVMaXN0c05vZGVEYXRhOjpk
ZWxldGVUaGlzQW5kVXBkYXRlTm9kZVJhcmVEYXRhSWZBYm91dFRvUmVtb3ZlTGFzdExpc3QpOgor
ICAgICAgICAqIGRvbS9UYWdDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VR
dWFsaWZpZWROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OnNwbGl0UXVhbGlmaWVkTmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpUYWdDb2xsZWN0aW9uTlM6OlRhZ0NvbGxlY3Rpb25OUyk6CisgICAg
ICAgIChXZWJDb3JlOjpUYWdDb2xsZWN0aW9uTlM6On5UYWdDb2xsZWN0aW9uTlMpOgorICAgICAg
ICAoV2ViQ29yZTo6VGFnQ29sbGVjdGlvbjo6VGFnQ29sbGVjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpUYWdDb2xsZWN0aW9uOjp+VGFnQ29sbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVGFnQ29sbGVjdGlvbjo6SFRNTFRhZ0NvbGxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRhZ0NvbGxlY3Rpb246On5IVE1MVGFnQ29sbGVjdGlvbik6CisgICAgICAgICogZG9tL1Rh
Z0NvbGxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OlRhZ0NvbGxlY3Rpb246OmVsZW1lbnRN
YXRjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlRhZ0NvbGxlY3Rpb25OUzo6ZWxlbWVudE1hdGNo
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhZ0NvbGxlY3Rpb246OmVsZW1lbnRNYXRjaGVz
KToKKyAgICAgICAgKiBodG1sL0NvbGxlY3Rpb25UeXBlLmg6CisgICAgICAgICogaHRtbC9HZW5l
cmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VuZXJpY0Nh
Y2hlZEhUTUxDb2xsZWN0aW9uPHRyYXZlcnNhbFR5cGU+OjplbGVtZW50TWF0Y2hlcyk6CisgICAg
ICAgICogaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbnZhbGlk
YXRpb25UeXBlRXhjbHVkaW5nSWRBbmROYW1lQXR0cmlidXRlcyk6CisKIDIwMTYtMDgtMTEgIE15
bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBNaWdyYXRl
IGZyb20gaW50cyB0byB1bnNpZ25lZHMgd2hlbiByZWZlcnJpbmcgdG8gaW5kaWNlcyBpbnRvIHN0
cmluZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA3NzQ3MDA4MzY3ZmU2NTBkYjg2ZGU0ZDA5MThjYTE0NDljOGE5N2M2Li40YzA3
MjQwNzU4MTg0OGQ5YTUzYWU2N2Q2ZmU4OWU3ZGQ2MGJhMWU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yOTQ5LDYgKzI5NDks
NyBAQAogCQk4M0E0QTlGOTFDRTdGRDgxMDA3MDlCMDAgLyogSlNYTUxEb2N1bWVudEN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0E0QTlG
ODFDRTdGRDdFMDA3MDlCMDAgLyogSlNYTUxEb2N1bWVudEN1c3RvbS5jcHAgKi87IH07CiAJCTgz
QjJEMTc1MUI4QkNENkEwMEEwMkU0NyAvKiBOYXRpdmVOb2RlRmlsdGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0U5NTlFMTFCOEJDMjJCMDA0RDkz
ODUgLyogTmF0aXZlTm9kZUZpbHRlci5oICovOyB9OwogCQk4M0I5Njg3QjE5RjhBQjgzMDA0RUY3
QUYgLyogU3R5bGVCdWlsZGVyQ29udmVydGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4M0I5Njg3OTE5RjhBQjgzMDA0RUY3QUYgLyogU3R5bGVCdWls
ZGVyQ29udmVydGVyLmggKi87IH07CisJCTgzQkI1Qzg4MUQ1RDZGNDUwMDVBNzFGNCAvKiBBbGxE
ZXNjZW5kYW50c0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzQkI1Qzg3MUQ1RDZGM0EwMDVBNzFGNCAvKiBBbGxEZXNjZW5kYW50c0Nv
bGxlY3Rpb24uaCAqLzsgfTsKIAkJODNDMDVBNUExQTY4NjIxMjAwN0U1REVBIC8qIFN0eWxlUHJv
cGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODNDMDVBNTgxQTY4NjIxMjAwN0U1REVBIC8qIFN0eWxlUHJvcGVy
dHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwICovOyB9OwogCQk4M0MwNUE1QjFBNjg2MjEyMDA3RTVE
RUEgLyogU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNDMDVBNTkxQTY4NjIxMjAwN0U1REVBIC8q
IFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuaCAqLzsgfTsKIAkJODNDMUQ0MjUxNzhE
NUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdBcmNBYnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQzFENDEzMTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQ
YXRoU2VnQXJjQWJzLmggKi87IH07CkBAIC0xMDM4MCw2ICsxMDM4MSw3IEBACiAJCTgzOUFBRkVC
MUEwQzBDOEQwMDYwNUY5OSAvKiBIVE1MV0JSRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBIVE1MV0JSRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4M0E0QTlGODFDRTdGRDdFMDA3MDlCMDAgLyogSlNYTUxEb2N1bWVudEN1c3RvbS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1hNTERvY3VtZW50Q3VzdG9t
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNCOTY4NzkxOUY4QUI4MzAwNEVG
N0FGIC8qIFN0eWxlQnVpbGRlckNvbnZlcnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJODNCQjVDODcxRDVENkYzQTAwNUE3MUY0IC8qIEFsbERlc2NlbmRhbnRzQ29sbGVjdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBbGxEZXNjZW5kYW50c0NvbGxl
Y3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNDMDVBNTgxQTY4NjIxMjAw
N0U1REVBIC8qIFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9u
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzQzA1QTU5MUE2ODYyMTIwMDdF
NURFQSAvKiBTdHlsZVByb3BlcnR5U2hvcnRoYW5kRnVuY3Rpb25zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNDMUQ0MTMxNzhENUFCNDAwMTQxRTY4IC8qIFNW
R1BhdGhTZWdBcmNBYnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGF0
aFNlZ0FyY0Ficy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE1MTIsOCArMTE1
MTQsOCBAQAogCQk5QkQ0RTkxODFDNDYyQ0ZDMDA1MDY1QkMgLyogQ3VzdG9tRWxlbWVudHNSZWdp
c3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXN0b21FbGVt
ZW50c1JlZ2lzdHJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJENEU5MTkx
QzQ2MkNGQzAwNTA2NUJDIC8qIEN1c3RvbUVsZW1lbnRzUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ3VzdG9tRWxlbWVudHNSZWdpc3RyeS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5QkQ4QTk1OTE4QkVGQzc2MDA5ODdFOUEgLyogQ29sbGVjdGlv
bkluZGV4Q2FjaGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29s
bGVjdGlvbkluZGV4Q2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5QkU2
NzEwOTFENUFFQjA0MDAzNDU1MTQgLyogSlNDdXN0b21FbGVtZW50c1JlZ2lzdHJ5LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTQ3VzdG9tRWxlbWVudHNSZWdpc3Ry
eS5jcHA7IHBhdGggPSAiSlNDdXN0b21FbGVtZW50c1JlZ2lzdHJ5LmNwcCI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTlCRTY3MTBBMUQ1QUVCMDQwMDM0NTUxNCAvKiBKU0N1c3RvbUVs
ZW1lbnRzUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNDdXN0
b21FbGVtZW50c1JlZ2lzdHJ5Lmg7IHBhdGggPSAiSlNDdXN0b21FbGVtZW50c1JlZ2lzdHJ5Lmgi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QkU2NzEwOTFENUFFQjA0MDAzNDU1MTQg
LyogSlNDdXN0b21FbGVtZW50c1JlZ2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTQ3VzdG9tRWxlbWVudHNSZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTlCRTY3MTBBMUQ1QUVCMDQwMDM0NTUxNCAvKiBKU0N1c3RvbUVsZW1l
bnRzUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDdXN0b21F
bGVtZW50c1JlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCRjlBODdF
MTY0OEREMkYwMDFDNkIyMyAvKiBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTEZvcm1Db250cm9sc0NvbGxl
Y3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QkY5QTg3RjE2NDhERDJG
MDAxQzZCMjMgLyogSlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlENjM4MDBGMUFGMTZFMTYwMDMxQTE1QyAvKiBTdHls
ZVNlbGZBbGlnbm1lbnREYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
eWxlU2VsZkFsaWdubWVudERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIz
ODkyLDYgKzIzODk0LDcgQEAKIAkJCQk3Q0QwQkEwMzFCOEY3OUM5MDA1Q0VCQkUgLyogQWN0aXZl
RE9NQ2FsbGJhY2tNaWNyb3Rhc2suaCAqLywKIAkJCQlFMUM0REU2RDBFQTc1QzY1MDAyM0NDRDYg
LyogQWN0aXZlRE9NT2JqZWN0LmNwcCAqLywKIAkJCQlFMUM0REU2ODBFQTc1QzFFMDAyM0NDRDYg
LyogQWN0aXZlRE9NT2JqZWN0LmggKi8sCisJCQkJODNCQjVDODcxRDVENkYzQTAwNUE3MUY0IC8q
IEFsbERlc2NlbmRhbnRzQ29sbGVjdGlvbi5oICovLAogCQkJCTMxOTg0N0ZFMUExRDgxNjcwMEEx
MzMxOCAvKiBBbmltYXRpb25FdmVudC5jcHAgKi8sCiAJCQkJMzE5ODQ3RkYxQTFEODE2NzAwQTEz
MzE4IC8qIEFuaW1hdGlvbkV2ZW50LmggKi8sCiAJCQkJMzE5ODQ4MDAxQTFEODE2NzAwQTEzMzE4
IC8qIEFuaW1hdGlvbkV2ZW50LmlkbCAqLywKQEAgLTI2Mzk3LDYgKzI2NDAwLDcgQEAKIAkJCQlC
NjU4RkZBMjE1MjJFRjNBMDBERDU1OTUgLyogSlNSYWRpb05vZGVMaXN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk2NURGMzIwMjA5RDFDQzYwMDAwQkUzMjUgLyogSlNSYW5nZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJN0M0Qzk2REQxQUQ0NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0uaCBp
biBIZWFkZXJzICovLAorCQkJCTgzQkI1Qzg4MUQ1RDZGNDUwMDVBNzFGNCAvKiBBbGxEZXNjZW5k
YW50c0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTZDNEM5NkRGMUFENDQ4MzUwMDM2
NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdDNEM5NkRGMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVs
dFJlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEyOURGODYxQkI1QjgwQzAwMzIyQTE2IC8q
IEpTUmVhZGFibGVTdHJlYW1Qcml2YXRlQ29uc3RydWN0b3JzLmggaW4gSGVhZGVycyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9BbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24uaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zMGU5NmIyNWRjZjg5ZDY2N2FjMDY0NWNmZDBkNjIxNjMzMWRmMTRlCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0FsbERlc2NlbmRhbnRzQ29sbGVjdGlvbi5oCkBAIC0w
LDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNhY2hl
ZEhUTUxDb2xsZWN0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gQ29sbGVjdGlv
biB0aGF0IG1hdGNoZXMgYWxsIGVsZW1lbnQgZGVzY2VuZGFudHMuCitjbGFzcyBBbGxEZXNjZW5k
YW50c0NvbGxlY3Rpb24gZmluYWwgOiBwdWJsaWMgQ2FjaGVkSFRNTENvbGxlY3Rpb248QWxsRGVz
Y2VuZGFudHNDb2xsZWN0aW9uLCBDb2xsZWN0aW9uVHlwZVRyYWl0czxBbGxEZXNjZW5kYW50cz46
OnRyYXZlcnNhbFR5cGU+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPEFsbERlc2NlbmRhbnRz
Q29sbGVjdGlvbj4gY3JlYXRlKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBDb2xsZWN0aW9uVHlw
ZSB0eXBlKQorICAgIHsKKyAgICAgICAgQVNTRVJUX1VOVVNFRCh0eXBlLCB0eXBlID09IEFsbERl
c2NlbmRhbnRzKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQWxsRGVzY2VuZGFudHND
b2xsZWN0aW9uKHJvb3ROb2RlKSk7CisgICAgfQorCisgICAgYm9vbCBlbGVtZW50TWF0Y2hlcyhF
bGVtZW50JikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0
IEFsbERlc2NlbmRhbnRzQ29sbGVjdGlvbihDb250YWluZXJOb2RlJiByb290Tm9kZSkKKyAgICAg
ICAgOiBDYWNoZWRIVE1MQ29sbGVjdGlvbjxBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24sIENvbGxl
Y3Rpb25UeXBlVHJhaXRzPEFsbERlc2NlbmRhbnRzPjo6dHJhdmVyc2FsVHlwZT4ocm9vdE5vZGUs
IEFsbERlc2NlbmRhbnRzKQorICAgIHsgfQorfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5l
ck5vZGUuY3BwCmluZGV4IDVlOTdlZTc2MDU2NTFlNDMxMTkyZmM5YzViMGRhNjg4MmQ1MGM5MWEu
LmJlMGM1ZDUyNTQwNjFiNWU1ZTY4MmJjYWFkNDdkMTk5YjA4OWIxZTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJDb250YWlu
ZXJOb2RlLmgiCiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiQWxsRGVz
Y2VuZGFudHNDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiQ2hpbGRMaXN0TXV0YXRpb25TY29wZS5o
IgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgpAQCAtODIw
LDIzICs4MjEsMjIgQEAgUmVmUHRyPE5vZGVMaXN0PiBDb250YWluZXJOb2RlOjpxdWVyeVNlbGVj
dG9yQWxsKGNvbnN0IFN0cmluZyYgc2VsZWN0b3JzLCBFeGNlcHQKICAgICByZXR1cm4gbnVsbHB0
cjsKIH0KIAotUmVmPEhUTUxDb2xsZWN0aW9uPiBDb250YWluZXJOb2RlOjpnZXRFbGVtZW50c0J5
VGFnTmFtZShjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSkKK1JlZjxIVE1MQ29sbGVjdGlv
bj4gQ29udGFpbmVyTm9kZTo6Z2V0RWxlbWVudHNCeVRhZ05hbWUoY29uc3QgQXRvbWljU3RyaW5n
JiBxdWFsaWZpZWROYW1lKQogewotICAgIEFTU0VSVCghbG9jYWxOYW1lLmlzTnVsbCgpKTsKKyAg
ICBBU1NFUlQoIXF1YWxpZmllZE5hbWUuaXNOdWxsKCkpOworCisgICAgaWYgKHF1YWxpZmllZE5h
bWUgPT0gc3RhckF0b20pCisgICAgICAgIHJldHVybiBlbnN1cmVSYXJlRGF0YSgpLmVuc3VyZU5v
ZGVMaXN0cygpLmFkZENhY2hlZENvbGxlY3Rpb248QWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uPigq
dGhpcywgQWxsRGVzY2VuZGFudHMpOwogCiAgICAgaWYgKGRvY3VtZW50KCkuaXNIVE1MRG9jdW1l
bnQoKSkKLSAgICAgICAgcmV0dXJuIGVuc3VyZVJhcmVEYXRhKCkuZW5zdXJlTm9kZUxpc3RzKCku
YWRkQ2FjaGVkQ29sbGVjdGlvbjxIVE1MVGFnQ29sbGVjdGlvbj4oKnRoaXMsIEJ5SFRNTFRhZywg
bG9jYWxOYW1lKTsKLSAgICByZXR1cm4gZW5zdXJlUmFyZURhdGEoKS5lbnN1cmVOb2RlTGlzdHMo
KS5hZGRDYWNoZWRDb2xsZWN0aW9uPFRhZ0NvbGxlY3Rpb24+KCp0aGlzLCBCeVRhZywgbG9jYWxO
YW1lKTsKKyAgICAgICAgcmV0dXJuIGVuc3VyZVJhcmVEYXRhKCkuZW5zdXJlTm9kZUxpc3RzKCku
YWRkQ2FjaGVkQ29sbGVjdGlvbjxIVE1MVGFnQ29sbGVjdGlvbj4oKnRoaXMsIEJ5SFRNTFRhZywg
cXVhbGlmaWVkTmFtZSk7CisgICAgcmV0dXJuIGVuc3VyZVJhcmVEYXRhKCkuZW5zdXJlTm9kZUxp
c3RzKCkuYWRkQ2FjaGVkQ29sbGVjdGlvbjxUYWdDb2xsZWN0aW9uPigqdGhpcywgQnlUYWcsIHF1
YWxpZmllZE5hbWUpOwogfQogCiBSZWY8SFRNTENvbGxlY3Rpb24+IENvbnRhaW5lck5vZGU6Omdl
dEVsZW1lbnRzQnlUYWdOYW1lTlMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNv
bnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKQogewogICAgIEFTU0VSVCghbG9jYWxOYW1lLmlz
TnVsbCgpKTsKLQotICAgIGlmIChuYW1lc3BhY2VVUkkgPT0gc3RhckF0b20pCi0gICAgICAgIHJl
dHVybiBnZXRFbGVtZW50c0J5VGFnTmFtZShsb2NhbE5hbWUpOwotCi0gICAgcmV0dXJuIGVuc3Vy
ZVJhcmVEYXRhKCkuZW5zdXJlTm9kZUxpc3RzKCkuYWRkQ2FjaGVkQ29sbGVjdGlvbldpdGhRdWFs
aWZpZWROYW1lKCp0aGlzLCBuYW1lc3BhY2VVUkkuaXNFbXB0eSgpID8gbnVsbEF0b20gOiBuYW1l
c3BhY2VVUkksIGxvY2FsTmFtZSk7CisgICAgcmV0dXJuIGVuc3VyZVJhcmVEYXRhKCkuZW5zdXJl
Tm9kZUxpc3RzKCkuYWRkQ2FjaGVkVGFnQ29sbGVjdGlvbk5TKCp0aGlzLCBuYW1lc3BhY2VVUkku
aXNFbXB0eSgpID8gbnVsbEF0b20gOiBuYW1lc3BhY2VVUkksIGxvY2FsTmFtZSk7CiB9CiAKIFJl
ZjxOb2RlTGlzdD4gQ29udGFpbmVyTm9kZTo6Z2V0RWxlbWVudHNCeU5hbWUoY29uc3QgU3RyaW5n
JiBlbGVtZW50TmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA1NmQ3ZjU4NmJlYjMwNmFjNGQ1ZWE5
ZmZjNmJmMmYxZDIxM2FjNmJhLi4xZDQyMTA4YzBlMjNlMzU5M2MwZjA1YjhhYzYyMzM3MDFkNGY4
OGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0xODc2LDcgKzE4NzYsNyBAQCB2b2lkIE5vZGVMaXN0
c05vZGVEYXRhOjppbnZhbGlkYXRlQ2FjaGVzKGNvbnN0IFF1YWxpZmllZE5hbWUqIGF0dHJOYW1l
KQogICAgIGlmIChhdHRyTmFtZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZm9yIChhdXRvJiB0
YWdDb2xsZWN0aW9uIDogbV90YWdDb2xsZWN0aW9uQ2FjaGVOUykKKyAgICBmb3IgKGF1dG8mIHRh
Z0NvbGxlY3Rpb24gOiBtX3RhZ0NvbGxlY3Rpb25OU0NhY2hlKQogICAgICAgICB0YWdDb2xsZWN0
aW9uLnZhbHVlLT5pbnZhbGlkYXRlQ2FjaGVGb3JBdHRyaWJ1dGUobnVsbHB0cik7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlUmFyZURhdGEuaAppbmRleCAwOTJlNTZkN2MyMjZlMTdlOWUxYzM0OGFiMGQ5
YzkzNTUzOTVlYmU0Li5jMTBjNzc2ZDUzMDM2YzRmZTUzZmM3YjUxNTlhOTBjNDQ1YjQyN2UxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCkBAIC0xMTQsNyArMTE0LDcgQEAgcHVibGljOgog
CiAgICAgdHlwZWRlZiBIYXNoTWFwPHN0ZDo6cGFpcjx1bnNpZ25lZCBjaGFyLCBBdG9taWNTdHJp
bmc+LCBMaXZlTm9kZUxpc3QqLCBOb2RlTGlzdENhY2hlTWFwRW50cnlIYXNoPiBOb2RlTGlzdEF0
b21pY05hbWVDYWNoZU1hcDsKICAgICB0eXBlZGVmIEhhc2hNYXA8c3RkOjpwYWlyPHVuc2lnbmVk
IGNoYXIsIEF0b21pY1N0cmluZz4sIEhUTUxDb2xsZWN0aW9uKiwgTm9kZUxpc3RDYWNoZU1hcEVu
dHJ5SGFzaD4gQ29sbGVjdGlvbkNhY2hlTWFwOwotICAgIHR5cGVkZWYgSGFzaE1hcDxRdWFsaWZp
ZWROYW1lLCBUYWdDb2xsZWN0aW9uKj4gVGFnQ29sbGVjdGlvbkNhY2hlTlM7CisgICAgdHlwZWRl
ZiBIYXNoTWFwPFF1YWxpZmllZE5hbWUsIFRhZ0NvbGxlY3Rpb25OUyo+IFRhZ0NvbGxlY3Rpb25O
U0NhY2hlOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQ29udGFpbmVyVHlw
ZT4KICAgICBBTFdBWVNfSU5MSU5FIFJlZjxUPiBhZGRDYWNoZVdpdGhBdG9taWNOYW1lKENvbnRh
aW5lclR5cGUmIGNvbnRhaW5lciwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQpAQCAtMTI4LDE0
ICsxMjgsMTQgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbGlzdDsKICAgICB9CiAKLSAgICBB
TFdBWVNfSU5MSU5FIFJlZjxUYWdDb2xsZWN0aW9uPiBhZGRDYWNoZWRDb2xsZWN0aW9uV2l0aFF1
YWxpZmllZE5hbWUoQ29udGFpbmVyTm9kZSYgbm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1l
c3BhY2VVUkksIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKQorICAgIEFMV0FZU19JTkxJ
TkUgUmVmPFRhZ0NvbGxlY3Rpb25OUz4gYWRkQ2FjaGVkVGFnQ29sbGVjdGlvbk5TKENvbnRhaW5l
ck5vZGUmIG5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBBdG9t
aWNTdHJpbmcmIGxvY2FsTmFtZSkKICAgICB7CiAgICAgICAgIFF1YWxpZmllZE5hbWUgbmFtZShu
dWxsQXRvbSwgbG9jYWxOYW1lLCBuYW1lc3BhY2VVUkkpOwotICAgICAgICBUYWdDb2xsZWN0aW9u
Q2FjaGVOUzo6QWRkUmVzdWx0IHJlc3VsdCA9IG1fdGFnQ29sbGVjdGlvbkNhY2hlTlMuZmFzdEFk
ZChuYW1lLCBudWxscHRyKTsKKyAgICAgICAgVGFnQ29sbGVjdGlvbk5TQ2FjaGU6OkFkZFJlc3Vs
dCByZXN1bHQgPSBtX3RhZ0NvbGxlY3Rpb25OU0NhY2hlLmZhc3RBZGQobmFtZSwgbnVsbHB0cik7
CiAgICAgICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgICAgICByZXR1cm4gKnJl
c3VsdC5pdGVyYXRvci0+dmFsdWU7CiAKLSAgICAgICAgYXV0byBsaXN0ID0gVGFnQ29sbGVjdGlv
bjo6Y3JlYXRlKG5vZGUsIG5hbWVzcGFjZVVSSSwgbG9jYWxOYW1lKTsKKyAgICAgICAgYXV0byBs
aXN0ID0gVGFnQ29sbGVjdGlvbk5TOjpjcmVhdGUobm9kZSwgbmFtZXNwYWNlVVJJLCBsb2NhbE5h
bWUpOwogICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gbGlzdC5wdHIoKTsKICAgICAg
ICAgcmV0dXJuIGxpc3Q7CiAgICAgfQpAQCAtMTc5LDEzICsxNzksMTMgQEAgcHVibGljOgogICAg
ICAgICBtX2F0b21pY05hbWVDYWNoZXMucmVtb3ZlKG5hbWVkTm9kZUxpc3RLZXk8Tm9kZUxpc3RU
eXBlPihuYW1lKSk7CiAgICAgfQogCi0gICAgdm9pZCByZW1vdmVDYWNoZWRDb2xsZWN0aW9uV2l0
aFF1YWxpZmllZE5hbWUoSFRNTENvbGxlY3Rpb24mIGNvbGxlY3Rpb24sIGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSkKKyAgICB2
b2lkIHJlbW92ZUNhY2hlZFRhZ0NvbGxlY3Rpb25OUyhIVE1MQ29sbGVjdGlvbiYgY29sbGVjdGlv
biwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21pY1N0cmluZyYg
bG9jYWxOYW1lKQogICAgIHsKICAgICAgICAgUXVhbGlmaWVkTmFtZSBuYW1lKG51bGxBdG9tLCBs
b2NhbE5hbWUsIG5hbWVzcGFjZVVSSSk7Ci0gICAgICAgIEFTU0VSVCgmY29sbGVjdGlvbiA9PSBt
X3RhZ0NvbGxlY3Rpb25DYWNoZU5TLmdldChuYW1lKSk7CisgICAgICAgIEFTU0VSVCgmY29sbGVj
dGlvbiA9PSBtX3RhZ0NvbGxlY3Rpb25OU0NhY2hlLmdldChuYW1lKSk7CiAgICAgICAgIGlmIChk
ZWxldGVUaGlzQW5kVXBkYXRlTm9kZVJhcmVEYXRhSWZBYm91dFRvUmVtb3ZlTGFzdExpc3QoY29s
bGVjdGlvbi5vd25lck5vZGUoKSkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fdGFn
Q29sbGVjdGlvbkNhY2hlTlMucmVtb3ZlKG5hbWUpOworICAgICAgICBtX3RhZ0NvbGxlY3Rpb25O
U0NhY2hlLnJlbW92ZShuYW1lKTsKICAgICB9CiAKICAgICB2b2lkIHJlbW92ZUNhY2hlZENvbGxl
Y3Rpb24oSFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24sIGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSA9IHN0YXJBdG9tKQpAQCAtMjE0LDcgKzIxNCw3IEBAIHB1YmxpYzoKICAgICAgICAgZm9yIChh
dXRvJiBjYWNoZSA6IG1fYXRvbWljTmFtZUNhY2hlcy52YWx1ZXMoKSkKICAgICAgICAgICAgIGNh
Y2hlLT5pbnZhbGlkYXRlQ2FjaGUoKm9sZERvY3VtZW50KTsKIAotICAgICAgICBmb3IgKGF1dG8m
IGxpc3QgOiBtX3RhZ0NvbGxlY3Rpb25DYWNoZU5TLnZhbHVlcygpKSB7CisgICAgICAgIGZvciAo
YXV0byYgbGlzdCA6IG1fdGFnQ29sbGVjdGlvbk5TQ2FjaGUudmFsdWVzKCkpIHsKICAgICAgICAg
ICAgIEFTU0VSVCghbGlzdC0+aXNSb290ZWRBdERvY3VtZW50KCkpOwogICAgICAgICAgICAgbGlz
dC0+aW52YWxpZGF0ZUNhY2hlKCpvbGREb2N1bWVudCk7CiAgICAgICAgIH0KQEAgLTI0Miw3ICsy
NDIsNyBAQCBwcml2YXRlOgogICAgIEVtcHR5Tm9kZUxpc3QqIG1fZW1wdHlDaGlsZE5vZGVMaXN0
OwogCiAgICAgTm9kZUxpc3RBdG9taWNOYW1lQ2FjaGVNYXAgbV9hdG9taWNOYW1lQ2FjaGVzOwot
ICAgIFRhZ0NvbGxlY3Rpb25DYWNoZU5TIG1fdGFnQ29sbGVjdGlvbkNhY2hlTlM7CisgICAgVGFn
Q29sbGVjdGlvbk5TQ2FjaGUgbV90YWdDb2xsZWN0aW9uTlNDYWNoZTsKICAgICBDb2xsZWN0aW9u
Q2FjaGVNYXAgbV9jYWNoZWRDb2xsZWN0aW9uczsKIH07CiAKQEAgLTMwMyw3ICszMDMsNyBAQCBp
bmxpbmUgYm9vbCBOb2RlTGlzdHNOb2RlRGF0YTo6ZGVsZXRlVGhpc0FuZFVwZGF0ZU5vZGVSYXJl
RGF0YUlmQWJvdXRUb1JlbW92ZUxhcwogewogICAgIEFTU0VSVChvd25lck5vZGUubm9kZUxpc3Rz
KCkgPT0gdGhpcyk7CiAgICAgaWYgKChtX2NoaWxkTm9kZUxpc3QgPyAxIDogMCkgKyAobV9lbXB0
eUNoaWxkTm9kZUxpc3QgPyAxIDogMCkgKyBtX2F0b21pY05hbWVDYWNoZXMuc2l6ZSgpCi0gICAg
ICAgICsgbV90YWdDb2xsZWN0aW9uQ2FjaGVOUy5zaXplKCkgKyBtX2NhY2hlZENvbGxlY3Rpb25z
LnNpemUoKSAhPSAxKQorICAgICAgICArIG1fdGFnQ29sbGVjdGlvbk5TQ2FjaGUuc2l6ZSgpICsg
bV9jYWNoZWRDb2xsZWN0aW9ucy5zaXplKCkgIT0gMSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIG93bmVyTm9kZS5jbGVhck5vZGVMaXN0cygpOwogICAgIHJldHVybiB0cnVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RhZ0NvbGxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RhZ0NvbGxlY3Rpb24uY3BwCmluZGV4IDgxNDAzYjZlYWY4MzQzNmI4YzM5YmY5Y2Y4
YzM1NTZlMDFiZTlkNGQuLmYwN2Q2MTM0ZmQ4OTIxYWQwNGRhMjg3ZDU1YWI0YWNjNjlhN2RhMDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UYWdDb2xsZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vVGFnQ29sbGVjdGlvbi5jcHAKQEAgLTIsNyArMiw3IEBACiAgKiBD
b3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAgICAg
ICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAg
ICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAqIENvcHlyaWdodCAo
QykgMjAwNC0yMDA3LCAyMDE0LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA3LCAyMDE0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI4LDMyICsyOCw2MiBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVRhZ0NvbGxlY3Rpb246OlRhZ0NvbGxlY3Rpb24o
Q29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJ
LCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSkKLSAgICA6IENhY2hlZEhUTUxDb2xsZWN0
aW9uPFRhZ0NvbGxlY3Rpb24sIENvbGxlY3Rpb25UeXBlVHJhaXRzPEJ5VGFnPjo6dHJhdmVyc2Fs
VHlwZT4ocm9vdE5vZGUsIEJ5VGFnKQorc3RhdGljIGlubGluZSBBdG9taWNTdHJpbmcgbWFrZVF1
YWxpZmllZE5hbWUoY29uc3QgU3RyaW5nJiBwcmVmaXgsIGNvbnN0IFN0cmluZyYgbG9jYWxOYW1l
KQoreworICAgIGlmIChMSUtFTFkocHJlZml4LmlzTnVsbCgpKSkKKyAgICAgICAgcmV0dXJuIGxv
Y2FsTmFtZTsKKyAgICByZXR1cm4gcHJlZml4ICsgJzonICsgbG9jYWxOYW1lOworfQorCitzdGF0
aWMgaW5saW5lIHZvaWQgc3BsaXRRdWFsaWZpZWROYW1lKGNvbnN0IFN0cmluZyYgcXVhbGlmaWVk
TmFtZSwgQXRvbWljU3RyaW5nJiBwcmVmaXgsIEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKQorewor
ICAgIHNpemVfdCBpbmRleCA9IHF1YWxpZmllZE5hbWUuZmluZCgnOicpOworICAgIGlmIChVTkxJ
S0VMWShpbmRleCA9PSBub3RGb3VuZCkpCisgICAgICAgIGxvY2FsTmFtZSA9IHF1YWxpZmllZE5h
bWU7CisgICAgZWxzZSB7CisgICAgICAgIHByZWZpeCA9IHF1YWxpZmllZE5hbWUuc3Vic3RyaW5n
KDAsIGluZGV4KTsKKyAgICAgICAgbG9jYWxOYW1lID0gcXVhbGlmaWVkTmFtZS5zdWJzdHJpbmco
aW5kZXggKyAxKTsKKyAgICB9CisgICAgQVNTRVJUKG1ha2VRdWFsaWZpZWROYW1lKHByZWZpeCwg
bG9jYWxOYW1lKSA9PSBxdWFsaWZpZWROYW1lKTsKK30KKworVGFnQ29sbGVjdGlvbk5TOjpUYWdD
b2xsZWN0aW9uTlMoQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZXNwYWNlVVJJLCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSkKKyAgICA6IENhY2hl
ZEhUTUxDb2xsZWN0aW9uPFRhZ0NvbGxlY3Rpb25OUywgQ29sbGVjdGlvblR5cGVUcmFpdHM8QnlU
YWc+Ojp0cmF2ZXJzYWxUeXBlPihyb290Tm9kZSwgQnlUYWcpCiAgICAgLCBtX25hbWVzcGFjZVVS
SShuYW1lc3BhY2VVUkkpCiAgICAgLCBtX2xvY2FsTmFtZShsb2NhbE5hbWUpCiB7CiAgICAgQVNT
RVJUKG1fbmFtZXNwYWNlVVJJLmlzTnVsbCgpIHx8ICFtX25hbWVzcGFjZVVSSS5pc0VtcHR5KCkp
OwogfQogCitUYWdDb2xsZWN0aW9uTlM6On5UYWdDb2xsZWN0aW9uTlMoKQoreworICAgIG93bmVy
Tm9kZSgpLm5vZGVMaXN0cygpLT5yZW1vdmVDYWNoZWRUYWdDb2xsZWN0aW9uTlMoKnRoaXMsIG1f
bmFtZXNwYWNlVVJJLCBtX2xvY2FsTmFtZSk7Cit9CisKK1RhZ0NvbGxlY3Rpb246OlRhZ0NvbGxl
Y3Rpb24oQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgcXVhbGlm
aWVkTmFtZSkKKyAgICA6IENhY2hlZEhUTUxDb2xsZWN0aW9uPFRhZ0NvbGxlY3Rpb24sIENvbGxl
Y3Rpb25UeXBlVHJhaXRzPEJ5VGFnPjo6dHJhdmVyc2FsVHlwZT4ocm9vdE5vZGUsIEJ5VGFnKQor
eworICAgIEFTU0VSVChxdWFsaWZpZWROYW1lICE9IHN0YXJBdG9tKTsKKyAgICBzcGxpdFF1YWxp
ZmllZE5hbWUocXVhbGlmaWVkTmFtZSwgbV9wcmVmaXgsIG1fbG9jYWxOYW1lKTsKK30KKwogVGFn
Q29sbGVjdGlvbjo6flRhZ0NvbGxlY3Rpb24oKQogewotICAgIGlmIChtX25hbWVzcGFjZVVSSSA9
PSBzdGFyQXRvbSkKLSAgICAgICAgb3duZXJOb2RlKCkubm9kZUxpc3RzKCktPnJlbW92ZUNhY2hl
ZENvbGxlY3Rpb24odGhpcywgbV9sb2NhbE5hbWUpOwotICAgIGVsc2UKLSAgICAgICAgb3duZXJO
b2RlKCkubm9kZUxpc3RzKCktPnJlbW92ZUNhY2hlZENvbGxlY3Rpb25XaXRoUXVhbGlmaWVkTmFt
ZSgqdGhpcywgbV9uYW1lc3BhY2VVUkksIG1fbG9jYWxOYW1lKTsKKyAgICBvd25lck5vZGUoKS5u
b2RlTGlzdHMoKS0+cmVtb3ZlQ2FjaGVkQ29sbGVjdGlvbih0aGlzLCBtYWtlUXVhbGlmaWVkTmFt
ZShtX3ByZWZpeCwgbV9sb2NhbE5hbWUpKTsKIH0KIAotSFRNTFRhZ0NvbGxlY3Rpb246OkhUTUxU
YWdDb2xsZWN0aW9uKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcm
IGxvY2FsTmFtZSkKK0hUTUxUYWdDb2xsZWN0aW9uOjpIVE1MVGFnQ29sbGVjdGlvbihDb250YWlu
ZXJOb2RlJiByb290Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBxdWFsaWZpZWROYW1lKQogICAg
IDogQ2FjaGVkSFRNTENvbGxlY3Rpb248SFRNTFRhZ0NvbGxlY3Rpb24sIENvbGxlY3Rpb25UeXBl
VHJhaXRzPEJ5SFRNTFRhZz46OnRyYXZlcnNhbFR5cGU+KHJvb3ROb2RlLCBCeUhUTUxUYWcpCi0g
ICAgLCBtX2xvY2FsTmFtZShsb2NhbE5hbWUpCi0gICAgLCBtX2xvd2VyZWRMb2NhbE5hbWUobG9j
YWxOYW1lLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCkpCiB7CisgICAgQVNTRVJUKHF1YWxpZmll
ZE5hbWUgIT0gc3RhckF0b20pOworICAgIHNwbGl0UXVhbGlmaWVkTmFtZShxdWFsaWZpZWROYW1l
LCBtX3ByZWZpeCwgbV9sb2NhbE5hbWUpOworICAgIG1fbG93ZXJlZFByZWZpeCA9IG1fcHJlZml4
LmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7CisgICAgbV9sb3dlcmVkTG9jYWxOYW1lID0gbV9s
b2NhbE5hbWUuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKIH0KIAogSFRNTFRhZ0NvbGxlY3Rp
b246On5IVE1MVGFnQ29sbGVjdGlvbigpCiB7Ci0gICAgb3duZXJOb2RlKCkubm9kZUxpc3RzKCkt
PnJlbW92ZUNhY2hlZENvbGxlY3Rpb24odGhpcywgbV9sb2NhbE5hbWUpOworICAgIG93bmVyTm9k
ZSgpLm5vZGVMaXN0cygpLT5yZW1vdmVDYWNoZWRDb2xsZWN0aW9uKHRoaXMsIG1ha2VRdWFsaWZp
ZWROYW1lKG1fcHJlZml4LCBtX2xvY2FsTmFtZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGFnQ29sbGVjdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL1RhZ0NvbGxlY3Rpb24uaAppbmRleCA0Y2ZkMzgxNjdhNzhkZTQ3ZWEz
MzZjYzBjZmNlZmYwYTJjYzRmZmFlLi41Nzg4OTk4NjY1Yzg1YWExZDc5ZTk5NWI1ZjY1ZDQ1ZTkz
ZWY5ZWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGFnQ29sbGVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UYWdDb2xsZWN0aW9uLmgKQEAgLTIsNyArMiw3IEBACiAg
KiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAg
ICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAg
ICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAqIENvcHlyaWdo
dCAoQykgMjAwNC0yMDA4LCAyMDE0LCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA4LCAyMDE0LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTMyLDY0ICszMiw3
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBIVE1MQ29sbGVjdGlvbiB0aGF0IGxpbWl0cyB0
byBhIHBhcnRpY3VsYXIgdGFnLgogY2xhc3MgVGFnQ29sbGVjdGlvbiBmaW5hbCA6IHB1YmxpYyBD
YWNoZWRIVE1MQ29sbGVjdGlvbjxUYWdDb2xsZWN0aW9uLCBDb2xsZWN0aW9uVHlwZVRyYWl0czxC
eVRhZz46OnRyYXZlcnNhbFR5cGU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFRhZ0NvbGxl
Y3Rpb24+IGNyZWF0ZShDb250YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKQotICAgIHsKLSAg
ICAgICAgQVNTRVJUKG5hbWVzcGFjZVVSSSAhPSBzdGFyQXRvbSk7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFRhZ0NvbGxlY3Rpb24ocm9vdE5vZGUsIG5hbWVzcGFjZVVSSSwgbG9jYWxO
YW1lKSk7Ci0gICAgfQotCi0gICAgc3RhdGljIFJlZjxUYWdDb2xsZWN0aW9uPiBjcmVhdGUoQ29u
dGFpbmVyTm9kZSYgcm9vdE5vZGUsIENvbGxlY3Rpb25UeXBlIHR5cGUsIGNvbnN0IEF0b21pY1N0
cmluZyYgbG9jYWxOYW1lKQorICAgIHN0YXRpYyBSZWY8VGFnQ29sbGVjdGlvbj4gY3JlYXRlKENv
bnRhaW5lck5vZGUmIHJvb3ROb2RlLCBDb2xsZWN0aW9uVHlwZSB0eXBlLCBjb25zdCBBdG9taWNT
dHJpbmcmIHF1YWxpZmllZE5hbWUpCiAgICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKHR5cGUs
IHR5cGUgPT0gQnlUYWcpOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUYWdDb2xsZWN0
aW9uKHJvb3ROb2RlLCBzdGFyQXRvbSwgbG9jYWxOYW1lKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFRhZ0NvbGxlY3Rpb24ocm9vdE5vZGUsIHF1YWxpZmllZE5hbWUpKTsKICAgICB9
CiAKICAgICB2aXJ0dWFsIH5UYWdDb2xsZWN0aW9uKCk7Ci0KICAgICBib29sIGVsZW1lbnRNYXRj
aGVzKEVsZW1lbnQmKSBjb25zdDsKIAotcHJvdGVjdGVkOgotICAgIFRhZ0NvbGxlY3Rpb24oQ29u
dGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZXNwYWNlVVJJLCBj
b25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSk7Citwcml2YXRlOgorICAgIFRhZ0NvbGxlY3Rp
b24oQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgcXVhbGlmaWVk
TmFtZSk7CiAKLSAgICBBdG9taWNTdHJpbmcgbV9uYW1lc3BhY2VVUkk7CisgICAgQXRvbWljU3Ry
aW5nIG1fcHJlZml4OwogICAgIEF0b21pY1N0cmluZyBtX2xvY2FsTmFtZTsKIH07CiAKLWlubGlu
ZSBib29sIFRhZ0NvbGxlY3Rpb246OmVsZW1lbnRNYXRjaGVzKEVsZW1lbnQmIGVsZW1lbnQpIGNv
bnN0Ci17Ci0gICAgLy8gSW1wbGVtZW50cyBodHRwOi8vZHZjcy53My5vcmcvaGcvZG9tY29yZS9y
YXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNjb25jZXB0LWdldGVsZW1lbnRzYnl0YWduYW1lbnMK
LSAgICBpZiAobV9sb2NhbE5hbWUgIT0gc3RhckF0b20gJiYgbV9sb2NhbE5hbWUgIT0gZWxlbWVu
dC5sb2NhbE5hbWUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworY2xhc3MgVGFnQ29sbGVjdGlv
bk5TIGZpbmFsIDogcHVibGljIENhY2hlZEhUTUxDb2xsZWN0aW9uPFRhZ0NvbGxlY3Rpb25OUywg
Q29sbGVjdGlvblR5cGVUcmFpdHM8QnlUYWc+Ojp0cmF2ZXJzYWxUeXBlPiB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxUYWdDb2xsZWN0aW9uTlM+IGNyZWF0ZShDb250YWluZXJOb2RlJiByb290
Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21pY1N0cmlu
ZyYgbG9jYWxOYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGFnQ29s
bGVjdGlvbk5TKHJvb3ROb2RlLCBuYW1lc3BhY2VVUkksIGxvY2FsTmFtZSkpOworICAgIH0KIAot
ICAgIHJldHVybiBtX25hbWVzcGFjZVVSSSA9PSBzdGFyQXRvbSB8fCBtX25hbWVzcGFjZVVSSSA9
PSBlbGVtZW50Lm5hbWVzcGFjZVVSSSgpOwotfQorICAgIHZpcnR1YWwgflRhZ0NvbGxlY3Rpb25O
UygpOworICAgIGJvb2wgZWxlbWVudE1hdGNoZXMoRWxlbWVudCYpIGNvbnN0OworCitwcml2YXRl
OgorICAgIFRhZ0NvbGxlY3Rpb25OUyhDb250YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKTsK
KworICAgIEF0b21pY1N0cmluZyBtX25hbWVzcGFjZVVSSTsKKyAgICBBdG9taWNTdHJpbmcgbV9s
b2NhbE5hbWU7Cit9OwogCiBjbGFzcyBIVE1MVGFnQ29sbGVjdGlvbiBmaW5hbCA6IHB1YmxpYyBD
YWNoZWRIVE1MQ29sbGVjdGlvbjxIVE1MVGFnQ29sbGVjdGlvbiwgQ29sbGVjdGlvblR5cGVUcmFp
dHM8QnlIVE1MVGFnPjo6dHJhdmVyc2FsVHlwZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8
SFRNTFRhZ0NvbGxlY3Rpb24+IGNyZWF0ZShDb250YWluZXJOb2RlJiByb290Tm9kZSwgQ29sbGVj
dGlvblR5cGUgdHlwZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCisgICAgc3RhdGlj
IFJlZjxIVE1MVGFnQ29sbGVjdGlvbj4gY3JlYXRlKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBD
b2xsZWN0aW9uVHlwZSB0eXBlLCBjb25zdCBBdG9taWNTdHJpbmcmIHF1YWxpZmllZE5hbWUpCiAg
ICAgewogICAgICAgICBBU1NFUlRfVU5VU0VEKHR5cGUsIHR5cGUgPT0gQnlIVE1MVGFnKTsKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSFRNTFRhZ0NvbGxlY3Rpb24ocm9vdE5vZGUsIGxv
Y2FsTmFtZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIVE1MVGFnQ29sbGVjdGlv
bihyb290Tm9kZSwgcXVhbGlmaWVkTmFtZSkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfkhUTUxU
YWdDb2xsZWN0aW9uKCk7Ci0KICAgICBib29sIGVsZW1lbnRNYXRjaGVzKEVsZW1lbnQmKSBjb25z
dDsKIAogcHJpdmF0ZToKLSAgICBIVE1MVGFnQ29sbGVjdGlvbihDb250YWluZXJOb2RlJiByb290
Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpOworICAgIEhUTUxUYWdDb2xsZWN0
aW9uKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIHF1YWxpZmll
ZE5hbWUpOwogCisgICAgQXRvbWljU3RyaW5nIG1fcHJlZml4OworICAgIEF0b21pY1N0cmluZyBt
X2xvd2VyZWRQcmVmaXg7CiAgICAgQXRvbWljU3RyaW5nIG1fbG9jYWxOYW1lOwogICAgIEF0b21p
Y1N0cmluZyBtX2xvd2VyZWRMb2NhbE5hbWU7CiB9OwogCitpbmxpbmUgYm9vbCBUYWdDb2xsZWN0
aW9uOjplbGVtZW50TWF0Y2hlcyhFbGVtZW50JiBlbGVtZW50KSBjb25zdAoreworICAgIHJldHVy
biBtX2xvY2FsTmFtZSA9PSBlbGVtZW50LmxvY2FsTmFtZSgpICYmIG1fcHJlZml4ID09IGVsZW1l
bnQucHJlZml4KCk7Cit9CisKK2lubGluZSBib29sIFRhZ0NvbGxlY3Rpb25OUzo6ZWxlbWVudE1h
dGNoZXMoRWxlbWVudCYgZWxlbWVudCkgY29uc3QKK3sKKyAgICBpZiAobV9sb2NhbE5hbWUgIT0g
c3RhckF0b20gJiYgbV9sb2NhbE5hbWUgIT0gZWxlbWVudC5sb2NhbE5hbWUoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX25hbWVzcGFjZVVSSSA9PSBzdGFyQXRvbSB8fCBt
X25hbWVzcGFjZVVSSSA9PSBlbGVtZW50Lm5hbWVzcGFjZVVSSSgpOworfQorCiBpbmxpbmUgYm9v
bCBIVE1MVGFnQ29sbGVjdGlvbjo6ZWxlbWVudE1hdGNoZXMoRWxlbWVudCYgZWxlbWVudCkgY29u
c3QKIHsKLSAgICAvLyBJbXBsZW1lbnRzIGh0dHA6Ly9kdmNzLnczLm9yZy9oZy9kb21jb3JlL3Jh
dy1maWxlL3RpcC9PdmVydmlldy5odG1sI2NvbmNlcHQtZ2V0ZWxlbWVudHNieXRhZ25hbWUKLSAg
ICBpZiAobV9sb2NhbE5hbWUgPT0gc3RhckF0b20pCi0gICAgICAgIHJldHVybiB0cnVlOwotICAg
IGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lID0gZWxlbWVudC5pc0hUTUxFbGVtZW50KCkg
PyBtX2xvd2VyZWRMb2NhbE5hbWUgOiBtX2xvY2FsTmFtZTsKLSAgICByZXR1cm4gbG9jYWxOYW1l
ID09IGVsZW1lbnQubG9jYWxOYW1lKCk7CisgICAgaWYgKGVsZW1lbnQuaXNIVE1MRWxlbWVudCgp
KQorICAgICAgICByZXR1cm4gbV9sb3dlcmVkTG9jYWxOYW1lID09IGVsZW1lbnQubG9jYWxOYW1l
KCkgJiYgbV9sb3dlcmVkUHJlZml4ID09IGVsZW1lbnQucHJlZml4KCk7CisgICAgcmV0dXJuIG1f
bG9jYWxOYW1lID09IGVsZW1lbnQubG9jYWxOYW1lKCkgJiYgbV9wcmVmaXggPT0gZWxlbWVudC5w
cmVmaXgoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9Db2xsZWN0aW9uVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xs
ZWN0aW9uVHlwZS5oCmluZGV4IDgzMWQ2NzY5NmQ2ZDIwOGEwOTI2OTYwNzkyMGNmMDgyMTQyODY3
YWUuLmQ3NmE5MDJiYWJlNTRhZTQ4N2Y5YTc5OTI0N2Y1NTZmZGQyOGVjYjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sbGVjdGlvblR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0NvbGxlY3Rpb25UeXBlLmgKQEAgLTU0LDYgKzU0LDcgQEAgZW51bSBDb2xsZWN0aW9u
VHlwZSB7CiAgICAgQnlDbGFzcywKICAgICBCeVRhZywKICAgICBCeUhUTUxUYWcsCisgICAgQWxs
RGVzY2VuZGFudHMKIH07CiAKIGVudW0gY2xhc3MgQ29sbGVjdGlvblRyYXZlcnNhbFR5cGUgeyBE
ZXNjZW5kYW50cywgQ2hpbGRyZW5Pbmx5LCBDdXN0b21Gb3J3YXJkT25seSB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9HZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9HZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb24uY3BwCmluZGV4
IDI3NTJlNGE2MzBhZDQzMmE4ZDhkNjcyZWU0OTQ4MzM2ZmVlNDliODYuLjgzMDUyZWNmODY4ZDRh
OTgxNTBiZDcxYzlhYWU1OGI1MWFjMmQ4NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvR2VuZXJpY0NhY2hlZEhUTUxDb2xsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0dlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5jcHAKQEAgLTc1LDYgKzc1LDcgQEAgYm9v
bCBHZW5lcmljQ2FjaGVkSFRNTENvbGxlY3Rpb248dHJhdmVyc2FsVHlwZT46OmVsZW1lbnRNYXRj
aGVzKEVsZW1lbnQmIGVsZW1lbnQKICAgICBjYXNlIEJ5Q2xhc3M6CiAgICAgY2FzZSBCeVRhZzoK
ICAgICBjYXNlIEJ5SFRNTFRhZzoKKyAgICBjYXNlIEFsbERlc2NlbmRhbnRzOgogICAgIGNhc2Ug
RG9jQWxsOgogICAgIGNhc2UgRG9jdW1lbnROYW1lZEl0ZW1zOgogICAgIGNhc2UgRm9ybUNvbnRy
b2xzOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNwcAppbmRleCA5MjlmNGU2ZmE2
NzZlZTAxY2Q3OGFkOWFkYTE4NzQ0NWYwZDQ2YTVhLi44YzE3MzhhZTM1NWI5NzdhYWFjYjFkNmU2
Y2JjODg2YzliYTI4NDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xs
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNwcApA
QCAtNDYsNiArNDYsNyBAQCBpbmxpbmUgYXV0byBIVE1MQ29sbGVjdGlvbjo6cm9vdFR5cGVGcm9t
Q29sbGVjdGlvblR5cGUoQ29sbGVjdGlvblR5cGUgdHlwZSkgLT4gUgogICAgIGNhc2UgRG9jdW1l
bnROYW1lZEl0ZW1zOgogICAgIGNhc2UgRm9ybUNvbnRyb2xzOgogICAgICAgICByZXR1cm4gSFRN
TENvbGxlY3Rpb246OklzUm9vdGVkQXREb2N1bWVudDsKKyAgICBjYXNlIEFsbERlc2NlbmRhbnRz
OgogICAgIGNhc2UgQnlDbGFzczoKICAgICBjYXNlIEJ5VGFnOgogICAgIGNhc2UgQnlIVE1MVGFn
OgpAQCAtNjksNiArNzAsNyBAQCBzdGF0aWMgTm9kZUxpc3RJbnZhbGlkYXRpb25UeXBlIGludmFs
aWRhdGlvblR5cGVFeGNsdWRpbmdJZEFuZE5hbWVBdHRyaWJ1dGVzKENvbAogICAgIHN3aXRjaCAo
dHlwZSkgewogICAgIGNhc2UgQnlUYWc6CiAgICAgY2FzZSBCeUhUTUxUYWc6CisgICAgY2FzZSBB
bGxEZXNjZW5kYW50czoKICAgICBjYXNlIERvY0ltYWdlczoKICAgICBjYXNlIERvY0VtYmVkczoK
ICAgICBjYXNlIERvY0Zvcm1zOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRiNGJjMTlkNDc3MjVjNzEwYmNlZDVkYjY5ZWJl
MGFkNzNmYTdjYmEuLjMyZDAwNGJmYTJjNzliMzIyYzY4ZTJiZWJhNWJmNjYwMmUxYTAwYmIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNi0wOC0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIGdldEVsZW1lbnRzQnlUYWdOYW1lKCkgc2hvdWxkIHRha2UgYSBx
dWFsaWZpZWROYW1lIGluIHBhcmFtZXRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXBkYXRlIGV4aXN0aW5nIHRlc3RzIHRvIHJlZmxlY3QgYmVoYXZp
b3IgY2hhbmdlLgorCisgICAgICAgICogZmFzdC9kb20vZ2V0RWxlbWVudHNCeUNsYXNzTmFtZS8w
MTAueG1sOgorICAgICAgICAqIGZhc3QvZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUvMDExLnht
bDoKKwogMjAxNi0wOC0xMSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBNYXJraW5nIHRyYW5zaXRpb25zL2NsaXAtcGF0aC10cmFuc2l0aW9ucy5odG1sIGFu
ZCB0cmFuc2l0aW9ucy9jbGlwLXBhdGgtcGF0aC10cmFuc2l0aW9ucy5odG1sIGFzIGZsYWt5IG9u
IGlvcy1zaW11bGF0b3IuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAxMTE3OTM4
MTVkMGU1Mzg4M2E5NjVhZjNiZjhjYWY0NzNhMzNiMWExLi5lNDNjOGVlYWMwNmQzMjZiNTc1YzMy
ZjYxMjA1NzA4YmE1YWNiZjhmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxNi0wOC0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIGdldEVsZW1lbnRzQnlUYWdOYW1lKCkgc2hvdWxkIHRha2UgYSBxdWFsaWZpZWRO
YW1lIGluIHBhcmFtZXRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTYwNjgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWdldEVsZW1l
bnRzQnlUYWdOYW1lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL25vZGVzL0RvY3VtZW50LWdldEVsZW1lbnRzQnlUYWdOYW1lLXhodG1sLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtZ2V0RWxl
bWVudHNCeVRhZ05hbWUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9kb20vbm9kZXMvY2FzZS1leHBlY3RlZC50eHQ6CisgICAgICAgIFJlYmFzZWxpbmUgc2V2ZXJh
bCBXM0MgdGVzdHMgbm93IHRoYXQgbW9yZSBjaGVja3MgYXJlIHBhc3NpbmcuCisKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWdldEVsZW1lbnRzQnlUYWdO
YW1lLXhodG1sLnhodG1sOgorICAgICAgICBSZS1zeW5jIHRoaXMgdGVzdCBmcm9tIHVwc3RyZWFt
IGFzIGl0IHdhcyBvdXRkYXRlZCBhZnRlcjoKKyAgICAgICAgLSBodHRwczovL2dpdGh1Yi5jb20v
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wdWxsLzM0NTcKKwogMjAxNi0wOC0xMSAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFsaWduIFJhbmdlLnN1cnJvdW5kQ29u
dGVudHMoKSB3aXRoIHRoZSBsYXRlc3QgRE9NIHNwZWNpZmljYXRpb24KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUvMDEwLnhtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUvMDEwLnhtbAppbmRleCA0NGY4
NDc0YmFmOWNjOTlhYTU0MDE3YTVkNzkyZGZhYTg3MzkyYjRiLi41Y2E3ODg4ZDkzODEyMTlkMjI3
YzU1ODc3ZDFhNWI0YjZkZjE4NDgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9n
ZXRFbGVtZW50c0J5Q2xhc3NOYW1lLzAxMC54bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
Z2V0RWxlbWVudHNCeUNsYXNzTmFtZS8wMTAueG1sCkBAIC03LDYgKzcsNiBAQAogICA8cCBpZD0i
ciI+RkFJTCAoc2NyaXB0IGRpZCBub3QgcnVuKTwvcD4gIAogICA8eCBjbGFzcz0iYSIvPgogICA8
Zzp4IGNsYXNzPSJhIi8+Ci0gIDxzY3JpcHQ+IHQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNz
TmFtZSgiYSIpLCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgieCIpKSA8L3NjcmlwdD4K
KyAgPHNjcmlwdD4gdChkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJhIiksIGRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lTlMoIioiLCAieCIpKSA8L3NjcmlwdD4KICA8L2JvZHk+
CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nZXRFbGVtZW50c0J5
Q2xhc3NOYW1lLzAxMS54bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nZXRFbGVtZW50c0J5Q2xh
c3NOYW1lLzAxMS54bWwKaW5kZXggNjc5MGI1YTM0NWYwNzg1NzM5ZjQxMTk0YWJhOWQyNzljODQ0
YmI2ZC4uODI3YTJmMzVkNzNmZmIxZmYyZTNmYjZhMTc1MWIwYWE4NzU5ZjMzNCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vZ2V0RWxlbWVudHNCeUNsYXNzTmFtZS8wMTEueG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUvMDExLnhtbApA
QCAtMTIsNyArMTIsNyBAQAogICA8dDp4IGNsYXNzPSJhIiB0OmNsYXNzPSJhIiBoOmNsYXNzPSJh
IiBnOmNsYXNzPSJhIi8+CiAgIDxzY3JpcHQ+CiAgICB2YXIgY29sbGVjdGlvbiA9IGRvY3VtZW50
LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImEiKSwKLSAgICAgICB0ZXN0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoIngiKQorICAgICAgIHRlc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZU5TKCIqIiwgIngiKQogICAgdChjb2xsZWN0aW9uLCBbdGVzdFswXSwgdGVzdFsx
XV0pCiAgIDwvc2NyaXB0PgogIDwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWdldEVsZW1lbnRz
QnlUYWdOYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWdldEVsZW1lbnRzQnlUYWdOYW1lLWV4cGVj
dGVkLnR4dAppbmRleCA3NjhmNzgyYzJkMWE0YjU0MGMxN2EyYWYyYzk0YmEyMGU3NTVhY2RhLi43
OTBiNzVjMTQ4NGNiOTM4NjQ2MjZmY2JiN2FkMjBhOGRmYzFlOTM0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVu
dC1nZXRFbGVtZW50c0J5VGFnTmFtZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtZ2V0RWxlbWVu
dHNCeVRhZ05hbWUtZXhwZWN0ZWQudHh0CkBAIC0xMiwxMSArMTIsMTEgQEAgUEFTUyBoYXNPd25Q
cm9wZXJ0eSwgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLCBnZXRPd25Qcm9wZXJ0eU5hbWVzCiBQ
QVNTIEhUTUwgZWxlbWVudCB3aXRoIHVwcGVyY2FzZSB0YWdOYW1lIG5ldmVyIG1hdGNoZXMgaW4g
SFRNTCBEb2N1bWVudHMgCiBQQVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBubyBw
cmVmaXgsIGxvd2VyY2FzZSBuYW1lIAogUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFj
ZSwgbm8gcHJlZml4LCB1cHBlcmNhc2UgbmFtZSAKLUZBSUwgRWxlbWVudCBpbiBub24tSFRNTCBu
YW1lc3BhY2UsIHByZWZpeCwgbG93ZXJjYXNlIG5hbWUgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVu
Z3RocyBkaWZmZXIsIGV4cGVjdGVkIDAgZ290IDEKLUZBSUwgRWxlbWVudCBpbiBub24tSFRNTCBu
YW1lc3BhY2UsIHByZWZpeCwgdXBwZXJjYXNlIG5hbWUgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVu
Z3RocyBkaWZmZXIsIGV4cGVjdGVkIDAgZ290IDEKK1BBU1MgRWxlbWVudCBpbiBub24tSFRNTCBu
YW1lc3BhY2UsIHByZWZpeCwgbG93ZXJjYXNlIG5hbWUgCitQQVNTIEVsZW1lbnQgaW4gbm9uLUhU
TUwgbmFtZXNwYWNlLCBwcmVmaXgsIHVwcGVyY2FzZSBuYW1lIAogUEFTUyBFbGVtZW50IGluIEhU
TUwgbmFtZXNwYWNlLCBubyBwcmVmaXgsIG5vbi1hc2NpaSBjaGFyYWN0ZXJzIGluIG5hbWUgCiBQ
QVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBub24tYXNjaWkgY2hhcmFjdGVycyBp
biBuYW1lIAotRkFJTCBFbGVtZW50IGluIEhUTUwgbmFtZXNwYWNlLCBwcmVmaXgsIG5vbi1hc2Np
aSBjaGFyYWN0ZXJzIGluIG5hbWUgYXNzZXJ0X2FycmF5X2VxdWFsczogQWxsIHVwcGVyY2FzZSBp
bnB1dCBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMSBnb3QgMAotRkFJTCBFbGVtZW50IGluIG5v
bi1IVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIGFz
c2VydF9hcnJheV9lcXVhbHM6IEFsbCB1cHBlcmNhc2UgaW5wdXQgbGVuZ3RocyBkaWZmZXIsIGV4
cGVjdGVkIDEgZ290IDAKK1BBU1MgRWxlbWVudCBpbiBIVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBu
b24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAorUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5h
bWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAogUEFTUyBnZXRF
bGVtZW50c0J5VGFnTmFtZSgnKicpIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5
VGFnTmFtZS14aHRtbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS14
aHRtbC1leHBlY3RlZC50eHQKaW5kZXggMzZhYzI3N2UxZWFiMDc1OTIwMmU3MmM1YWY2NTljNWY5
ZWIwMzJiMi4uMmMwMWZkY2NiZjk2NjY1M2M0M2Y1NjgyMDBhYTcyYjYxZmNmNmU0MiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9k
ZXMvRG9jdW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUteGh0bWwtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0Rv
Y3VtZW50LWdldEVsZW1lbnRzQnlUYWdOYW1lLXhodG1sLWV4cGVjdGVkLnR4dApAQCAtMiw4ICsy
LDggQEAKIFBBU1MgSFRNTCBlbGVtZW50IHdpdGggdXBwZXJjYXNlIHRhZyBuYW1lIG1hdGNoZXMg
aW4gWEhUTUwgZG9jdW1lbnRzIAogUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwg
bm8gcHJlZml4LCBsb3dlcmNhc2UgbmFtZSAKIFBBU1MgRWxlbWVudCBpbiBub24tSFRNTCBuYW1l
c3BhY2UsIG5vIHByZWZpeCwgdXBwZXJjYXNlIG5hbWUgCi1GQUlMIEVsZW1lbnQgaW4gbm9uLUhU
TUwgbmFtZXNwYWNlLCBwcmVmaXgsIGxvd2VyY2FzZSBuYW1lIGFzc2VydF9hcnJheV9lcXVhbHM6
IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAwIGdvdCAxCi1GQUlMIEVsZW1lbnQgaW4gbm9uLUhU
TUwgbmFtZXNwYWNlLCBwcmVmaXgsIHVwcGVyY2FzZSBuYW1lIGFzc2VydF9hcnJheV9lcXVhbHM6
IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAwIGdvdCAxCitQQVNTIEVsZW1lbnQgaW4gbm9uLUhU
TUwgbmFtZXNwYWNlLCBwcmVmaXgsIGxvd2VyY2FzZSBuYW1lIAorUEFTUyBFbGVtZW50IGluIG5v
bi1IVE1MIG5hbWVzcGFjZSwgcHJlZml4LCB1cHBlcmNhc2UgbmFtZSAKIFBBU1MgRWxlbWVudCBp
biBIVE1MIG5hbWVzcGFjZSwgbm8gcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1l
IAogUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgbm9uLWFzY2lpIGNoYXJhY3Rl
cnMgaW4gbmFtZSAKIFBBU1MgRWxlbWVudCBpbiBIVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBub24t
YXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtZ2V0RWxlbWVudHNC
eVRhZ05hbWUteGh0bWwueGh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS14aHRtbC54
aHRtbAppbmRleCAyYWU5MDc0OGMyZmZhZTM5NTUwZjQ3N2UwYjQ4OWVmZDkzOWZmOTZkLi4zMDlh
MjlhZTc3MjM1MWQ3MTU3N2EwZGY3NzkyYThhM2ZiMjE0ZDc2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1n
ZXRFbGVtZW50c0J5VGFnTmFtZS14aHRtbC54aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5
VGFnTmFtZS14aHRtbC54aHRtbApAQCAtNzEsMTcgKzcxLDE3IEBAIHRlc3QoZnVuY3Rpb24oKSB7
CiB0ZXN0KGZ1bmN0aW9uKCkgewogICB2YXIgdCA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwg
InRlc3Q6YcOHIikpCiAgIHRoaXMuYWRkX2NsZWFudXAoZnVuY3Rpb24oKSB7ZG9jdW1lbnQuYm9k
eS5yZW1vdmVDaGlsZCh0KX0pCi0gIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoIkHDhyIpLCBbXSwgIkFsbCB1cHBlcmNhc2UgaW5wdXQiKQotICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJhw4ciKSwgW3Rd
LCAiQXNjaWkgbG93ZXJjYXNlIGlucHV0IikKLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYcOnIiksIFtdLCAiQWxsIGxvd2VyY2FzZSBpbnB1dCIp
CisgIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIlRF
U1Q6QcOHIiksIFtdLCAiQWxsIHVwcGVyY2FzZSBpbnB1dCIpCisgIGFzc2VydF9hcnJheV9lcXVh
bHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRlc3Q6YcOHIiksIFt0XSwgIkFzY2lp
IGxvd2VyY2FzZSBpbnB1dCIpCisgIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoInRlc3Q6YcOnIiksIFtdLCAiQWxsIGxvd2VyY2FzZSBpbnB1dCIpCiB9
LCAiRWxlbWVudCBpbiBIVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVy
cyBpbiBuYW1lIikKIAogdGVzdChmdW5jdGlvbigpIHsKLSAgdmFyIHQgPSBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygidGVzdCIsICJ0ZXN0OkHDhyIp
KQorICB2YXIgdCA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudE5TKCJ0ZXN0IiwgIlRFU1Q6QcOHIikpCiAgIHRoaXMuYWRkX2NsZWFudXAoZnVuY3Rpb24o
KSB7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0KX0pCi0gIGFzc2VydF9hcnJheV9lcXVhbHMo
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIkHDhyIpLCBbdF0sICJBbGwgdXBwZXJjYXNl
IGlucHV0IikKLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgiYcOHIiksIFtdLCAiQXNjaWkgbG93ZXJjYXNlIGlucHV0IikKLSAgYXNzZXJ0X2FycmF5
X2VxdWFscyhkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYcOnIiksIFtdLCAiQWxsIGxv
d2VyY2FzZSBpbnB1dCIpCisgIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoIlRFU1Q6QcOHIiksIFt0XSwgIkFsbCB1cHBlcmNhc2UgaW5wdXQiKQorICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZXN0OmHD
hyIpLCBbXSwgIkFzY2lpIGxvd2VyY2FzZSBpbnB1dCIpCisgIGFzc2VydF9hcnJheV9lcXVhbHMo
ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRlc3Q6YcOnIiksIFtdLCAiQWxsIGxvd2Vy
Y2FzZSBpbnB1dCIpCiB9LCAiRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwg
bm9uLWFzY2lpIGNoYXJhY3RlcnMgaW4gbmFtZSIpCiAKIHRlc3QoZnVuY3Rpb24oKSB7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9u
b2Rlcy9FbGVtZW50LWdldEVsZW1lbnRzQnlUYWdOYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtZ2V0
RWxlbWVudHNCeVRhZ05hbWUtZXhwZWN0ZWQudHh0CmluZGV4IGVlZDg3NTMzMjlhZGE3ZWZlOWYz
ZjA2NjIzMWU2M2MzNTk2MjQ2NjAuLmNjN2FlNWRkMTU0MGRmOTUyYjZlMmVhOGJjMzE4Yjk2NWFk
MWI1NjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZG9tL25vZGVzL0VsZW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25v
ZGVzL0VsZW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUtZXhwZWN0ZWQudHh0CkBAIC0xMiwxMiAr
MTIsMTIgQEAgUEFTUyBoYXNPd25Qcm9wZXJ0eSwgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLCBn
ZXRPd25Qcm9wZXJ0eU5hbWVzCiBQQVNTIEhUTUwgZWxlbWVudCB3aXRoIHVwcGVyY2FzZSB0YWdO
YW1lIG5ldmVyIG1hdGNoZXMgaW4gSFRNTCBEb2N1bWVudHMgCiBQQVNTIEVsZW1lbnQgaW4gbm9u
LUhUTUwgbmFtZXNwYWNlLCBubyBwcmVmaXgsIGxvd2VyY2FzZSBuYW1lIAogUEFTUyBFbGVtZW50
IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgbm8gcHJlZml4LCB1cHBlcmNhc2UgbmFtZSAKLUZBSUwg
RWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwgbG93ZXJjYXNlIG5hbWUgYXNz
ZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDAgZ290IDEKLUZBSUwg
RWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwgdXBwZXJjYXNlIG5hbWUgYXNz
ZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDAgZ290IDEKK1BBU1Mg
RWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwgbG93ZXJjYXNlIG5hbWUgCitQ
QVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVmaXgsIHVwcGVyY2FzZSBuYW1l
IAogUEFTUyBFbGVtZW50IGluIEhUTUwgbmFtZXNwYWNlLCBubyBwcmVmaXgsIG5vbi1hc2NpaSBj
aGFyYWN0ZXJzIGluIG5hbWUgCiBQQVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBu
b24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAotRkFJTCBFbGVtZW50IGluIEhUTUwgbmFtZXNw
YWNlLCBwcmVmaXgsIG5vbi1hc2NpaSBjaGFyYWN0ZXJzIGluIG5hbWUgYXNzZXJ0X2FycmF5X2Vx
dWFsczogQWxsIHVwcGVyY2FzZSBpbnB1dCBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMSBnb3Qg
MAotRkFJTCBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkg
Y2hhcmFjdGVycyBpbiBuYW1lIGFzc2VydF9hcnJheV9lcXVhbHM6IEFsbCB1cHBlcmNhc2UgaW5w
dXQgbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKK1BBU1MgRWxlbWVudCBpbiBIVE1M
IG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAorUEFTUyBF
bGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVy
cyBpbiBuYW1lIAogUEFTUyBnZXRFbGVtZW50c0J5VGFnTmFtZSgnKicpIAogUEFTUyBNYXRjaGlu
ZyB0aGUgY29udGV4dCBvYmplY3QgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL2Nhc2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvY2FzZS1l
eHBlY3RlZC50eHQKaW5kZXggZTJiMjg4MjdiZDU2NjNkNTdiNTYwYTc2ZjBlNGVlODU3YTdjYjFh
Yi4uZjQyZWU3MGQ2MGI2OWQyODc2OGU2YmFiYjViNjZiMmZjNzZjYWQzYyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvY2Fz
ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9kb20vbm9kZXMvY2FzZS1leHBlY3RlZC50eHQKQEAgLTIsMjcgKzIsMjcgQEAKIFBB
U1MgY3JlYXRlRWxlbWVudCBhYmMgCiBQQVNTIHNldEF0dHJpYnV0ZSBhYmMgCiBQQVNTIGdldEF0
dHJpYnV0ZSBhYmMgCi1GQUlMIGdldEVsZW1lbnRzQnlUYWdOYW1lIGE6YWJjIGFzc2VydF9hcnJh
eV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAwIGdvdCAzCitQQVNTIGdldEVsZW1l
bnRzQnlUYWdOYW1lIGE6YWJjIAogUEFTUyBnZXRFbGVtZW50c0J5VGFnTmFtZSBhYmMgCiBQQVNT
IGNyZWF0ZUVsZW1lbnQgQWJjIAogUEFTUyBzZXRBdHRyaWJ1dGUgQWJjIAogUEFTUyBnZXRBdHRy
aWJ1dGUgQWJjIAotRkFJTCBnZXRFbGVtZW50c0J5VGFnTmFtZSBhOkFiYyBhc3NlcnRfYXJyYXlf
ZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMCBnb3QgMworUEFTUyBnZXRFbGVtZW50
c0J5VGFnTmFtZSBhOkFiYyAKIFBBU1MgZ2V0RWxlbWVudHNCeVRhZ05hbWUgQWJjIAogUEFTUyBj
cmVhdGVFbGVtZW50IEFCQyAKIFBBU1Mgc2V0QXR0cmlidXRlIEFCQyAKIFBBU1MgZ2V0QXR0cmli
dXRlIEFCQyAKLUZBSUwgZ2V0RWxlbWVudHNCeVRhZ05hbWUgYTpBQkMgYXNzZXJ0X2FycmF5X2Vx
dWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDAgZ290IDMKK1BBU1MgZ2V0RWxlbWVudHNC
eVRhZ05hbWUgYTpBQkMgCiBQQVNTIGdldEVsZW1lbnRzQnlUYWdOYW1lIEFCQyAKIFBBU1MgY3Jl
YXRlRWxlbWVudCDDpCAKIFBBU1Mgc2V0QXR0cmlidXRlIMOkIAogUEFTUyBnZXRBdHRyaWJ1dGUg
w6QgCi1GQUlMIGdldEVsZW1lbnRzQnlUYWdOYW1lIGE6w6QgYXNzZXJ0X2FycmF5X2VxdWFsczog
bGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDAgZ290IDMKK1BBU1MgZ2V0RWxlbWVudHNCeVRhZ05h
bWUgYTrDpCAKIFBBU1MgZ2V0RWxlbWVudHNCeVRhZ05hbWUgw6QgCiBQQVNTIGNyZWF0ZUVsZW1l
bnQgw4QgCiBQQVNTIHNldEF0dHJpYnV0ZSDDhCAKIFBBU1MgZ2V0QXR0cmlidXRlIMOEIAotRkFJ
TCBnZXRFbGVtZW50c0J5VGFnTmFtZSBhOsOEIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMg
ZGlmZmVyLCBleHBlY3RlZCAwIGdvdCAzCitQQVNTIGdldEVsZW1lbnRzQnlUYWdOYW1lIGE6w4Qg
CiBQQVNTIGdldEVsZW1lbnRzQnlUYWdOYW1lIMOEIAogUEFTUyBjcmVhdGVFbGVtZW50TlMgaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCxhYmMsYWJjIAogUEFTUyBzZXRBdHRyaWJ1dGVOUyBo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sLGFiYyxhYmMgCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>286000</attachid>
            <date>2016-08-12 20:23:22 -0700</date>
            <delta_ts>2016-08-12 21:22:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160682-20160812202142.patch</filename>
            <type>text/plain</type>
            <size>42005</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0NDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzk2OTRiOGFlMmRhMmVl
OGM3MDFhZjcyZTAyYzA5ZjAxNjdhZWFhMi4uN2VjMjk3MTgxMDczZjA3Yjk5MmM4MGY4NWFkZWQ5
ZDFmYjkwY2I5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE2LTA4LTEyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgZ2V0RWxlbWVudHNCeVRhZ05h
bWUoKSBzaG91bGQgdGFrZSBhIHF1YWxpZmllZE5hbWUgaW4gcGFyYW1ldGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2ODIKKworICAgICAgICBS
ZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgZ2V0RWxlbWVudHNCeVRhZ05hbWUo
KSBzaG91bGQgdGFrZSBhIHF1YWxpZmllZE5hbWUgaW4gcGFyYW1ldGVyLCBub3QgYQorICAgICAg
ICBsb2NhbE5hbWUsIGFjY29yZGluZyB0byB0aGUgbGF0ZXN0IERPTSBzcGVjaWZpY2F0aW9uOgor
ICAgICAgICAtIGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jZG9tLWRvY3VtZW50LWdldGVs
ZW1lbnRzYnl0YWduYW1lCisgICAgICAgIC0gaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cub3JnLyNj
b25jZXB0LWdldGVsZW1lbnRzYnl0YWduYW1lCisKKyAgICAgICAgVGhlIG5ldyBiZWhhdmlvciBt
YXRjaGVzIEZpcmVmb3ggYW5kIEVkZ2UuIFRoZXJlIGlzIGEgc2xpZ2h0CisgICAgICAgIGNvbXBh
dGlibGl0eSByaXNrIGJ1dCB3ZSBzaG91bGQgZ2l2ZSBpdCBhIHRyeS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIHJlYmFzZWxpbmVkIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9BbGxEZXNjZW5kYW50
c0NvbGxlY3Rpb24uaDogQWRkZWQuCisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6Z2V0RWxlbWVudHNCeVRhZ05hbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6Z2V0RWxlbWVudHNCeVRhZ05hbWVOUyk6
CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3RzTm9k
ZURhdGE6OmludmFsaWRhdGVDYWNoZXMpOgorICAgICAgICAqIGRvbS9Ob2RlUmFyZURhdGEuaDoK
KyAgICAgICAgKFdlYkNvcmU6Ok5vZGVMaXN0c05vZGVEYXRhOjphZGRDYWNoZWRUYWdDb2xsZWN0
aW9uTlMpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZUxpc3RzTm9kZURhdGE6OnJlbW92ZUNhY2hl
ZFRhZ0NvbGxlY3Rpb25OUyk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlTGlzdHNOb2RlRGF0YTo6
YWRvcHREb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlTGlzdHNOb2RlRGF0YTo6ZGVs
ZXRlVGhpc0FuZFVwZGF0ZU5vZGVSYXJlRGF0YUlmQWJvdXRUb1JlbW92ZUxhc3RMaXN0KToKKyAg
ICAgICAgKiBkb20vVGFnQ29sbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjptYWtlUXVh
bGlmaWVkTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpzcGxpdFF1YWxpZmllZE5hbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6VGFnQ29sbGVjdGlvbk5TOjpUYWdDb2xsZWN0aW9uTlMpOgorICAgICAg
ICAoV2ViQ29yZTo6VGFnQ29sbGVjdGlvbk5TOjp+VGFnQ29sbGVjdGlvbk5TKToKKyAgICAgICAg
KFdlYkNvcmU6OlRhZ0NvbGxlY3Rpb246OlRhZ0NvbGxlY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6VGFnQ29sbGVjdGlvbjo6flRhZ0NvbGxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFRhZ0NvbGxlY3Rpb246OkhUTUxUYWdDb2xsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUYWdDb2xsZWN0aW9uOjp+SFRNTFRhZ0NvbGxlY3Rpb24pOgorICAgICAgICAqIGRvbS9UYWdD
b2xsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpUYWdDb2xsZWN0aW9uOjplbGVtZW50TWF0
Y2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpUYWdDb2xsZWN0aW9uTlM6OmVsZW1lbnRNYXRjaGVz
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWdDb2xsZWN0aW9uOjplbGVtZW50TWF0Y2hlcyk6
CisgICAgICAgICogaHRtbC9Db2xsZWN0aW9uVHlwZS5oOgorICAgICAgICAqIGh0bWwvR2VuZXJp
Y0NhY2hlZEhUTUxDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdlbmVyaWNDYWNo
ZWRIVE1MQ29sbGVjdGlvbjx0cmF2ZXJzYWxUeXBlPjo6ZWxlbWVudE1hdGNoZXMpOgorICAgICAg
ICAqIGh0bWwvSFRNTENvbGxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW52YWxpZGF0
aW9uVHlwZUV4Y2x1ZGluZ0lkQW5kTmFtZUF0dHJpYnV0ZXMpOgorCiAyMDE2LTA4LTEyICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFrZSBV
UkxQYXJzZXIgd29yayB3aXRoIFVSTHMgbWlzc2luZyBVUkwgcGFydHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1NzUxZDFiYzcw
OGM3ZmE4NjA4N2FmMzU1ZjFjMjAyNWI4NmFjMWU5Li5mZTQ1ZGFmODM1Y2E2YzdlYjRiZmM4M2Zm
YmNhNDk2MmQ1ZmFmOWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yOTQ5LDYgKzI5NDksNyBAQAogCQk4M0E0QTlGOTFDRTdG
RDgxMDA3MDlCMDAgLyogSlNYTUxEb2N1bWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0E0QTlGODFDRTdGRDdFMDA3MDlCMDAgLyog
SlNYTUxEb2N1bWVudEN1c3RvbS5jcHAgKi87IH07CiAJCTgzQjJEMTc1MUI4QkNENkEwMEEwMkU0
NyAvKiBOYXRpdmVOb2RlRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4M0U5NTlFMTFCOEJDMjJCMDA0RDkzODUgLyogTmF0aXZlTm9kZUZpbHRl
ci5oICovOyB9OwogCQk4M0I5Njg3QjE5RjhBQjgzMDA0RUY3QUYgLyogU3R5bGVCdWlsZGVyQ29u
dmVydGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0I5Njg3OTE5RjhBQjgzMDA0RUY3QUYgLyogU3R5bGVCdWlsZGVyQ29udmVydGVyLmggKi87IH07
CisJCTgzQkI1Qzg4MUQ1RDZGNDUwMDVBNzFGNCAvKiBBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQkI1Qzg3
MUQ1RDZGM0EwMDVBNzFGNCAvKiBBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24uaCAqLzsgfTsKIAkJ
ODNDMDVBNUExQTY4NjIxMjAwN0U1REVBIC8qIFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlv
bnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODND
MDVBNTgxQTY4NjIxMjAwN0U1REVBIC8qIFN0eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMu
Y3BwICovOyB9OwogCQk4M0MwNUE1QjFBNjg2MjEyMDA3RTVERUEgLyogU3R5bGVQcm9wZXJ0eVNo
b3J0aGFuZEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODNDMDVBNTkxQTY4NjIxMjAwN0U1REVBIC8qIFN0eWxlUHJvcGVydHlTaG9ydGhh
bmRGdW5jdGlvbnMuaCAqLzsgfTsKIAkJODNDMUQ0MjUxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1Bh
dGhTZWdBcmNBYnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzQzFENDEzMTc4RDVBQjQwMDE0MUU2OCAvKiBTVkdQYXRoU2VnQXJjQWJzLmggKi87IH07
CkBAIC0xMDM4MCw2ICsxMDM4MSw3IEBACiAJCTgzOUFBRkVCMUEwQzBDOEQwMDYwNUY5OSAvKiBI
VE1MV0JSRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MV0JS
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0E0QTlGODFDRTdGRDdF
MDA3MDlCMDAgLyogSlNYTUxEb2N1bWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1hNTERvY3VtZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJODNCOTY4NzkxOUY4QUI4MzAwNEVGN0FGIC8qIFN0eWxlQnVpbGRlckNv
bnZlcnRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZUJ1aWxkZXJD
b252ZXJ0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNCQjVDODcxRDVENkYz
QTAwNUE3MUY0IC8qIEFsbERlc2NlbmRhbnRzQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODNDMDVBNTgxQTY4NjIxMjAwN0U1REVBIC8qIFN0eWxlUHJvcGVy
dHlTaG9ydGhhbmRGdW5jdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU3R5bGVQcm9wZXJ0eVNob3J0aGFuZEZ1bmN0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgzQzA1QTU5MUE2ODYyMTIwMDdFNURFQSAvKiBTdHlsZVByb3BlcnR5
U2hvcnRoYW5kRnVuY3Rpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
eWxlUHJvcGVydHlTaG9ydGhhbmRGdW5jdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODNDMUQ0MTMxNzhENUFCNDAwMTQxRTY4IC8qIFNWR1BhdGhTZWdBcmNBYnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUGF0aFNlZ0FyY0Ficy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE1MTIsOCArMTE1MTQsOCBAQAogCQk5QkQ0RTkxODFD
NDYyQ0ZDMDA1MDY1QkMgLyogQ3VzdG9tRWxlbWVudHNSZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXN0b21FbGVtZW50c1JlZ2lzdHJ5LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJENEU5MTkxQzQ2MkNGQzAwNTA2NUJDIC8qIEN1
c3RvbUVsZW1lbnRzUmVnaXN0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q3VzdG9tRWxlbWVudHNSZWdpc3RyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
QkQ4QTk1OTE4QkVGQzc2MDA5ODdFOUEgLyogQ29sbGVjdGlvbkluZGV4Q2FjaGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29sbGVjdGlvbkluZGV4Q2FjaGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5QkU2NzEwOTFENUFFQjA0MDAzNDU1MTQg
LyogSlNDdXN0b21FbGVtZW50c1JlZ2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IEpTQ3VzdG9tRWxlbWVudHNSZWdpc3RyeS5jcHA7IHBhdGggPSAiSlNDdXN0
b21FbGVtZW50c1JlZ2lzdHJ5LmNwcCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlC
RTY3MTBBMUQ1QUVCMDQwMDM0NTUxNCAvKiBKU0N1c3RvbUVsZW1lbnRzUmVnaXN0cnkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNDdXN0b21FbGVtZW50c1JlZ2lzdHJ5Lmg7
IHBhdGggPSAiSlNDdXN0b21FbGVtZW50c1JlZ2lzdHJ5LmgiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5QkU2NzEwOTFENUFFQjA0MDAzNDU1MTQgLyogSlNDdXN0b21FbGVtZW50c1Jl
Z2lzdHJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3VzdG9t
RWxlbWVudHNSZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCRTY3
MTBBMUQ1QUVCMDQwMDM0NTUxNCAvKiBKU0N1c3RvbUVsZW1lbnRzUmVnaXN0cnkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDdXN0b21FbGVtZW50c1JlZ2lzdHJ5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCRjlBODdFMTY0OEREMkYwMDFDNkIyMyAvKiBK
U0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5QkY5QTg3RjE2NDhERDJGMDAxQzZCMjMgLyogSlNIVE1MRm9y
bUNvbnRyb2xzQ29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTlENjM4MDBGMUFGMTZFMTYwMDMxQTE1QyAvKiBTdHlsZVNlbGZBbGlnbm1lbnREYXRhLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlU2VsZkFsaWdubWVudERhdGEu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzODkyLDYgKzIzODk0LDcgQEAKIAkJ
CQk3Q0QwQkEwMzFCOEY3OUM5MDA1Q0VCQkUgLyogQWN0aXZlRE9NQ2FsbGJhY2tNaWNyb3Rhc2su
aCAqLywKIAkJCQlFMUM0REU2RDBFQTc1QzY1MDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmNw
cCAqLywKIAkJCQlFMUM0REU2ODBFQTc1QzFFMDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0Lmgg
Ki8sCisJCQkJODNCQjVDODcxRDVENkYzQTAwNUE3MUY0IC8qIEFsbERlc2NlbmRhbnRzQ29sbGVj
dGlvbi5oICovLAogCQkJCTMxOTg0N0ZFMUExRDgxNjcwMEExMzMxOCAvKiBBbmltYXRpb25FdmVu
dC5jcHAgKi8sCiAJCQkJMzE5ODQ3RkYxQTFEODE2NzAwQTEzMzE4IC8qIEFuaW1hdGlvbkV2ZW50
LmggKi8sCiAJCQkJMzE5ODQ4MDAxQTFEODE2NzAwQTEzMzE4IC8qIEFuaW1hdGlvbkV2ZW50Lmlk
bCAqLywKQEAgLTI2Mzk3LDYgKzI2NDAwLDcgQEAKIAkJCQlCNjU4RkZBMjE1MjJFRjNBMDBERDU1
OTUgLyogSlNSYWRpb05vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NURGMzIwMjA5RDFD
QzYwMDAwQkUzMjUgLyogSlNSYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M0Qzk2REQxQUQ0
NDgzNTAwMzY1QTUwIC8qIEpTUmVhZGFibGVTdHJlYW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTgz
QkI1Qzg4MUQ1RDZGNDUwMDVBNzFGNCAvKiBBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTZDNEM5NkRGMUFENDQ4MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3Ry
ZWFtRGVmYXVsdENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNEM5NkRGMUFENDQ4
MzUwMDM2NUE1MCAvKiBKU1JlYWRhYmxlU3RyZWFtRGVmYXVsdFJlYWRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDEyOURGODYxQkI1QjgwQzAwMzIyQTE2IC8qIEpTUmVhZGFibGVTdHJlYW1Qcml2
YXRlQ29uc3RydWN0b3JzLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9BbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9B
bGxEZXNjZW5kYW50c0NvbGxlY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMmVkOWQ4OWI5MGExZTJlZjhi
ODY1MzZlZTQ2YzQ0YzA2NWM2NGIyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0FsbERlc2NlbmRhbnRzQ29sbGVjdGlvbi5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNhY2hlZEhUTUxDb2xsZWN0aW9uLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uIDog
cHVibGljIENhY2hlZEhUTUxDb2xsZWN0aW9uPEFsbERlc2NlbmRhbnRzQ29sbGVjdGlvbiwgQ29s
bGVjdGlvblR5cGVUcmFpdHM8QWxsRGVzY2VuZGFudHM+Ojp0cmF2ZXJzYWxUeXBlPiB7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24+IGNyZWF0ZShDb250
YWluZXJOb2RlJiByb290Tm9kZSwgQ29sbGVjdGlvblR5cGUgdHlwZSkKKyAgICB7CisgICAgICAg
IEFTU0VSVF9VTlVTRUQodHlwZSwgdHlwZSA9PSBBbGxEZXNjZW5kYW50cyk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEFsbERlc2NlbmRhbnRzQ29sbGVjdGlvbihyb290Tm9kZSwgdHlw
ZSkpOworICAgIH0KKworICAgIGJvb2wgZWxlbWVudE1hdGNoZXMoRWxlbWVudCYpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KKworcHJvdGVjdGVkOgorICAgIEFsbERlc2NlbmRhbnRzQ29sbGVjdGlv
bihDb250YWluZXJOb2RlJiByb290Tm9kZSwgQ29sbGVjdGlvblR5cGUgdHlwZSkKKyAgICAgICAg
OiBDYWNoZWRIVE1MQ29sbGVjdGlvbjxBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24sIENvbGxlY3Rp
b25UeXBlVHJhaXRzPEFsbERlc2NlbmRhbnRzPjo6dHJhdmVyc2FsVHlwZT4ocm9vdE5vZGUsIHR5
cGUpCisgICAgeyB9Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29u
dGFpbmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKaW5k
ZXggNWU5N2VlNzYwNTY1MWU0MzExOTJmYzljNWIwZGE2ODgyZDUwYzkxYS4uYmUwYzVkNTI1NDA2
MWI1ZTVlNjgyYmNhYWQ0N2QxOTliMDg5YjFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbnRhaW5lck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJO
b2RlLmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKIAog
I2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJBbGxEZXNjZW5kYW50c0NvbGxl
Y3Rpb24uaCIKICNpbmNsdWRlICJDaGlsZExpc3RNdXRhdGlvblNjb3BlLmgiCiAjaW5jbHVkZSAi
Q2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCkBAIC04MjAsMjMgKzgyMSwyMiBA
QCBSZWZQdHI8Tm9kZUxpc3Q+IENvbnRhaW5lck5vZGU6OnF1ZXJ5U2VsZWN0b3JBbGwoY29uc3Qg
U3RyaW5nJiBzZWxlY3RvcnMsIEV4Y2VwdAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1SZWY8
SFRNTENvbGxlY3Rpb24+IENvbnRhaW5lck5vZGU6OmdldEVsZW1lbnRzQnlUYWdOYW1lKGNvbnN0
IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKQorUmVmPEhUTUxDb2xsZWN0aW9uPiBDb250YWluZXJO
b2RlOjpnZXRFbGVtZW50c0J5VGFnTmFtZShjb25zdCBBdG9taWNTdHJpbmcmIHF1YWxpZmllZE5h
bWUpCiB7Ci0gICAgQVNTRVJUKCFsb2NhbE5hbWUuaXNOdWxsKCkpOworICAgIEFTU0VSVCghcXVh
bGlmaWVkTmFtZS5pc051bGwoKSk7CisKKyAgICBpZiAocXVhbGlmaWVkTmFtZSA9PSBzdGFyQXRv
bSkKKyAgICAgICAgcmV0dXJuIGVuc3VyZVJhcmVEYXRhKCkuZW5zdXJlTm9kZUxpc3RzKCkuYWRk
Q2FjaGVkQ29sbGVjdGlvbjxBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24+KCp0aGlzLCBBbGxEZXNj
ZW5kYW50cyk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS5pc0hUTUxEb2N1bWVudCgpKQotICAgICAg
ICByZXR1cm4gZW5zdXJlUmFyZURhdGEoKS5lbnN1cmVOb2RlTGlzdHMoKS5hZGRDYWNoZWRDb2xs
ZWN0aW9uPEhUTUxUYWdDb2xsZWN0aW9uPigqdGhpcywgQnlIVE1MVGFnLCBsb2NhbE5hbWUpOwot
ICAgIHJldHVybiBlbnN1cmVSYXJlRGF0YSgpLmVuc3VyZU5vZGVMaXN0cygpLmFkZENhY2hlZENv
bGxlY3Rpb248VGFnQ29sbGVjdGlvbj4oKnRoaXMsIEJ5VGFnLCBsb2NhbE5hbWUpOworICAgICAg
ICByZXR1cm4gZW5zdXJlUmFyZURhdGEoKS5lbnN1cmVOb2RlTGlzdHMoKS5hZGRDYWNoZWRDb2xs
ZWN0aW9uPEhUTUxUYWdDb2xsZWN0aW9uPigqdGhpcywgQnlIVE1MVGFnLCBxdWFsaWZpZWROYW1l
KTsKKyAgICByZXR1cm4gZW5zdXJlUmFyZURhdGEoKS5lbnN1cmVOb2RlTGlzdHMoKS5hZGRDYWNo
ZWRDb2xsZWN0aW9uPFRhZ0NvbGxlY3Rpb24+KCp0aGlzLCBCeVRhZywgcXVhbGlmaWVkTmFtZSk7
CiB9CiAKIFJlZjxIVE1MQ29sbGVjdGlvbj4gQ29udGFpbmVyTm9kZTo6Z2V0RWxlbWVudHNCeVRh
Z05hbWVOUyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3Ry
aW5nJiBsb2NhbE5hbWUpCiB7CiAgICAgQVNTRVJUKCFsb2NhbE5hbWUuaXNOdWxsKCkpOwotCi0g
ICAgaWYgKG5hbWVzcGFjZVVSSSA9PSBzdGFyQXRvbSkKLSAgICAgICAgcmV0dXJuIGdldEVsZW1l
bnRzQnlUYWdOYW1lKGxvY2FsTmFtZSk7Ci0KLSAgICByZXR1cm4gZW5zdXJlUmFyZURhdGEoKS5l
bnN1cmVOb2RlTGlzdHMoKS5hZGRDYWNoZWRDb2xsZWN0aW9uV2l0aFF1YWxpZmllZE5hbWUoKnRo
aXMsIG5hbWVzcGFjZVVSSS5pc0VtcHR5KCkgPyBudWxsQXRvbSA6IG5hbWVzcGFjZVVSSSwgbG9j
YWxOYW1lKTsKKyAgICByZXR1cm4gZW5zdXJlUmFyZURhdGEoKS5lbnN1cmVOb2RlTGlzdHMoKS5h
ZGRDYWNoZWRUYWdDb2xsZWN0aW9uTlMoKnRoaXMsIG5hbWVzcGFjZVVSSS5pc0VtcHR5KCkgPyBu
dWxsQXRvbSA6IG5hbWVzcGFjZVVSSSwgbG9jYWxOYW1lKTsKIH0KIAogUmVmPE5vZGVMaXN0PiBD
b250YWluZXJOb2RlOjpnZXRFbGVtZW50c0J5TmFtZShjb25zdCBTdHJpbmcmIGVsZW1lbnROYW1l
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCmluZGV4IDU2ZDdmNTg2YmViMzA2YWM0ZDVlYTlmZmM2YmYyZjFkMjEz
YWM2YmEuLjFkNDIxMDhjMGUyM2UzNTkzYzBmMDViOGFjNjIzMzcwMWQ0Zjg4Y2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKQEAgLTE4NzYsNyArMTg3Niw3IEBAIHZvaWQgTm9kZUxpc3RzTm9kZURhdGE6Omlu
dmFsaWRhdGVDYWNoZXMoY29uc3QgUXVhbGlmaWVkTmFtZSogYXR0ck5hbWUpCiAgICAgaWYgKGF0
dHJOYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKGF1dG8mIHRhZ0NvbGxlY3Rpb24g
OiBtX3RhZ0NvbGxlY3Rpb25DYWNoZU5TKQorICAgIGZvciAoYXV0byYgdGFnQ29sbGVjdGlvbiA6
IG1fdGFnQ29sbGVjdGlvbk5TQ2FjaGUpCiAgICAgICAgIHRhZ0NvbGxlY3Rpb24udmFsdWUtPmlu
dmFsaWRhdGVDYWNoZUZvckF0dHJpYnV0ZShudWxscHRyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVS
YXJlRGF0YS5oCmluZGV4IDA5MmU1NmQ3YzIyNmUxN2U5ZTFjMzQ4YWIwZDljOTM1NTM5NWViZTQu
LmMxMGM3NzZkNTMwMzZjNGZlNTNmYzdiNTE1OWE5MGM0NDViNDI3ZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZVJhcmVEYXRhLmgKQEAgLTExNCw3ICsxMTQsNyBAQCBwdWJsaWM6CiAKICAgICB0eXBlZGVm
IEhhc2hNYXA8c3RkOjpwYWlyPHVuc2lnbmVkIGNoYXIsIEF0b21pY1N0cmluZz4sIExpdmVOb2Rl
TGlzdCosIE5vZGVMaXN0Q2FjaGVNYXBFbnRyeUhhc2g+IE5vZGVMaXN0QXRvbWljTmFtZUNhY2hl
TWFwOwogICAgIHR5cGVkZWYgSGFzaE1hcDxzdGQ6OnBhaXI8dW5zaWduZWQgY2hhciwgQXRvbWlj
U3RyaW5nPiwgSFRNTENvbGxlY3Rpb24qLCBOb2RlTGlzdENhY2hlTWFwRW50cnlIYXNoPiBDb2xs
ZWN0aW9uQ2FjaGVNYXA7Ci0gICAgdHlwZWRlZiBIYXNoTWFwPFF1YWxpZmllZE5hbWUsIFRhZ0Nv
bGxlY3Rpb24qPiBUYWdDb2xsZWN0aW9uQ2FjaGVOUzsKKyAgICB0eXBlZGVmIEhhc2hNYXA8UXVh
bGlmaWVkTmFtZSwgVGFnQ29sbGVjdGlvbk5TKj4gVGFnQ29sbGVjdGlvbk5TQ2FjaGU7CiAKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBDb250YWluZXJUeXBlPgogICAgIEFMV0FZ
U19JTkxJTkUgUmVmPFQ+IGFkZENhY2hlV2l0aEF0b21pY05hbWUoQ29udGFpbmVyVHlwZSYgY29u
dGFpbmVyLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCkBAIC0xMjgsMTQgKzEyOCwxNCBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBsaXN0OwogICAgIH0KIAotICAgIEFMV0FZU19JTkxJTkUg
UmVmPFRhZ0NvbGxlY3Rpb24+IGFkZENhY2hlZENvbGxlY3Rpb25XaXRoUXVhbGlmaWVkTmFtZShD
b250YWluZXJOb2RlJiBub2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29u
c3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCisgICAgQUxXQVlTX0lOTElORSBSZWY8VGFnQ29s
bGVjdGlvbk5TPiBhZGRDYWNoZWRUYWdDb2xsZWN0aW9uTlMoQ29udGFpbmVyTm9kZSYgbm9kZSwg
Y29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21pY1N0cmluZyYgbG9j
YWxOYW1lKQogICAgIHsKICAgICAgICAgUXVhbGlmaWVkTmFtZSBuYW1lKG51bGxBdG9tLCBsb2Nh
bE5hbWUsIG5hbWVzcGFjZVVSSSk7Ci0gICAgICAgIFRhZ0NvbGxlY3Rpb25DYWNoZU5TOjpBZGRS
ZXN1bHQgcmVzdWx0ID0gbV90YWdDb2xsZWN0aW9uQ2FjaGVOUy5mYXN0QWRkKG5hbWUsIG51bGxw
dHIpOworICAgICAgICBUYWdDb2xsZWN0aW9uTlNDYWNoZTo6QWRkUmVzdWx0IHJlc3VsdCA9IG1f
dGFnQ29sbGVjdGlvbk5TQ2FjaGUuZmFzdEFkZChuYW1lLCBudWxscHRyKTsKICAgICAgICAgaWYg
KCFyZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgICAgIHJldHVybiAqcmVzdWx0Lml0ZXJhdG9y
LT52YWx1ZTsKIAotICAgICAgICBhdXRvIGxpc3QgPSBUYWdDb2xsZWN0aW9uOjpjcmVhdGUobm9k
ZSwgbmFtZXNwYWNlVVJJLCBsb2NhbE5hbWUpOworICAgICAgICBhdXRvIGxpc3QgPSBUYWdDb2xs
ZWN0aW9uTlM6OmNyZWF0ZShub2RlLCBuYW1lc3BhY2VVUkksIGxvY2FsTmFtZSk7CiAgICAgICAg
IHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBsaXN0LnB0cigpOwogICAgICAgICByZXR1cm4gbGlz
dDsKICAgICB9CkBAIC0xNzksMTMgKzE3OSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXRvbWlj
TmFtZUNhY2hlcy5yZW1vdmUobmFtZWROb2RlTGlzdEtleTxOb2RlTGlzdFR5cGU+KG5hbWUpKTsK
ICAgICB9CiAKLSAgICB2b2lkIHJlbW92ZUNhY2hlZENvbGxlY3Rpb25XaXRoUXVhbGlmaWVkTmFt
ZShIVE1MQ29sbGVjdGlvbiYgY29sbGVjdGlvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3Bh
Y2VVUkksIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKQorICAgIHZvaWQgcmVtb3ZlQ2Fj
aGVkVGFnQ29sbGVjdGlvbk5TKEhUTUxDb2xsZWN0aW9uJiBjb2xsZWN0aW9uLCBjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCiAg
ICAgewogICAgICAgICBRdWFsaWZpZWROYW1lIG5hbWUobnVsbEF0b20sIGxvY2FsTmFtZSwgbmFt
ZXNwYWNlVVJJKTsKLSAgICAgICAgQVNTRVJUKCZjb2xsZWN0aW9uID09IG1fdGFnQ29sbGVjdGlv
bkNhY2hlTlMuZ2V0KG5hbWUpKTsKKyAgICAgICAgQVNTRVJUKCZjb2xsZWN0aW9uID09IG1fdGFn
Q29sbGVjdGlvbk5TQ2FjaGUuZ2V0KG5hbWUpKTsKICAgICAgICAgaWYgKGRlbGV0ZVRoaXNBbmRV
cGRhdGVOb2RlUmFyZURhdGFJZkFib3V0VG9SZW1vdmVMYXN0TGlzdChjb2xsZWN0aW9uLm93bmVy
Tm9kZSgpKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV90YWdDb2xsZWN0aW9uQ2Fj
aGVOUy5yZW1vdmUobmFtZSk7CisgICAgICAgIG1fdGFnQ29sbGVjdGlvbk5TQ2FjaGUucmVtb3Zl
KG5hbWUpOwogICAgIH0KIAogICAgIHZvaWQgcmVtb3ZlQ2FjaGVkQ29sbGVjdGlvbihIVE1MQ29s
bGVjdGlvbiogY29sbGVjdGlvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lID0gc3RhckF0b20p
CkBAIC0yMTQsNyArMjE0LDcgQEAgcHVibGljOgogICAgICAgICBmb3IgKGF1dG8mIGNhY2hlIDog
bV9hdG9taWNOYW1lQ2FjaGVzLnZhbHVlcygpKQogICAgICAgICAgICAgY2FjaGUtPmludmFsaWRh
dGVDYWNoZSgqb2xkRG9jdW1lbnQpOwogCi0gICAgICAgIGZvciAoYXV0byYgbGlzdCA6IG1fdGFn
Q29sbGVjdGlvbkNhY2hlTlMudmFsdWVzKCkpIHsKKyAgICAgICAgZm9yIChhdXRvJiBsaXN0IDog
bV90YWdDb2xsZWN0aW9uTlNDYWNoZS52YWx1ZXMoKSkgewogICAgICAgICAgICAgQVNTRVJUKCFs
aXN0LT5pc1Jvb3RlZEF0RG9jdW1lbnQoKSk7CiAgICAgICAgICAgICBsaXN0LT5pbnZhbGlkYXRl
Q2FjaGUoKm9sZERvY3VtZW50KTsKICAgICAgICAgfQpAQCAtMjQyLDcgKzI0Miw3IEBAIHByaXZh
dGU6CiAgICAgRW1wdHlOb2RlTGlzdCogbV9lbXB0eUNoaWxkTm9kZUxpc3Q7CiAKICAgICBOb2Rl
TGlzdEF0b21pY05hbWVDYWNoZU1hcCBtX2F0b21pY05hbWVDYWNoZXM7Ci0gICAgVGFnQ29sbGVj
dGlvbkNhY2hlTlMgbV90YWdDb2xsZWN0aW9uQ2FjaGVOUzsKKyAgICBUYWdDb2xsZWN0aW9uTlND
YWNoZSBtX3RhZ0NvbGxlY3Rpb25OU0NhY2hlOwogICAgIENvbGxlY3Rpb25DYWNoZU1hcCBtX2Nh
Y2hlZENvbGxlY3Rpb25zOwogfTsKIApAQCAtMzAzLDcgKzMwMyw3IEBAIGlubGluZSBib29sIE5v
ZGVMaXN0c05vZGVEYXRhOjpkZWxldGVUaGlzQW5kVXBkYXRlTm9kZVJhcmVEYXRhSWZBYm91dFRv
UmVtb3ZlTGFzCiB7CiAgICAgQVNTRVJUKG93bmVyTm9kZS5ub2RlTGlzdHMoKSA9PSB0aGlzKTsK
ICAgICBpZiAoKG1fY2hpbGROb2RlTGlzdCA/IDEgOiAwKSArIChtX2VtcHR5Q2hpbGROb2RlTGlz
dCA/IDEgOiAwKSArIG1fYXRvbWljTmFtZUNhY2hlcy5zaXplKCkKLSAgICAgICAgKyBtX3RhZ0Nv
bGxlY3Rpb25DYWNoZU5TLnNpemUoKSArIG1fY2FjaGVkQ29sbGVjdGlvbnMuc2l6ZSgpICE9IDEp
CisgICAgICAgICsgbV90YWdDb2xsZWN0aW9uTlNDYWNoZS5zaXplKCkgKyBtX2NhY2hlZENvbGxl
Y3Rpb25zLnNpemUoKSAhPSAxKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgb3duZXJOb2Rl
LmNsZWFyTm9kZUxpc3RzKCk7CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVGFnQ29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGFnQ29s
bGVjdGlvbi5jcHAKaW5kZXggODE0MDNiNmVhZjgzNDM2YjhjMzliZjljZjhjMzU1NmUwMWJlOWQ0
ZC4uZjA3ZDYxMzRmZDg5MjFhZDA0ZGEyODdkNTVhYjRhY2M2OWE3ZGEwNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1RhZ0NvbGxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UYWdDb2xsZWN0aW9uLmNwcApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykg
MTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFu
dHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAxIERp
cmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDcs
IDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA0LTIwMDcsIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMjgsMzIgKzI4LDYyIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotVGFnQ29sbGVjdGlvbjo6VGFnQ29sbGVjdGlvbihDb250YWluZXJOb2Rl
JiByb290Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21p
Y1N0cmluZyYgbG9jYWxOYW1lKQotICAgIDogQ2FjaGVkSFRNTENvbGxlY3Rpb248VGFnQ29sbGVj
dGlvbiwgQ29sbGVjdGlvblR5cGVUcmFpdHM8QnlUYWc+Ojp0cmF2ZXJzYWxUeXBlPihyb290Tm9k
ZSwgQnlUYWcpCitzdGF0aWMgaW5saW5lIEF0b21pY1N0cmluZyBtYWtlUXVhbGlmaWVkTmFtZShj
b25zdCBTdHJpbmcmIHByZWZpeCwgY29uc3QgU3RyaW5nJiBsb2NhbE5hbWUpCit7CisgICAgaWYg
KExJS0VMWShwcmVmaXguaXNOdWxsKCkpKQorICAgICAgICByZXR1cm4gbG9jYWxOYW1lOworICAg
IHJldHVybiBwcmVmaXggKyAnOicgKyBsb2NhbE5hbWU7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9p
ZCBzcGxpdFF1YWxpZmllZE5hbWUoY29uc3QgU3RyaW5nJiBxdWFsaWZpZWROYW1lLCBBdG9taWNT
dHJpbmcmIHByZWZpeCwgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCit7CisgICAgc2l6ZV90IGlu
ZGV4ID0gcXVhbGlmaWVkTmFtZS5maW5kKCc6Jyk7CisgICAgaWYgKFVOTElLRUxZKGluZGV4ID09
IG5vdEZvdW5kKSkKKyAgICAgICAgbG9jYWxOYW1lID0gcXVhbGlmaWVkTmFtZTsKKyAgICBlbHNl
IHsKKyAgICAgICAgcHJlZml4ID0gcXVhbGlmaWVkTmFtZS5zdWJzdHJpbmcoMCwgaW5kZXgpOwor
ICAgICAgICBsb2NhbE5hbWUgPSBxdWFsaWZpZWROYW1lLnN1YnN0cmluZyhpbmRleCArIDEpOwor
ICAgIH0KKyAgICBBU1NFUlQobWFrZVF1YWxpZmllZE5hbWUocHJlZml4LCBsb2NhbE5hbWUpID09
IHF1YWxpZmllZE5hbWUpOworfQorCitUYWdDb2xsZWN0aW9uTlM6OlRhZ0NvbGxlY3Rpb25OUyhD
b250YWluZXJOb2RlJiByb290Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkks
IGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKQorICAgIDogQ2FjaGVkSFRNTENvbGxlY3Rp
b248VGFnQ29sbGVjdGlvbk5TLCBDb2xsZWN0aW9uVHlwZVRyYWl0czxCeVRhZz46OnRyYXZlcnNh
bFR5cGU+KHJvb3ROb2RlLCBCeVRhZykKICAgICAsIG1fbmFtZXNwYWNlVVJJKG5hbWVzcGFjZVVS
SSkKICAgICAsIG1fbG9jYWxOYW1lKGxvY2FsTmFtZSkKIHsKICAgICBBU1NFUlQobV9uYW1lc3Bh
Y2VVUkkuaXNOdWxsKCkgfHwgIW1fbmFtZXNwYWNlVVJJLmlzRW1wdHkoKSk7CiB9CiAKK1RhZ0Nv
bGxlY3Rpb25OUzo6flRhZ0NvbGxlY3Rpb25OUygpCit7CisgICAgb3duZXJOb2RlKCkubm9kZUxp
c3RzKCktPnJlbW92ZUNhY2hlZFRhZ0NvbGxlY3Rpb25OUygqdGhpcywgbV9uYW1lc3BhY2VVUkks
IG1fbG9jYWxOYW1lKTsKK30KKworVGFnQ29sbGVjdGlvbjo6VGFnQ29sbGVjdGlvbihDb250YWlu
ZXJOb2RlJiByb290Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBxdWFsaWZpZWROYW1lKQorICAg
IDogQ2FjaGVkSFRNTENvbGxlY3Rpb248VGFnQ29sbGVjdGlvbiwgQ29sbGVjdGlvblR5cGVUcmFp
dHM8QnlUYWc+Ojp0cmF2ZXJzYWxUeXBlPihyb290Tm9kZSwgQnlUYWcpCit7CisgICAgQVNTRVJU
KHF1YWxpZmllZE5hbWUgIT0gc3RhckF0b20pOworICAgIHNwbGl0UXVhbGlmaWVkTmFtZShxdWFs
aWZpZWROYW1lLCBtX3ByZWZpeCwgbV9sb2NhbE5hbWUpOworfQorCiBUYWdDb2xsZWN0aW9uOjp+
VGFnQ29sbGVjdGlvbigpCiB7Ci0gICAgaWYgKG1fbmFtZXNwYWNlVVJJID09IHN0YXJBdG9tKQot
ICAgICAgICBvd25lck5vZGUoKS5ub2RlTGlzdHMoKS0+cmVtb3ZlQ2FjaGVkQ29sbGVjdGlvbih0
aGlzLCBtX2xvY2FsTmFtZSk7Ci0gICAgZWxzZQotICAgICAgICBvd25lck5vZGUoKS5ub2RlTGlz
dHMoKS0+cmVtb3ZlQ2FjaGVkQ29sbGVjdGlvbldpdGhRdWFsaWZpZWROYW1lKCp0aGlzLCBtX25h
bWVzcGFjZVVSSSwgbV9sb2NhbE5hbWUpOworICAgIG93bmVyTm9kZSgpLm5vZGVMaXN0cygpLT5y
ZW1vdmVDYWNoZWRDb2xsZWN0aW9uKHRoaXMsIG1ha2VRdWFsaWZpZWROYW1lKG1fcHJlZml4LCBt
X2xvY2FsTmFtZSkpOwogfQogCi1IVE1MVGFnQ29sbGVjdGlvbjo6SFRNTFRhZ0NvbGxlY3Rpb24o
Q29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxOYW1lKQor
SFRNTFRhZ0NvbGxlY3Rpb246OkhUTUxUYWdDb2xsZWN0aW9uKENvbnRhaW5lck5vZGUmIHJvb3RO
b2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIHF1YWxpZmllZE5hbWUpCiAgICAgOiBDYWNoZWRIVE1M
Q29sbGVjdGlvbjxIVE1MVGFnQ29sbGVjdGlvbiwgQ29sbGVjdGlvblR5cGVUcmFpdHM8QnlIVE1M
VGFnPjo6dHJhdmVyc2FsVHlwZT4ocm9vdE5vZGUsIEJ5SFRNTFRhZykKLSAgICAsIG1fbG9jYWxO
YW1lKGxvY2FsTmFtZSkKLSAgICAsIG1fbG93ZXJlZExvY2FsTmFtZShsb2NhbE5hbWUuY29udmVy
dFRvQVNDSUlMb3dlcmNhc2UoKSkKIHsKKyAgICBBU1NFUlQocXVhbGlmaWVkTmFtZSAhPSBzdGFy
QXRvbSk7CisgICAgc3BsaXRRdWFsaWZpZWROYW1lKHF1YWxpZmllZE5hbWUsIG1fcHJlZml4LCBt
X2xvY2FsTmFtZSk7CisgICAgbV9sb3dlcmVkUHJlZml4ID0gbV9wcmVmaXguY29udmVydFRvQVND
SUlMb3dlcmNhc2UoKTsKKyAgICBtX2xvd2VyZWRMb2NhbE5hbWUgPSBtX2xvY2FsTmFtZS5jb252
ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwogfQogCiBIVE1MVGFnQ29sbGVjdGlvbjo6fkhUTUxUYWdD
b2xsZWN0aW9uKCkKIHsKLSAgICBvd25lck5vZGUoKS5ub2RlTGlzdHMoKS0+cmVtb3ZlQ2FjaGVk
Q29sbGVjdGlvbih0aGlzLCBtX2xvY2FsTmFtZSk7CisgICAgb3duZXJOb2RlKCkubm9kZUxpc3Rz
KCktPnJlbW92ZUNhY2hlZENvbGxlY3Rpb24odGhpcywgbWFrZVF1YWxpZmllZE5hbWUobV9wcmVm
aXgsIG1fbG9jYWxOYW1lKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UYWdDb2xsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVGFnQ29sbGVjdGlvbi5oCmluZGV4IDRjZmQzODE2N2E3OGRlNDdlYTMzNmNjMGNmY2VmZjBh
MmNjNGZmYWUuLjU3ODg5OTg2NjVjODVhYTFkNzllOTk1YjVmNjVkNDVlOTNlZjllY2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UYWdDb2xsZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RhZ0NvbGxlY3Rpb24uaApAQCAtMiw3ICsyLDcgQEAKICAqIENvcHlyaWdodCAo
QykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5
IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAx
IERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LTIw
MDgsIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA0LTIwMDgsIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtMzIsNjQgKzMyLDc2IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIC8vIEhUTUxDb2xsZWN0aW9uIHRoYXQgbGltaXRzIHRvIGEgcGFydGljdWxh
ciB0YWcuCiBjbGFzcyBUYWdDb2xsZWN0aW9uIGZpbmFsIDogcHVibGljIENhY2hlZEhUTUxDb2xs
ZWN0aW9uPFRhZ0NvbGxlY3Rpb24sIENvbGxlY3Rpb25UeXBlVHJhaXRzPEJ5VGFnPjo6dHJhdmVy
c2FsVHlwZT4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8VGFnQ29sbGVjdGlvbj4gY3JlYXRl
KENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVVS
SSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpCi0gICAgewotICAgICAgICBBU1NFUlQo
bmFtZXNwYWNlVVJJICE9IHN0YXJBdG9tKTsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
VGFnQ29sbGVjdGlvbihyb290Tm9kZSwgbmFtZXNwYWNlVVJJLCBsb2NhbE5hbWUpKTsKLSAgICB9
Ci0KLSAgICBzdGF0aWMgUmVmPFRhZ0NvbGxlY3Rpb24+IGNyZWF0ZShDb250YWluZXJOb2RlJiBy
b290Tm9kZSwgQ29sbGVjdGlvblR5cGUgdHlwZSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5h
bWUpCisgICAgc3RhdGljIFJlZjxUYWdDb2xsZWN0aW9uPiBjcmVhdGUoQ29udGFpbmVyTm9kZSYg
cm9vdE5vZGUsIENvbGxlY3Rpb25UeXBlIHR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYgcXVhbGlm
aWVkTmFtZSkKICAgICB7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQodHlwZSwgdHlwZSA9PSBCeVRh
Zyk7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRhZ0NvbGxlY3Rpb24ocm9vdE5vZGUs
IHN0YXJBdG9tLCBsb2NhbE5hbWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGFn
Q29sbGVjdGlvbihyb290Tm9kZSwgcXVhbGlmaWVkTmFtZSkpOwogICAgIH0KIAogICAgIHZpcnR1
YWwgflRhZ0NvbGxlY3Rpb24oKTsKLQogICAgIGJvb2wgZWxlbWVudE1hdGNoZXMoRWxlbWVudCYp
IGNvbnN0OwogCi1wcm90ZWN0ZWQ6Ci0gICAgVGFnQ29sbGVjdGlvbihDb250YWluZXJOb2RlJiBy
b290Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IEF0b21pY1N0
cmluZyYgbG9jYWxOYW1lKTsKK3ByaXZhdGU6CisgICAgVGFnQ29sbGVjdGlvbihDb250YWluZXJO
b2RlJiByb290Tm9kZSwgY29uc3QgQXRvbWljU3RyaW5nJiBxdWFsaWZpZWROYW1lKTsKIAotICAg
IEF0b21pY1N0cmluZyBtX25hbWVzcGFjZVVSSTsKKyAgICBBdG9taWNTdHJpbmcgbV9wcmVmaXg7
CiAgICAgQXRvbWljU3RyaW5nIG1fbG9jYWxOYW1lOwogfTsKIAotaW5saW5lIGJvb2wgVGFnQ29s
bGVjdGlvbjo6ZWxlbWVudE1hdGNoZXMoRWxlbWVudCYgZWxlbWVudCkgY29uc3QKLXsKLSAgICAv
LyBJbXBsZW1lbnRzIGh0dHA6Ly9kdmNzLnczLm9yZy9oZy9kb21jb3JlL3Jhdy1maWxlL3RpcC9P
dmVydmlldy5odG1sI2NvbmNlcHQtZ2V0ZWxlbWVudHNieXRhZ25hbWVucwotICAgIGlmIChtX2xv
Y2FsTmFtZSAhPSBzdGFyQXRvbSAmJiBtX2xvY2FsTmFtZSAhPSBlbGVtZW50LmxvY2FsTmFtZSgp
KQotICAgICAgICByZXR1cm4gZmFsc2U7CitjbGFzcyBUYWdDb2xsZWN0aW9uTlMgZmluYWwgOiBw
dWJsaWMgQ2FjaGVkSFRNTENvbGxlY3Rpb248VGFnQ29sbGVjdGlvbk5TLCBDb2xsZWN0aW9uVHlw
ZVRyYWl0czxCeVRhZz46OnRyYXZlcnNhbFR5cGU+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PFRhZ0NvbGxlY3Rpb25OUz4gY3JlYXRlKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUYWdDb2xsZWN0aW9uTlMocm9v
dE5vZGUsIG5hbWVzcGFjZVVSSSwgbG9jYWxOYW1lKSk7CisgICAgfQogCi0gICAgcmV0dXJuIG1f
bmFtZXNwYWNlVVJJID09IHN0YXJBdG9tIHx8IG1fbmFtZXNwYWNlVVJJID09IGVsZW1lbnQubmFt
ZXNwYWNlVVJJKCk7Ci19CisgICAgdmlydHVhbCB+VGFnQ29sbGVjdGlvbk5TKCk7CisgICAgYm9v
bCBlbGVtZW50TWF0Y2hlcyhFbGVtZW50JikgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgVGFnQ29s
bGVjdGlvbk5TKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWVzcGFjZVVSSSwgY29uc3QgQXRvbWljU3RyaW5nJiBsb2NhbE5hbWUpOworCisgICAgQXRvbWlj
U3RyaW5nIG1fbmFtZXNwYWNlVVJJOworICAgIEF0b21pY1N0cmluZyBtX2xvY2FsTmFtZTsKK307
CiAKIGNsYXNzIEhUTUxUYWdDb2xsZWN0aW9uIGZpbmFsIDogcHVibGljIENhY2hlZEhUTUxDb2xs
ZWN0aW9uPEhUTUxUYWdDb2xsZWN0aW9uLCBDb2xsZWN0aW9uVHlwZVRyYWl0czxCeUhUTUxUYWc+
Ojp0cmF2ZXJzYWxUeXBlPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxIVE1MVGFnQ29sbGVj
dGlvbj4gY3JlYXRlKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBDb2xsZWN0aW9uVHlwZSB0eXBl
LCBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSkKKyAgICBzdGF0aWMgUmVmPEhUTUxUYWdD
b2xsZWN0aW9uPiBjcmVhdGUoQ29udGFpbmVyTm9kZSYgcm9vdE5vZGUsIENvbGxlY3Rpb25UeXBl
IHR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYgcXVhbGlmaWVkTmFtZSkKICAgICB7CiAgICAgICAg
IEFTU0VSVF9VTlVTRUQodHlwZSwgdHlwZSA9PSBCeUhUTUxUYWcpOwotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBIVE1MVGFnQ29sbGVjdGlvbihyb290Tm9kZSwgbG9jYWxOYW1lKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhUTUxUYWdDb2xsZWN0aW9uKHJvb3ROb2RlLCBx
dWFsaWZpZWROYW1lKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+SFRNTFRhZ0NvbGxlY3Rpb24o
KTsKLQogICAgIGJvb2wgZWxlbWVudE1hdGNoZXMoRWxlbWVudCYpIGNvbnN0OwogCiBwcml2YXRl
OgotICAgIEhUTUxUYWdDb2xsZWN0aW9uKENvbnRhaW5lck5vZGUmIHJvb3ROb2RlLCBjb25zdCBB
dG9taWNTdHJpbmcmIGxvY2FsTmFtZSk7CisgICAgSFRNTFRhZ0NvbGxlY3Rpb24oQ29udGFpbmVy
Tm9kZSYgcm9vdE5vZGUsIGNvbnN0IEF0b21pY1N0cmluZyYgcXVhbGlmaWVkTmFtZSk7CiAKKyAg
ICBBdG9taWNTdHJpbmcgbV9wcmVmaXg7CisgICAgQXRvbWljU3RyaW5nIG1fbG93ZXJlZFByZWZp
eDsKICAgICBBdG9taWNTdHJpbmcgbV9sb2NhbE5hbWU7CiAgICAgQXRvbWljU3RyaW5nIG1fbG93
ZXJlZExvY2FsTmFtZTsKIH07CiAKK2lubGluZSBib29sIFRhZ0NvbGxlY3Rpb246OmVsZW1lbnRN
YXRjaGVzKEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbG9jYWxOYW1l
ID09IGVsZW1lbnQubG9jYWxOYW1lKCkgJiYgbV9wcmVmaXggPT0gZWxlbWVudC5wcmVmaXgoKTsK
K30KKworaW5saW5lIGJvb2wgVGFnQ29sbGVjdGlvbk5TOjplbGVtZW50TWF0Y2hlcyhFbGVtZW50
JiBlbGVtZW50KSBjb25zdAoreworICAgIGlmIChtX2xvY2FsTmFtZSAhPSBzdGFyQXRvbSAmJiBt
X2xvY2FsTmFtZSAhPSBlbGVtZW50LmxvY2FsTmFtZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIG1fbmFtZXNwYWNlVVJJID09IHN0YXJBdG9tIHx8IG1fbmFtZXNwYWNlVVJJ
ID09IGVsZW1lbnQubmFtZXNwYWNlVVJJKCk7Cit9CisKIGlubGluZSBib29sIEhUTUxUYWdDb2xs
ZWN0aW9uOjplbGVtZW50TWF0Y2hlcyhFbGVtZW50JiBlbGVtZW50KSBjb25zdAogewotICAgIC8v
IEltcGxlbWVudHMgaHR0cDovL2R2Y3MudzMub3JnL2hnL2RvbWNvcmUvcmF3LWZpbGUvdGlwL092
ZXJ2aWV3Lmh0bWwjY29uY2VwdC1nZXRlbGVtZW50c2J5dGFnbmFtZQotICAgIGlmIChtX2xvY2Fs
TmFtZSA9PSBzdGFyQXRvbSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgY29uc3QgQXRvbWlj
U3RyaW5nJiBsb2NhbE5hbWUgPSBlbGVtZW50LmlzSFRNTEVsZW1lbnQoKSA/IG1fbG93ZXJlZExv
Y2FsTmFtZSA6IG1fbG9jYWxOYW1lOwotICAgIHJldHVybiBsb2NhbE5hbWUgPT0gZWxlbWVudC5s
b2NhbE5hbWUoKTsKKyAgICBpZiAoZWxlbWVudC5pc0hUTUxFbGVtZW50KCkpCisgICAgICAgIHJl
dHVybiBtX2xvd2VyZWRMb2NhbE5hbWUgPT0gZWxlbWVudC5sb2NhbE5hbWUoKSAmJiBtX2xvd2Vy
ZWRQcmVmaXggPT0gZWxlbWVudC5wcmVmaXgoKTsKKyAgICByZXR1cm4gbV9sb2NhbE5hbWUgPT0g
ZWxlbWVudC5sb2NhbE5hbWUoKSAmJiBtX3ByZWZpeCA9PSBlbGVtZW50LnByZWZpeCgpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0NvbGxlY3Rpb25UeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbGxlY3Rpb25UeXBlLmgK
aW5kZXggODMxZDY3Njk2ZDZkMjA4YTA5MjY5NjA3OTIwY2YwODIxNDI4NjdhZS4uZDc2YTkwMmJh
YmU1NGFlNDg3ZjlhNzk5MjQ3ZjU1NmZkZDI4ZWNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9Db2xsZWN0aW9uVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sbGVj
dGlvblR5cGUuaApAQCAtNTQsNiArNTQsNyBAQCBlbnVtIENvbGxlY3Rpb25UeXBlIHsKICAgICBC
eUNsYXNzLAogICAgIEJ5VGFnLAogICAgIEJ5SFRNTFRhZywKKyAgICBBbGxEZXNjZW5kYW50cwog
fTsKIAogZW51bSBjbGFzcyBDb2xsZWN0aW9uVHJhdmVyc2FsVHlwZSB7IERlc2NlbmRhbnRzLCBD
aGlsZHJlbk9ubHksIEN1c3RvbUZvcndhcmRPbmx5IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0dlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0dlbmVyaWNDYWNoZWRIVE1MQ29sbGVjdGlvbi5jcHAKaW5kZXggMjc1MmU0YTYzMGFk
NDMyYThkOGQ2NzJlZTQ5NDgzMzZmZWU0OWI4Ni4uODMwNTJlY2Y4NjhkNGE5ODE1MGJkNzFjOWFh
ZTU4YjUxYWMyZDg2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9HZW5lcmljQ2Fj
aGVkSFRNTENvbGxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvR2VuZXJpY0Nh
Y2hlZEhUTUxDb2xsZWN0aW9uLmNwcApAQCAtNzUsNiArNzUsNyBAQCBib29sIEdlbmVyaWNDYWNo
ZWRIVE1MQ29sbGVjdGlvbjx0cmF2ZXJzYWxUeXBlPjo6ZWxlbWVudE1hdGNoZXMoRWxlbWVudCYg
ZWxlbWVudAogICAgIGNhc2UgQnlDbGFzczoKICAgICBjYXNlIEJ5VGFnOgogICAgIGNhc2UgQnlI
VE1MVGFnOgorICAgIGNhc2UgQWxsRGVzY2VuZGFudHM6CiAgICAgY2FzZSBEb2NBbGw6CiAgICAg
Y2FzZSBEb2N1bWVudE5hbWVkSXRlbXM6CiAgICAgY2FzZSBGb3JtQ29udHJvbHM6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbGxDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFsbENvbGxlY3Rpb24uY3BwCmluZGV4IGZjZjNhYTBlZWFjMDM5NTQ0
NzNmOWJjYjQwZWM1MmI0OWE4YWI3MTYuLjEzZDhkZTc3MGFkOTEyZWY2MDViOWJiYTliN2ZiYzg3
MjRkNzcwMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFsbENvbGxlY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFsbENvbGxlY3Rpb24uY3BwCkBA
IC0zNiw3ICszNiw3IEBAIFJlZjxIVE1MQWxsQ29sbGVjdGlvbj4gSFRNTEFsbENvbGxlY3Rpb246
OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIENvbGxlY3Rpb25UCiB9CiAKIGlubGluZSBIVE1M
QWxsQ29sbGVjdGlvbjo6SFRNTEFsbENvbGxlY3Rpb24oRG9jdW1lbnQmIGRvY3VtZW50LCBDb2xs
ZWN0aW9uVHlwZSB0eXBlKQotICAgIDogQ2FjaGVkSFRNTENvbGxlY3Rpb248SFRNTEFsbENvbGxl
Y3Rpb24sIENvbGxlY3Rpb25UeXBlVHJhaXRzPERvY0FsbD46OnRyYXZlcnNhbFR5cGU+KGRvY3Vt
ZW50LCB0eXBlKQorICAgIDogQWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uKGRvY3VtZW50LCB0eXBl
KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbGxDb2xsZWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbGxDb2xsZWN0aW9uLmgKaW5kZXggMDg5
YjcyYWNlYjEwZDJhYmRjMDI3YzdhY2RkY2Y2ZDYxMjM4ZmJlYS4uMzA2Mzk5ODM2ZDE0ZmFiOGMw
OTg4NGE0YWM3YzY1NzQ3OGY2MDE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQWxsQ29sbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFsbENvbGxl
Y3Rpb24uaApAQCAtMjYsMjAgKzI2LDE3IEBACiAjaWZuZGVmIEhUTUxBbGxDb2xsZWN0aW9uX2gK
ICNkZWZpbmUgSFRNTEFsbENvbGxlY3Rpb25faAogCi0jaW5jbHVkZSAiQ2FjaGVkSFRNTENvbGxl
Y3Rpb24uaCIKKyNpbmNsdWRlICJBbGxEZXNjZW5kYW50c0NvbGxlY3Rpb24uaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1jbGFzcyBIVE1MQWxsQ29sbGVjdGlvbiBmaW5hbCA6IHB1YmxpYyBD
YWNoZWRIVE1MQ29sbGVjdGlvbjxIVE1MQWxsQ29sbGVjdGlvbiwgQ29sbGVjdGlvblR5cGVUcmFp
dHM8RG9jQWxsPjo6dHJhdmVyc2FsVHlwZT4geworY2xhc3MgSFRNTEFsbENvbGxlY3Rpb24gZmlu
YWwgOiBwdWJsaWMgQWxsRGVzY2VuZGFudHNDb2xsZWN0aW9uIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPEhUTUxBbGxDb2xsZWN0aW9uPiBjcmVhdGUoRG9jdW1lbnQmLCBDb2xsZWN0aW9uVHlw
ZSk7CiAKICAgICBFbGVtZW50KiBuYW1lZEl0ZW1XaXRoSW5kZXgoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lLCB1bnNpZ25lZCBpbmRleCkgY29uc3Q7CiAgICAgUmVmUHRyPE5vZGVMaXN0PiB0YWdz
KGNvbnN0IFN0cmluZyYpOwogCi0gICAgLy8gRm9yIENhY2hlZEhUTUxDb2xsZWN0aW9uLgotICAg
IGJvb2wgZWxlbWVudE1hdGNoZXMoRWxlbWVudCYpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQog
cHJpdmF0ZToKICAgICBIVE1MQWxsQ29sbGVjdGlvbihEb2N1bWVudCYsIENvbGxlY3Rpb25UeXBl
KTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwCmluZGV4IDkyOWY0ZTZm
YTY3NmVlMDFjZDc4YWQ5YWRhMTg3NDQ1ZjBkNDZhNWEuLjhjMTczOGFlMzU1Yjk3N2FhYWNiMWQ2
ZTZjYmM4ODZjOWJhMjg0ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENv
bGxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3Bw
CkBAIC00Niw2ICs0Niw3IEBAIGlubGluZSBhdXRvIEhUTUxDb2xsZWN0aW9uOjpyb290VHlwZUZy
b21Db2xsZWN0aW9uVHlwZShDb2xsZWN0aW9uVHlwZSB0eXBlKSAtPiBSCiAgICAgY2FzZSBEb2N1
bWVudE5hbWVkSXRlbXM6CiAgICAgY2FzZSBGb3JtQ29udHJvbHM6CiAgICAgICAgIHJldHVybiBI
VE1MQ29sbGVjdGlvbjo6SXNSb290ZWRBdERvY3VtZW50OworICAgIGNhc2UgQWxsRGVzY2VuZGFu
dHM6CiAgICAgY2FzZSBCeUNsYXNzOgogICAgIGNhc2UgQnlUYWc6CiAgICAgY2FzZSBCeUhUTUxU
YWc6CkBAIC02OSw2ICs3MCw3IEBAIHN0YXRpYyBOb2RlTGlzdEludmFsaWRhdGlvblR5cGUgaW52
YWxpZGF0aW9uVHlwZUV4Y2x1ZGluZ0lkQW5kTmFtZUF0dHJpYnV0ZXMoQ29sCiAgICAgc3dpdGNo
ICh0eXBlKSB7CiAgICAgY2FzZSBCeVRhZzoKICAgICBjYXNlIEJ5SFRNTFRhZzoKKyAgICBjYXNl
IEFsbERlc2NlbmRhbnRzOgogICAgIGNhc2UgRG9jSW1hZ2VzOgogICAgIGNhc2UgRG9jRW1iZWRz
OgogICAgIGNhc2UgRG9jRm9ybXM6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODU3ZGYxZGQ0ODk5ZjgzYTdhOTIyZDIwODUw
ZTdjNTkyYzhkZTZjZC4uODVkNWVlNWVmZDU5ZGYxNDZmZTc3ZjliZDhjZWNlZmNhNDJmMmY0ZiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2LTA4LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgZ2V0RWxlbWVudHNCeVRhZ05hbWUoKSBzaG91bGQgdGFrZSBh
IHF1YWxpZmllZE5hbWUgaW4gcGFyYW1ldGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA2ODIKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtl
IE5pd2EuCisKKyAgICAgICAgVXBkYXRlIGV4aXN0aW5nIHRlc3RzIHRvIHJlZmxlY3QgYmVoYXZp
b3IgY2hhbmdlLgorCisgICAgICAgICogZmFzdC9kb20vZ2V0RWxlbWVudHNCeUNsYXNzTmFtZS8w
MTAueG1sOgorICAgICAgICAqIGZhc3QvZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUvMDExLnht
bDoKKwogMjAxNi0wOC0xMiAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBZGQgbWFjLXdrMSBiYXNlbGluZSBmb3IganMvZG9tL2dsb2JhbC1jb25zdHJ1Y3Rv
cnMtYXR0cmlidXRlcy5odG1sIGFmdGVyIHIyMDQzOTYuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwppbmRleCAxMTE3OTM4MTVkMGU1Mzg4M2E5NjVhZjNiZjhjYWY0NzNhMzNiMWExLi5hYTFm
MDMxYzExYzE4YjM1OTQ5NjFkZDQyZmVhOWViNTIwYzk4ZmIzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNi0wOC0xMiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIGdldEVsZW1lbnRzQnlUYWdOYW1lKCkgc2hvdWxk
IHRha2UgYSBxdWFsaWZpZWROYW1lIGluIHBhcmFtZXRlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNjgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Unlvc3VrZSBOaXdhLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9E
b2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS14
aHRtbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rl
cy9FbGVtZW50LWdldEVsZW1lbnRzQnlUYWdOYW1lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL2Nhc2UtZXhwZWN0ZWQudHh0OgorICAgICAgICBS
ZWJhc2VsaW5lIHNldmVyYWwgVzNDIHRlc3RzIG5vdyB0aGF0IG1vcmUgY2hlY2tzIGFyZSBwYXNz
aW5nLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1n
ZXRFbGVtZW50c0J5VGFnTmFtZS14aHRtbC54aHRtbDoKKyAgICAgICAgUmUtc3luYyB0aGlzIHRl
c3QgZnJvbSB1cHN0cmVhbSBhcyBpdCB3YXMgb3V0ZGF0ZWQgYWZ0ZXI6CisgICAgICAgIC0gaHR0
cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcHVsbC8zNDU3CisKIDIwMTYt
MDgtMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBbGlnbiBS
YW5nZS5zdXJyb3VuZENvbnRlbnRzKCkgd2l0aCB0aGUgbGF0ZXN0IERPTSBzcGVjaWZpY2F0aW9u
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nZXRFbGVtZW50c0J5Q2xhc3NOYW1l
LzAxMC54bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nZXRFbGVtZW50c0J5Q2xhc3NOYW1lLzAx
MC54bWwKaW5kZXggNDRmODQ3NGJhZjljYzk5YWE1NDAxN2E1ZDc5MmRmYWE4NzM5MmI0Yi4uNWNh
Nzg4OGQ5MzgxMjE5ZDIyN2M1NTg3N2QxYTViNGI2ZGYxODQ4MiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vZ2V0RWxlbWVudHNCeUNsYXNzTmFtZS8wMTAueG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL2dldEVsZW1lbnRzQnlDbGFzc05hbWUvMDEwLnhtbApAQCAtNyw2ICs3
LDYgQEAKICAgPHAgaWQ9InIiPkZBSUwgKHNjcmlwdCBkaWQgbm90IHJ1bik8L3A+ICAKICAgPHgg
Y2xhc3M9ImEiLz4KICAgPGc6eCBjbGFzcz0iYSIvPgotICA8c2NyaXB0PiB0KGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlDbGFzc05hbWUoImEiKSwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
IngiKSkgPC9zY3JpcHQ+CisgIDxzY3JpcHQ+IHQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNz
TmFtZSgiYSIpLCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZU5TKCIqIiwgIngiKSkgPC9z
Y3JpcHQ+CiAgPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vZ2V0RWxlbWVudHNCeUNsYXNzTmFtZS8wMTEueG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
Z2V0RWxlbWVudHNCeUNsYXNzTmFtZS8wMTEueG1sCmluZGV4IDY3OTBiNWEzNDVmMDc4NTczOWY0
MTE5NGFiYTlkMjc5Yzg0NGJiNmQuLjgyN2EyZjM1ZDczZmZiMWZmMmUzZmI2YTE3NTFiMGFhODc1
OWYzMzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2dldEVsZW1lbnRzQnlDbGFz
c05hbWUvMDExLnhtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9nZXRFbGVtZW50c0J5Q2xh
c3NOYW1lLzAxMS54bWwKQEAgLTEyLDcgKzEyLDcgQEAKICAgPHQ6eCBjbGFzcz0iYSIgdDpjbGFz
cz0iYSIgaDpjbGFzcz0iYSIgZzpjbGFzcz0iYSIvPgogICA8c2NyaXB0PgogICAgdmFyIGNvbGxl
Y3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJhIiksCi0gICAgICAgdGVz
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ4IikKKyAgICAgICB0ZXN0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWVOUygiKiIsICJ4IikKICAgIHQoY29sbGVjdGlvbiwg
W3Rlc3RbMF0sIHRlc3RbMV1dKQogICA8L3NjcmlwdD4KICA8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1
bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50
c0J5VGFnTmFtZS1leHBlY3RlZC50eHQKaW5kZXggNzY4Zjc4MmMyZDFhNGI1NDBjMTdhMmFmMmM5
NGJhMjBlNzU1YWNkYS4uNzkwYjc1YzE0ODRjYjkzODY0NjI2ZmNiYjdhZDIwYThkZmMxZTkzNCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9k
b20vbm9kZXMvRG9jdW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0Rv
Y3VtZW50LWdldEVsZW1lbnRzQnlUYWdOYW1lLWV4cGVjdGVkLnR4dApAQCAtMTIsMTEgKzEyLDEx
IEBAIFBBU1MgaGFzT3duUHJvcGVydHksIGdldE93blByb3BlcnR5RGVzY3JpcHRvciwgZ2V0T3du
UHJvcGVydHlOYW1lcwogUEFTUyBIVE1MIGVsZW1lbnQgd2l0aCB1cHBlcmNhc2UgdGFnTmFtZSBu
ZXZlciBtYXRjaGVzIGluIEhUTUwgRG9jdW1lbnRzIAogUEFTUyBFbGVtZW50IGluIG5vbi1IVE1M
IG5hbWVzcGFjZSwgbm8gcHJlZml4LCBsb3dlcmNhc2UgbmFtZSAKIFBBU1MgRWxlbWVudCBpbiBu
b24tSFRNTCBuYW1lc3BhY2UsIG5vIHByZWZpeCwgdXBwZXJjYXNlIG5hbWUgCi1GQUlMIEVsZW1l
bnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVmaXgsIGxvd2VyY2FzZSBuYW1lIGFzc2VydF9h
cnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAwIGdvdCAxCi1GQUlMIEVsZW1l
bnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVmaXgsIHVwcGVyY2FzZSBuYW1lIGFzc2VydF9h
cnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAwIGdvdCAxCitQQVNTIEVsZW1l
bnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVmaXgsIGxvd2VyY2FzZSBuYW1lIAorUEFTUyBF
bGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgcHJlZml4LCB1cHBlcmNhc2UgbmFtZSAKIFBB
U1MgRWxlbWVudCBpbiBIVE1MIG5hbWVzcGFjZSwgbm8gcHJlZml4LCBub24tYXNjaWkgY2hhcmFj
dGVycyBpbiBuYW1lIAogUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgbm9uLWFz
Y2lpIGNoYXJhY3RlcnMgaW4gbmFtZSAKLUZBSUwgRWxlbWVudCBpbiBIVE1MIG5hbWVzcGFjZSwg
cHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIGFzc2VydF9hcnJheV9lcXVhbHM6
IEFsbCB1cHBlcmNhc2UgaW5wdXQgbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDEgZ290IDAKLUZB
SUwgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwgbm9uLWFzY2lpIGNoYXJh
Y3RlcnMgaW4gbmFtZSBhc3NlcnRfYXJyYXlfZXF1YWxzOiBBbGwgdXBwZXJjYXNlIGlucHV0IGxl
bmd0aHMgZGlmZmVyLCBleHBlY3RlZCAxIGdvdCAwCitQQVNTIEVsZW1lbnQgaW4gSFRNTCBuYW1l
c3BhY2UsIHByZWZpeCwgbm9uLWFzY2lpIGNoYXJhY3RlcnMgaW4gbmFtZSAKK1BBU1MgRWxlbWVu
dCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwgbm9uLWFzY2lpIGNoYXJhY3RlcnMgaW4g
bmFtZSAKIFBBU1MgZ2V0RWxlbWVudHNCeVRhZ05hbWUoJyonKSAKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1l
bnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUteGh0bWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtZ2V0RWxl
bWVudHNCeVRhZ05hbWUteGh0bWwtZXhwZWN0ZWQudHh0CmluZGV4IDM2YWMyNzdlMWVhYjA3NTky
MDJlNzJjNWFmNjU5YzVmOWViMDMyYjIuLjJjMDFmZGNjYmY5NjY2NTNjNDNmNTY4MjAwYWE3MmI2
MWZjZjZlNDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZG9tL25vZGVzL0RvY3VtZW50LWdldEVsZW1lbnRzQnlUYWdOYW1lLXhodG1sLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2RvbS9ub2Rlcy9Eb2N1bWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS14aHRtbC1leHBlY3Rl
ZC50eHQKQEAgLTIsOCArMiw4IEBACiBQQVNTIEhUTUwgZWxlbWVudCB3aXRoIHVwcGVyY2FzZSB0
YWcgbmFtZSBtYXRjaGVzIGluIFhIVE1MIGRvY3VtZW50cyAKIFBBU1MgRWxlbWVudCBpbiBub24t
SFRNTCBuYW1lc3BhY2UsIG5vIHByZWZpeCwgbG93ZXJjYXNlIG5hbWUgCiBQQVNTIEVsZW1lbnQg
aW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBubyBwcmVmaXgsIHVwcGVyY2FzZSBuYW1lIAotRkFJTCBF
bGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBsb3dlcmNhc2UgbmFtZSBhc3Nl
cnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMCBnb3QgMQotRkFJTCBF
bGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgcHJlZml4LCB1cHBlcmNhc2UgbmFtZSBhc3Nl
cnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMCBnb3QgMQorUEFTUyBF
bGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBsb3dlcmNhc2UgbmFtZSAKK1BB
U1MgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwgdXBwZXJjYXNlIG5hbWUg
CiBQQVNTIEVsZW1lbnQgaW4gSFRNTCBuYW1lc3BhY2UsIG5vIHByZWZpeCwgbm9uLWFzY2lpIGNo
YXJhY3RlcnMgaW4gbmFtZSAKIFBBU1MgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIG5v
bi1hc2NpaSBjaGFyYWN0ZXJzIGluIG5hbWUgCiBQQVNTIEVsZW1lbnQgaW4gSFRNTCBuYW1lc3Bh
Y2UsIHByZWZpeCwgbm9uLWFzY2lpIGNoYXJhY3RlcnMgaW4gbmFtZSAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL0RvY3Vt
ZW50LWdldEVsZW1lbnRzQnlUYWdOYW1lLXhodG1sLnhodG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1lbnQtZ2V0RWxlbWVudHNC
eVRhZ05hbWUteGh0bWwueGh0bWwKaW5kZXggMmFlOTA3NDhjMmZmYWUzOTU1MGY0NzdlMGI0ODll
ZmQ5MzlmZjk2ZC4uMzA5YTI5YWU3NzIzNTFkNzE1NzdhMGRmNzc5MmE4YTNmYjIxNGQ3NiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20v
bm9kZXMvRG9jdW1lbnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUteGh0bWwueGh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9kb20vbm9kZXMvRG9jdW1l
bnQtZ2V0RWxlbWVudHNCeVRhZ05hbWUteGh0bWwueGh0bWwKQEAgLTcxLDE3ICs3MSwxNyBAQCB0
ZXN0KGZ1bmN0aW9uKCkgewogdGVzdChmdW5jdGlvbigpIHsKICAgdmFyIHQgPSBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCIsICJ0ZXN0OmHDhyIpKQogICB0aGlzLmFkZF9jbGVhbnVwKGZ1bmN0aW9u
KCkge2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodCl9KQotICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJBw4ciKSwgW10sICJBbGwgdXBwZXJjYXNl
IGlucHV0IikKLSAgYXNzZXJ0X2FycmF5X2VxdWFscyhkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgiYcOHIiksIFt0XSwgIkFzY2lpIGxvd2VyY2FzZSBpbnB1dCIpCi0gIGFzc2VydF9hcnJh
eV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImHDpyIpLCBbXSwgIkFsbCBs
b3dlcmNhc2UgaW5wdXQiKQorICBhc3NlcnRfYXJyYXlfZXF1YWxzKGRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJURVNUOkHDhyIpLCBbXSwgIkFsbCB1cHBlcmNhc2UgaW5wdXQiKQorICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZXN0OmHD
hyIpLCBbdF0sICJBc2NpaSBsb3dlcmNhc2UgaW5wdXQiKQorICBhc3NlcnRfYXJyYXlfZXF1YWxz
KGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZXN0OmHDpyIpLCBbXSwgIkFsbCBsb3dl
cmNhc2UgaW5wdXQiKQogfSwgIkVsZW1lbnQgaW4gSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwgbm9u
LWFzY2lpIGNoYXJhY3RlcnMgaW4gbmFtZSIpCiAKIHRlc3QoZnVuY3Rpb24oKSB7Ci0gIHZhciB0
ID0gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoInRl
c3QiLCAidGVzdDpBw4ciKSkKKyAgdmFyIHQgPSBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnROUygidGVzdCIsICJURVNUOkHDhyIpKQogICB0aGlzLmFkZF9j
bGVhbnVwKGZ1bmN0aW9uKCkge2RvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodCl9KQotICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJBw4ciKSwgW3Rd
LCAiQWxsIHVwcGVyY2FzZSBpbnB1dCIpCi0gIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoImHDhyIpLCBbXSwgIkFzY2lpIGxvd2VyY2FzZSBpbnB1dCIp
Ci0gIGFzc2VydF9hcnJheV9lcXVhbHMoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImHD
pyIpLCBbXSwgIkFsbCBsb3dlcmNhc2UgaW5wdXQiKQorICBhc3NlcnRfYXJyYXlfZXF1YWxzKGRv
Y3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJURVNUOkHDhyIpLCBbdF0sICJBbGwgdXBwZXJj
YXNlIGlucHV0IikKKyAgYXNzZXJ0X2FycmF5X2VxdWFscyhkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgidGVzdDphw4ciKSwgW10sICJBc2NpaSBsb3dlcmNhc2UgaW5wdXQiKQorICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0ZXN0OmHDpyIp
LCBbXSwgIkFsbCBsb3dlcmNhc2UgaW5wdXQiKQogfSwgIkVsZW1lbnQgaW4gbm9uLUhUTUwgbmFt
ZXNwYWNlLCBwcmVmaXgsIG5vbi1hc2NpaSBjaGFyYWN0ZXJzIGluIG5hbWUiKQogCiB0ZXN0KGZ1
bmN0aW9uKCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9kb20vbm9kZXMvRWxlbWVudC1nZXRFbGVtZW50c0J5VGFnTmFtZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9u
b2Rlcy9FbGVtZW50LWdldEVsZW1lbnRzQnlUYWdOYW1lLWV4cGVjdGVkLnR4dAppbmRleCBlZWQ4
NzUzMzI5YWRhN2VmZTlmM2YwNjYyMzFlNjNjMzU5NjI0NjYwLi5jYzdhZTVkZDE1NDBkZjk1MmI2
ZTJlYThiYzMxOGI5NjVhZDFiNTYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWdldEVsZW1lbnRzQnlUYWdO
YW1lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2RvbS9ub2Rlcy9FbGVtZW50LWdldEVsZW1lbnRzQnlUYWdOYW1lLWV4cGVjdGVk
LnR4dApAQCAtMTIsMTIgKzEyLDEyIEBAIFBBU1MgaGFzT3duUHJvcGVydHksIGdldE93blByb3Bl
cnR5RGVzY3JpcHRvciwgZ2V0T3duUHJvcGVydHlOYW1lcwogUEFTUyBIVE1MIGVsZW1lbnQgd2l0
aCB1cHBlcmNhc2UgdGFnTmFtZSBuZXZlciBtYXRjaGVzIGluIEhUTUwgRG9jdW1lbnRzIAogUEFT
UyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgbm8gcHJlZml4LCBsb3dlcmNhc2UgbmFt
ZSAKIFBBU1MgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIG5vIHByZWZpeCwgdXBwZXJj
YXNlIG5hbWUgCi1GQUlMIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVmaXgsIGxv
d2VyY2FzZSBuYW1lIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3Rl
ZCAwIGdvdCAxCi1GQUlMIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVmaXgsIHVw
cGVyY2FzZSBuYW1lIGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3Rl
ZCAwIGdvdCAxCitQQVNTIEVsZW1lbnQgaW4gbm9uLUhUTUwgbmFtZXNwYWNlLCBwcmVmaXgsIGxv
d2VyY2FzZSBuYW1lIAorUEFTUyBFbGVtZW50IGluIG5vbi1IVE1MIG5hbWVzcGFjZSwgcHJlZml4
LCB1cHBlcmNhc2UgbmFtZSAKIFBBU1MgRWxlbWVudCBpbiBIVE1MIG5hbWVzcGFjZSwgbm8gcHJl
Zml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1lIAogUEFTUyBFbGVtZW50IGluIG5vbi1I
VE1MIG5hbWVzcGFjZSwgbm9uLWFzY2lpIGNoYXJhY3RlcnMgaW4gbmFtZSAKLUZBSUwgRWxlbWVu
dCBpbiBIVE1MIG5hbWVzcGFjZSwgcHJlZml4LCBub24tYXNjaWkgY2hhcmFjdGVycyBpbiBuYW1l
IGFzc2VydF9hcnJheV9lcXVhbHM6IEFsbCB1cHBlcmNhc2UgaW5wdXQgbGVuZ3RocyBkaWZmZXIs
IGV4cGVjdGVkIDEgZ290IDAKLUZBSUwgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHBy
ZWZpeCwgbm9uLWFzY2lpIGNoYXJhY3RlcnMgaW4gbmFtZSBhc3NlcnRfYXJyYXlfZXF1YWxzOiBB
bGwgdXBwZXJjYXNlIGlucHV0IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAxIGdvdCAwCitQQVNT
IEVsZW1lbnQgaW4gSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwgbm9uLWFzY2lpIGNoYXJhY3RlcnMg
aW4gbmFtZSAKK1BBU1MgRWxlbWVudCBpbiBub24tSFRNTCBuYW1lc3BhY2UsIHByZWZpeCwgbm9u
LWFzY2lpIGNoYXJhY3RlcnMgaW4gbmFtZSAKIFBBU1MgZ2V0RWxlbWVudHNCeVRhZ05hbWUoJyon
KSAKIFBBU1MgTWF0Y2hpbmcgdGhlIGNvbnRleHQgb2JqZWN0IAogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS9ub2Rlcy9jYXNlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZG9tL25vZGVzL2Nhc2UtZXhwZWN0ZWQudHh0CmluZGV4IGUyYjI4ODI3YmQ1NjYzZDU3YjU2MGE3
NmYwZTRlZTg1N2E3Y2IxYWIuLmY0MmVlNzBkNjBiNjlkMjg3NjhlNmJhYmI1YjY2YjJmYzc2Y2Fk
M2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZG9tL25vZGVzL2Nhc2UtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZG9tL25vZGVzL2Nhc2UtZXhwZWN0ZWQudHh0CkBAIC0y
LDI3ICsyLDI3IEBACiBQQVNTIGNyZWF0ZUVsZW1lbnQgYWJjIAogUEFTUyBzZXRBdHRyaWJ1dGUg
YWJjIAogUEFTUyBnZXRBdHRyaWJ1dGUgYWJjIAotRkFJTCBnZXRFbGVtZW50c0J5VGFnTmFtZSBh
OmFiYyBhc3NlcnRfYXJyYXlfZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMCBnb3Qg
MworUEFTUyBnZXRFbGVtZW50c0J5VGFnTmFtZSBhOmFiYyAKIFBBU1MgZ2V0RWxlbWVudHNCeVRh
Z05hbWUgYWJjIAogUEFTUyBjcmVhdGVFbGVtZW50IEFiYyAKIFBBU1Mgc2V0QXR0cmlidXRlIEFi
YyAKIFBBU1MgZ2V0QXR0cmlidXRlIEFiYyAKLUZBSUwgZ2V0RWxlbWVudHNCeVRhZ05hbWUgYTpB
YmMgYXNzZXJ0X2FycmF5X2VxdWFsczogbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIDAgZ290IDMK
K1BBU1MgZ2V0RWxlbWVudHNCeVRhZ05hbWUgYTpBYmMgCiBQQVNTIGdldEVsZW1lbnRzQnlUYWdO
YW1lIEFiYyAKIFBBU1MgY3JlYXRlRWxlbWVudCBBQkMgCiBQQVNTIHNldEF0dHJpYnV0ZSBBQkMg
CiBQQVNTIGdldEF0dHJpYnV0ZSBBQkMgCi1GQUlMIGdldEVsZW1lbnRzQnlUYWdOYW1lIGE6QUJD
IGFzc2VydF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAwIGdvdCAzCitQ
QVNTIGdldEVsZW1lbnRzQnlUYWdOYW1lIGE6QUJDIAogUEFTUyBnZXRFbGVtZW50c0J5VGFnTmFt
ZSBBQkMgCiBQQVNTIGNyZWF0ZUVsZW1lbnQgw6QgCiBQQVNTIHNldEF0dHJpYnV0ZSDDpCAKIFBB
U1MgZ2V0QXR0cmlidXRlIMOkIAotRkFJTCBnZXRFbGVtZW50c0J5VGFnTmFtZSBhOsOkIGFzc2Vy
dF9hcnJheV9lcXVhbHM6IGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCAwIGdvdCAzCitQQVNTIGdl
dEVsZW1lbnRzQnlUYWdOYW1lIGE6w6QgCiBQQVNTIGdldEVsZW1lbnRzQnlUYWdOYW1lIMOkIAog
UEFTUyBjcmVhdGVFbGVtZW50IMOEIAogUEFTUyBzZXRBdHRyaWJ1dGUgw4QgCiBQQVNTIGdldEF0
dHJpYnV0ZSDDhCAKLUZBSUwgZ2V0RWxlbWVudHNCeVRhZ05hbWUgYTrDhCBhc3NlcnRfYXJyYXlf
ZXF1YWxzOiBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgMCBnb3QgMworUEFTUyBnZXRFbGVtZW50
c0J5VGFnTmFtZSBhOsOEIAogUEFTUyBnZXRFbGVtZW50c0J5VGFnTmFtZSDDhCAKIFBBU1MgY3Jl
YXRlRWxlbWVudE5TIGh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwsYWJjLGFiYyAKIFBBU1Mg
c2V0QXR0cmlidXRlTlMgaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCxhYmMsYWJjIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>