<?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>218536</bug_id>
          
          <creation_ts>2020-11-03 14:48:30 -0800</creation_ts>
          <short_desc>Drop most uses of the phrase &apos;neuter&apos; from the tree</short_desc>
          <delta_ts>2020-11-03 16:04:19 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>213092</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>jsbell</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>philipj</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1704224</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-11-03 14:48:30 -0800</bug_when>
    <thetext>Drop most uses of the phrase &apos;neuter&apos; from the tree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704233</commentid>
    <comment_count>1</comment_count>
      <attachid>413112</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-11-03 15:08:20 -0800</bug_when>
    <thetext>Created attachment 413112
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704237</commentid>
    <comment_count>2</comment_count>
      <attachid>413112</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2020-11-03 15:19:34 -0800</bug_when>
    <thetext>Comment on attachment 413112
Patch

Nice. R=me too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704258</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-03 16:03:13 -0800</bug_when>
    <thetext>Committed r269343: &lt;https://trac.webkit.org/changeset/269343&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413112.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704260</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-03 16:04:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/71015521&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413112</attachid>
            <date>2020-11-03 15:08:20 -0800</date>
            <delta_ts>2020-11-03 16:03:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218536-20201103150819.patch</filename>
            <type>text/plain</type>
            <size>63629</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjY5MzM0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzMCBA
QAorMjAyMC0xMS0wMyAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAg
ICAgIERyb3AgbW9zdCB1c2VzIG9mIHRoZSBwaHJhc2UgJ25ldXRlcicgZnJvbSB0aGUgdHJlZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NTM2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gQXJyYXlC
dWZmZXIgdXNlIGNhc2VzLCB0aGUgc3BlYyBoYXMgZ29uZSB3aXRoICJkZXRhY2hlZCIuCisKKyAg
ICAgICAgSW4gb3RoZXIgY2FzZXMsIEkgcGlja2VkIHNvbWV0aGluZy4KKworICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLm9yZGVyOgorICAgICAgICAqIGJ1aWx0aW5zL0FycmF5SXRlcmF0b3JQcm90
b3R5cGUuanM6CisgICAgICAgIChuZXh0KToKKyAgICAgICAgKiBidWlsdGlucy9CdWlsdGluTmFt
ZXMuaDoKKyAgICAgICAgKiBidWlsdGlucy9UeXBlZEFycmF5UHJvdG90eXBlLmpzOgorICAgICAg
ICAoZmlsbCk6CisgICAgICAgIChnbG9iYWxQcml2YXRlLnR5cGVkQXJyYXlFbGVtZW50Q29tcGFy
ZSk6CisgICAgICAgICogYnl0ZWNvZGUvTGlua1RpbWVDb25zdGFudC5oOgorICAgICAgICAqIGRm
Zy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFi
c3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6Cisg
ICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpC
eXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbCk6CisgICAgICAgICogZGZnL0RGR0Ns
b2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAgICAgKiBk
ZmcvREZHRGVzaXJlZFdhdGNocG9pbnRzLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpBcnJheUJ1
ZmZlclZpZXdXYXRjaHBvaW50QWRhcHRvcjo6YWRkKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dD
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpkb2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1
cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgor
ICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9u
UHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoK
KyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlQ2hlY2tEZXRhY2hlZCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6Omp1
bXBGb3JUeXBlZEFycmF5SXNEZXRhY2hlZElmT3V0T2ZCb3VuZHMpOgorICAgICAgICAoSlNDOjpE
Rkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JJbnRUeXBlZEFycmF5KToKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yRmxvYXRU
eXBlZEFycmF5KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUNo
ZWNrTmV1dGVyZWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
OjpqdW1wRm9yVHlwZWRBcnJheUlzTmV1dGVyZWRJZk91dE9mQm91bmRzKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3Vs
YXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1R5
cGVDaGVja0hvaXN0aW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlR5cGVDaGVja0hv
aXN0aW5nUGhhc2U6OmlkZW50aWZ5UmVkdW5kYW50U3RydWN0dXJlQ2hlY2tzKToKKyAgICAgICAg
KEpTQzo6REZHOjpUeXBlQ2hlY2tIb2lzdGluZ1BoYXNlOjppZGVudGlmeVJlZHVuZGFudEFycmF5
Q2hlY2tzKToKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpT
Qzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZU5vZGUpOgorICAg
ICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlQ2hlY2tEZXRhY2hlZCk6
CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNvbXBpbGVQdXRCeVZhbCk6
CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OnNwZWN1bGF0ZVR5cGVkQXJy
YXlJc05vdERldGFjaGVkKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6
Y29tcGlsZUNoZWNrTmV1dGVyZWQpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0IzOjpzcGVjdWxhdGVUeXBlZEFycmF5SXNOb3ROZXV0ZXJlZCk6IERlbGV0ZWQu
CisgICAgICAgICogcnVudGltZS9BcnJheUJ1ZmZlci5jcHA6CisgICAgICAgIChKU0M6OkFycmF5
QnVmZmVyQ29udGVudHM6OnRyeUFsbG9jYXRlKToKKyAgICAgICAgKEpTQzo6QXJyYXlCdWZmZXI6
OnRyYW5zZmVyVG8pOgorICAgICAgICAoSlNDOjpBcnJheUJ1ZmZlcjo6ZGV0YWNoKToKKyAgICAg
ICAgKEpTQzo6QXJyYXlCdWZmZXI6Om5vdGlmeURldGFjaGluZyk6CisgICAgICAgIChKU0M6OkFy
cmF5QnVmZmVyOjpuZXV0ZXIpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpBcnJheUJ1ZmZlcjo6
bm90aWZ5TmV1dGVyaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0FycmF5QnVmZmVy
Lmg6CisgICAgICAgIChKU0M6OkFycmF5QnVmZmVyOjppc0RldGFjaGVkKToKKyAgICAgICAgKEpT
Qzo6QXJyYXlCdWZmZXI6OmRldGFjaGluZ1dhdGNocG9pbnRTZXQpOgorICAgICAgICAoSlNDOjpB
cnJheUJ1ZmZlcjo6aXNOZXV0ZXJlZCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkFycmF5QnVm
ZmVyOjpuZXV0ZXJpbmdXYXRjaHBvaW50U2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1l
L0FycmF5QnVmZmVyVmlldy5jcHA6CisgICAgICAgIChKU0M6OkFycmF5QnVmZmVyVmlldzo6QXJy
YXlCdWZmZXJWaWV3KToKKyAgICAgICAgKEpTQzo6QXJyYXlCdWZmZXJWaWV3Ojp+QXJyYXlCdWZm
ZXJWaWV3KToKKyAgICAgICAgKEpTQzo6QXJyYXlCdWZmZXJWaWV3OjpzZXREZXRhY2hhYmxlKToK
KyAgICAgICAgKEpTQzo6QXJyYXlCdWZmZXJWaWV3OjpzZXROZXV0ZXJhYmxlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBydW50aW1lL0FycmF5QnVmZmVyVmlldy5oOgorICAgICAgICAoSlNDOjpBcnJh
eUJ1ZmZlclZpZXc6OmlzRGV0YWNoZWQgY29uc3QpOgorICAgICAgICAoSlNDOjpBcnJheUJ1ZmZl
clZpZXc6OnBvc3NpYmx5U2hhcmVkQnVmZmVyIGNvbnN0KToKKyAgICAgICAgKEpTQzo6QXJyYXlC
dWZmZXJWaWV3Ojppc1NoYXJlZCBjb25zdCk6CisgICAgICAgIChKU0M6OkFycmF5QnVmZmVyVmll
dzo6YmFzZUFkZHJlc3MgY29uc3QpOgorICAgICAgICAoSlNDOjpBcnJheUJ1ZmZlclZpZXc6OmJ5
dGVPZmZzZXQgY29uc3QpOgorICAgICAgICAoSlNDOjpBcnJheUJ1ZmZlclZpZXc6OmlzRGV0YWNo
YWJsZSBjb25zdCk6CisgICAgICAgIChKU0M6OkFycmF5QnVmZmVyVmlldzo6aXNOZXV0ZXJlZCBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkFycmF5QnVmZmVyVmlldzo6aXNOZXV0ZXJh
YmxlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0dlbmVyaWNUeXBlZEFycmF5
Vmlldy5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuY3BwOgorICAgICAg
ICAoSlNDOjpKU0FycmF5QnVmZmVyVmlldzo6ZGV0YWNoKToKKyAgICAgICAgKEpTQzo6SlNBcnJh
eUJ1ZmZlclZpZXc6Om5ldXRlcik6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU0FycmF5
QnVmZmVyVmlldy5oOgorICAgICAgICAoSlNDOjpKU0FycmF5QnVmZmVyVmlldzo6aXNEZXRhY2hl
ZCk6CisgICAgICAgIChKU0M6OkpTQXJyYXlCdWZmZXJWaWV3Ojppc05ldXRlcmVkKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBydW50aW1lL0pTRGF0YVZpZXcuY3BwOgorICAgICAgICAoSlNDOjpKU0Rh
dGFWaWV3OjpjcmVhdGUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNEYXRhVmlld1Byb3RvdHlwZS5j
cHA6CisgICAgICAgIChKU0M6OmdldERhdGEpOgorICAgICAgICAoSlNDOjpzZXREYXRhKToKKyAg
ICAgICAgKEpTQzo6SlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKiBydW50aW1l
L0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Lmg6CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNU
eXBlZEFycmF5Vmlld0lubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNHZW5lcmljVHlwZWRBcnJh
eVZpZXc8QWRhcHRvcj46OnNldFdpdGhTcGVjaWZpY1R5cGUpOgorICAgICAgICAoSlNDOjpKU0dl
bmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6c2V0KToKKyAgICAgICAgKEpTQzo6SlNHZW5l
cmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgpOgor
ICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6ZGVsZXRlUHJv
cGVydHlCeUluZGV4KToKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3
UHJvdG90eXBlRnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6OnNwZWNpZXNDb25zdHJ1Y3QpOgor
ICAgICAgICAoSlNDOjpnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNTZXQpOgorICAgICAg
ICAoSlNDOjpnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNDb3B5V2l0aGluKToKKyAgICAg
ICAgKEpTQzo6Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSW5jbHVkZXMpOgorICAgICAg
ICAoSlNDOjpnZW5lcmljVHlwZWRBcnJheVZpZXdQcm90b0Z1bmNJbmRleE9mKToKKyAgICAgICAg
KEpTQzo6Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jSm9pbik6CisgICAgICAgIChKU0M6
OmdlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY0xhc3RJbmRleE9mKToKKyAgICAgICAgKEpT
Qzo6Z2VuZXJpY1R5cGVkQXJyYXlWaWV3UHJvdG9GdW5jUmV2ZXJzZSk6CisgICAgICAgIChKU0M6
OmdlbmVyaWNUeXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jU29ydCk6CisgICAgICAgIChKU0M6Omdl
bmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvRnVuY1NsaWNlKToKKyAgICAgICAgKEpTQzo6Z2VuZXJp
Y1R5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNTdWJhcnJheUNyZWF0ZSk6CisgICAgICAgICogcnVu
dGltZS9KU0dsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTR2xvYmFsT2JqZWN0Ojpp
bml0KToKKyAgICAgICAgKiBydW50aW1lL0pTVHlwZWRBcnJheVZpZXdQcm90b3R5cGUuY3BwOgor
ICAgICAgICAoSlNDOjpKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAoSlNDOjpj
cmVhdGVUeXBlZEFycmF5SXRlcmF0b3JPYmplY3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBl
ZEFycmF5Vmlld1Byb3RvdHlwZS5oOgorICAgICAgICAqIHdhc20vanMvSlNXZWJBc3NlbWJseUhl
bHBlcnMuaDoKKyAgICAgICAgKEpTQzo6Z2V0V2FzbUJ1ZmZlckZyb21WYWx1ZSk6CisgICAgICAg
ICogd2FzbS9qcy9KU1dlYkFzc2VtYmx5TWVtb3J5LmNwcDoKKyAgICAgICAgKEpTQzo6SlNXZWJB
c3NlbWJseU1lbW9yeTo6Z3Jvd1N1Y2Nlc3NDYWxsYmFjayk6CisKIDIwMjAtMTEtMDMgIFl1c3Vr
ZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjU0
MDM4KTogU2ltcGxlLmNvbSBtb25leSB0cmFuc2ZlciBVSSBpcyB2ZXJ5IGxhZ2d5IChtdWx0aXBs
ZSBzZWNvbmRzIHBlciBrZXlwcmVzcykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5vcmRlcgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUub3JkZXIJKHJldmlzaW9uIDI2OTMyOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgkod29ya2luZyBjb3B5KQpAQCAtNDYyNyw3ICs0NjI3
LDYgQEAgX19aTjNKU0MxNHRocm93VHlwZUVycm9yRVBOU185RXhlY1N0YXRlRQogX19aTjNKU0Mz
SklUMjdlbWl0RmxvYXRUeXBlZEFycmF5R2V0QnlWYWxFUE5TXzExSW5zdHJ1Y3Rpb25FUk5TXzIy
QWJzdHJhY3RNYWNyb0Fzc2VtYmxlcklOU18xMlg4NkFzc2VtYmxlckVFMTNQYXRjaGFibGVKdW1w
RVJLTlNfMjBUeXBlZEFycmF5RGVzY3JpcHRvckVtCiBfX1pOM0pTQzNKSVQyN2VtaXRGbG9hdFR5
cGVkQXJyYXlQdXRCeVZhbEVQTlNfMTFJbnN0cnVjdGlvbkVSTlNfMjJBYnN0cmFjdE1hY3JvQXNz
ZW1ibGVySU5TXzEyWDg2QXNzZW1ibGVyRUUxM1BhdGNoYWJsZUp1bXBFUktOU18yMFR5cGVkQXJy
YXlEZXNjcmlwdG9yRW0KIF9fWk4zV1RGMTFBcnJheUJ1ZmZlcjh0cmFuc2ZlckVSTlNfMTlBcnJh
eUJ1ZmZlckNvbnRlbnRzRVJOU182VmVjdG9ySU5TXzZSZWZQdHJJTlNfMTVBcnJheUJ1ZmZlclZp
ZXdFRUVMbTBFTlNfMTVDcmFzaE9uT3ZlcmZsb3dFRUUKLV9fWk4zV1RGMTVBcnJheUJ1ZmZlclZp
ZXc2bmV1dGVyRXYKIF9fWk4zV1RGNlZlY3RvcklOU182UmVmUHRySU5TXzE1QXJyYXlCdWZmZXJW
aWV3RUVFTG0wRU5TXzE1Q3Jhc2hPbk92ZXJmbG93RUUxNGV4cGFuZENhcGFjaXR5RW0KIF9fWk4z
SlNDMTRKU0dsb2JhbE9iamVjdDEyaGF2ZUFCYWRUaW1lRVJOU18yVk1FCiBfX1pOM0pTQzhKU09i
amVjdDI3c3dpdGNoVG9TbG93UHV0QXJyYXlTdG9yYWdlRVJOU18yVk1FCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXlJdGVyYXRvclByb3RvdHlwZS5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvQXJyYXlJdGVyYXRvclByb3Rv
dHlwZS5qcwkocmV2aXNpb24gMjY5MzI4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0
aW5zL0FycmF5SXRlcmF0b3JQcm90b3R5cGUuanMJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMy
LDcgQEAgZnVuY3Rpb24gbmV4dCgpCiAgICAgICAgIEB0aHJvd1R5cGVFcnJvcigiJUFycmF5SXRl
cmF0b3JQcm90b3R5cGUlLm5leHQgcmVxdWlyZXMgdGhhdCB8dGhpc3wgYmUgYW4gQXJyYXkgSXRl
cmF0b3IgaW5zdGFuY2UiKTsKIAogICAgIHZhciBhcnJheSA9IEBnZXRBcnJheUl0ZXJhdG9ySW50
ZXJuYWxGaWVsZCh0aGlzLCBAYXJyYXlJdGVyYXRvckZpZWxkSXRlcmF0ZWRPYmplY3QpOwotICAg
IGlmIChAaXNUeXBlZEFycmF5VmlldyhhcnJheSkgJiYgQGlzTmV1dGVyZWQoYXJyYXkpKQorICAg
IGlmIChAaXNUeXBlZEFycmF5VmlldyhhcnJheSkgJiYgQGlzRGV0YWNoZWQoYXJyYXkpKQogICAg
ICAgICBAdGhyb3dUeXBlRXJyb3IoIlVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0
YWNoZWQgZnJvbSB0aGUgdmlldyIpOwogCiAgICAgdmFyIGtpbmQgPSBAZ2V0QXJyYXlJdGVyYXRv
ckludGVybmFsRmllbGQodGhpcywgQGFycmF5SXRlcmF0b3JGaWVsZEtpbmQpOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9CdWlsdGluTmFtZXMuaAkocmV2aXNpb24g
MjY5MzI4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0J1aWx0aW5OYW1lcy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsNyArMTE3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
bWFjcm8obmV3VGFyZ2V0TG9jYWwpIFwKICAgICBtYWNybyhkZXJpdmVkQ29uc3RydWN0b3IpIFwK
ICAgICBtYWNybyhpc1R5cGVkQXJyYXlWaWV3KSBcCi0gICAgbWFjcm8oaXNOZXV0ZXJlZCkgXAor
ICAgIG1hY3JvKGlzRGV0YWNoZWQpIFwKICAgICBtYWNybyhpc0JvdW5kRnVuY3Rpb24pIFwKICAg
ICBtYWNybyhoYXNJbnN0YW5jZUJvdW5kRnVuY3Rpb24pIFwKICAgICBtYWNybyhpbnN0YW5jZU9m
KSBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvVHlwZWRBcnJheVByb3Rv
dHlwZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvVHlw
ZWRBcnJheVByb3RvdHlwZS5qcwkocmV2aXNpb24gMjY5MzI4KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J1aWx0aW5zL1R5cGVkQXJyYXlQcm90b3R5cGUuanMJKHdvcmtpbmcgY29weSkKQEAg
LTk2LDcgKzk2LDcgQEAgZnVuY3Rpb24gZmlsbCh2YWx1ZSAvKiBbLCBzdGFydCBbLCBlbmRdXQog
ICAgIHZhciBzdGFydCA9IEB0eXBlZEFycmF5Q2xhbXBBcmd1bWVudFRvU3RhcnRPckVuZChAYXJn
dW1lbnQoMSksIGxlbmd0aCwgMCk7CiAgICAgdmFyIGVuZCA9IEB0eXBlZEFycmF5Q2xhbXBBcmd1
bWVudFRvU3RhcnRPckVuZChAYXJndW1lbnQoMiksIGxlbmd0aCwgbGVuZ3RoKTsKIAotICAgIGlm
IChAaXNOZXV0ZXJlZCh0aGlzKSkKKyAgICBpZiAoQGlzRGV0YWNoZWQodGhpcykpCiAgICAgICAg
IEB0aHJvd1R5cGVFcnJvcigiVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hl
ZCBmcm9tIHRoZSB2aWV3Iik7CiAKICAgICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkr
KykKQEAgLTE3NSw3ICsxNzUsNyBAQCBmdW5jdGlvbiB0eXBlZEFycmF5RWxlbWVudENvbXBhcmUo
YXJyYXksCiAKICAgICB2YXIgcmVzdWx0ID0gQHRvTnVtYmVyKGNvbXBhcmF0b3IoYSwgYikpOwog
Ci0gICAgaWYgKEBpc05ldXRlcmVkKGFycmF5KSkKKyAgICBpZiAoQGlzRGV0YWNoZWQoYXJyYXkp
KQogICAgICAgICBAdGhyb3dUeXBlRXJyb3IoIlVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJl
ZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyIpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9MaW5rVGltZUNvbnN0YW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xpbmtUaW1lQ29uc3RhbnQu
aAkocmV2aXNpb24gMjY5MzI4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0xp
bmtUaW1lQ29uc3RhbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBjbGFzcyBK
U0dsb2JhbE9iamVjdDsKICAgICB2KHR5cGVkQXJyYXlHZXRPcmlnaW5hbENvbnN0cnVjdG9yLCBu
dWxscHRyKSBcCiAgICAgdih0eXBlZEFycmF5U29ydCwgbnVsbHB0cikgXAogICAgIHYoaXNUeXBl
ZEFycmF5VmlldywgbnVsbHB0cikgXAotICAgIHYoaXNOZXV0ZXJlZCwgbnVsbHB0cikgXAorICAg
IHYoaXNEZXRhY2hlZCwgbnVsbHB0cikgXAogICAgIHYodHlwZWRBcnJheVN1YmFycmF5Q3JlYXRl
LCBudWxscHRyKSBcCiAgICAgdihpc0JvdW5kRnVuY3Rpb24sIG51bGxwdHIpIFwKICAgICB2KGhh
c0luc3RhbmNlQm91bmRGdW5jdGlvbiwgbnVsbHB0cikgXApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMu
aAkocmV2aXNpb24gMjY5MzI4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0
cmFjdEludGVycHJldGVySW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MzUzLDcgKzQzNTMs
NyBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5CiAgICAgY2FzZSBD
b3VudEV4ZWN1dGlvbjoKICAgICBjYXNlIENoZWNrVGllclVwSW5Mb29wOgogICAgIGNhc2UgQ2hl
Y2tUaWVyVXBBdFJldHVybjoKLSAgICBjYXNlIENoZWNrTmV1dGVyZWQ6CisgICAgY2FzZSBDaGVj
a0RldGFjaGVkOgogICAgIGNhc2UgU3VwZXJTYW1wbGVyQmVnaW46CiAgICAgY2FzZSBTdXBlclNh
bXBsZXJFbmQ6CiAgICAgY2FzZSBDaGVja1RpZXJVcEFuZE9TUkVudGVyOgpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJldmlzaW9u
IDI2OTMyOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDIzLDcgKzI0MjMsNyBAQCBib29sIEJ5dGVDb2RlUGFy
c2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgICAgICAgICBhZGRUb0dyYXBoKENoZWNrQXJyYXksIE9wSW5mbyhtb2RlLmFzV29yZCgp
KSwgZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFyZ3VtZW50SW5jbHVkaW5nVGhpcygwLCByZWdpc3Rl
ck9mZnNldCkpKTsKLSAgICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tOZXV0ZXJlZCwgZ2V0KHZp
cnR1YWxSZWdpc3RlckZvckFyZ3VtZW50SW5jbHVkaW5nVGhpcygwLCByZWdpc3Rlck9mZnNldCkp
KTsKKyAgICAgICAgICAgIGFkZFRvR3JhcGgoQ2hlY2tEZXRhY2hlZCwgZ2V0KHZpcnR1YWxSZWdp
c3RlckZvckFyZ3VtZW50SW5jbHVkaW5nVGhpcygwLCByZWdpc3Rlck9mZnNldCkpKTsKICAgICAg
ICAgICAgIEZBTExUSFJPVUdIOwogICAgICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCShyZXZpc2lvbiAyNjkzMjgpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAkod29ya2luZyBjb3B5KQpAQCAtMTE1OCw3
ICsxMTU4LDcgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZQogICAg
ICAgICByZWFkKEpTQ2VsbF9zdHJ1Y3R1cmVJRCk7CiAgICAgICAgIHJldHVybjsKIAotICAgIGNh
c2UgQ2hlY2tOZXV0ZXJlZDoKKyAgICBjYXNlIENoZWNrRGV0YWNoZWQ6CiAgICAgICAgIHJlYWQo
TWlzY0ZpZWxkcyk7CiAgICAgICAgIHJldHVybjsgCiAgICAgICAgIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdEZXNpcmVkV2F0Y2hwb2ludHMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRGVzaXJlZFdhdGNocG9pbnRzLmNwcAkocmV2
aXNpb24gMjY5MzI4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEZXNpcmVkV2F0
Y2hwb2ludHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIHZvaWQgQXJyYXlC
dWZmZXJWaWV3V2F0Y2hwb2ludEFkYXB0b3I6OmEKIAogICAgIC8vIEZJWE1FOiBXZSBkb24ndCBu
ZWVkIHRvIHNldCB0aGlzIHdhdGNocG9pbnQgYXQgYWxsIGZvciBzaGFyZWQgYnVmZmVycy4KICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY0MTA4Ci0gICAg
YXJyYXlCdWZmZXItPm5ldXRlcmluZ1dhdGNocG9pbnRTZXQoKS5hZGQoV1RGTW92ZSh3YXRjaHBv
aW50KSk7CisgICAgYXJyYXlCdWZmZXItPmRldGFjaGluZ1dhdGNocG9pbnRTZXQoKS5hZGQoV1RG
TW92ZSh3YXRjaHBvaW50KSk7CiB9CiAKIHZvaWQgU3ltYm9sVGFibGVBZGFwdG9yOjphZGQoCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCShyZXZpc2lvbiAyNjkz
MjgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTExNyw3ICsxMTcsNyBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUq
IG5vZGUpCiAgICAgY2FzZSBDaGVja05vdEpTQ2FzdDoKICAgICBjYXNlIENoZWNrQXJyYXk6CiAg
ICAgY2FzZSBDaGVja0FycmF5T3JFbXB0eToKLSAgICBjYXNlIENoZWNrTmV1dGVyZWQ6CisgICAg
Y2FzZSBDaGVja0RldGFjaGVkOgogICAgIGNhc2UgR2V0U2NvcGU6CiAgICAgY2FzZSBTa2lwU2Nv
cGU6CiAgICAgY2FzZSBHZXRHbG9iYWxPYmplY3Q6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHJldmlzaW9uIDI2OTMyOCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIx
MTQsNyArMjExNCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
Ci0gICAgICAgIGNhc2UgQ2hlY2tOZXV0ZXJlZDoKKyAgICAgICAgY2FzZSBDaGVja0RldGFjaGVk
OgogICAgICAgICBjYXNlIENoZWNrQXJyYXk6IHsKICAgICAgICAgICAgIGZpeEVkZ2U8Q2VsbFVz
ZT4obm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCShyZXZpc2lvbiAyNjkzMjgpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0NCw4
ICsyNDQsOCBAQCBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oQ2hl
Y2tBcnJheU9yRW1wdHksIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICBtYWNybyhHZXRQcml2YXRl
TmFtZSwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKEdldFBy
aXZhdGVOYW1lQnlJZCwgTm9kZVJlc3VsdEpTIHwgTm9kZU11c3RHZW5lcmF0ZSkgXAotICAgIC8q
IFRoaXMgY2hlY2tzIGlmIHRoZSBlZGdlIGlzIGEgdHlwZWQgYXJyYXkgYW5kIGlmIGl0IGlzIG5l
dXRlcmVkLiAqLyBcCi0gICAgbWFjcm8oQ2hlY2tOZXV0ZXJlZCwgTm9kZU11c3RHZW5lcmF0ZSkg
XAorICAgIC8qIFRoaXMgY2hlY2tzIGlmIHRoZSBlZGdlIGlzIGEgdHlwZWQgYXJyYXkgYW5kIGlm
IGl0IGlzIGRldGFjaGVkLiAqLyBcCisgICAgbWFjcm8oQ2hlY2tEZXRhY2hlZCwgTm9kZU11c3RH
ZW5lcmF0ZSkgXAogICAgIG1hY3JvKEFycmF5aWZ5LCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAg
bWFjcm8oQXJyYXlpZnlUb1N0cnVjdHVyZSwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3Jv
KEdldEluZGV4ZWRQcm9wZXJ0eVN0b3JhZ2UsIE5vZGVSZXN1bHRTdG9yYWdlKSBcCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Q
cm9wYWdhdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMjY5MzI4KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE0MjQsNyArMTQyNCw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgUGhhbnRvbToK
ICAgICAgICAgY2FzZSBDaGVjazoKICAgICAgICAgY2FzZSBDaGVja0FycmF5OgotICAgICAgICBj
YXNlIENoZWNrTmV1dGVyZWQ6CisgICAgICAgIGNhc2UgQ2hlY2tEZXRhY2hlZDoKICAgICAgICAg
Y2FzZSBDaGVja1ZhcmFyZ3M6CiAgICAgICAgIGNhc2UgUHV0R2xvYmFsVmFyaWFibGU6CiAgICAg
ICAgIGNhc2UgQ2hlY2tUcmFwczoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2FmZVRvRXhlY3V0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU2FmZVRvRXhlY3V0ZS5oCShyZXZpc2lvbiAyNjkzMjgpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzc4LDcgKzM3
OCw3IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3QKICAgICBjYXNl
IEFycmF5UHVzaDoKICAgICAgICAgcmV0dXJuIG5vZGUtPmFycmF5TW9kZSgpLmFscmVhZHlDaGVj
a2VkKGdyYXBoLCBub2RlLCBzdGF0ZS5mb3JOb2RlKGdyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEp
KSk7CiAKLSAgICBjYXNlIENoZWNrTmV1dGVyZWQ6CisgICAgY2FzZSBDaGVja0RldGFjaGVkOgog
ICAgIGNhc2UgR2V0VHlwZWRBcnJheUJ5dGVPZmZzZXQ6CiAgICAgICAgIHJldHVybiAhKHN0YXRl
LmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLm1fdHlwZSAmIH4oU3BlY1R5cGVkQXJyYXlWaWV3KSk7
CiAgICAgICAgICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2aXNpb24gMjY5MzI4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjIyNSw4ICsyMjI1LDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShO
b2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAgICAgICAgIAotICAgIGNhc2UgQ2hl
Y2tOZXV0ZXJlZDogewotICAgICAgICBjb21waWxlQ2hlY2tOZXV0ZXJlZChub2RlKTsKKyAgICBj
YXNlIENoZWNrRGV0YWNoZWQ6IHsKKyAgICAgICAgY29tcGlsZUNoZWNrRGV0YWNoZWQobm9kZSk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAyNjkzMjgpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNjAwLDggKzI2MDAsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
KE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGNhc2UgQ2hlY2tOZXV0
ZXJlZDogewotICAgICAgICBjb21waWxlQ2hlY2tOZXV0ZXJlZChub2RlKTsKKyAgICBjYXNlIENo
ZWNrRGV0YWNoZWQ6IHsKKyAgICAgICAgY29tcGlsZUNoZWNrRGV0YWNoZWQobm9kZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDI2OTMyOCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
OTA5LDcgKzE5MDksNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlTW92SGludChOb2Rl
CiAgICAgbV9zdHJlYW0tPmFwcGVuZEFuZExvZyhWYXJpYWJsZUV2ZW50Ojptb3ZIaW50KE1pbmlm
aWVkSUQoY2hpbGQpLCBub2RlLT51bmxpbmtlZE9wZXJhbmQoKSkpOwogfQogCi12b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlQ2hlY2tOZXV0ZXJlZChOb2RlKiBub2RlKQordm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUNoZWNrRGV0YWNoZWQoTm9kZSogbm9kZSkKIHsKICAgICBTcGVjdWxh
dGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICBHUFJSZWcgYmFz
ZVJlZyA9IGJhc2UuZ3ByKCk7CkBAIC0zMDM2LDcgKzMwMzYsNyBAQCB2b2lkIFNwZWN1bGF0aXZl
SklUOjplbWl0VHlwZWRBcnJheUJvdW5kCiAgICAgc3BlY3VsYXRpb25DaGVjayhPdXRPZkJvdW5k
cywgSlNWYWx1ZVJlZ3MoKSwgbnVsbHB0ciwganVtcCk7CiB9CiAKLUpJVENvbXBpbGVyOjpKdW1w
IFNwZWN1bGF0aXZlSklUOjpqdW1wRm9yVHlwZWRBcnJheUlzTmV1dGVyZWRJZk91dE9mQm91bmRz
KE5vZGUqIG5vZGUsIEdQUlJlZyBiYXNlLCBKSVRDb21waWxlcjo6SnVtcCBvdXRPZkJvdW5kcykK
K0pJVENvbXBpbGVyOjpKdW1wIFNwZWN1bGF0aXZlSklUOjpqdW1wRm9yVHlwZWRBcnJheUlzRGV0
YWNoZWRJZk91dE9mQm91bmRzKE5vZGUqIG5vZGUsIEdQUlJlZyBiYXNlLCBKSVRDb21waWxlcjo6
SnVtcCBvdXRPZkJvdW5kcykKIHsKICAgICBKSVRDb21waWxlcjo6SnVtcCBkb25lOwogICAgIGlm
IChvdXRPZkJvdW5kcy5pc1NldCgpKSB7CkBAIC0zMzIzLDcgKzMzMjMsNyBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlUHV0QnlWYWxGb3JJCiAgICAgICAgIENSQVNIKCk7CiAgICAgfQog
Ci0gICAgSklUQ29tcGlsZXI6Okp1bXAgZG9uZSA9IGp1bXBGb3JUeXBlZEFycmF5SXNOZXV0ZXJl
ZElmT3V0T2ZCb3VuZHMobm9kZSwgYmFzZSwgb3V0T2ZCb3VuZHMpOworICAgIEpJVENvbXBpbGVy
OjpKdW1wIGRvbmUgPSBqdW1wRm9yVHlwZWRBcnJheUlzRGV0YWNoZWRJZk91dE9mQm91bmRzKG5v
ZGUsIGJhc2UsIG91dE9mQm91bmRzKTsKICAgICBpZiAoZG9uZS5pc1NldCgpKQogICAgICAgICBk
b25lLmxpbmsoJm1faml0KTsKIApAQCAtMzQyMiw3ICszNDIyLDcgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVB1dEJ5VmFsRm9yRgogICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIH0KIAotICAgIEpJVENvbXBpbGVyOjpKdW1wIGRvbmUgPSBqdW1wRm9yVHlw
ZWRBcnJheUlzTmV1dGVyZWRJZk91dE9mQm91bmRzKG5vZGUsIGJhc2UsIG91dE9mQm91bmRzKTsK
KyAgICBKSVRDb21waWxlcjo6SnVtcCBkb25lID0ganVtcEZvclR5cGVkQXJyYXlJc0RldGFjaGVk
SWZPdXRPZkJvdW5kcyhub2RlLCBiYXNlLCBvdXRPZkJvdW5kcyk7CiAgICAgaWYgKGRvbmUuaXNT
ZXQoKSkKICAgICAgICAgZG9uZS5saW5rKCZtX2ppdCk7CiAgICAgbm9SZXN1bHQobm9kZSk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCShy
ZXZpc2lvbiAyNjkzMjgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTcxNyw3ICs3MTcsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBjb21waWxlTW92SGludChOb2RlKik7CiAgICAgdm9pZCBjb21waWxlTW92SGludEFuZENo
ZWNrKE5vZGUqKTsKIAotICAgIHZvaWQgY29tcGlsZUNoZWNrTmV1dGVyZWQoTm9kZSopOworICAg
IHZvaWQgY29tcGlsZUNoZWNrRGV0YWNoZWQoTm9kZSopOwogCiAgICAgdm9pZCBjYWNoZWRHZXRC
eUlkKENvZGVPcmlnaW4sIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHJlc3VsdCwgQ2Fj
aGVhYmxlSWRlbnRpZmllciwgSklUQ29tcGlsZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQsIFNwaWxs
UmVnaXN0ZXJzTW9kZSwgQWNjZXNzVHlwZSk7CiAgICAgdm9pZCBjYWNoZWRQdXRCeUlkKENvZGVP
cmlnaW4sIEdQUlJlZyBiYXNlR1BSLCBKU1ZhbHVlUmVncyB2YWx1ZVJlZ3MsIEdQUlJlZyBzY3Jh
dGNoR1BSLCBDYWNoZWFibGVJZGVudGlmaWVyLCBQdXRLaW5kLCBFQ01BTW9kZSwgSklUQ29tcGls
ZXI6Okp1bXAgc2xvd1BhdGhUYXJnZXQgPSBKSVRDb21waWxlcjo6SnVtcCgpLCBTcGlsbFJlZ2lz
dGVyc01vZGUgPSBOZWVkVG9TcGlsbCk7CkBAIC0xMzUyLDcgKzEzNTIsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjb21waWxlQ29uc3RhbnRTdG9yYWdlUG9pbnRlcihOb2RlKik7CiAgICAgdm9pZCBj
b21waWxlR2V0SW5kZXhlZFByb3BlcnR5U3RvcmFnZShOb2RlKik7CiAgICAgSklUQ29tcGlsZXI6
Okp1bXAganVtcEZvclR5cGVkQXJyYXlPdXRPZkJvdW5kcyhOb2RlKiwgR1BSUmVnIGJhc2VHUFIs
IEdQUlJlZyBpbmRleEdQUik7Ci0gICAgSklUQ29tcGlsZXI6Okp1bXAganVtcEZvclR5cGVkQXJy
YXlJc05ldXRlcmVkSWZPdXRPZkJvdW5kcyhOb2RlKiwgR1BSUmVnIGJhc2VHUFIsIEpJVENvbXBp
bGVyOjpKdW1wIG91dE9mQm91bmRzKTsKKyAgICBKSVRDb21waWxlcjo6SnVtcCBqdW1wRm9yVHlw
ZWRBcnJheUlzRGV0YWNoZWRJZk91dE9mQm91bmRzKE5vZGUqLCBHUFJSZWcgYmFzZUdQUiwgSklU
Q29tcGlsZXI6Okp1bXAgb3V0T2ZCb3VuZHMpOwogICAgIHZvaWQgZW1pdFR5cGVkQXJyYXlCb3Vu
ZHNDaGVjayhOb2RlKiwgR1BSUmVnIGJhc2VHUFIsIEdQUlJlZyBpbmRleEdQUik7CiAgICAgdm9p
ZCBjb21waWxlR2V0VHlwZWRBcnJheUJ5dGVPZmZzZXQoTm9kZSopOwogICAgIHZvaWQgY29tcGls
ZUdldEJ5VmFsT25JbnRUeXBlZEFycmF5KE5vZGUqLCBUeXBlZEFycmF5VHlwZSk7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1R5cGVDaGVja0hvaXN0aW5nUGhhc2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVHlwZUNoZWNrSG9pc3Rp
bmdQaGFzZS5jcHAJKHJldmlzaW9uIDI2OTMyOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHVHlwZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3OSw3
ICsyNzksNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGNhc2UgUHV0QnlWYWxBbGlhczoK
ICAgICAgICAgICAgICAgICBjYXNlIEdldEFycmF5TGVuZ3RoOgogICAgICAgICAgICAgICAgIGNh
c2UgQ2hlY2tBcnJheToKLSAgICAgICAgICAgICAgICBjYXNlIENoZWNrTmV1dGVyZWQ6CisgICAg
ICAgICAgICAgICAgY2FzZSBDaGVja0RldGFjaGVkOgogICAgICAgICAgICAgICAgIGNhc2UgR2V0
SW5kZXhlZFByb3BlcnR5U3RvcmFnZToKICAgICAgICAgICAgICAgICBjYXNlIEdldFR5cGVkQXJy
YXlCeXRlT2Zmc2V0OgogICAgICAgICAgICAgICAgIGNhc2UgUGhhbnRvbToKQEAgLTM0Niw3ICsz
NDYsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGNh
c2UgQ2hlY2tTdHJ1Y3R1cmU6Ci0gICAgICAgICAgICAgICAgY2FzZSBDaGVja05ldXRlcmVkOgor
ICAgICAgICAgICAgICAgIGNhc2UgQ2hlY2tEZXRhY2hlZDoKICAgICAgICAgICAgICAgICBjYXNl
IEdldEJ5T2Zmc2V0OgogICAgICAgICAgICAgICAgIGNhc2UgUHV0QnlPZmZzZXQ6CiAgICAgICAg
ICAgICAgICAgY2FzZSBQdXRTdHJ1Y3R1cmU6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCShyZXZpc2lvbiAyNjkzMjgpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIwMyw3ICsyMDMsNyBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSog
CiAgICAgY2FzZSBDaGVja1ZhcmFyZ3M6CiAgICAgY2FzZSBDaGVja0FycmF5OgogICAgIGNhc2Ug
Q2hlY2tBcnJheU9yRW1wdHk6Ci0gICAgY2FzZSBDaGVja05ldXRlcmVkOgorICAgIGNhc2UgQ2hl
Y2tEZXRhY2hlZDoKICAgICBjYXNlIENvdW50RXhlY3V0aW9uOgogICAgIGNhc2UgU3VwZXJTYW1w
bGVyQmVnaW46CiAgICAgY2FzZSBTdXBlclNhbXBsZXJFbmQ6CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCShyZXZpc2lvbiAyNjkzMjgpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEwMDMsOCArMTAwMyw4IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgQ2hlY2tB
cnJheU9yRW1wdHk6CiAgICAgICAgICAgICBjb21waWxlQ2hlY2tBcnJheU9yRW1wdHkoKTsKICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENoZWNrTmV1dGVyZWQ6Ci0gICAgICAgICAg
ICBjb21waWxlQ2hlY2tOZXV0ZXJlZCgpOworICAgICAgICBjYXNlIENoZWNrRGV0YWNoZWQ6Cisg
ICAgICAgICAgICBjb21waWxlQ2hlY2tEZXRhY2hlZCgpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgR2V0QXJyYXlMZW5ndGg6CiAgICAgICAgICAgICBjb21waWxlR2V0QXJyYXlM
ZW5ndGgoKTsKQEAgLTQ1MzcsNyArNDUzNyw3IEBAIHByaXZhdGU6CiAgICAgICAgIH0KICAgICB9
CiAKLSAgICB2b2lkIGNvbXBpbGVDaGVja05ldXRlcmVkKCkKKyAgICB2b2lkIGNvbXBpbGVDaGVj
a0RldGFjaGVkKCkKICAgICB7CiAgICAgICAgIEVkZ2UgZWRnZSA9IG1fbm9kZS0+Y2hpbGQxKCk7
CiAgICAgICAgIExWYWx1ZSBjZWxsID0gbG93Q2VsbChlZGdlKTsKQEAgLTU2MjAsNyArNTYyMCw3
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9u
KTsKIAogICAgICAgICAgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhpc091dE9mQm91bmRzLCBj
b250aW51YXRpb24pOwotICAgICAgICAgICAgICAgICAgICBzcGVjdWxhdGVUeXBlZEFycmF5SXNO
b3ROZXV0ZXJlZChiYXNlKTsKKyAgICAgICAgICAgICAgICAgICAgc3BlY3VsYXRlVHlwZWRBcnJh
eUlzTm90RGV0YWNoZWQoYmFzZSk7CiAgICAgICAgICAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29u
dGludWF0aW9uKTsKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIG1f
b3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwpAQCAtMTg5NTMsNyArMTg5NTMs
NyBAQCBwcml2YXRlOgogICAgICAgICB0eXBlQ2hlY2soanNWYWx1ZVZhbHVlKHZhbHVlKSwgZWRn
ZSwgU3BlY01pc2MsIGlzTm90TWlzYyh2YWx1ZSkpOwogICAgIH0KIAotICAgIHZvaWQgc3BlY3Vs
YXRlVHlwZWRBcnJheUlzTm90TmV1dGVyZWQoTFZhbHVlIGJhc2UpCisgICAgdm9pZCBzcGVjdWxh
dGVUeXBlZEFycmF5SXNOb3REZXRhY2hlZChMVmFsdWUgYmFzZSkKICAgICB7CiAgICAgICAgIExC
YXNpY0Jsb2NrIGlzV2FzdGVmdWwgPSBtX291dC5uZXdCbG9jaygpOwogICAgICAgICBMQmFzaWNC
bG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlCdWZmZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyLmNwcAkocmV2aXNpb24gMjY5MzI4KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlCdWZmZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBBcnJheUJ1ZmZlckNvbnRlbnRzOjp0cnlB
bGxvY2F0ZSh1bgogICAgIHNpemVfdCBzaXplSW5CeXRlcyA9IHN0YXRpY19jYXN0PHNpemVfdD4o
bnVtRWxlbWVudHMpICogc3RhdGljX2Nhc3Q8c2l6ZV90PihlbGVtZW50Qnl0ZVNpemUpOwogICAg
IHNpemVfdCBhbGxvY2F0aW9uU2l6ZSA9IHNpemVJbkJ5dGVzOwogICAgIGlmICghYWxsb2NhdGlv
blNpemUpCi0gICAgICAgIGFsbG9jYXRpb25TaXplID0gMTsgLy8gTWFrZSBzdXJlIG1hbGxvYyBh
Y3R1YWxseSBhbGxvY2F0ZXMgc29tZXRoaW5nLCBidXQgbm90IHRvbyBtdWNoLiBXZSB1c2UgbnVs
bCB0byBtZWFuIHRoYXQgdGhlIGJ1ZmZlciBpcyBuZXV0ZXJlZC4KKyAgICAgICAgYWxsb2NhdGlv
blNpemUgPSAxOyAvLyBNYWtlIHN1cmUgbWFsbG9jIGFjdHVhbGx5IGFsbG9jYXRlcyBzb21ldGhp
bmcsIGJ1dCBub3QgdG9vIG11Y2guIFdlIHVzZSBudWxsIHRvIG1lYW4gdGhhdCB0aGUgYnVmZmVy
IGlzIGRldGFjaGVkLgogCiAgICAgdm9pZCogZGF0YSA9IEdpZ2FjYWdlOjp0cnlNYWxsb2MoR2ln
YWNhZ2U6OlByaW1pdGl2ZSwgYWxsb2NhdGlvblNpemUpOwogICAgIG1fZGF0YSA9IERhdGFUeXBl
KGRhdGEsIHNpemVJbkJ5dGVzKTsKQEAgLTM3NCw5ICszNzQsOSBAQCBib29sIEFycmF5QnVmZmVy
Ojp0cmFuc2ZlclRvKFZNJiB2bSwgQXJyCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAot
ICAgIGJvb2wgaXNOZXV0ZXJhYmxlID0gIW1fcGluQ291bnQgJiYgIW1fbG9ja2VkOworICAgIGJv
b2wgaXNEZXRhY2hhYmxlID0gIW1fcGluQ291bnQgJiYgIW1fbG9ja2VkOwogCi0gICAgaWYgKCFp
c05ldXRlcmFibGUpIHsKKyAgICBpZiAoIWlzRGV0YWNoYWJsZSkgewogICAgICAgICBtX2NvbnRl
bnRzLmNvcHlUbyhyZXN1bHQpOwogICAgICAgICBpZiAoIXJlc3VsdC5tX2RhdGEpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0zODQsMjcgKzM4NCwyNyBAQCBib29sIEFycmF5QnVmZmVy
Ojp0cmFuc2ZlclRvKFZNJiB2bSwgQXJyCiAgICAgfQogCiAgICAgbV9jb250ZW50cy50cmFuc2Zl
clRvKHJlc3VsdCk7Ci0gICAgbm90aWZ5TmV1dGVyaW5nKHZtKTsKKyAgICBub3RpZnlEZXRhY2hp
bmcodm0pOwogICAgIHJldHVybiB0cnVlOwogfQogCi0vLyBXZSBhbGxvdyBuZXV0ZXJpbmcgd2Fz
bSBtZW1vcnkgQXJyYXlCdWZmZXJzIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIGxvY2tlZC4KLXZvaWQg
QXJyYXlCdWZmZXI6Om5ldXRlcihWTSYgdm0pCisvLyBXZSBhbGxvdyBkZXRhY2hpbmcgd2FzbSBt
ZW1vcnkgQXJyYXlCdWZmZXJzIGV2ZW4gdGhvdWdoIHRoZXkgYXJlIGxvY2tlZC4KK3ZvaWQgQXJy
YXlCdWZmZXI6OmRldGFjaChWTSYgdm0pCiB7CiAgICAgQVNTRVJUKGlzV2FzbU1lbW9yeSgpKTsK
ICAgICBBcnJheUJ1ZmZlckNvbnRlbnRzIHVudXNlZDsKICAgICBtX2NvbnRlbnRzLnRyYW5zZmVy
VG8odW51c2VkKTsKLSAgICBub3RpZnlOZXV0ZXJpbmcodm0pOworICAgIG5vdGlmeURldGFjaGlu
Zyh2bSk7CiB9CiAKLXZvaWQgQXJyYXlCdWZmZXI6Om5vdGlmeU5ldXRlcmluZyhWTSYgdm0pCit2
b2lkIEFycmF5QnVmZmVyOjpub3RpZnlEZXRhY2hpbmcoVk0mIHZtKQogewogICAgIGZvciAoc2l6
ZV90IGkgPSBudW1iZXJPZkluY29taW5nUmVmZXJlbmNlcygpOyBpLS07KSB7CiAgICAgICAgIEpT
Q2VsbCogY2VsbCA9IGluY29taW5nUmVmZXJlbmNlQXQoaSk7CiAgICAgICAgIGlmIChKU0FycmF5
QnVmZmVyVmlldyogdmlldyA9IGpzRHluYW1pY0Nhc3Q8SlNBcnJheUJ1ZmZlclZpZXcqPih2bSwg
Y2VsbCkpCi0gICAgICAgICAgICB2aWV3LT5uZXV0ZXIoKTsKKyAgICAgICAgICAgIHZpZXctPmRl
dGFjaCgpOwogICAgIH0KLSAgICBtX25ldXRlcmluZ1dhdGNocG9pbnRTZXQuZmlyZUFsbCh2bSwg
IkFycmF5IGJ1ZmZlciB3YXMgbmV1dGVyZWQiKTsKKyAgICBtX2RldGFjaGluZ1dhdGNocG9pbnRT
ZXQuZmlyZUFsbCh2bSwgIkFycmF5IGJ1ZmZlciB3YXMgZGV0YWNoZWQiKTsKIH0KIAogQVNDSUlM
aXRlcmFsIGVycm9yTWVzYXNnZUZvclRyYW5zZmVyKEFycmF5QnVmZmVyKiBidWZmZXIpCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUJ1ZmZlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyLmgJKHJldmlzaW9u
IDI2OTMyOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE0OSw5ICsxNDksOSBAQCBwdWJsaWM6CiAgICAgSlNfRVhQT1JU
X1BSSVZBVEUgYm9vbCB0cmFuc2ZlclRvKFZNJiwgQXJyYXlCdWZmZXJDb250ZW50cyYpOwogICAg
IEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgc2hhcmVXaXRoKEFycmF5QnVmZmVyQ29udGVudHMmKTsK
IAotICAgIHZvaWQgbmV1dGVyKFZNJik7Ci0gICAgYm9vbCBpc05ldXRlcmVkKCkgeyByZXR1cm4g
IW1fY29udGVudHMubV9kYXRhOyB9Ci0gICAgSW5saW5lV2F0Y2hwb2ludFNldCYgbmV1dGVyaW5n
V2F0Y2hwb2ludFNldCgpIHsgcmV0dXJuIG1fbmV1dGVyaW5nV2F0Y2hwb2ludFNldDsgfQorICAg
IHZvaWQgZGV0YWNoKFZNJik7CisgICAgYm9vbCBpc0RldGFjaGVkKCkgeyByZXR1cm4gIW1fY29u
dGVudHMubV9kYXRhOyB9CisgICAgSW5saW5lV2F0Y2hwb2ludFNldCYgZGV0YWNoaW5nV2F0Y2hw
b2ludFNldCgpIHsgcmV0dXJuIG1fZGV0YWNoaW5nV2F0Y2hwb2ludFNldDsgfQogCiAgICAgc3Rh
dGljIHB0cmRpZmZfdCBvZmZzZXRPZkRhdGEoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoQXJy
YXlCdWZmZXIsIG1fY29udGVudHMpICsgT0JKRUNUX09GRlNFVE9GKEFycmF5QnVmZmVyQ29udGVu
dHMsIG1fZGF0YSk7IH0KIApAQCAtMTY4LDEwICsxNjgsMTAgQEAgcHJpdmF0ZToKICAgICBpbmxp
bmUgdW5zaWduZWQgY2xhbXBJbmRleChkb3VibGUgaW5kZXgpIGNvbnN0OwogICAgIHN0YXRpYyBp
bmxpbmUgdW5zaWduZWQgY2xhbXBWYWx1ZShkb3VibGUgeCwgdW5zaWduZWQgbGVmdCwgdW5zaWdu
ZWQgcmlnaHQpOwogCi0gICAgdm9pZCBub3RpZnlOZXV0ZXJpbmcoVk0mKTsKKyAgICB2b2lkIG5v
dGlmeURldGFjaGluZyhWTSYpOwogCiAgICAgQXJyYXlCdWZmZXJDb250ZW50cyBtX2NvbnRlbnRz
OwotICAgIElubGluZVdhdGNocG9pbnRTZXQgbV9uZXV0ZXJpbmdXYXRjaHBvaW50U2V0IHsgSXNX
YXRjaGVkIH07CisgICAgSW5saW5lV2F0Y2hwb2ludFNldCBtX2RldGFjaGluZ1dhdGNocG9pbnRT
ZXQgeyBJc1dhdGNoZWQgfTsKIHB1YmxpYzoKICAgICBXZWFrPEpTQXJyYXlCdWZmZXI+IG1fd3Jh
cHBlcjsKIHByaXZhdGU6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJh
eUJ1ZmZlclZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0FycmF5QnVmZmVyVmlldy5jcHAJKHJldmlzaW9uIDI2OTMyOCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0FycmF5QnVmZmVyVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBBcnJheUJ1ZmZlclZpZXc6OkFycmF5QnVm
ZmVyVmlldygKICAgICBSZWZQdHI8QXJyYXlCdWZmZXI+JiYgYnVmZmVyLCB1bnNpZ25lZCBieXRl
T2Zmc2V0LCB1bnNpZ25lZCBieXRlTGVuZ3RoKQogICAgICAgICA6IG1fYnl0ZU9mZnNldChieXRl
T2Zmc2V0KQotICAgICAgICAsIG1faXNOZXV0ZXJhYmxlKHRydWUpCisgICAgICAgICwgbV9pc0Rl
dGFjaGFibGUodHJ1ZSkKICAgICAgICAgLCBtX2J5dGVMZW5ndGgoYnl0ZUxlbmd0aCkKICAgICAg
ICAgLCBtX2J1ZmZlcihXVEZNb3ZlKGJ1ZmZlcikpCiB7CkBAIC00NSwxNiArNDUsMTYgQEAgQXJy
YXlCdWZmZXJWaWV3OjpBcnJheUJ1ZmZlclZpZXcoCiAKIEFycmF5QnVmZmVyVmlldzo6fkFycmF5
QnVmZmVyVmlldygpCiB7Ci0gICAgaWYgKCFtX2lzTmV1dGVyYWJsZSkKKyAgICBpZiAoIW1faXNE
ZXRhY2hhYmxlKQogICAgICAgICBtX2J1ZmZlci0+dW5waW4oKTsKIH0KIAotdm9pZCBBcnJheUJ1
ZmZlclZpZXc6OnNldE5ldXRlcmFibGUoYm9vbCBmbGFnKQordm9pZCBBcnJheUJ1ZmZlclZpZXc6
OnNldERldGFjaGFibGUoYm9vbCBmbGFnKQogewotICAgIGlmIChmbGFnID09IG1faXNOZXV0ZXJh
YmxlKQorICAgIGlmIChmbGFnID09IG1faXNEZXRhY2hhYmxlKQogICAgICAgICByZXR1cm47CiAg
ICAgCi0gICAgbV9pc05ldXRlcmFibGUgPSBmbGFnOworICAgIG1faXNEZXRhY2hhYmxlID0gZmxh
ZzsKICAgICAKICAgICBpZiAoIW1fYnVmZmVyKQogICAgICAgICByZXR1cm47CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUJ1ZmZlclZpZXcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9BcnJheUJ1ZmZlclZpZXcuaAkocmV2aXNp
b24gMjY5MzI4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJyYXlCdWZmZXJW
aWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDE0ICs0MiwxNCBAQCBjbGFzcyBBcnJheUJ1ZmZl
clZpZXcgOiBwdWJsaWMgUmVmQ291bnRlCiBwdWJsaWM6CiAgICAgdmlydHVhbCBUeXBlZEFycmF5
VHlwZSBnZXRUeXBlKCkgY29uc3QgPSAwOwogCi0gICAgYm9vbCBpc05ldXRlcmVkKCkgY29uc3QK
KyAgICBib29sIGlzRGV0YWNoZWQoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuICFtX2J1
ZmZlciB8fCBtX2J1ZmZlci0+aXNOZXV0ZXJlZCgpOworICAgICAgICByZXR1cm4gIW1fYnVmZmVy
IHx8IG1fYnVmZmVyLT5pc0RldGFjaGVkKCk7CiAgICAgfQogICAgIAogICAgIFJlZlB0cjxBcnJh
eUJ1ZmZlcj4gcG9zc2libHlTaGFyZWRCdWZmZXIoKSBjb25zdAogICAgIHsKLSAgICAgICAgaWYg
KGlzTmV1dGVyZWQoKSkKKyAgICAgICAgaWYgKGlzRGV0YWNoZWQoKSkKICAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgICAgICByZXR1cm4gbV9idWZmZXI7CiAgICAgfQpAQCAtNjMsMTQg
KzYzLDE0IEBAIHB1YmxpYzoKICAgICAKICAgICBib29sIGlzU2hhcmVkKCkgY29uc3QKICAgICB7
Ci0gICAgICAgIGlmIChpc05ldXRlcmVkKCkpCisgICAgICAgIGlmIChpc0RldGFjaGVkKCkpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiBtX2J1ZmZlci0+aXNTaGFy
ZWQoKTsKICAgICB9CiAKICAgICB2b2lkKiBiYXNlQWRkcmVzcygpIGNvbnN0CiAgICAgewotICAg
ICAgICBpZiAoaXNOZXV0ZXJlZCgpKQorICAgICAgICBpZiAoaXNEZXRhY2hlZCgpKQogICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiBtX2Jhc2VBZGRyZXNzLmdldE1h
eUJlTnVsbChieXRlTGVuZ3RoKCkpOwogICAgIH0KQEAgLTc5LDE1ICs3OSwxNSBAQCBwdWJsaWM6
CiAKICAgICB1bnNpZ25lZCBieXRlT2Zmc2V0KCkgY29uc3QKICAgICB7Ci0gICAgICAgIGlmIChp
c05ldXRlcmVkKCkpCisgICAgICAgIGlmIChpc0RldGFjaGVkKCkpCiAgICAgICAgICAgICByZXR1
cm4gMDsKICAgICAgICAgcmV0dXJuIG1fYnl0ZU9mZnNldDsKICAgICB9CiAKICAgICB1bnNpZ25l
ZCBieXRlTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9ieXRlTGVuZ3RoOyB9CiAKLSAgICBKU19F
WFBPUlRfUFJJVkFURSB2b2lkIHNldE5ldXRlcmFibGUoYm9vbCBmbGFnKTsKLSAgICBib29sIGlz
TmV1dGVyYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNOZXV0ZXJhYmxlOyB9CisgICAgSlNfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBzZXREZXRhY2hhYmxlKGJvb2wpOworICAgIGJvb2wgaXNEZXRhY2hh
YmxlKCkgY29uc3QgeyByZXR1cm4gbV9pc0RldGFjaGFibGU7IH0KIAogICAgIEpTX0VYUE9SVF9Q
UklWQVRFIHZpcnR1YWwgfkFycmF5QnVmZmVyVmlldygpOwogCkBAIC0xNDgsNyArMTQ4LDcgQEAg
cHJvdGVjdGVkOgogICAgIH0KIAogICAgIHVuc2lnbmVkIG1fYnl0ZU9mZnNldCA6IDMxOwotICAg
IGJvb2wgbV9pc05ldXRlcmFibGUgOiAxOworICAgIGJvb2wgbV9pc0RldGFjaGFibGUgOiAxOwog
ICAgIHVuc2lnbmVkIG1fYnl0ZUxlbmd0aDsKIAogICAgIHVzaW5nIEJhc2VBZGRyZXNzID0gQ2Fn
ZWRQdHI8R2lnYWNhZ2U6OlByaW1pdGl2ZSwgdm9pZCwgdGFnQ2FnZWRQdHI+OwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvR2VuZXJpY1R5cGVkQXJyYXlW
aWV3LmgJKHJldmlzaW9uIDI2OTMyOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2Nyw3IEBA
IHB1YmxpYzoKICAgICAKICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdAogICAgIHsKLSAgICAg
ICAgaWYgKGlzTmV1dGVyZWQoKSkKKyAgICAgICAgaWYgKGlzRGV0YWNoZWQoKSkKICAgICAgICAg
ICAgIHJldHVybiAwOwogICAgICAgICByZXR1cm4gYnl0ZUxlbmd0aCgpIC8gc2l6ZW9mKHR5cGVu
YW1lIEFkYXB0b3I6OlR5cGUpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FycmF5QnVmZmVyVmlldy5jcHAJKHJldmlzaW9uIDI2OTMyOCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjIwLDcgKzIyMCw3IEBAIEpTQXJyYXlCdWZmZXIqIEpTQXJyYXlC
dWZmZXJWaWV3Ojpwb3NzaWIKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotdm9pZCBKU0FycmF5
QnVmZmVyVmlldzo6bmV1dGVyKCkKK3ZvaWQgSlNBcnJheUJ1ZmZlclZpZXc6OmRldGFjaCgpCiB7
CiAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhjZWxsTG9jaygpKTsKICAgICBSRUxFQVNFX0FT
U0VSVChoYXNBcnJheUJ1ZmZlcigpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQXJyYXlCdWZmZXJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuaAkocmV2aXNpb24gMjY5MzI4KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheUJ1ZmZlclZpZXcuaAkod29ya2luZyBj
b3B5KQpAQCAtNTMsNyArNTMsNyBAQCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiAKIC8v
IFR5cGVkIGFycmF5IHZpZXdzIGhhdmUgZGlmZmVyZW50IG1vZGVzIGRlcGVuZGluZyBvbiBob3cg
YmlnIHRoZXkgYXJlIGFuZAogLy8gd2hldGhlciB0aGUgdXNlciBoYXMgZG9uZSBhbnl0aGluZyB0
aGF0IHJlcXVpcmVzIGEgc2VwYXJhdGUgYmFja2luZwotLy8gYnVmZmVyIG9yIHRoZSBET00tc3Bl
Y2lmaWVkIG5ldXRlcmluZyBjYXBhYmlsaXRpZXMuCisvLyBidWZmZXIgb3IgdGhlIERPTS1zcGVj
aWZpZWQgZGV0YWNoaW5nIGNhcGFiaWxpdGllcy4KIGVudW0gVHlwZWRBcnJheU1vZGUgOiB1aW50
MzJfdCB7CiAgICAgLy8gTGVnZW5kOgogICAgIC8vIEI6IEpTQXJyYXlCdWZmZXJWaWV3OjptX2J1
dHRlcmZseSBwb2ludGVyCkBAIC0xODUsOCArMTg1LDggQEAgcHVibGljOgogICAgIEpTQXJyYXlC
dWZmZXIqIHBvc3NpYmx5U2hhcmVkSlNCdWZmZXIoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCk7CiAgICAgUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gdW5zaGFyZWRJbXBsKCk7CiAgICAgSlNf
RVhQT1JUX1BSSVZBVEUgUmVmUHRyPEFycmF5QnVmZmVyVmlldz4gcG9zc2libHlTaGFyZWRJbXBs
KCk7Ci0gICAgYm9vbCBpc05ldXRlcmVkKCkgeyByZXR1cm4gaGFzQXJyYXlCdWZmZXIoKSAmJiAh
aGFzVmVjdG9yKCk7IH0KLSAgICB2b2lkIG5ldXRlcigpOworICAgIGJvb2wgaXNEZXRhY2hlZCgp
IHsgcmV0dXJuIGhhc0FycmF5QnVmZmVyKCkgJiYgIWhhc1ZlY3RvcigpOyB9CisgICAgdm9pZCBk
ZXRhY2goKTsKIAogICAgIGJvb2wgaGFzVmVjdG9yKCkgY29uc3QgeyByZXR1cm4gISFtX3ZlY3Rv
cjsgfQogICAgIHZvaWQqIHZlY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fdmVjdG9yLmdldE1heUJl
TnVsbChsZW5ndGgoKSk7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
RGF0YVZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTRGF0YVZpZXcuY3BwCShyZXZpc2lvbiAyNjkzMjgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0RhdGFWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBA
QCBKU0RhdGFWaWV3KiBKU0RhdGFWaWV3OjpjcmVhdGUoCiAgICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgQVNTRVJUKGJ1ZmZlcik7Ci0gICAgaWYgKGJ1ZmZl
ci0+aXNOZXV0ZXJlZCgpKSB7CisgICAgaWYgKGJ1ZmZlci0+aXNEZXRhY2hlZCgpKSB7CiAgICAg
ICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsICJCdWZmZXIgaXMgYWxyZWFk
eSBkZXRhY2hlZCJfcyk7CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5cGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTRGF0YVZpZXdQcm90b3R5
cGUuY3BwCShyZXZpc2lvbiAyNjkzMjgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0RhdGFWaWV3UHJvdG90eXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM4LDcgKzEzOCw3
IEBAIEVuY29kZWRKU1ZhbHVlIGdldERhdGEoSlNHbG9iYWxPYmplY3QqIGcKICAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgfQogCi0gICAg
aWYgKGRhdGFWaWV3LT5pc05ldXRlcmVkKCkpCisgICAgaWYgKGRhdGFWaWV3LT5pc0RldGFjaGVk
KCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUs
ICJVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXci
X3MpOwogCiAgICAgdW5zaWduZWQgYnl0ZUxlbmd0aCA9IGRhdGFWaWV3LT5sZW5ndGgoKTsKQEAg
LTE5Myw3ICsxOTMsNyBAQCBFbmNvZGVkSlNWYWx1ZSBzZXREYXRhKEpTR2xvYmFsT2JqZWN0KiBn
CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwog
ICAgIH0KIAotICAgIGlmIChkYXRhVmlldy0+aXNOZXV0ZXJlZCgpKQorICAgIGlmIChkYXRhVmll
dy0+aXNEZXRhY2hlZCgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxP
YmplY3QsIHNjb3BlLCAiVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBm
cm9tIHRoZSB2aWV3Il9zKTsKIAogICAgIHVuc2lnbmVkIGJ5dGVMZW5ndGggPSBkYXRhVmlldy0+
bGVuZ3RoKCk7CkBAIC0yMzUsNyArMjM1LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGRh
dGFWaWV3UHJvdG9HZQogICAgIEpTRGF0YVZpZXcqIHZpZXcgPSBqc0R5bmFtaWNDYXN0PEpTRGF0
YVZpZXcqPih2bSwgY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7CiAgICAgaWYgKCF2aWV3KQogICAg
ICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiRGF0YVZp
ZXcucHJvdG90eXBlLmJ5dGVMZW5ndGggZXhwZWN0cyB8dGhpc3wgdG8gYmUgYSBEYXRhVmlldyBv
YmplY3QiKTsKLSAgICBpZiAodmlldy0+aXNOZXV0ZXJlZCgpKQorICAgIGlmICh2aWV3LT5pc0Rl
dGFjaGVkKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUsICJVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhl
IHZpZXciX3MpOwogCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcih2aWV3LT5s
ZW5ndGgoKSkpOwpAQCAtMjQ5LDcgKzI0OSw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihk
YXRhVmlld1Byb3RvR2UKICAgICBKU0RhdGFWaWV3KiB2aWV3ID0ganNEeW5hbWljQ2FzdDxKU0Rh
dGFWaWV3Kj4odm0sIGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwogICAgIGlmICghdmlldykKICAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgIkRhdGFW
aWV3LnByb3RvdHlwZS5ieXRlT2Zmc2V0IGV4cGVjdHMgfHRoaXN8IHRvIGJlIGEgRGF0YVZpZXcg
b2JqZWN0Iik7Ci0gICAgaWYgKHZpZXctPmlzTmV1dGVyZWQoKSkKKyAgICBpZiAodmlldy0+aXNE
ZXRhY2hlZCgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3Qs
IHNjb3BlLCAiVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRo
ZSB2aWV3Il9zKTsKIAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIodmlldy0+
Ynl0ZU9mZnNldCgpKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dl
bmVyaWNUeXBlZEFycmF5Vmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgJKHJldmlzaW9uIDI2OTMyOCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE3MSw3ICsxNzEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHR5cGVu
YW1lIEFkYXB0b3I6OlR5cGUgdmFsdWUgPSB0b05hdGl2ZUZyb21WYWx1ZTxBZGFwdG9yPihnbG9i
YWxPYmplY3QsIGpzVmFsdWUpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBm
YWxzZSk7CiAKLSAgICAgICAgaWYgKGlzTmV1dGVyZWQoKSB8fCBpID49IG1fbGVuZ3RoKQorICAg
ICAgICBpZiAoaXNEZXRhY2hlZCgpIHx8IGkgPj0gbV9sZW5ndGgpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICAgICAgc2V0SW5kZXhRdWlja2x5VG9OYXRpdmVWYWx1ZShpLCB2YWx1
ZSk7CkBAIC0xODQsNyArMTg0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzb3J0KCkKICAgICB7
Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKCFpc05ldXRlcmVkKCkpOworICAgICAgICBSRUxFQVNF
X0FTU0VSVCghaXNEZXRhY2hlZCgpKTsKICAgICAgICAgc3dpdGNoIChBZGFwdG9yOjp0eXBlVmFs
dWUpIHsKICAgICAgICAgY2FzZSBUeXBlRmxvYXQzMjoKICAgICAgICAgICAgIHNvcnRGbG9hdDxp
bnQzMl90PigpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmlj
VHlwZWRBcnJheVZpZXdJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmgJKHJldmlzaW9uIDI2
OTMyOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3SW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsNyArMTYzLDcgQEAgYm9vbCBK
U0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6cwogICAgIHVuc2lnbmVkIG90aGVyT2Zm
c2V0LCB1bnNpZ25lZCBsZW5ndGgsIENvcHlUeXBlIHR5cGUpCiB7CiAgICAgLy8gSGFuZGxlIHRo
ZSBoaWxhcmlvdXMgY2FzZTogdGhlIGFjdCBvZiBnZXR0aW5nIHRoZSBsZW5ndGggY291bGQgaGF2
ZSByZXN1bHRlZAotICAgIC8vIGluIG5ldXRlcmluZy4gV2VsbCwgbm8uIFRoYXQnbGwgbmV2ZXIg
aGFwcGVuIGJlY2F1c2UgdGhlcmUgY2Fubm90IGJlCisgICAgLy8gaW4gZGV0YWNoaW5nLiBXZWxs
LCBuby4gVGhhdCdsbCBuZXZlciBoYXBwZW4gYmVjYXVzZSB0aGVyZSBjYW5ub3QgYmUKICAgICAv
LyBzaWRlLWVmZmVjdHMgb24gZ2V0dGluZyB0aGUgbGVuZ3RoIG9mIGEgdHlwZWQgYXJyYXkuIEJ1
dCBwcmVkaWN0aW5nIHdoZXJlIHRoZXJlCiAgICAgLy8gYXJlLCBvciBhcmVuJ3QsIHNpZGUtZWZm
ZWN0cyBpcyBhIGZvb2wncyBnYW1lIHNvIHdlIHJlc29ydCB0byB0aGlzIGNoZWFwCiAgICAgLy8g
Y2hlY2suIFdvcnN0IGNhc2UsIGlmIHdlJ3JlIHdyb25nLCBwZW9wbGUgc3RhcnQgc2VlaW5nIGxl
c3MgdGhpbmdzIGdldCBjb3BpZWQKQEAgLTMwMyw3ICszMDMsNyBAQCBib29sIEpTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3PEFkYXB0b3I+OjpzCiAgICAgICAgICAgICBib29sIHN1Y2Nlc3MgPSBzZXRJ
bmRleChnbG9iYWxPYmplY3QsIG9mZnNldCArIGksIHZhbHVlKTsKICAgICAgICAgICAgIEVYQ0VQ
VElPTl9BU1NFUlQoIXNjb3BlLmV4Y2VwdGlvbigpIHx8ICFzdWNjZXNzKTsKICAgICAgICAgICAg
IGlmICghc3VjY2VzcykgewotICAgICAgICAgICAgICAgIGlmIChpc05ldXRlcmVkKCkpCisgICAg
ICAgICAgICAgICAgaWYgKGlzRGV0YWNoZWQoKSkKICAgICAgICAgICAgICAgICAgICAgdGhyb3dU
eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdHlwZWRBcnJheUJ1ZmZlckhhc0JlZW5EZXRh
Y2hlZEVycm9yTWVzc2FnZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICAgICAgfQpAQCAtNDM3LDcgKzQzNyw3IEBAIGJvb2wgSlNHZW5lcmljVHlwZWRBcnJheVZpZXc8
QWRhcHRvcj46OmcKIHsKICAgICBKU0dlbmVyaWNUeXBlZEFycmF5VmlldyogdGhpc09iamVjdCA9
IGpzQ2FzdDxKU0dlbmVyaWNUeXBlZEFycmF5Vmlldyo+KG9iamVjdCk7CiAKLSAgICBpZiAodGhp
c09iamVjdC0+aXNOZXV0ZXJlZCgpIHx8ICF0aGlzT2JqZWN0LT5jYW5HZXRJbmRleFF1aWNrbHko
cHJvcGVydHlOYW1lKSkKKyAgICBpZiAodGhpc09iamVjdC0+aXNEZXRhY2hlZCgpIHx8ICF0aGlz
T2JqZWN0LT5jYW5HZXRJbmRleFF1aWNrbHkocHJvcGVydHlOYW1lKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCB0aGlzT2JqZWN0LT5nZXRJbmRleFF1aWNr
bHkocHJvcGVydHlOYW1lKSk7CkBAIC00NTgsNyArNDU4LDcgQEAgYm9vbCBKU0dlbmVyaWNUeXBl
ZEFycmF5VmlldzxBZGFwdG9yPjo6ZAogewogICAgIC8vIEludGVnZXItaW5kZXhlZCBlbGVtZW50
cyBjYW4ndCBiZSBkZWxldGVkLCBzbyB3ZSBtdXN0IHJldHVybiBmYWxzZSB3aGVuIHRoZSBpbmRl
eCBpcyB2YWxpZC4KICAgICBKU0dlbmVyaWNUeXBlZEFycmF5VmlldyogdGhpc09iamVjdCA9IGpz
Q2FzdDxKU0dlbmVyaWNUeXBlZEFycmF5Vmlldyo+KGNlbGwpOwotICAgIHJldHVybiB0aGlzT2Jq
ZWN0LT5pc05ldXRlcmVkKCkgfHwgcHJvcGVydHlOYW1lID49IHRoaXNPYmplY3QtPm1fbGVuZ3Ro
OworICAgIHJldHVybiB0aGlzT2JqZWN0LT5pc0RldGFjaGVkKCkgfHwgcHJvcGVydHlOYW1lID49
IHRoaXNPYmplY3QtPm1fbGVuZ3RoOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBBZGFwdG9yPgpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZp
ZXdQcm90b3R5cGVGdW5jdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oCShy
ZXZpc2lvbiAyNjkzMjgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVy
aWNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZUZ1bmN0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC03
NSw3ICs3NSw3IEBAIGlubGluZSBKU0FycmF5QnVmZmVyVmlldyogc3BlY2llc0NvbnN0cnUKICAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCF2aWV3
LT5pc05ldXRlcmVkKCkpCisgICAgICAgIGlmICghdmlldy0+aXNEZXRhY2hlZCgpKQogICAgICAg
ICAgICAgcmV0dXJuIHZpZXc7CiAKICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0
LCBzY29wZSwgdHlwZWRBcnJheUJ1ZmZlckhhc0JlZW5EZXRhY2hlZEVycm9yTWVzc2FnZSk7CkBA
IC0xMjAsNyArMTIwLDcgQEAgQUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSBnZW5lcmljVHlw
ZQogICAgIH0gZWxzZQogICAgICAgICBvZmZzZXQgPSAwOwogCi0gICAgaWYgKFVOTElLRUxZKHRo
aXNPYmplY3QtPmlzTmV1dGVyZWQoKSkpCisgICAgaWYgKFVOTElLRUxZKHRoaXNPYmplY3QtPmlz
RGV0YWNoZWQoKSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVj
dCwgc2NvcGUsIHR5cGVkQXJyYXlCdWZmZXJIYXNCZWVuRGV0YWNoZWRFcnJvck1lc3NhZ2UpOwog
CiAgICAgSlNPYmplY3QqIHNvdXJjZUFycmF5ID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVu
dCgwKS50b09iamVjdChnbG9iYWxPYmplY3QpOwpAQCAtMTI5LDcgKzEyOSw3IEBAIEFMV0FZU19J
TkxJTkUgRW5jb2RlZEpTVmFsdWUgZ2VuZXJpY1R5cGUKICAgICB1bnNpZ25lZCBsZW5ndGg7CiAg
ICAgaWYgKGlzVHlwZWRWaWV3KHNvdXJjZUFycmF5LT5jbGFzc0luZm8odm0pLT50eXBlZEFycmF5
U3RvcmFnZVR5cGUpKSB7CiAgICAgICAgIEpTQXJyYXlCdWZmZXJWaWV3KiBzb3VyY2VWaWV3ID0g
anNDYXN0PEpTQXJyYXlCdWZmZXJWaWV3Kj4oc291cmNlQXJyYXkpOwotICAgICAgICBpZiAoVU5M
SUtFTFkoc291cmNlVmlldy0+aXNOZXV0ZXJlZCgpKSkKKyAgICAgICAgaWYgKFVOTElLRUxZKHNv
dXJjZVZpZXctPmlzRGV0YWNoZWQoKSkpCiAgICAgICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0eXBlZEFycmF5QnVmZmVySGFzQmVlbkRldGFjaGVk
RXJyb3JNZXNzYWdlKTsKIAogICAgICAgICBsZW5ndGggPSBqc0Nhc3Q8SlNBcnJheUJ1ZmZlclZp
ZXcqPihzb3VyY2VBcnJheSktPmxlbmd0aCgpOwpAQCAtMTUzLDcgKzE1Myw3IEBAIEFMV0FZU19J
TkxJTkUgRW5jb2RlZEpTVmFsdWUgZ2VuZXJpY1R5cGUKIAogICAgIC8vIDIyLjIuMy41CiAgICAg
Vmlld0NsYXNzKiB0aGlzT2JqZWN0ID0ganNDYXN0PFZpZXdDbGFzcyo+KGNhbGxGcmFtZS0+dGhp
c1ZhbHVlKCkpOwotICAgIGlmICh0aGlzT2JqZWN0LT5pc05ldXRlcmVkKCkpCisgICAgaWYgKHRo
aXNPYmplY3QtPmlzRGV0YWNoZWQoKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSwgdHlwZWRBcnJheUJ1ZmZlckhhc0JlZW5EZXRhY2hlZEVycm9y
TWVzc2FnZSk7CiAKICAgICBsb25nIGxlbmd0aCA9IHRoaXNPYmplY3QtPmxlbmd0aCgpOwpAQCAt
MTY5LDcgKzE2OSw3IEBAIEFMV0FZU19JTkxJTkUgRW5jb2RlZEpTVmFsdWUgZ2VuZXJpY1R5cGUK
IAogICAgIGxvbmcgY291bnQgPSBzdGQ6Om1pbihsZW5ndGggLSBzdGQ6Om1heCh0bywgZnJvbSks
IGZpbmFsIC0gZnJvbSk7CiAKLSAgICBpZiAodGhpc09iamVjdC0+aXNOZXV0ZXJlZCgpKQorICAg
IGlmICh0aGlzT2JqZWN0LT5pc0RldGFjaGVkKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHR5cGVkQXJyYXlCdWZmZXJIYXNCZWVuRGV0YWNo
ZWRFcnJvck1lc3NhZ2UpOwogCiAgICAgdHlwZW5hbWUgVmlld0NsYXNzOjpFbGVtZW50VHlwZSog
YXJyYXkgPSB0aGlzT2JqZWN0LT50eXBlZFZlY3RvcigpOwpAQCAtMTg0LDcgKzE4NCw3IEBAIEFM
V0FZU19JTkxJTkUgRW5jb2RlZEpTVmFsdWUgZ2VuZXJpY1R5cGUKICAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBWaWV3Q2xhc3MqIHRoaXNPYmplY3QgPSBq
c0Nhc3Q8Vmlld0NsYXNzKj4oY2FsbEZyYW1lLT50aGlzVmFsdWUoKSk7Ci0gICAgaWYgKHRoaXNP
YmplY3QtPmlzTmV1dGVyZWQoKSkKKyAgICBpZiAodGhpc09iamVjdC0+aXNEZXRhY2hlZCgpKQog
ICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0eXBl
ZEFycmF5QnVmZmVySGFzQmVlbkRldGFjaGVkRXJyb3JNZXNzYWdlKTsKIAogICAgIHVuc2lnbmVk
IGxlbmd0aCA9IHRoaXNPYmplY3QtPmxlbmd0aCgpOwpAQCAtMTk3LDcgKzE5Nyw3IEBAIEFMV0FZ
U19JTkxJTkUgRW5jb2RlZEpTVmFsdWUgZ2VuZXJpY1R5cGUKICAgICB1bnNpZ25lZCBpbmRleCA9
IGFyZ3VtZW50Q2xhbXBlZEluZGV4RnJvbVN0YXJ0T3JFbmQoZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUtPmFyZ3VtZW50KDEpLCBsZW5ndGgpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IGVuY29kZWRKU1ZhbHVlKCkpOwogCi0gICAgaWYgKHRoaXNPYmplY3QtPmlzTmV1dGVyZWQoKSkK
KyAgICBpZiAodGhpc09iamVjdC0+aXNEZXRhY2hlZCgpKQogICAgICAgICByZXR1cm4gdGhyb3dW
TVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0eXBlZEFycmF5QnVmZmVySGFzQmVlbkRl
dGFjaGVkRXJyb3JNZXNzYWdlKTsKIAogICAgIHR5cGVuYW1lIFZpZXdDbGFzczo6RWxlbWVudFR5
cGUqIGFycmF5ID0gdGhpc09iamVjdC0+dHlwZWRWZWN0b3IoKTsKQEAgLTIwNiw3ICsyMDYsNyBA
QCBBTFdBWVNfSU5MSU5FIEVuY29kZWRKU1ZhbHVlIGdlbmVyaWNUeXBlCiAgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGZhbHNlKSk7CiAKICAgICBzY29wZS5hc3NlcnRO
b0V4Y2VwdGlvbigpOwotICAgIFJFTEVBU0VfQVNTRVJUKCF0aGlzT2JqZWN0LT5pc05ldXRlcmVk
KCkpOworICAgIFJFTEVBU0VfQVNTRVJUKCF0aGlzT2JqZWN0LT5pc0RldGFjaGVkKCkpOwogCiAg
ICAgaWYgKHN0ZDo6aXNuYW4oc3RhdGljX2Nhc3Q8ZG91YmxlPigqdGFyZ2V0T3B0aW9uKSkpIHsK
ICAgICAgICAgZm9yICg7IGluZGV4IDwgbGVuZ3RoOyArK2luZGV4KSB7CkBAIC0yMzAsNyArMjMw
LDcgQEAgQUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSBnZW5lcmljVHlwZQogCiAgICAgLy8g
MjIuMi4zLjEzCiAgICAgVmlld0NsYXNzKiB0aGlzT2JqZWN0ID0ganNDYXN0PFZpZXdDbGFzcyo+
KGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwotICAgIGlmICh0aGlzT2JqZWN0LT5pc05ldXRlcmVk
KCkpCisgICAgaWYgKHRoaXNPYmplY3QtPmlzRGV0YWNoZWQoKSkKICAgICAgICAgcmV0dXJuIHRo
cm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdHlwZWRBcnJheUJ1ZmZlckhhc0Jl
ZW5EZXRhY2hlZEVycm9yTWVzc2FnZSk7CiAKICAgICB1bnNpZ25lZCBsZW5ndGggPSB0aGlzT2Jq
ZWN0LT5sZW5ndGgoKTsKQEAgLTI0Miw3ICsyNDIsNyBAQCBBTFdBWVNfSU5MSU5FIEVuY29kZWRK
U1ZhbHVlIGdlbmVyaWNUeXBlCiAgICAgdW5zaWduZWQgaW5kZXggPSBhcmd1bWVudENsYW1wZWRJ
bmRleEZyb21TdGFydE9yRW5kKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLT5hcmd1bWVudCgxKSwg
bGVuZ3RoKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgp
KTsKIAotICAgIGlmICh0aGlzT2JqZWN0LT5pc05ldXRlcmVkKCkpCisgICAgaWYgKHRoaXNPYmpl
Y3QtPmlzRGV0YWNoZWQoKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFs
T2JqZWN0LCBzY29wZSwgdHlwZWRBcnJheUJ1ZmZlckhhc0JlZW5EZXRhY2hlZEVycm9yTWVzc2Fn
ZSk7CiAKICAgICB0eXBlbmFtZSBWaWV3Q2xhc3M6OkVsZW1lbnRUeXBlKiBhcnJheSA9IHRoaXNP
YmplY3QtPnR5cGVkVmVjdG9yKCk7CkBAIC0yNTAsNyArMjUwLDcgQEAgQUxXQVlTX0lOTElORSBF
bmNvZGVkSlNWYWx1ZSBnZW5lcmljVHlwZQogICAgIGlmICghdGFyZ2V0T3B0aW9uKQogICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKC0xKSk7CiAgICAgc2NvcGUuYXNzZXJ0
Tm9FeGNlcHRpb24oKTsKLSAgICBSRUxFQVNFX0FTU0VSVCghdGhpc09iamVjdC0+aXNOZXV0ZXJl
ZCgpKTsKKyAgICBSRUxFQVNFX0FTU0VSVCghdGhpc09iamVjdC0+aXNEZXRhY2hlZCgpKTsKIAog
ICAgIGZvciAoOyBpbmRleCA8IGxlbmd0aDsgKytpbmRleCkgewogICAgICAgICBpZiAoYXJyYXlb
aW5kZXhdID09IHRhcmdldE9wdGlvbikKQEAgLTI2Niw3ICsyNjYsNyBAQCBBTFdBWVNfSU5MSU5F
IEVuY29kZWRKU1ZhbHVlIGdlbmVyaWNUeXBlCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwogCiAgICAgVmlld0NsYXNzKiB0aGlzT2JqZWN0ID0ganNDYXN0PFZpZXdD
bGFzcyo+KGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwotICAgIGlmICh0aGlzT2JqZWN0LT5pc05l
dXRlcmVkKCkpCisgICAgaWYgKHRoaXNPYmplY3QtPmlzRGV0YWNoZWQoKSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdHlwZWRBcnJheUJ1ZmZl
ckhhc0JlZW5EZXRhY2hlZEVycm9yTWVzc2FnZSk7CiAKICAgICAvLyAyMi4yLjMuMTQKQEAgLTI5
Miw3ICsyOTIsNyBAQCBBTFdBWVNfSU5MSU5FIEVuY29kZWRKU1ZhbHVlIGdlbmVyaWNUeXBlCiAg
ICAgSlNTdHJpbmcqIHNlcGFyYXRvclN0cmluZyA9IHNlcGFyYXRvclZhbHVlLnRvU3RyaW5nKGds
b2JhbE9iamVjdCk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFs
dWUoKSk7CiAKLSAgICBpZiAodGhpc09iamVjdC0+aXNOZXV0ZXJlZCgpKQorICAgIGlmICh0aGlz
T2JqZWN0LT5pc0RldGFjaGVkKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGds
b2JhbE9iamVjdCwgc2NvcGUsIHR5cGVkQXJyYXlCdWZmZXJIYXNCZWVuRGV0YWNoZWRFcnJvck1l
c3NhZ2UpOwogICAgIGF1dG8gdmlld1dpdGhTdHJpbmcgPSBzZXBhcmF0b3JTdHJpbmctPnZpZXdX
aXRoVW5kZXJseWluZ1N0cmluZyhnbG9iYWxPYmplY3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwpAQCAtMzA2LDcgKzMwNiw3IEBAIEFMV0FZU19J
TkxJTkUgRW5jb2RlZEpTVmFsdWUgZ2VuZXJpY1R5cGUKIAogICAgIC8vIDIyLjIuMy4xNgogICAg
IFZpZXdDbGFzcyogdGhpc09iamVjdCA9IGpzQ2FzdDxWaWV3Q2xhc3MqPihjYWxsRnJhbWUtPnRo
aXNWYWx1ZSgpKTsKLSAgICBpZiAodGhpc09iamVjdC0+aXNOZXV0ZXJlZCgpKQorICAgIGlmICh0
aGlzT2JqZWN0LT5pc0RldGFjaGVkKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUsIHR5cGVkQXJyYXlCdWZmZXJIYXNCZWVuRGV0YWNoZWRFcnJv
ck1lc3NhZ2UpOwogCiAgICAgdW5zaWduZWQgbGVuZ3RoID0gdGhpc09iamVjdC0+bGVuZ3RoKCk7
CkBAIC0zMzAsNyArMzMwLDcgQEAgQUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSBnZW5lcmlj
VHlwZQogICAgICAgICAgICAgaW5kZXggPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZnJvbURvdWJs
ZSk7CiAgICAgfQogCi0gICAgaWYgKHRoaXNPYmplY3QtPmlzTmV1dGVyZWQoKSkKKyAgICBpZiAo
dGhpc09iamVjdC0+aXNEZXRhY2hlZCgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCB0eXBlZEFycmF5QnVmZmVySGFzQmVlbkRldGFjaGVkRXJy
b3JNZXNzYWdlKTsKIAogICAgIGF1dG8gdGFyZ2V0T3B0aW9uID0gVmlld0NsYXNzOjp0b0FkYXB0
b3JOYXRpdmVGcm9tVmFsdWVXaXRob3V0Q29lcmNpb24odmFsdWVUb0ZpbmQpOwpAQCAtMzM5LDcg
KzMzOSw3IEBAIEFMV0FZU19JTkxJTkUgRW5jb2RlZEpTVmFsdWUgZ2VuZXJpY1R5cGUKIAogICAg
IHR5cGVuYW1lIFZpZXdDbGFzczo6RWxlbWVudFR5cGUqIGFycmF5ID0gdGhpc09iamVjdC0+dHlw
ZWRWZWN0b3IoKTsKICAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOwotICAgIFJFTEVBU0Vf
QVNTRVJUKCF0aGlzT2JqZWN0LT5pc05ldXRlcmVkKCkpOworICAgIFJFTEVBU0VfQVNTRVJUKCF0
aGlzT2JqZWN0LT5pc0RldGFjaGVkKCkpOwogCiAgICAgZm9yICg7IGluZGV4ID49IDA7IC0taW5k
ZXgpIHsKICAgICAgICAgaWYgKGFycmF5W2luZGV4XSA9PSB0YXJnZXRPcHRpb24pCkBAIC0zOTMs
NyArMzkzLDcgQEAgQUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSBnZW5lcmljVHlwZQogCiAg
ICAgLy8gMjIuMi4zLjIxCiAgICAgVmlld0NsYXNzKiB0aGlzT2JqZWN0ID0ganNDYXN0PFZpZXdD
bGFzcyo+KGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwotICAgIGlmICh0aGlzT2JqZWN0LT5pc05l
dXRlcmVkKCkpCisgICAgaWYgKHRoaXNPYmplY3QtPmlzRGV0YWNoZWQoKSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdHlwZWRBcnJheUJ1ZmZl
ckhhc0JlZW5EZXRhY2hlZEVycm9yTWVzc2FnZSk7CiAKICAgICB0eXBlbmFtZSBWaWV3Q2xhc3M6
OkVsZW1lbnRUeXBlKiBhcnJheSA9IHRoaXNPYmplY3QtPnR5cGVkVmVjdG9yKCk7CkBAIC00MTAs
NyArNDEwLDcgQEAgQUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSBnZW5lcmljVHlwZQogCiAg
ICAgLy8gMjIuMi4zLjI1CiAgICAgVmlld0NsYXNzKiB0aGlzT2JqZWN0ID0ganNDYXN0PFZpZXdD
bGFzcyo+KGNhbGxGcmFtZS0+YXJndW1lbnQoMCkpOwotICAgIGlmICh0aGlzT2JqZWN0LT5pc05l
dXRlcmVkKCkpCisgICAgaWYgKHRoaXNPYmplY3QtPmlzRGV0YWNoZWQoKSkKICAgICAgICAgcmV0
dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdHlwZWRBcnJheUJ1ZmZl
ckhhc0JlZW5EZXRhY2hlZEVycm9yTWVzc2FnZSk7CiAKICAgICB0aGlzT2JqZWN0LT5zb3J0KCk7
CkBAIC00MjYsNyArNDI2LDcgQEAgQUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSBnZW5lcmlj
VHlwZQogICAgIC8vIDIyLjIuMy4yNgogCiAgICAgVmlld0NsYXNzKiB0aGlzT2JqZWN0ID0ganND
YXN0PFZpZXdDbGFzcyo+KGNhbGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwotICAgIGlmICh0aGlzT2Jq
ZWN0LT5pc05ldXRlcmVkKCkpCisgICAgaWYgKHRoaXNPYmplY3QtPmlzRGV0YWNoZWQoKSkKICAg
ICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdHlwZWRB
cnJheUJ1ZmZlckhhc0JlZW5EZXRhY2hlZEVycm9yTWVzc2FnZSk7CiAKICAgICB1bnNpZ25lZCB0
aGlzTGVuZ3RoID0gdGhpc09iamVjdC0+bGVuZ3RoKCk7CkBAIC00MzYsNyArNDM2LDcgQEAgQUxX
QVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSBnZW5lcmljVHlwZQogICAgIHVuc2lnbmVkIGVuZCA9
IGFyZ3VtZW50Q2xhbXBlZEluZGV4RnJvbVN0YXJ0T3JFbmQoZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUtPmFyZ3VtZW50KDEpLCB0aGlzTGVuZ3RoLCB0aGlzTGVuZ3RoKTsKICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAotICAgIGlmICh0aGlzT2JqZWN0
LT5pc05ldXRlcmVkKCkpCisgICAgaWYgKHRoaXNPYmplY3QtPmlzRGV0YWNoZWQoKSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdHlwZWRBcnJh
eUJ1ZmZlckhhc0JlZW5EZXRhY2hlZEVycm9yTWVzc2FnZSk7CiAKICAgICAvLyBDbGFtcCBlbmQg
dG8gYmVnaW4uCkBAIC00NTUsOCArNDU1LDggQEAgQUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1
ZSBnZW5lcmljVHlwZQogICAgIH0pOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVu
Y29kZWRKU1ZhbHVlKCkpOwogCi0gICAgQVNTRVJUKCFyZXN1bHQtPmlzTmV1dGVyZWQoKSk7Ci0g
ICAgaWYgKHRoaXNPYmplY3QtPmlzTmV1dGVyZWQoKSkKKyAgICBBU1NFUlQoIXJlc3VsdC0+aXNE
ZXRhY2hlZCgpKTsKKyAgICBpZiAodGhpc09iamVjdC0+aXNEZXRhY2hlZCgpKQogICAgICAgICBy
ZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0eXBlZEFycmF5QnVm
ZmVySGFzQmVlbkRldGFjaGVkRXJyb3JNZXNzYWdlKTsKIAogICAgIC8vIFdlIHJldHVybiBlYXJs
eSBoZXJlIHNpbmNlIHdlIGRvbid0IGFsbG9jYXRlIGEgYmFja2luZyBzdG9yZSBpZiBsZW5ndGgg
aXMgMCBhbmQgbWVtbW92ZSBkb2VzIG5vdCBsaWtlIG51bGxwdHJzCkBAIC01MTcsNyArNTE3LDcg
QEAgQUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSBnZW5lcmljVHlwZQogICAgIC8vIDIyLjIu
My4yMwogCiAgICAgVmlld0NsYXNzKiB0aGlzT2JqZWN0ID0ganNDYXN0PFZpZXdDbGFzcyo+KGNh
bGxGcmFtZS0+dGhpc1ZhbHVlKCkpOwotICAgIGlmICh0aGlzT2JqZWN0LT5pc05ldXRlcmVkKCkp
CisgICAgaWYgKHRoaXNPYmplY3QtPmlzRGV0YWNoZWQoKSkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdHlwZWRBcnJheUJ1ZmZlckhhc0JlZW5E
ZXRhY2hlZEVycm9yTWVzc2FnZSk7CiAKICAgICAvLyBHZXQgdGhlIGxlbmd0aCBoZXJlOyBsYXRl
ciBhc3NlcnQgdGhhdCB0aGUgbGVuZ3RoIGRpZG4ndCBjaGFuZ2UuCkBAIC01MzMsNyArNTMzLDcg
QEAgQUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1ZSBnZW5lcmljVHlwZQogICAgIHVuc2lnbmVk
IGVuZCA9IGFyZ3VtZW50Q2xhbXBlZEluZGV4RnJvbVN0YXJ0T3JFbmQoZ2xvYmFsT2JqZWN0LCBj
YWxsRnJhbWUtPmFyZ3VtZW50KDEpLCB0aGlzTGVuZ3RoLCB0aGlzTGVuZ3RoKTsKICAgICBzY29w
ZS5hc3NlcnROb0V4Y2VwdGlvbigpOwogCi0gICAgUkVMRUFTRV9BU1NFUlQoIXRoaXNPYmplY3Qt
PmlzTmV1dGVyZWQoKSk7CisgICAgUkVMRUFTRV9BU1NFUlQoIXRoaXNPYmplY3QtPmlzRGV0YWNo
ZWQoKSk7CiAKICAgICAvLyBDbGFtcCBlbmQgdG8gYmVnaW4uCiAgICAgZW5kID0gc3RkOjptYXgo
YmVnaW4sIGVuZCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2Jh
bE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNHbG9iYWxPYmplY3QuY3BwCShyZXZpc2lvbiAyNjkzMjgpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMTQs
OCArMTIxNCw4IEBAIGNhcGl0YWxOYW1lICMjIENvbnN0cnVjdG9yKiBsb3dlck5hbWUgIyMKICAg
ICBtX2xpbmtUaW1lQ29uc3RhbnRzW3N0YXRpY19jYXN0PHVuc2lnbmVkPihMaW5rVGltZUNvbnN0
YW50Ojppc1R5cGVkQXJyYXlWaWV3KV0uaW5pdExhdGVyKFtdIChjb25zdCBJbml0aWFsaXplcjxK
U0NlbGw+JiBpbml0KSB7CiAgICAgICAgICAgICBpbml0LnNldChKU0Z1bmN0aW9uOjpjcmVhdGUo
aW5pdC52bSwganNDYXN0PEpTR2xvYmFsT2JqZWN0Kj4oaW5pdC5vd25lciksIDAsIFN0cmluZygp
LCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNUeXBlZEFycmF5VmlldywgSXNUeXBlZEFycmF5
Vmlld0ludHJpbnNpYykpOwogICAgICAgICB9KTsKLSAgICBtX2xpbmtUaW1lQ29uc3RhbnRzW3N0
YXRpY19jYXN0PHVuc2lnbmVkPihMaW5rVGltZUNvbnN0YW50Ojppc05ldXRlcmVkKV0uaW5pdExh
dGVyKFtdIChjb25zdCBJbml0aWFsaXplcjxKU0NlbGw+JiBpbml0KSB7Ci0gICAgICAgICAgICBp
bml0LnNldChKU0Z1bmN0aW9uOjpjcmVhdGUoaW5pdC52bSwganNDYXN0PEpTR2xvYmFsT2JqZWN0
Kj4oaW5pdC5vd25lciksIDEsIFN0cmluZygpLCB0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNO
ZXV0ZXJlZCkpOworICAgIG1fbGlua1RpbWVDb25zdGFudHNbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KExpbmtUaW1lQ29uc3RhbnQ6OmlzRGV0YWNoZWQpXS5pbml0TGF0ZXIoW10gKGNvbnN0IEluaXRp
YWxpemVyPEpTQ2VsbD4mIGluaXQpIHsKKyAgICAgICAgICAgIGluaXQuc2V0KEpTRnVuY3Rpb246
OmNyZWF0ZShpbml0LnZtLCBqc0Nhc3Q8SlNHbG9iYWxPYmplY3QqPihpbml0Lm93bmVyKSwgMSwg
U3RyaW5nKCksIHR5cGVkQXJyYXlWaWV3UHJpdmF0ZUZ1bmNJc0RldGFjaGVkKSk7CiAgICAgICAg
IH0pOwogICAgIG1fbGlua1RpbWVDb25zdGFudHNbc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KExpbmtU
aW1lQ29uc3RhbnQ6OnR5cGVkQXJyYXlTdWJhcnJheUNyZWF0ZSldLmluaXRMYXRlcihbXSAoY29u
c3QgSW5pdGlhbGl6ZXI8SlNDZWxsPiYgaW5pdCkgewogICAgICAgICAgICAgaW5pdC5zZXQoSlNG
dW5jdGlvbjo6Y3JlYXRlKGluaXQudm0sIGpzQ2FzdDxKU0dsb2JhbE9iamVjdCo+KGluaXQub3du
ZXIpLCAwLCBTdHJpbmcoKSwgdHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY1N1YmFycmF5Q3JlYXRl
KSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3
UHJvdG90eXBlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBlLmNwcAkocmV2aXNpb24gMjY5MzI4KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTg1LDExICs4NSwxMSBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJ
T04odHlwZWRBcnJheVZpZXdQCiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4o
dmFsdWUuaXNDZWxsKCkgJiYgaXNUeXBlZFZpZXcodmFsdWUuYXNDZWxsKCktPmNsYXNzSW5mbyhn
bG9iYWxPYmplY3QtPnZtKCkpLT50eXBlZEFycmF5U3RvcmFnZVR5cGUpKSk7CiB9CiAKLUpTQ19E
RUZJTkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNOZXV0ZXJlZCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKK0pT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jSXNEZXRhY2hl
ZCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
IHsKICAgICBKU1ZhbHVlIGFyZ3VtZW50ID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudCgw
KTsKICAgICBBU1NFUlRfVU5VU0VEKGdsb2JhbE9iamVjdCwgYXJndW1lbnQuaXNDZWxsKCkgJiYg
aXNUeXBlZFZpZXcoYXJndW1lbnQuYXNDZWxsKCktPmNsYXNzSW5mbyhnbG9iYWxPYmplY3QtPnZt
KCkpLT50eXBlZEFycmF5U3RvcmFnZVR5cGUpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzQm9vbGVhbihqc0Nhc3Q8SlNBcnJheUJ1ZmZlclZpZXcqPihhcmd1bWVudCktPmlzTmV1dGVy
ZWQoKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGpzQ2FzdDxKU0Fy
cmF5QnVmZmVyVmlldyo+KGFyZ3VtZW50KS0+aXNEZXRhY2hlZCgpKSk7CiB9CiAKIEpTQ19ERUZJ
TkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVGdW5jTGVuZ3RoLCAoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQpAQCAtMTAyLDcg
KzEwMiw3IEBAIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1AKIAogICAg
IEpTQXJyYXlCdWZmZXJWaWV3KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTQXJyYXlCdWZmZXJWaWV3
Kj4oYXJndW1lbnQpOwogCi0gICAgaWYgKHRoaXNPYmplY3QtPmlzTmV1dGVyZWQoKSkKKyAgICBp
ZiAodGhpc09iamVjdC0+aXNEZXRhY2hlZCgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVF
cnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVl
biBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3Il9zKTsKIAogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNOdW1iZXIodGhpc09iamVjdC0+bGVuZ3RoKCkpKTsKQEAgLTEyNiw3ICsxMjYsNyBAQCBp
bmxpbmUgRW5jb2RlZEpTVmFsdWUgY3JlYXRlVHlwZWRBcnJheUl0CiAKICAgICBKU0FycmF5QnVm
ZmVyVmlldyogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0FycmF5QnVmZmVyVmlldyo+KGNhbGxGcmFt
ZS0+dGhpc1ZhbHVlKCkpOwogCi0gICAgaWYgKHRoaXNPYmplY3QtPmlzTmV1dGVyZWQoKSkKKyAg
ICBpZiAodGhpc09iamVjdC0+aXNEZXRhY2hlZCgpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5
cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCAiVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMg
YmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3Il9zKTsKIAogICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoSlNBcnJheUl0ZXJhdG9yOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdC0+YXJyYXlJdGVy
YXRvclN0cnVjdHVyZSgpLCB0aGlzT2JqZWN0LCBqc051bWJlcihzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oa2luZCkpKSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVk
QXJyYXlWaWV3UHJvdG90eXBlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNUeXBlZEFycmF5Vmlld1Byb3RvdHlwZS5oCShyZXZpc2lvbiAyNjkzMjgpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlWaWV3UHJvdG90eXBl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToKIH07CiAKIEpTQ19E
RUNMQVJFX0hPU1RfRlVOQ1RJT04odHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0lzVHlwZWRBcnJh
eVZpZXcpOwotSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBlZEFycmF5Vmlld1ByaXZhdGVG
dW5jSXNOZXV0ZXJlZCk7CitKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKHR5cGVkQXJyYXlWaWV3
UHJpdmF0ZUZ1bmNJc0RldGFjaGVkKTsKIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04odHlwZWRB
cnJheVZpZXdQcml2YXRlRnVuY1NvcnQpOwogSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTih0eXBl
ZEFycmF5Vmlld1ByaXZhdGVGdW5jTGVuZ3RoKTsKIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04o
dHlwZWRBcnJheVZpZXdQcml2YXRlRnVuY0dldE9yaWdpbmFsQ29uc3RydWN0b3IpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseUhlbHBlcnMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5SGVs
cGVycy5oCShyZXZpc2lvbiAyNjkzMjgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9q
cy9KU1dlYkFzc2VtYmx5SGVscGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw3ICs3Nyw3IEBA
IEFMV0FZU19JTkxJTkUgc3RkOjpwYWlyPGNvbnN0IHVpbnQ4X3QqLCAKICAgICAgICAgcmV0dXJu
IHsgbnVsbHB0ciwgMCB9OwogICAgIH0KIAotICAgIGlmIChhcnJheUJ1ZmZlclZpZXcgPyBhcnJh
eUJ1ZmZlclZpZXctPmlzTmV1dGVyZWQoKSA6IGFycmF5QnVmZmVyLT5pbXBsKCktPmlzTmV1dGVy
ZWQoKSkgeworICAgIGlmIChhcnJheUJ1ZmZlclZpZXcgPyBhcnJheUJ1ZmZlclZpZXctPmlzRGV0
YWNoZWQoKSA6IGFycmF5QnVmZmVyLT5pbXBsKCktPmlzRGV0YWNoZWQoKSkgewogICAgICAgICB0
aHJvd0V4Y2VwdGlvbihnbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIGNyZWF0ZVR5cGVFcnJvcihn
bG9iYWxPYmplY3QsCiAgICAgICAgICAgICAidW5kZXJseWluZyBUeXBlZEFycmF5IGhhcyBiZWVu
IGRldGF0Y2hlZCBmcm9tIHRoZSBBcnJheUJ1ZmZlciJfcywgZGVmYXVsdFNvdXJjZUFwcGVuZGVy
LCBydW50aW1lVHlwZUZvclZhbHVlKHZtLCB2YWx1ZSkpKTsKICAgICAgICAgcmV0dXJuIHsgbnVs
bHB0ciwgMCB9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3Nl
bWJseU1lbW9yeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
anMvSlNXZWJBc3NlbWJseU1lbW9yeS5jcHAJKHJldmlzaW9uIDI2OTMyOCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlNZW1vcnkuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTYsOSArMTE2LDggQEAgV2FzbTo6UGFnZUNvdW50IEpTV2ViQXNzZW1ibHlNZW1v
cnk6Omdybwogdm9pZCBKU1dlYkFzc2VtYmx5TWVtb3J5Ojpncm93U3VjY2Vzc0NhbGxiYWNrKFZN
JiB2bSwgV2FzbTo6UGFnZUNvdW50IG9sZFBhZ2VDb3VudCwgV2FzbTo6UGFnZUNvdW50IG5ld1Bh
Z2VDb3VudCkKIHsKICAgICAvLyBXZSBuZWVkIHRvIGNsZWFyIG91dCB0aGUgb2xkIGFycmF5IGJ1
ZmZlciBiZWNhdXNlIGl0IG1pZ2h0IG5vdyBiZSBwb2ludGluZyB0byBzdGFsZSBtZW1vcnkuCi0g
ICAgLy8gTmV1dGVyIHRoZSBvbGQgYXJyYXkuCiAgICAgaWYgKG1fYnVmZmVyKSB7Ci0gICAgICAg
IG1fYnVmZmVyLT5uZXV0ZXIodm0pOworICAgICAgICBtX2J1ZmZlci0+ZGV0YWNoKHZtKTsKICAg
ICAgICAgbV9idWZmZXIgPSBudWxscHRyOwogICAgICAgICBtX2J1ZmZlcldyYXBwZXIuY2xlYXIo
KTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjkzMjgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMyBAQAorMjAyMC0xMS0w
MyAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgbW9z
dCB1c2VzIG9mIHRoZSBwaHJhc2UgJ25ldXRlcicgZnJvbSB0aGUgdHJlZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NTM2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gQXJyYXlCdWZmZXIgdXNlIGNh
c2VzLCB0aGUgc3BlYyBoYXMgZ29uZSB3aXRoICJkZXRhY2hlZCIuCisKKyAgICAgICAgSW4gb3Ro
ZXIgY2FzZXMsIEkgcGlja2VkIHNvbWV0aGluZy4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVk
aW8vQXVkaW9CdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdWZmZXI6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlcjo6QXVkaW9CdWZmZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9CdWZmZXI6Omhhc0RldGFjaGVkQ2hhbm5lbEJ1ZmZlciBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlci5oOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JpcHRQcm9jZXNzb3JOb2RlOjppbml0aWFsaXplKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVTZXJp
YWxpemVyOjpkdW1wSWZUZXJtaW5hbCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2Ny
aXB0VmFsdWU6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9JbWFnZUJpdG1hcC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUJpdG1hcDo6Y3JlYXRlUHJvbWlzZSk6CisgICAgICAgICogaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpwdXRJbWFnZURhdGEpOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4SW1hZ2VTb3VyY2VIZWxwZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UE5HSW1hZ2VEZWNvZGVyOjpoZWFkZXJBdmFpbGFibGUp
OgorCiAyMDIwLTExLTAzICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29t
PgogCiAgICAgICAgIFtUZXh0dXJlTWFwcGVyXSBDcmFzaGVkIGluIFRleHR1cmVNYXBwZXJMYXll
cjo6cGFpbnRVc2luZ092ZXJsYXBSZWdpb25zCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyLmNwcAkocmV2aXNpb24gMjY5MzI4KQorKysgU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQwLDEyICs0MCwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZlB0cjxB
dWRpb0J1ZmZlcj4gQXVkaW9CdWZmZXI6OmNyZWF0ZSh1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxz
LCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMsIGZsb2F0IHNhbXBsZVJhdGUsIExlZ2FjeVByZXZlbnRO
ZXV0ZXJpbmcgcHJldmVudE5ldXRlcmluZykKK1JlZlB0cjxBdWRpb0J1ZmZlcj4gQXVkaW9CdWZm
ZXI6OmNyZWF0ZSh1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFt
ZXMsIGZsb2F0IHNhbXBsZVJhdGUsIExlZ2FjeVByZXZlbnREZXRhY2hpbmcgcHJldmVudERldGFj
aGluZykKIHsKICAgICBpZiAoIUJhc2VBdWRpb0NvbnRleHQ6OmlzU3VwcG9ydGVkU2FtcGxlUmF0
ZShzYW1wbGVSYXRlKSB8fCAhbnVtYmVyT2ZDaGFubmVscyB8fCBudW1iZXJPZkNoYW5uZWxzID4g
QXVkaW9Db250ZXh0OjptYXhOdW1iZXJPZkNoYW5uZWxzKCkgfHwgIW51bWJlck9mRnJhbWVzKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gYnVmZmVyID0gYWRvcHRSZWYoKm5l
dyBBdWRpb0J1ZmZlcihudW1iZXJPZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0
ZSwgcHJldmVudE5ldXRlcmluZykpOworICAgIGF1dG8gYnVmZmVyID0gYWRvcHRSZWYoKm5ldyBB
dWRpb0J1ZmZlcihudW1iZXJPZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSwg
cHJldmVudERldGFjaGluZykpOwogICAgIGlmICghYnVmZmVyLT5vcmlnaW5hbExlbmd0aCgpKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtODEsNyArODEsNyBAQCBSZWZQdHI8QXVkaW9C
dWZmZXI+IEF1ZGlvQnVmZmVyOjpjcmVhdGVGCiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXVk
aW9CdWZmZXIoKmJ1cykpOwogfQogCi1BdWRpb0J1ZmZlcjo6QXVkaW9CdWZmZXIodW5zaWduZWQg
bnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxlbmd0aCwgZmxvYXQgc2FtcGxlUmF0ZSwgTGVnYWN5
UHJldmVudE5ldXRlcmluZyBwcmV2ZW50TmV1dGVyaW5nKQorQXVkaW9CdWZmZXI6OkF1ZGlvQnVm
ZmVyKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBsZW5ndGgsIGZsb2F0IHNhbXBs
ZVJhdGUsIExlZ2FjeVByZXZlbnREZXRhY2hpbmcgcHJldmVudERldGFjaGluZykKICAgICA6IG1f
c2FtcGxlUmF0ZShzYW1wbGVSYXRlKQogICAgICwgbV9vcmlnaW5hbExlbmd0aChsZW5ndGgpCiB7
CkBAIC05NCw4ICs5NCw4IEBAIEF1ZGlvQnVmZmVyOjpBdWRpb0J1ZmZlcih1bnNpZ25lZCBudW1i
ZXIKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHByZXZlbnRO
ZXV0ZXJpbmcgPT0gTGVnYWN5UHJldmVudE5ldXRlcmluZzo6WWVzKQotICAgICAgICAgICAgY2hh
bm5lbERhdGFBcnJheS0+c2V0TmV1dGVyYWJsZShmYWxzZSk7CisgICAgICAgIGlmIChwcmV2ZW50
RGV0YWNoaW5nID09IExlZ2FjeVByZXZlbnREZXRhY2hpbmc6OlllcykKKyAgICAgICAgICAgIGNo
YW5uZWxEYXRhQXJyYXktPnNldERldGFjaGFibGUoZmFsc2UpOwogCiAgICAgICAgIG1fY2hhbm5l
bHMuYXBwZW5kKFdURk1vdmUoY2hhbm5lbERhdGFBcnJheSkpOwogICAgIH0KQEAgLTI0OCw3ICsy
NDgsNyBAQCBzaXplX3QgQXVkaW9CdWZmZXI6Om1lbW9yeUNvc3QoKSBjb25zdAogYm9vbCBBdWRp
b0J1ZmZlcjo6aGFzRGV0YWNoZWRDaGFubmVsQnVmZmVyKCkgY29uc3QKIHsKICAgICBmb3IgKGF1
dG8mIGNoYW5uZWwgOiBtX2NoYW5uZWxzKSB7Ci0gICAgICAgIGlmIChjaGFubmVsLT5pc05ldXRl
cmVkKCkpCisgICAgICAgIGlmIChjaGFubmVsLT5pc0RldGFjaGVkKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIuaAkocmV2aXNpb24gMjY5MzI4KQor
KysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC00Miw4ICs0Miw4IEBAIGNsYXNzIEF1ZGlvQnVzOwogCiBjbGFzcyBBdWRpb0J1
ZmZlciA6IHB1YmxpYyBSZWZDb3VudGVkPEF1ZGlvQnVmZmVyPiB7CiBwdWJsaWM6Ci0gICAgZW51
bSBjbGFzcyBMZWdhY3lQcmV2ZW50TmV1dGVyaW5nIDogYm9vbCB7IE5vLCBZZXMgfTsKLSAgICBz
dGF0aWMgUmVmUHRyPEF1ZGlvQnVmZmVyPiBjcmVhdGUodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVs
cywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1wbGVSYXRlLCBMZWdhY3lQcmV2ZW50
TmV1dGVyaW5nID0gTGVnYWN5UHJldmVudE5ldXRlcmluZzo6Tm8pOworICAgIGVudW0gY2xhc3Mg
TGVnYWN5UHJldmVudERldGFjaGluZyA6IGJvb2wgeyBObywgWWVzIH07CisgICAgc3RhdGljIFJl
ZlB0cjxBdWRpb0J1ZmZlcj4gY3JlYXRlKHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVf
dCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0ZSwgTGVnYWN5UHJldmVudERldGFjaGlu
ZyA9IExlZ2FjeVByZXZlbnREZXRhY2hpbmc6Ok5vKTsKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8
UmVmPEF1ZGlvQnVmZmVyPj4gY3JlYXRlKGNvbnN0IEF1ZGlvQnVmZmVyT3B0aW9ucyYpOwogICAg
IC8vIFJldHVybnMgbnVsbHB0ciBpZiBkYXRhIGlzIG5vdCBhIHZhbGlkIGF1ZGlvIGZpbGUuCiAg
ICAgc3RhdGljIFJlZlB0cjxBdWRpb0J1ZmZlcj4gY3JlYXRlRnJvbUF1ZGlvRmlsZURhdGEoY29u
c3Qgdm9pZCogZGF0YSwgc2l6ZV90IGRhdGFTaXplLCBib29sIG1peFRvTW9ubywgZmxvYXQgc2Ft
cGxlUmF0ZSk7CkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHZpc2l0Q2hhbm5l
bFdyYXBwZXJzKEpTQzo6U2xvdFZpc2l0b3ImKTsKICAgICAKIHByaXZhdGU6Ci0gICAgQXVkaW9C
dWZmZXIodW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IGxlbmd0aCwgZmxvYXQgc2Ft
cGxlUmF0ZSwgTGVnYWN5UHJldmVudE5ldXRlcmluZyA9IExlZ2FjeVByZXZlbnROZXV0ZXJpbmc6
Ok5vKTsKKyAgICBBdWRpb0J1ZmZlcih1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3Qg
bGVuZ3RoLCBmbG9hdCBzYW1wbGVSYXRlLCBMZWdhY3lQcmV2ZW50RGV0YWNoaW5nID0gTGVnYWN5
UHJldmVudERldGFjaGluZzo6Tm8pOwogICAgIGV4cGxpY2l0IEF1ZGlvQnVmZmVyKEF1ZGlvQnVz
Jik7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcAkocmV2aXNp
b24gMjY5MzI4KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9j
ZXNzb3JOb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTAsOSArOTAsOSBAQCB2b2lkIFNjcmlw
dFByb2Nlc3Nvck5vZGU6OmluaXRpYWxpemUoKQogICAgIC8vIENyZWF0ZSBkb3VibGUgYnVmZmVy
cyBvbiBib3RoIHRoZSBpbnB1dCBhbmQgb3V0cHV0IHNpZGVzLgogICAgIC8vIFRoZXNlIEF1ZGlv
QnVmZmVycyB3aWxsIGJlIGRpcmVjdGx5IGFjY2Vzc2VkIGluIHRoZSBtYWluIHRocmVhZCBieSBK
YXZhU2NyaXB0LgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAyOyArK2kpIHsKLSAgICAg
ICAgLy8gV2UgcHJldmVudCBuZXV0ZXJpbmcgdGhlIEF1ZGlvQnVmZmVycyBoZXJlIHNpbmNlIHdl
IHBhc3MgdGhvc2UgdG8gSlMgYW5kIHJldXNlIHRoZW0uCi0gICAgICAgIGF1dG8gaW5wdXRCdWZm
ZXIgPSBtX251bWJlck9mSW5wdXRDaGFubmVscyA/IEF1ZGlvQnVmZmVyOjpjcmVhdGUobV9udW1i
ZXJPZklucHV0Q2hhbm5lbHMsIGJ1ZmZlclNpemUoKSwgc2FtcGxlUmF0ZSwgQXVkaW9CdWZmZXI6
OkxlZ2FjeVByZXZlbnROZXV0ZXJpbmc6OlllcykgOiAwOwotICAgICAgICBhdXRvIG91dHB1dEJ1
ZmZlciA9IG1fbnVtYmVyT2ZPdXRwdXRDaGFubmVscyA/IEF1ZGlvQnVmZmVyOjpjcmVhdGUobV9u
dW1iZXJPZk91dHB1dENoYW5uZWxzLCBidWZmZXJTaXplKCksIHNhbXBsZVJhdGUsIEF1ZGlvQnVm
ZmVyOjpMZWdhY3lQcmV2ZW50TmV1dGVyaW5nOjpZZXMpIDogMDsKKyAgICAgICAgLy8gV2UgcHJl
dmVudCBkZXRhY2hpbmcgdGhlIEF1ZGlvQnVmZmVycyBoZXJlIHNpbmNlIHdlIHBhc3MgdGhvc2Ug
dG8gSlMgYW5kIHJldXNlIHRoZW0uCisgICAgICAgIGF1dG8gaW5wdXRCdWZmZXIgPSBtX251bWJl
ck9mSW5wdXRDaGFubmVscyA/IEF1ZGlvQnVmZmVyOjpjcmVhdGUobV9udW1iZXJPZklucHV0Q2hh
bm5lbHMsIGJ1ZmZlclNpemUoKSwgc2FtcGxlUmF0ZSwgQXVkaW9CdWZmZXI6OkxlZ2FjeVByZXZl
bnREZXRhY2hpbmc6OlllcykgOiAwOworICAgICAgICBhdXRvIG91dHB1dEJ1ZmZlciA9IG1fbnVt
YmVyT2ZPdXRwdXRDaGFubmVscyA/IEF1ZGlvQnVmZmVyOjpjcmVhdGUobV9udW1iZXJPZk91dHB1
dENoYW5uZWxzLCBidWZmZXJTaXplKCksIHNhbXBsZVJhdGUsIEF1ZGlvQnVmZmVyOjpMZWdhY3lQ
cmV2ZW50RGV0YWNoaW5nOjpZZXMpIDogMDsKIAogICAgICAgICBtX2lucHV0QnVmZmVycy5hcHBl
bmQoaW5wdXRCdWZmZXIpOwogICAgICAgICBtX291dHB1dEJ1ZmZlcnMuYXBwZW5kKG91dHB1dEJ1
ZmZlcik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0
VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5jcHAJKHJldmlzaW9uIDI2OTMyOCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExODUsNyArMTE4NSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoYXV0byogYXJyYXlCdWZmZXIgPSB0b1Bv
c3NpYmx5U2hhcmVkQXJyYXlCdWZmZXIodm0sIG9iaikpIHsKLSAgICAgICAgICAgICAgICBpZiAo
YXJyYXlCdWZmZXItPmlzTmV1dGVyZWQoKSkgeworICAgICAgICAgICAgICAgIGlmIChhcnJheUJ1
ZmZlci0+aXNEZXRhY2hlZCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGNvZGUgPSBTZXJpYWxp
emF0aW9uUmV0dXJuQ29kZTo6VmFsaWRhdGlvbkVycm9yOwogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgICB9CkBAIC0zODU5LDcgKzM4NTksNyBAQCBFeGNl
cHRpb25PcjxSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPj4gCiAjZW5kaWYKICAgICBmb3IgKGF1
dG8mIHRyYW5zZmVyYWJsZSA6IHRyYW5zZmVyTGlzdCkgewogICAgICAgICBpZiAoYXV0byBhcnJh
eUJ1ZmZlciA9IHRvUG9zc2libHlTaGFyZWRBcnJheUJ1ZmZlcih2bSwgdHJhbnNmZXJhYmxlLmdl
dCgpKSkgewotICAgICAgICAgICAgaWYgKGFycmF5QnVmZmVyLT5pc05ldXRlcmVkKCkpCisgICAg
ICAgICAgICBpZiAoYXJyYXlCdWZmZXItPmlzRGV0YWNoZWQoKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgRGF0YUNsb25lRXJyb3IgfTsKICAgICAgICAgICAgIGlmIChhcnJh
eUJ1ZmZlci0+aXNMb2NrZWQoKSkgewogICAgICAgICAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRt
YXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VCaXRtYXAuY3Bw
CShyZXZpc2lvbiAyNjkzMjgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzc1LDggKzc3NSw4IEBAIHZvaWQgSW1hZ2VCaXRtYXA6OmNy
ZWF0ZVByb21pc2UoU2NyaXB0RXgKICAgICAvLyAgICAgIGludGVybmFsIHNsb3QuCiAgICAgLy8g
Ni4yLiBJZiBJc0RldGFjaGVkQnVmZmVyKGJ1ZmZlcikgaXMgdHJ1ZSwgdGhlbiByZXR1cm4gcCBy
ZWplY3RlZCB3aXRoIGFuCiAgICAgLy8gICAgICAiSW52YWxpZFN0YXRlRXJyb3IiIERPTUV4Y2Vw
dGlvbi4KLSAgICBpZiAoaW1hZ2VEYXRhLT5kYXRhKCktPmlzTmV1dGVyZWQoKSkgewotICAgICAg
ICBwcm9taXNlLnJlamVjdChJbnZhbGlkU3RhdGVFcnJvciwgIkltYWdlRGF0YSdzIHZpZXdlZCBi
dWZmZXIgaGFzIGJlZW4gbmV1dGVyZWQiKTsKKyAgICBpZiAoaW1hZ2VEYXRhLT5kYXRhKCktPmlz
RGV0YWNoZWQoKSkgeworICAgICAgICBwcm9taXNlLnJlamVjdChJbnZhbGlkU3RhdGVFcnJvciwg
IkltYWdlRGF0YSdzIHZpZXdlZCBidWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQiKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAJKHJldmlzaW9uIDI2
OTMyOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTMwLDcgKzIxMzAsNyBAQCB2b2lkIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OnB1dEltCiAgICAgaWYgKCFidWZmZXIpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGlmICghZGF0YS5kYXRhKCkgfHwgZGF0YS5kYXRhKCktPmlzTmV1
dGVyZWQoKSkKKyAgICBpZiAoIWRhdGEuZGF0YSgpIHx8IGRhdGEuZGF0YSgpLT5pc0RldGFjaGVk
KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChkaXJ0eVdpZHRoIDwgMCkgewpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5jcHAJKHJldmlzaW9uIDI2OTMyOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
NjYzLDcgKzQ2NjMsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
CiAgICAgICAgICAgICB0ZXhJbWFnZUltcGwoZnVuY3Rpb25JRCwgdGFyZ2V0LCBsZXZlbCwgaW50
ZXJuYWxmb3JtYXQsIHhvZmZzZXQsIHlvZmZzZXQsIHpvZmZzZXQsIGZvcm1hdCwgdHlwZSwgaW1h
Z2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dEdMOjpET01Tb3VyY2U6OkltYWdlLCBmYWxzZSwgYml0
bWFwLT5wcmVtdWx0aXBseUFscGhhKCksIGJpdG1hcC0+Zm9yY2libHlQcmVtdWx0aXBseUFscGhh
KCksIHNvdXJjZUltYWdlUmVjdCwgZGVwdGgsIHVucGFja0ltYWdlSGVpZ2h0KTsKICAgICAgICAg
cmV0dXJuIHsgfTsKICAgICB9LCBbJl0oY29uc3QgUmVmUHRyPEltYWdlRGF0YT4mIHBpeGVscykg
LT4gRXhjZXB0aW9uT3I8dm9pZD4gewotICAgICAgICBpZiAocGl4ZWxzLT5kYXRhKCktPmlzTmV1
dGVyZWQoKSkgeworICAgICAgICBpZiAocGl4ZWxzLT5kYXRhKCktPmlzRGV0YWNoZWQoKSkgewog
ICAgICAgICAgICAgc3ludGhlc2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0R0w6OklOVkFMSURf
VkFMVUUsIGZ1bmN0aW9uTmFtZSwgIlRoZSBzb3VyY2UgZGF0YSBoYXMgYmVlbiBkZXRhY2hlZC4i
KTsKICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJ
bWFnZURlY29kZXIuY3BwCShyZXZpc2lvbiAyNjkzMjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjg0LDcgKzI4NCw3IEBAIHZvaWQgUE5HSW1hZ2VEZWNvZGVyOjpoZWFkZXJBdmFpbGFi
bGUoKQogICAgIH0KIAogICAgIC8vIFdlIGNhbiBmaWxsIGluIHRoZSBzaXplIG5vdyB0aGF0IHRo
ZSBoZWFkZXIgaXMgYXZhaWxhYmxlLiAgQXZvaWQgbWVtb3J5Ci0gICAgLy8gY29ycnVwdGlvbiBp
c3N1ZXMgYnkgbmV1dGVyaW5nIHNldEZhaWxlZCgpIGR1cmluZyB0aGlzIGNhbGw7IGlmIHdlIGRv
bid0CisgICAgLy8gY29ycnVwdGlvbiBpc3N1ZXMgYnkgcmV0dXJuaW5nIGVhcmx5IGZyb20gc2V0
RmFpbGVkKCkgZHVyaW5nIHRoaXMgY2FsbDsgaWYgd2UgZG9uJ3QKICAgICAvLyBkbyB0aGlzLCBm
YWlsdXJlcyB3aWxsIGNhdXNlIHxtX3JlYWRlcnwgdG8gYmUgZGVsZXRlZCwgYW5kIG91ciBqbXBi
dWYKICAgICAvLyB3aWxsIGNlYXNlIHRvIGV4aXN0LiAgTm90ZSB0aGF0IHdlJ2xsIHN0aWxsIHBy
b3Blcmx5IHNldCB0aGUgZmFpbHVyZSBmbGFnCiAgICAgLy8gaW4gdGhpcyBjYXNlIGFzIHNvb24g
YXMgd2UgbG9uZ2ptcCgpLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>