<?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>167048</bug_id>
          
          <creation_ts>2017-01-14 09:02:19 -0800</creation_ts>
          <short_desc>Renderers should have a simple way to access Settings.</short_desc>
          <delta_ts>2017-01-14 17:25:36 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1266806</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2017-01-14 09:02:19 -0800</bug_when>
    <thetext>instead of the variations of document().settings() (might be nullptr) and frame().settings()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266809</commentid>
    <comment_count>1</comment_count>
      <attachid>298854</attachid>
    <who name="alan">zalan</who>
    <bug_when>2017-01-14 09:20:35 -0800</bug_when>
    <thetext>Created attachment 298854
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266813</commentid>
    <comment_count>2</comment_count>
      <attachid>298854</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2017-01-14 10:09:12 -0800</bug_when>
    <thetext>Comment on attachment 298854
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266820</commentid>
    <comment_count>3</comment_count>
      <attachid>298854</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-14 10:46:27 -0800</bug_when>
    <thetext>Comment on attachment 298854
Patch

Clearing flags on attachment: 298854

Committed r210768: &lt;http://trac.webkit.org/changeset/210768&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266821</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-14 10:46:32 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1266871</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-01-14 17:25:36 -0800</bug_when>
    <thetext>Nice!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>298854</attachid>
            <date>2017-01-14 09:20:35 -0800</date>
            <delta_ts>2017-01-14 10:46:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167048-20170114091852.patch</filename>
            <type>text/plain</type>
            <size>35101</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwNzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzNiYzUyMDFlNTZhMjUx
NjQxNTNjMmYzZmNlODc5MGMyZTBlNWVhNi4uYTdkMGRlOTYxZmFhMGMxNjMxYjI3OTBkMzg4MWQ3
ZDRkOGI5MGYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDE3LTAxLTE0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuZGVyZXJzIHNob3VsZCBo
YXZlIGEgc2ltcGxlIHdheSB0byBhY2Nlc3MgU2V0dGluZ3MuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcwNDgKKworICAgICAgICBOb3cgdGhhdCBS
ZW5kZXJPYmplY3RzIGNhbiBuZXZlciBvdXRsaXZlIHRoZSBQYWdlLCB3ZSBjYW4ganVzdCBhY2Nl
c3MgdGhlIFNldHRpbmdzCisgICAgICAgIHRocm91Z2ggUGFnZSBpbnN0ZWFkIG9mIERvY3VtZW50
OjpzZXR0aW5ncy9GcmFtZTo6c2V0dGluZ3MuICAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCbG9jazo6cGFpbnRDYXJldCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6c2hv
dWxkUGFpbnRTZWxlY3Rpb25HYXBzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tG
bG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5lZWRzQXBwbGVNYWlsUGFnaW5hdGlvblF1aXJr
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6c3RhcnRBbGlnbmVkT2Zmc2V0Rm9yTGluZSk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3g6OmxheW91dE92ZXJmbG93UmVjdEZvclByb3BhZ2F0aW9uKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUJhY2tncm91bmRJbWFnZUdlb21l
dHJ5KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyRWxlbWVudDo6d2lsbEJlUmVtb3ZlZEZyb21UcmVlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckVsZW1lbnQ6OnNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OmdldFJlcGxhY2VtZW50VGV4dEdlb21ldHJ5KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyRnJhbWVTZXQ6OmZsYXR0ZW5GcmFtZVNldCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlcklGcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJRnJhbWU6OmZsYXR0ZW5G
cmFtZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckltYWdlOjpwYWludEludG9SZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVySW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6YWRkQ2hp
bGRJZ25vcmluZ0NvbnRpbnVhdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjphY2NlbGVyYXRlZENvbXBvc2l0
aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpmb3JjZVVwZGF0ZVNjcm9sbGJhcnNPbk1haW5UaHJlYWRGb3JQZXJmb3JtYW5jZVRlc3Rp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6Omhhc0FjY2VsZXJhdGVkVG91Y2hT
Y3JvbGxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmdldFJlY3RUb0V4cG9z
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6b3ZlcmhhbmdBbW91bnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNldEhhc0hvcml6b250YWxTY3JvbGxiYXIpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNldEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpSZW5kZXJMYXllckJhY2tpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpzaG91bGRBZ2dyZXNzaXZlbHlSZXRhaW5UaWxlcyk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnNob3VsZFRlbXBvcmFyaWx5
UmV0YWluVGlsZUNvaG9ydHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5n
Ojp1c2VHaWFudFRpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6
c3RhcnRBbmltYXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjYWNoZUFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGbGFncyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnVwZGF0ZUJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjphZGRUb092ZXJsYXBNYXApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yUG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpuZWVkc0ZpeGVkUm9vdEJhY2tncm91
bmRMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVp
cmVzQ29udGVudFNoYWRvd0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29t
cG9zaXRvcjo6dXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycyk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJNb2RlbE9iamVjdDo6c2hvdWxkUGxhY2VCbG9ja0RpcmVjdGlvblNjcm9sbGJhck9uTGVm
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGlzdEJveDo6Zm9yY2VVcGRhdGVTY3JvbGxiYXJzT25NYWluVGhyZWFkRm9y
UGVyZm9ybWFuY2VUZXN0aW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnNldHRpbmdzKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cmVUZXh0VGlt
ZXI6OnJlc3RhcnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OmNsaWVudExvZ2ljYWxXaWR0aEZvckZpeGVkUG9zaXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6Y2xpZW50TG9naWNhbEhlaWdodEZv
ckZpeGVkUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6cGFpbnRCb3hE
ZWNvcmF0aW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2ltcGxlTGluZUxheW91dDo6Y2FuVXNlRm9yV2l0aFJlYXNvbik6
CisgICAgICAgICogcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2ltcGxlTGluZUxheW91dDo6cGFpbnRGbG93KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclNWR1Jlc291cmNlRmlsdGVyOjphcHBseVJlc291cmNlKToKKwogMjAxNy0wMS0x
MyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBQb3RlbnRp
YWwgbnVsbHB0ciBkZXJlZmVyZW5jZSBpbiBSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlv
bigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCA3Mzg1Yjhj
ZjUyYmE0Mjg2MWYxNzUxMDliMWUzYTkzOWJjZTYyOWU0Li44YjUyNzM5YmI3M2Y3ZjZjZWE4ODM2
NDkxZWMyMDVlMjIwMzZkYjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAKQEAgLTE2MzYsNyArMTYzNiw2IEBAIGJvb2wgUmVuZGVyQmxvY2s6OnBhaW50Q2hpbGQo
UmVuZGVyQm94JiBjaGlsZCwgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91CiB2b2lk
IFJlbmRlckJsb2NrOjpwYWludENhcmV0KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlv
dXRQb2ludCYgcGFpbnRPZmZzZXQsIENhcmV0VHlwZSB0eXBlKQogewogICAgIC8vIFBhaW50IHRo
ZSBjYXJldCBpZiB0aGUgRnJhbWVTZWxlY3Rpb24gc2F5cyBzbyBvciBpZiBjYXJldCBicm93c2lu
ZyBpcyBlbmFibGVkCi0gICAgYm9vbCBjYXJldEJyb3dzaW5nID0gZnJhbWUoKS5zZXR0aW5ncygp
LmNhcmV0QnJvd3NpbmdFbmFibGVkKCk7CiAgICAgUmVuZGVyQmxvY2sqIGNhcmV0UGFpbnRlcjsK
ICAgICBib29sIGlzQ29udGVudEVkaXRhYmxlOwogICAgIGlmICh0eXBlID09IEN1cnNvckNhcmV0
KSB7CkBAIC0xNjQ3LDcgKzE2NDYsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludENhcmV0KFBh
aW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZQogICAgICAg
ICBpc0NvbnRlbnRFZGl0YWJsZSA9IHBhZ2UoKS5kcmFnQ2FyZXRDb250cm9sbGVyKCkuaXNDb250
ZW50RWRpdGFibGUoKTsKICAgICB9CiAKLSAgICBpZiAoY2FyZXRQYWludGVyID09IHRoaXMgJiYg
KGlzQ29udGVudEVkaXRhYmxlIHx8IGNhcmV0QnJvd3NpbmcpKSB7CisgICAgaWYgKGNhcmV0UGFp
bnRlciA9PSB0aGlzICYmIChpc0NvbnRlbnRFZGl0YWJsZSB8fCBzZXR0aW5ncygpLmNhcmV0QnJv
d3NpbmdFbmFibGVkKCkpKSB7CiAgICAgICAgIGlmICh0eXBlID09IEN1cnNvckNhcmV0KQogICAg
ICAgICAgICAgZnJhbWUoKS5zZWxlY3Rpb24oKS5wYWludENhcmV0KHBhaW50SW5mby5jb250ZXh0
KCksIHBhaW50T2Zmc2V0LCBwYWludEluZm8ucmVjdCk7CiAgICAgICAgIGVsc2UKQEAgLTE4NDMs
NyArMTg0Miw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnBhaW50Q29udGludWF0aW9uT3V0bGluZXMo
UGFpbnRJbmZvJiBpbmZvLCBjb25zdCBMYXlvdXRQb2ludCYKIAogYm9vbCBSZW5kZXJCbG9jazo6
c2hvdWxkUGFpbnRTZWxlY3Rpb25HYXBzKCkgY29uc3QKIHsKLSAgICBpZiAoZnJhbWUoKS5zZXR0
aW5ncygpLnNlbGVjdGlvblBhaW50aW5nV2l0aG91dFNlbGVjdGlvbkdhcHNFbmFibGVkKCkpCisg
ICAgaWYgKHNldHRpbmdzKCkuc2VsZWN0aW9uUGFpbnRpbmdXaXRob3V0U2VsZWN0aW9uR2Fwc0Vu
YWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHNlbGVjdGlvblN0
YXRlKCkgIT0gU2VsZWN0aW9uTm9uZSAmJiBzdHlsZSgpLnZpc2liaWxpdHkoKSA9PSBWSVNJQkxF
ICYmIGlzU2VsZWN0aW9uUm9vdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2tGbG93LmNwcAppbmRleCA3M2VjMDc1ZmM2ODUzZjIwY2IzNDIxMTllOWI2NzA5OWU3NDEx
MTNmLi5mMzMxMTU0NzY3MmQ3NDIyZjFmNjg1NDY5MDMyMDAxYWM4NmI3YWQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtMTY3MiwxMiArMTY3
Miw5IEBAIHN0YXRpYyBpbmxpbmUgTGF5b3V0VW5pdCBjYWxjdWxhdGVNaW5pbXVtUGFnZUhlaWdo
dChjb25zdCBSZW5kZXJTdHlsZSYgcmVuZGVyU3R5CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBuZWVk
c0FwcGxlTWFpbFBhZ2luYXRpb25RdWlyayhSb290SW5saW5lQm94JiBsaW5lQm94KQogewotICAg
IGNvbnN0IGF1dG8mIHJlbmRlcmVyID0gbGluZUJveC5yZW5kZXJlcigpOworICAgIGF1dG8mIHJl
bmRlcmVyID0gbGluZUJveC5yZW5kZXJlcigpOwogCi0gICAgaWYgKCFyZW5kZXJlci5kb2N1bWVu
dCgpLnNldHRpbmdzKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICghcmVuZGVy
ZXIuZG9jdW1lbnQoKS5zZXR0aW5ncygpLT5hcHBsZU1haWxQYWdpbmF0aW9uUXVpcmtFbmFibGVk
KCkpCisgICAgaWYgKCFyZW5kZXJlci5zZXR0aW5ncygpLmFwcGxlTWFpbFBhZ2luYXRpb25RdWly
a0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKHJlbmRlcmVyLmVs
ZW1lbnQoKSAmJiByZW5kZXJlci5lbGVtZW50KCktPmlkRm9yU3R5bGVSZXNvbHV0aW9uKCkgPT0g
Im1lc3NhZ2VDb250ZW50Q29udGFpbmVyIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKaW5kZXggMTA4NTI2N2I5ZmQxMjVlYjZiNTg3
YTYzM2Y3NzdlMjVmZmM3M2JhZC4uMDg1OTM3YjU3NGI1ZjI3MzIyMjU4MGZjYjM1MjI0YjhhNWIw
ZGZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGlu
ZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGlu
ZUxheW91dC5jcHAKQEAgLTIyNjMsNyArMjI2Myw3IEBAIExheW91dFVuaXQgUmVuZGVyQmxvY2tG
bG93OjpzdGFydEFsaWduZWRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIEluZGVu
CiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDUyMgog
ICAgIC8vIFRoaXMgcXVpcmsgaXMgZm9yIGxlZ2FjeSBjb250ZW50IHRoYXQgZG9lc24ndCB3b3Jr
IHByb3Blcmx5IHdpdGggdGhlIGNlbnRlciBwb3NpdGlvbmluZyBzY2hlbWUKICAgICAvLyBiZWlu
ZyBob25vcmVkIChlLmcuLCBlcHVicykuCi0gICAgaWYgKHNob3VsZEFwcGx5SW5kZW50VGV4dCB8
fCBkb2N1bWVudCgpLnNldHRpbmdzKCktPnVzZUxlZ2FjeVRleHRBbGlnblBvc2l0aW9uZWRFbGVt
ZW50QmVoYXZpb3IoKSkgLy8gRklYTUU6IEhhbmRsZSBUQUVORCBoZXJlCisgICAgaWYgKHNob3Vs
ZEFwcGx5SW5kZW50VGV4dCB8fCBzZXR0aW5ncygpLnVzZUxlZ2FjeVRleHRBbGlnblBvc2l0aW9u
ZWRFbGVtZW50QmVoYXZpb3IoKSkgLy8gRklYTUU6IEhhbmRsZSBUQUVORCBoZXJlCiAgICAgICAg
IHJldHVybiBzdGFydE9mZnNldEZvckxpbmUocG9zaXRpb24sIHNob3VsZEluZGVudFRleHQpOwog
CiAgICAgLy8gdXBkYXRlTG9naWNhbFdpZHRoRm9yQWxpZ25tZW50KCkgaGFuZGxlcyB0aGUgZGly
ZWN0aW9uIG9mIHRoZSBibG9jayBzbyBubyBuZWVkIHRvIGNvbnNpZGVyIGl0IGhlcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggYzZhYzc2OTIzMTkzZjk4MTU0ZTQz
NWFiY2UwMGE5NDk0OWYxMDM2OC4uZjgzNjFkZGE3NjA2YjNhNjNkZGRlZWJjMTQ0MmRmNWUyZmMz
YzQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTQ5MTgsNyAr
NDkxOCw3IEBAIExheW91dFJlY3QgUmVuZGVyQm94OjpsYXlvdXRPdmVyZmxvd1JlY3RGb3JQcm9w
YWdhdGlvbihjb25zdCBSZW5kZXJTdHlsZSogcGFyZW50CiAKICAgICBib29sIGhhc1RyYW5zZm9y
bSA9IHRoaXMtPmhhc1RyYW5zZm9ybSgpOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICBpZiAoaXNJ
bkZsb3dQb3NpdGlvbmVkKCkgfHwgKGhhc1RyYW5zZm9ybSAmJiBkb2N1bWVudCgpLnNldHRpbmdz
KCktPnNob3VsZFRyYW5zZm9ybXNBZmZlY3RPdmVyZmxvdygpKSkgeworICAgIGlmIChpc0luRmxv
d1Bvc2l0aW9uZWQoKSB8fCAoaGFzVHJhbnNmb3JtICYmIHNldHRpbmdzKCkuc2hvdWxkVHJhbnNm
b3Jtc0FmZmVjdE92ZXJmbG93KCkpKSB7CiAjZWxzZQogICAgIGlmIChpc0luRmxvd1Bvc2l0aW9u
ZWQoKSB8fCBoYXNUcmFuc2Zvcm0pIHsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKaW5kZXggYTY2NTdlMmRlOWQxZjY4MTk0
YzdmZjRmYWZhZDJhNWNlYWFlN2E4OS4uZGZkOGQyMjYxZGM4ZmE2MTM0ODgyOWFjODNjZTllYjMw
MDQyYzM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1v
ZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9k
ZWxPYmplY3QuY3BwCkBAIC02NDYsNyArNjQ2LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVj
dDo6cGFpbnRGaWxsTGF5ZXJFeHRlbmRlZChjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY28K
ICAgICBpZiAoZG9jdW1lbnQoKS5wcmludGluZygpKSB7CiAgICAgICAgIGlmIChzdHlsZSgpLnBy
aW50Q29sb3JBZGp1c3QoKSA9PSBQcmludENvbG9yQWRqdXN0RWNvbm9teSkKICAgICAgICAgICAg
IGZvcmNlQmFja2dyb3VuZFRvV2hpdGUgPSB0cnVlOwotICAgICAgICBpZiAoZnJhbWUoKS5zZXR0
aW5ncygpLnNob3VsZFByaW50QmFja2dyb3VuZHMoKSkKKyAgICAgICAgaWYgKHNldHRpbmdzKCku
c2hvdWxkUHJpbnRCYWNrZ3JvdW5kcygpKQogICAgICAgICAgICAgZm9yY2VCYWNrZ3JvdW5kVG9X
aGl0ZSA9IGZhbHNlOwogICAgIH0KIApAQCAtMTExMCw3ICsxMTEwLDcgQEAgQmFja2dyb3VuZElt
YWdlR2VvbWV0cnkgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUJhY2tncm91bmRJbWFn
ZUdlb21ldHJ5KGMKICAgICB9IGVsc2UgewogICAgICAgICBMYXlvdXRSZWN0IHZpZXdwb3J0UmVj
dDsKICAgICAgICAgZmxvYXQgdG9wQ29udGVudEluc2V0ID0gMDsKLSAgICAgICAgaWYgKGZyYW1l
KCkuc2V0dGluZ3MoKS5maXhlZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQoKSkK
KyAgICAgICAgaWYgKHNldHRpbmdzKCkuZml4ZWRCYWNrZ3JvdW5kc1BhaW50UmVsYXRpdmVUb0Rv
Y3VtZW50KCkpCiAgICAgICAgICAgICB2aWV3cG9ydFJlY3QgPSB2aWV3KCkudW5zY2FsZWREb2N1
bWVudFJlY3QoKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBGcmFtZVZpZXcmIGZyYW1l
VmlldyA9IHZpZXcoKS5mcmFtZVZpZXcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJFbGVtZW50LmNwcAppbmRleCBmODQ3ZmZkZThmZTVkMjZkNTNjNjFkOTU0NzU5NGI4ODRhNmM0
ZDUzLi40ZGM0M2U5ZTFmY2ZmN2VjYjgwMGJkNTdlYWJhOWIwY2Q5NDg0NWNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCkBAIC05MDUsOCArOTA1LDcgQEAg
dm9pZCBSZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYs
IGNvbnN0IFJlbmRlclN0eWxlJiBuZXcKICAgICBib29sIG5ld1N0eWxlVXNlc0ZpeGVkQmFja2dy
b3VuZHMgPSBuZXdTdHlsZS5oYXNGaXhlZEJhY2tncm91bmRJbWFnZSgpOwogICAgIGJvb2wgb2xk
U3R5bGVVc2VzRml4ZWRCYWNrZ3JvdW5kcyA9IG1fc3R5bGUuaGFzRml4ZWRCYWNrZ3JvdW5kSW1h
Z2UoKTsKICAgICBpZiAobmV3U3R5bGVVc2VzRml4ZWRCYWNrZ3JvdW5kcyB8fCBvbGRTdHlsZVVz
ZXNGaXhlZEJhY2tncm91bmRzKSB7Ci0gICAgICAgIGJvb2wgcmVwYWludEZpeGVkQmFja2dyb3Vu
ZHNPblNjcm9sbCA9ICFmcmFtZSgpLnNldHRpbmdzKCkuZml4ZWRCYWNrZ3JvdW5kc1BhaW50UmVs
YXRpdmVUb0RvY3VtZW50KCk7Ci0KKyAgICAgICAgYm9vbCByZXBhaW50Rml4ZWRCYWNrZ3JvdW5k
c09uU2Nyb2xsID0gIXNldHRpbmdzKCkuZml4ZWRCYWNrZ3JvdW5kc1BhaW50UmVsYXRpdmVUb0Rv
Y3VtZW50KCk7CiAgICAgICAgIGJvb2wgbmV3U3R5bGVTbG93U2Nyb2xsID0gcmVwYWludEZpeGVk
QmFja2dyb3VuZHNPblNjcm9sbCAmJiBuZXdTdHlsZVVzZXNGaXhlZEJhY2tncm91bmRzOwogICAg
ICAgICBib29sIG9sZFN0eWxlU2xvd1Njcm9sbCA9IG9sZFN0eWxlICYmIHJlcGFpbnRGaXhlZEJh
Y2tncm91bmRzT25TY3JvbGwgJiYgb2xkU3R5bGVVc2VzRml4ZWRCYWNrZ3JvdW5kczsKICAgICAg
ICAgYm9vbCBkcmF3c1Jvb3RCYWNrZ3JvdW5kID0gaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigp
IHx8IChpc0JvZHkoKSAmJiAhcmVuZGVyZXJIYXNCYWNrZ3JvdW5kKGRvY3VtZW50KCkuZG9jdW1l
bnRFbGVtZW50KCktPnJlbmRlcmVyKCkpKTsKQEAgLTEwODgsNyArMTA4Nyw3IEBAIHZvaWQgUmVu
ZGVyRWxlbWVudDo6d2lsbEJlUmVtb3ZlZEZyb21UcmVlKCkKICAgICAgICAgcmVtb3ZlTGF5ZXJz
KGxheWVyKTsKICAgICB9CiAKLSAgICBpZiAobV9zdHlsZS5oYXNGaXhlZEJhY2tncm91bmRJbWFn
ZSgpICYmICFmcmFtZSgpLnNldHRpbmdzKCkuZml4ZWRCYWNrZ3JvdW5kc1BhaW50UmVsYXRpdmVU
b0RvY3VtZW50KCkpCisgICAgaWYgKG1fc3R5bGUuaGFzRml4ZWRCYWNrZ3JvdW5kSW1hZ2UoKSAm
JiAhc2V0dGluZ3MoKS5maXhlZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQoKSkK
ICAgICAgICAgdmlldygpLmZyYW1lVmlldygpLnJlbW92ZVNsb3dSZXBhaW50T2JqZWN0KHRoaXMp
OwogCiAgICAgaWYgKGlzT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmIHBhcmVudCgpLT5jaGlsZHJl
bklubGluZSgpKQpAQCAtMjE2Myw3ICsyMTYyLDcgQEAgUmVzcGVjdEltYWdlT3JpZW50YXRpb25F
bnVtIFJlbmRlckVsZW1lbnQ6OnNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgY29uc3QK
ICNlbmRpZgogICAgIC8vIFJlc3BlY3QgdGhlIGltYWdlJ3Mgb3JpZW50YXRpb24gaWYgaXQncyBi
ZWluZyB1c2VkIGFzIGEgZnVsbC1wYWdlIGltYWdlIG9yIGl0J3MKICAgICAvLyBhbiA8aW1nPiBh
bmQgdGhlIHNldHRpbmcgdG8gcmVzcGVjdCBpdCBldmVyeXdoZXJlIGlzIHNldC4KLSAgICByZXR1
cm4gKGZyYW1lKCkuc2V0dGluZ3MoKS5zaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpICYm
IGlzPEhUTUxJbWFnZUVsZW1lbnQ+KGVsZW1lbnQoKSkpID8gUmVzcGVjdEltYWdlT3JpZW50YXRp
b24gOiBEb05vdFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uOworICAgIHJldHVybiBzZXR0aW5ncygp
LnNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgJiYgaXM8SFRNTEltYWdlRWxlbWVudD4o
ZWxlbWVudCgpKSA/IFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uIDogRG9Ob3RSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbjsKIH0KIAogdm9pZCBSZW5kZXJFbGVtZW50OjphZGp1c3RGbG93VGhyZWFkU3Rh
dGVPbkNvbnRhaW5pbmdCbG9ja0NoYW5nZUlmTmVlZGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCmluZGV4IDU1OTFhZDMwN2Y4Nzcx
MDA2YjIxYWVlMWM2OTAyMTExNTRiZjY0N2QuLjQ2OGIwNjEyNDI1YmUxNzVhNGViNGMwNjJiZmJk
OWFmNjliZjlmMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bWJlZGRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVt
YmVkZGVkT2JqZWN0LmNwcApAQCAtMzU0LDcgKzM1NCw3IEBAIGJvb2wgUmVuZGVyRW1iZWRkZWRP
YmplY3Q6OmdldFJlcGxhY2VtZW50VGV4dEdlb21ldHJ5KGNvbnN0IExheW91dFBvaW50JiBhY2N1
bXVsCiAgICAgRm9udENhc2NhZGVEZXNjcmlwdGlvbiBmb250RGVzY3JpcHRpb247CiAgICAgUmVu
ZGVyVGhlbWU6OmRlZmF1bHRUaGVtZSgpLT5zeXN0ZW1Gb250KENTU1ZhbHVlV2Via2l0U21hbGxD
b250cm9sLCBmb250RGVzY3JpcHRpb24pOwogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRXZWlnaHQo
Rm9udFdlaWdodEJvbGQpOwotICAgIGZvbnREZXNjcmlwdGlvbi5zZXRSZW5kZXJpbmdNb2RlKGZy
YW1lKCkuc2V0dGluZ3MoKS5mb250UmVuZGVyaW5nTW9kZSgpKTsKKyAgICBmb250RGVzY3JpcHRp
b24uc2V0UmVuZGVyaW5nTW9kZShzZXR0aW5ncygpLmZvbnRSZW5kZXJpbmdNb2RlKCkpOwogICAg
IGZvbnREZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUoMTIpOwogICAgIGZvbnQgPSBGb250Q2Fz
Y2FkZShmb250RGVzY3JpcHRpb24sIDAsIDApOwogICAgIGZvbnQudXBkYXRlKDApOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAKaW5kZXggM2NkNjdmZTdjZjg2
ZmI5Mjg5NDg1OTRlMGE1MTkxNGU5N2FiODU1Ni4uMDUyYTMyYzdjZTAzZjY1NWFhZTE2ZmY5Y2Uz
ODBmYTkzOTRjMzI0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZyYW1lU2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVT
ZXQuY3BwCkBAIC02NTEsNyArNjUxLDcgQEAgdm9pZCBSZW5kZXJGcmFtZVNldDo6cG9zaXRpb25G
cmFtZXNXaXRoRmxhdHRlbmluZygpCiAKIGJvb2wgUmVuZGVyRnJhbWVTZXQ6OmZsYXR0ZW5GcmFt
ZVNldCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZyYW1lKCkuc2V0dGluZ3MoKS5mcmFtZUZsYXR0
ZW5pbmdFbmFibGVkKCk7CisgICAgcmV0dXJuIHNldHRpbmdzKCkuZnJhbWVGbGF0dGVuaW5nRW5h
YmxlZCgpOwogfQogCiB2b2lkIFJlbmRlckZyYW1lU2V0OjpzdGFydFJlc2l6aW5nKEdyaWRBeGlz
JiBheGlzLCBpbnQgcG9zaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySUZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJh
bWUuY3BwCmluZGV4IDdkZTU0ZmEzMTk1OGQwZGJlZWU2MjY3NGFmMjFmMmNiM2NmMDEwMWUuLmVh
NzM3YTRmOTM0Zjg5ZGVjZDc5M2RhNTA2M2ExNTgwMjc5NmUwMGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuY3BwCkBAIC03MSw5ICs3MSw3IEBAIFJlbmRlclZpZXcq
IFJlbmRlcklGcmFtZTo6Y29udGVudFJvb3RSZW5kZXJlcigpIGNvbnN0CiAKIGJvb2wgUmVuZGVy
SUZyYW1lOjpmbGF0dGVuRnJhbWUoKSBjb25zdAogewotICAgIGJvb2wgZW5hYmxlZCA9IGZyYW1l
KCkuc2V0dGluZ3MoKS5mcmFtZUZsYXR0ZW5pbmdFbmFibGVkKCk7Ci0KLSAgICBpZiAoIWVuYWJs
ZWQpCisgICAgaWYgKCFzZXR0aW5ncygpLmZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKHN0eWxlKCkud2lkdGgoKS5pc0ZpeGVkKCkgJiYg
c3R5bGUoKS5oZWlnaHQoKS5pc0ZpeGVkKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW1hZ2UuY3BwCmluZGV4IDMzMTlhODlhNWRjMjNkNmI0YTVlZDBhZTNlMWQzYjQ1NzNiYmI0
MjEuLjk1ZjE4ZGZlM2JhYmM1ZDkyMTExM2ViNzJiNmY1ZmEyOGFmY2U0YWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtNTQ5LDcgKzU0OSw3IEBAIHZvaWQg
UmVuZGVySW1hZ2U6OnBhaW50SW50b1JlY3QoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25z
dCBGbG9hdFJlY3QmIHJlY3QpCiAKICNpZiBVU0UoQ0cpCiAgICAgaWYgKGlzPFBERkRvY3VtZW50
SW1hZ2U+KGltYWdlKSkKLSAgICAgICAgZG93bmNhc3Q8UERGRG9jdW1lbnRJbWFnZT4oKmltYWdl
KS5zZXRQZGZJbWFnZUNhY2hpbmdQb2xpY3koZnJhbWUoKS5zZXR0aW5ncygpLnBkZkltYWdlQ2Fj
aGluZ1BvbGljeSgpKTsKKyAgICAgICAgZG93bmNhc3Q8UERGRG9jdW1lbnRJbWFnZT4oKmltYWdl
KS5zZXRQZGZJbWFnZUNhY2hpbmdQb2xpY3koc2V0dGluZ3MoKS5wZGZJbWFnZUNhY2hpbmdQb2xp
Y3koKSk7CiAjZW5kaWYKIAogICAgIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiBvcmllbnRh
dGlvbkRlc2NyaXB0aW9uKHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCksIHN0eWxlKCku
aW1hZ2VPcmllbnRhdGlvbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGlu
ZS5jcHAKaW5kZXggZDJlNTM1M2Y3NTM4NTU3NzcwZWEyMmNiNjcyYWQ2Y2NiYTBmNDgxNi4uNWY1
NjRmNmYwMjMwOWE5MTM2MjZmMGU2M2RiZGQwMDY2NDFiMmIzNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKQEAgLTMyMyw3ICszMjMsNyBAQCB2b2lkIFJlbmRl
cklubGluZTo6YWRkQ2hpbGRJZ25vcmluZ0NvbnRpbnVhdGlvbihSZW5kZXJPYmplY3QqIG5ld0No
aWxkLCBSZW5kZXJPYgogICAgIGlmICghYmVmb3JlQ2hpbGQgJiYgaXNBZnRlckNvbnRlbnQobGFz
dENoaWxkKCkpKQogICAgICAgICBiZWZvcmVDaGlsZCA9IGxhc3RDaGlsZCgpOwogICAgIAotICAg
IGJvb2wgdXNlTmV3QmxvY2tJbnNpZGVJbmxpbmVNb2RlbCA9IGRvY3VtZW50KCkuc2V0dGluZ3Mo
KS0+bmV3QmxvY2tJbnNpZGVJbmxpbmVNb2RlbEVuYWJsZWQoKTsKKyAgICBib29sIHVzZU5ld0Js
b2NrSW5zaWRlSW5saW5lTW9kZWwgPSBzZXR0aW5ncygpLm5ld0Jsb2NrSW5zaWRlSW5saW5lTW9k
ZWxFbmFibGVkKCk7CiAgICAgYm9vbCBjaGlsZElubGluZSA9IG5ld0NoaWxkSXNJbmxpbmUoKm5l
d0NoaWxkLCAqdGhpcyk7CiAgICAgLy8gVGhpcyBjb2RlIGlzIGZvciB0aGUgb2xkIGJsb2NrLWlu
c2lkZS1pbmxpbmUgbW9kZWwgdGhhdCB1c2VzIGNvbnRpbnVhdGlvbnMuCiAgICAgaWYgKCF1c2VO
ZXdCbG9ja0luc2lkZUlubGluZU1vZGVsICYmICFjaGlsZElubGluZSAmJiAhbmV3Q2hpbGQtPmlz
RmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKaW5kZXggYTE0ZWQ5OGUyMDdiZjZlMWNlNWQwOTkyYjIxZTlhNTU2
YWM4YTUyMC4uNjk0ODE3NDJhZGE2YzA3ZDJlMWYxOTczYWEzYWZlYmQ2YzJiYmUwMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC02MzYsNyArNjM2LDcgQEAg
dm9pZCBSZW5kZXJMYXllcjo6ZGlydHlBbmNlc3RvckNoYWluSGFzU2VsZlBhaW50aW5nTGF5ZXJE
ZXNjZW5kYW50U3RhdHVzKCkKIAogYm9vbCBSZW5kZXJMYXllcjo6YWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxlZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHJlbmRl
cmVyKCkuZnJhbWUoKS5zZXR0aW5ncygpLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxv
d1Njcm9sbEVuYWJsZWQoKTsKKyAgICByZXR1cm4gcmVuZGVyZXIoKS5zZXR0aW5ncygpLmFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQoKTsKIH0KIAogLy8gSWYg
d2UgYXJlIGEgc3RhY2tpbmcgY29udGFpbmVyLCB0aGVuIHRoaXMgZnVuY3Rpb24gd2lsbCBkZXRl
cm1pbmUgaWYgb3VyCkBAIC0xNTIzLDcgKzE1MjMsNyBAQCBib29sIFJlbmRlckxheWVyOjppc1J1
YmJlckJhbmRJblByb2dyZXNzKCkgY29uc3QKIAogYm9vbCBSZW5kZXJMYXllcjo6Zm9yY2VVcGRh
dGVTY3JvbGxiYXJzT25NYWluVGhyZWFkRm9yUGVyZm9ybWFuY2VUZXN0aW5nKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gcmVuZGVyZXIoKS5mcmFtZSgpLnNldHRpbmdzKCkuZm9yY2VVcGRhdGVTY3Jv
bGxiYXJzT25NYWluVGhyZWFkRm9yUGVyZm9ybWFuY2VUZXN0aW5nKCk7CisgICAgcmV0dXJuIHJl
bmRlcmVyKCkuc2V0dGluZ3MoKS5mb3JjZVVwZGF0ZVNjcm9sbGJhcnNPbk1haW5UaHJlYWRGb3JQ
ZXJmb3JtYW5jZVRlc3RpbmcoKTsKIH0KIAogUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNs
b3NpbmdUcmFuc2Zvcm1lZEFuY2VzdG9yKCkgY29uc3QKQEAgLTIxNjMsMTMgKzIxNjMsNyBAQCBi
b29sIFJlbmRlckxheWVyOjpoYXNBY2NlbGVyYXRlZFRvdWNoU2Nyb2xsaW5nKCkgY29uc3QKICNp
ZiBFTkFCTEUoQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKQogICAgIGlmICghc2Nyb2xs
c092ZXJmbG93KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIFNldHRpbmdzKiBzZXR0
aW5ncyA9IHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5zZXR0aW5ncygpOwotICAgIC8vIEZJWE1FOiBz
ZXR0aW5ncyBzaG91bGQgbm90IGJlIG51bGwgYXQgdGhpcyBwb2ludC4gSWYgeW91IGZpbmQgYSBy
ZWxpYWJsZSB3YXkgdG8gaGl0IHRoaXMgYXNzZXJ0aW9uLCBwbGVhc2UgZmlsZSBhIGJ1Zy4KLSAg
ICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzEwMjY2MTAxPi4KLSAgICBBU1NFUlQoc2V0dGluZ3Mp
OwotCi0gICAgcmV0dXJuIHJlbmRlcmVyKCkuc3R5bGUoKS51c2VUb3VjaE92ZXJmbG93U2Nyb2xs
aW5nKCkgfHwgKHNldHRpbmdzICYmIHNldHRpbmdzLT5hbHdheXNVc2VBY2NlbGVyYXRlZE92ZXJm
bG93U2Nyb2xsKCkpOworICAgIHJldHVybiByZW5kZXJlcigpLnN0eWxlKCkudXNlVG91Y2hPdmVy
Zmxvd1Njcm9sbGluZygpIHx8IHJlbmRlcmVyKCkuc2V0dGluZ3MoKS5hbHdheXNVc2VBY2NlbGVy
YXRlZE92ZXJmbG93U2Nyb2xsKCk7CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpA
QCAtMjYxMyw3ICsyNjA3LDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6Z2V0UmVjdFRvRXhw
b3NlKGNvbnN0IExheW91dFJlY3QgJnZpc2libGVSZWN0LCBjb25zdCBMYXkKICAgICAgICAgaWYg
KGZyYW1lVmlldy5mcmFtZVNjYWxlRmFjdG9yKCkgPT0gMSkKICAgICAgICAgICAgIHJldHVybiB2
aXNpYmxlUmVjdDsKIAotICAgICAgICBpZiAoZnJhbWVWaWV3LmZyYW1lKCkuc2V0dGluZ3MoKS52
aXN1YWxWaWV3cG9ydEVuYWJsZWQoKSkgeworICAgICAgICBpZiAocmVuZGVyZXIoKS5zZXR0aW5n
cygpLnZpc3VhbFZpZXdwb3J0RW5hYmxlZCgpKSB7CiAgICAgICAgICAgICAvLyBleHBvc2VSZWN0
IGlzIGluIGFic29sdXRlIGNvb3JkcywgYWZmZWN0ZWQgYnkgcGFnZSBzY2FsZS4gVW5zY2FsZSBp
dC4KICAgICAgICAgICAgIExheW91dFJlY3QgdW5zY2FsZWRFeHBvc2VSZWN0ID0gZXhwb3NlUmVj
dDsKICAgICAgICAgICAgIHVuc2NhbGVkRXhwb3NlUmVjdC5zY2FsZSgxIC8gZnJhbWVWaWV3LmZy
YW1lU2NhbGVGYWN0b3IoKSk7CkBAIC0yODIxLDcgKzI4MTUsNyBAQCBJbnRSZWN0IFJlbmRlckxh
eWVyOjp2aXNpYmxlQ29udGVudFJlY3RJbnRlcm5hbChWaXNpYmxlQ29udGVudFJlY3RJbmNsdWRl
c1Njcm9sbAogSW50U2l6ZSBSZW5kZXJMYXllcjo6b3ZlcmhhbmdBbW91bnQoKSBjb25zdAogewog
I2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKLSAgICBpZiAoIXJlbmRlcmVyKCkuZnJhbWUoKS5z
ZXR0aW5ncygpLnJ1YmJlckJhbmRpbmdGb3JTdWJTY3JvbGxhYmxlUmVnaW9uc0VuYWJsZWQoKSkK
KyAgICBpZiAoIXJlbmRlcmVyKCkuc2V0dGluZ3MoKS5ydWJiZXJCYW5kaW5nRm9yU3ViU2Nyb2xs
YWJsZVJlZ2lvbnNFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBJbnRTaXplKCk7CiAKICAgICBJ
bnRTaXplIHN0cmV0Y2g7CkBAIC0zMTg3LDcgKzMxODEsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpz
ZXRIYXNIb3Jpem9udGFsU2Nyb2xsYmFyKGJvb2wgaGFzU2Nyb2xsYmFyKQogICAgIGlmIChoYXNT
Y3JvbGxiYXIpIHsKICAgICAgICAgbV9oQmFyID0gY3JlYXRlU2Nyb2xsYmFyKEhvcml6b250YWxT
Y3JvbGxiYXIpOwogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKLSAgICAgICAgU2Nyb2xsRWxh
c3RpY2l0eSBlbGFzdGljaXR5ID0gc2Nyb2xsc092ZXJmbG93KCkgJiYgcmVuZGVyZXIoKS5mcmFt
ZSgpLnNldHRpbmdzKCkucnViYmVyQmFuZGluZ0ZvclN1YlNjcm9sbGFibGVSZWdpb25zRW5hYmxl
ZCgpID8gU2Nyb2xsRWxhc3RpY2l0eUF1dG9tYXRpYyA6IFNjcm9sbEVsYXN0aWNpdHlOb25lOwor
ICAgICAgICBTY3JvbGxFbGFzdGljaXR5IGVsYXN0aWNpdHkgPSBzY3JvbGxzT3ZlcmZsb3coKSAm
JiByZW5kZXJlcigpLnNldHRpbmdzKCkucnViYmVyQmFuZGluZ0ZvclN1YlNjcm9sbGFibGVSZWdp
b25zRW5hYmxlZCgpID8gU2Nyb2xsRWxhc3RpY2l0eUF1dG9tYXRpYyA6IFNjcm9sbEVsYXN0aWNp
dHlOb25lOwogICAgICAgICBTY3JvbGxhYmxlQXJlYTo6c2V0SG9yaXpvbnRhbFNjcm9sbEVsYXN0
aWNpdHkoZWxhc3RpY2l0eSk7CiAjZW5kaWYKICAgICB9IGVsc2UgewpAQCAtMzIxOCw3ICszMjEy
LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2V0SGFzVmVydGljYWxTY3JvbGxiYXIoYm9vbCBoYXNT
Y3JvbGxiYXIpCiAgICAgaWYgKGhhc1Njcm9sbGJhcikgewogICAgICAgICBtX3ZCYXIgPSBjcmVh
dGVTY3JvbGxiYXIoVmVydGljYWxTY3JvbGxiYXIpOwogI2lmIEVOQUJMRShSVUJCRVJfQkFORElO
RykKLSAgICAgICAgU2Nyb2xsRWxhc3RpY2l0eSBlbGFzdGljaXR5ID0gc2Nyb2xsc092ZXJmbG93
KCkgJiYgcmVuZGVyZXIoKS5mcmFtZSgpLnNldHRpbmdzKCkucnViYmVyQmFuZGluZ0ZvclN1YlNj
cm9sbGFibGVSZWdpb25zRW5hYmxlZCgpID8gU2Nyb2xsRWxhc3RpY2l0eUF1dG9tYXRpYyA6IFNj
cm9sbEVsYXN0aWNpdHlOb25lOworICAgICAgICBTY3JvbGxFbGFzdGljaXR5IGVsYXN0aWNpdHkg
PSBzY3JvbGxzT3ZlcmZsb3coKSAmJiByZW5kZXJlcigpLnNldHRpbmdzKCkucnViYmVyQmFuZGlu
Z0ZvclN1YlNjcm9sbGFibGVSZWdpb25zRW5hYmxlZCgpID8gU2Nyb2xsRWxhc3RpY2l0eUF1dG9t
YXRpYyA6IFNjcm9sbEVsYXN0aWNpdHlOb25lOwogICAgICAgICBTY3JvbGxhYmxlQXJlYTo6c2V0
VmVydGljYWxTY3JvbGxFbGFzdGljaXR5KGVsYXN0aWNpdHkpOwogI2VuZGlmCiAgICAgfSBlbHNl
IHsKQEAgLTY5OTgsMTEgKzY5OTIsMTAgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlT3JSZW1v
dmVGaWx0ZXJFZmZlY3RSZW5kZXJlcigpCiAgICAgfQogICAgIAogICAgIEZpbHRlckluZm8mIGZp
bHRlckluZm8gPSBGaWx0ZXJJbmZvOjpnZXQoKnRoaXMpOwotICAgIEZyYW1lJiBmcmFtZSA9IHJl
bmRlcmVyKCkuZnJhbWUoKTsKICAgICBpZiAoIWZpbHRlckluZm8ucmVuZGVyZXIoKSkgewogICAg
ICAgICBSZWZQdHI8RmlsdGVyRWZmZWN0UmVuZGVyZXI+IGZpbHRlclJlbmRlcmVyID0gRmlsdGVy
RWZmZWN0UmVuZGVyZXI6OmNyZWF0ZSgpOwogICAgICAgICBmaWx0ZXJSZW5kZXJlci0+c2V0Rmls
dGVyU2NhbGUocGFnZSgpLmRldmljZVNjYWxlRmFjdG9yKCkpOwotICAgICAgICBmaWx0ZXJSZW5k
ZXJlci0+c2V0UmVuZGVyaW5nTW9kZShmcmFtZS5zZXR0aW5ncygpLmFjY2VsZXJhdGVkRmlsdGVy
c0VuYWJsZWQoKSA/IEFjY2VsZXJhdGVkIDogVW5hY2NlbGVyYXRlZCk7CisgICAgICAgIGZpbHRl
clJlbmRlcmVyLT5zZXRSZW5kZXJpbmdNb2RlKHJlbmRlcmVyKCkuc2V0dGluZ3MoKS5hY2NlbGVy
YXRlZEZpbHRlcnNFbmFibGVkKCkgPyBBY2NlbGVyYXRlZCA6IFVuYWNjZWxlcmF0ZWQpOwogICAg
ICAgICBmaWx0ZXJJbmZvLnNldFJlbmRlcmVyKFdURk1vdmUoZmlsdGVyUmVuZGVyZXIpKTsKICAg
ICAgICAgCiAgICAgICAgIC8vIFdlIGNhbiBvcHRpbWl6ZSBhd2F5IGNvZGUgcGF0aHMgaW4gb3Ro
ZXIgcGxhY2VzIGlmIHdlIGtub3cgdGhhdCB0aGVyZSBhcmUgbm8gc29mdHdhcmUgZmlsdGVycy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5k
ZXggM2VjN2ZkZDgwNTdjOTA3NGEwMjM0Yzc3MGFmNDc5NGE3ZDkzZDA3ZC4uYTFhOTRjNjdiN2U0
NTBlOWVjMDMwNWVlMDcwNTlkZjIyZWMwNzZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTEyMCw3ICsxMjAsNyBAQCBSZW5kZXJM
YXllckJhY2tpbmc6OlJlbmRlckxheWVyQmFja2luZyhSZW5kZXJMYXllciYgbGF5ZXIpCiAgICAg
ICAgIGlmIChtX2lzTWFpbkZyYW1lUmVuZGVyVmlld0xheWVyKQogICAgICAgICAgICAgdGlsZWRC
YWNraW5nLT5zZXRVbnBhcmVudHNPZmZzY3JlZW5UaWxlcyh0cnVlKTsKIAotICAgICAgICB0aWxl
ZEJhY2tpbmctPnNldFNjcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQocmVuZGVyZXIo
KS5wYWdlKCkuc2V0dGluZ3MoKS5zY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkKCkp
OworICAgICAgICB0aWxlZEJhY2tpbmctPnNldFNjcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0Vu
YWJsZWQocmVuZGVyZXIoKS5zZXR0aW5ncygpLnNjcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0Vu
YWJsZWQoKSk7CiAgICAgICAgIGFkanVzdFRpbGVkQmFja2luZ0NvdmVyYWdlKCk7CiAgICAgfQog
fQpAQCAtMjUxOCwxNyArMjUxOCwxNyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6c2hvdWxk
QWdncmVzc2l2ZWx5UmV0YWluVGlsZXMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbgogICAgIGlm
ICghbV9pc01haW5GcmFtZVJlbmRlclZpZXdMYXllcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgcmV0dXJuIHJlbmRlcmVyKCkuZnJhbWUoKS5zZXR0aW5ncygpLmFnZ3Jlc3NpdmVUaWxl
UmV0ZW50aW9uRW5hYmxlZCgpOworICAgIHJldHVybiByZW5kZXJlcigpLnNldHRpbmdzKCkuYWdn
cmVzc2l2ZVRpbGVSZXRlbnRpb25FbmFibGVkKCk7CiB9CiAKIGJvb2wgUmVuZGVyTGF5ZXJCYWNr
aW5nOjpzaG91bGRUZW1wb3JhcmlseVJldGFpblRpbGVDb2hvcnRzKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqKSBjb25zdAogewotICAgIHJldHVybiByZW5kZXJlcigpLmZyYW1lKCkuc2V0dGluZ3MoKS50
ZW1wb3JhcnlUaWxlQ29ob3J0UmV0ZW50aW9uRW5hYmxlZCgpOworICAgIHJldHVybiByZW5kZXJl
cigpLnNldHRpbmdzKCkudGVtcG9yYXJ5VGlsZUNvaG9ydFJldGVudGlvbkVuYWJsZWQoKTsKIH0K
IAogYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVzZUdpYW50VGlsZXMoKSBjb25zdAogewotICAg
IHJldHVybiByZW5kZXJlcigpLmZyYW1lKCkuc2V0dGluZ3MoKS51c2VHaWFudFRpbGVzKCk7Cisg
ICAgcmV0dXJuIHJlbmRlcmVyKCkuc2V0dGluZ3MoKS51c2VHaWFudFRpbGVzKCk7CiB9CiAKICNp
Zm5kZWYgTkRFQlVHCkBAIC0yNTg2LDcgKzI1ODYsNyBAQCBib29sIFJlbmRlckxheWVyQmFja2lu
Zzo6c3RhcnRBbmltYXRpb24oZG91YmxlIHRpbWVPZmZzZXQsIGNvbnN0IEFuaW1hdGlvbiogYW5p
bQogI2VuZGlmCiAgICAgfQogCi0gICAgaWYgKCFyZW5kZXJlcigpLmZyYW1lKCkuc2V0dGluZ3Mo
KS5hY2NlbGVyYXRlZENvbXBvc2l0ZWRBbmltYXRpb25zRW5hYmxlZCgpKQorICAgIGlmICghcmVu
ZGVyZXIoKS5zZXR0aW5ncygpLmFjY2VsZXJhdGVkQ29tcG9zaXRlZEFuaW1hdGlvbnNFbmFibGVk
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGJvb2wgZGlkQW5pbWF0ZSA9IGZhbHNl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcAppbmRleCBlN2UxOGNhOWRhZGI4MzlkOWI2Mjc2M2Q0ZjRmZmM2ZTNiZjQwZjIwLi4xMmI2
MmM5Mjg3YmJmZmQ5ZTU3OThmNzY1ZDgyYzU3MDM3MzFlNmRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMzA4LDcgKzMw
OCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjYWNoZUFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdGbGFncygpCiAgICAgYm9vbCBhY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkID0gZmFsc2U7
CiAgICAgYm9vbCBkaXNwbGF5TGlzdERyYXdpbmdFbmFibGVkID0gZmFsc2U7CiAKLSAgICBjb25z
dCBTZXR0aW5ncyYgc2V0dGluZ3MgPSBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkuZnJhbWUoKS5z
ZXR0aW5ncygpOworICAgIGF1dG8mIHNldHRpbmdzID0gbV9yZW5kZXJWaWV3LnNldHRpbmdzKCk7
CiAgICAgaGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyA9IHNldHRpbmdzLmFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdFbmFibGVkKCk7CiAKICAgICAvLyBXZSBhbGxvdyB0aGUgY2hyb21lIHRvIG92ZXJy
aWRlIHRoZSBzZXR0aW5ncywgaW4gY2FzZSB0aGUgcGFnZSBpcyByZW5kZXJlZApAQCAtOTg1LDcg
Kzk4NSw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVCYWNraW5nKFJlbmRl
ckxheWVyJiBsYXllciwgQ29tcG9zaXRpbmdDaGFuZ2VSCiAgICAgICAgICAgICAgICAgdXBkYXRl
TGF5ZXJGb3JIZWFkZXIocGFnZSgpLmhlYWRlckhlaWdodCgpKTsKICAgICAgICAgICAgICAgICB1
cGRhdGVMYXllckZvckZvb3RlcihwYWdlKCkuZm9vdGVySGVpZ2h0KCkpOwogI2VuZGlmCi0gICAg
ICAgICAgICAgICAgaWYgKG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5mcmFtZSgpLnNldHRpbmdz
KCkuYmFja2dyb3VuZFNob3VsZEV4dGVuZEJleW9uZFBhZ2UoKSkKKyAgICAgICAgICAgICAgICBp
ZiAobV9yZW5kZXJWaWV3LnNldHRpbmdzKCkuYmFja2dyb3VuZFNob3VsZEV4dGVuZEJleW9uZFBh
Z2UoKSkKICAgICAgICAgICAgICAgICAgICAgbV9yb290Q29udGVudExheWVyLT5zZXRNYXNrc1Rv
Qm91bmRzKGZhbHNlKTsKIAogICAgICAgICAgICAgICAgIGlmIChUaWxlZEJhY2tpbmcqIHRpbGVk
QmFja2luZyA9IGxheWVyLmJhY2tpbmcoKS0+dGlsZWRCYWNraW5nKCkpCkBAIC0xMTgwLDggKzEx
ODAsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6YWRkVG9PdmVybGFwTWFwKE92ZXJs
YXBNYXAmIG92ZXJsYXBNYXAsIGNvbnN0IFJlbmRlcgogICAgIExheW91dFJlY3QgY2xpcFJlY3Qg
PSBsYXllci5iYWNrZ3JvdW5kQ2xpcFJlY3QoUmVuZGVyTGF5ZXI6OkNsaXBSZWN0c0NvbnRleHQo
JnJvb3RSZW5kZXJMYXllcigpLCBBYnNvbHV0ZUNsaXBSZWN0cykpLnJlY3QoKTsgLy8gRklYTUU6
IEluY29ycmVjdCBmb3IgQ1NTIHJlZ2lvbnMuCiAKICAgICAvLyBPbiBpT1MsIHBhZ2VTY2FsZUZh
Y3RvcigpIGlzIG5vdCBhcHBsaWVkIGJ5IFJlbmRlclZpZXcsIHNvIHdlIHNob3VsZCBub3Qgc2Nh
bGUgaGVyZS4KLSAgICBjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MgPSBtX3JlbmRlclZpZXcuZnJh
bWVWaWV3KCkuZnJhbWUoKS5zZXR0aW5ncygpOwotICAgIGlmICghc2V0dGluZ3MuZGVsZWdhdGVz
UGFnZVNjYWxpbmcoKSkKKyAgICBpZiAoIW1fcmVuZGVyVmlldy5zZXR0aW5ncygpLmRlbGVnYXRl
c1BhZ2VTY2FsaW5nKCkpCiAgICAgICAgIGNsaXBSZWN0LnNjYWxlKHBhZ2VTY2FsZUZhY3Rvcigp
KTsKICAgICBjbGlwUmVjdC5pbnRlcnNlY3QoZXh0ZW50LmJvdW5kcyk7CiAgICAgb3ZlcmxhcE1h
cC5hZGQoY2xpcFJlY3QpOwpAQCAtMjcwMyw4ICsyNzAyLDcgQEAgYm9vbCBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JQb3NpdGlvbihSZW5kZXJMYXllck1vZGVs
T2JqZWMKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gRklYTUU6IGFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxlZCBzaG91bGQgcHJvYmFibHkgYmUgcmVu
YW1lZCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlld3BvcnRDb25zdHJhaW5lZFBvc2l0aW9u
RW5hYmxlZCgpLgotICAgIGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncyA9IG1fcmVuZGVyVmlldy5m
cmFtZVZpZXcoKS5mcmFtZSgpLnNldHRpbmdzKCk7Ci0gICAgaWYgKCFzZXR0aW5ncy5hY2NlbGVy
YXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQoKSkKKyAgICBpZiAoIW1fcmVu
ZGVyVmlldy5zZXR0aW5ncygpLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9u
RW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoaXNTdGlja3kpCkBA
IC0yODUxLDcgKzI4NDksNyBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6bmVlZHNGaXhl
ZFJvb3RCYWNrZ3JvdW5kTGF5ZXIoY29uc3QgUmVuZGVyTGF5ZXImIGxheQogICAgIGlmICgmbGF5
ZXIgIT0gbV9yZW5kZXJWaWV3LmxheWVyKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IGlmIChtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkuZnJhbWUoKS5zZXR0aW5ncygpLmZpeGVkQmFj
a2dyb3VuZHNQYWludFJlbGF0aXZlVG9Eb2N1bWVudCgpKQorICAgIGlmIChtX3JlbmRlclZpZXcu
c2V0dGluZ3MoKS5maXhlZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgTE9HKENvbXBvc2l0aW5nLCAiUmVuZGVyTGF5ZXJD
b21wb3NpdG9yICVwIG5lZWRzRml4ZWRSb290QmFja2dyb3VuZExheWVyIHJldHVybmluZyAlZCIs
IHRoaXMsIHN1cHBvcnRzRml4ZWRSb290QmFja2dyb3VuZENvbXBvc2l0aW5nKCkgJiYgbV9yZW5k
ZXJWaWV3LnJvb3RCYWNrZ3JvdW5kSXNFbnRpcmVseUZpeGVkKCkpOwpAQCAtMzAxNSw3ICszMDEz
LDcgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29udGVudFNoYWRvd0xh
eWVyKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gSWYgdGhlIGJhY2tn
cm91bmQgaXMgZ29pbmcgdG8gZXh0ZW5kLCB0aGVuIGl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBo
YXZlIGEgc2hhZG93IGxheWVyLgotICAgIGlmIChtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkuZnJh
bWUoKS5zZXR0aW5ncygpLmJhY2tncm91bmRTaG91bGRFeHRlbmRCZXlvbmRQYWdlKCkpCisgICAg
aWYgKG1fcmVuZGVyVmlldy5zZXR0aW5ncygpLmJhY2tncm91bmRTaG91bGRFeHRlbmRCZXlvbmRQ
YWdlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIE9uIE1hYywgd2Ugd2FudCBh
IGNvbnRlbnQgc2hhZG93IGxheWVyIGlmIHdlJ3JlIHVzaW5nIHRpbGVkIGRyYXdpbmcgYW5kIGNh
biBzY3JvbGwuCkBAIC0zMjQzLDcgKzMyNDEsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRv
cjo6dXBkYXRlT3ZlcmZsb3dDb250cm9sc0xheWVycygpCiAgICAgICAgICAgICBtX2xheWVyRm9y
T3ZlcmhhbmdBcmVhcy0+c2V0UG9zaXRpb24oRmxvYXRQb2ludCgwLCB0b3BDb250ZW50SW5zZXQp
KTsKICAgICAgICAgICAgIG1fbGF5ZXJGb3JPdmVyaGFuZ0FyZWFzLT5zZXRBbmNob3JQb2ludChG
bG9hdFBvaW50M0QoKSk7CiAKLSAgICAgICAgICAgIGlmIChtX3JlbmRlclZpZXcuZnJhbWVWaWV3
KCkuZnJhbWUoKS5zZXR0aW5ncygpLmJhY2tncm91bmRTaG91bGRFeHRlbmRCZXlvbmRQYWdlKCkp
CisgICAgICAgICAgICBpZiAobV9yZW5kZXJWaWV3LnNldHRpbmdzKCkuYmFja2dyb3VuZFNob3Vs
ZEV4dGVuZEJleW9uZFBhZ2UoKSkKICAgICAgICAgICAgICAgICBtX2xheWVyRm9yT3ZlcmhhbmdB
cmVhcy0+c2V0QmFja2dyb3VuZENvbG9yKG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5kb2N1bWVu
dEJhY2tncm91bmRDb2xvcigpKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBt
X2xheWVyRm9yT3ZlcmhhbmdBcmVhcy0+c2V0Q3VzdG9tQXBwZWFyYW5jZShHcmFwaGljc0xheWVy
OjpTY3JvbGxpbmdPdmVyaGFuZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKaW5kZXggNzNlNmY2NDhiOTY4YjJlYjA3ODg5ZWZl
YWNmZDljZjZkYTBiYjRjYS4uYjNhMTY3YjNlNWM5ZGIyOTM5ZGRmZGQwOThiZmEzZWEzMmYyY2Q0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVs
T2JqZWN0LmNwcApAQCAtMjE3LDExICsyMTcsMTEgQEAgYm9vbCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0OjpzaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0KCkgY29uc3QKICNp
ZiBQTEFURk9STShJT1MpIHx8IChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPCAxMDEyMDApCiAgICAgcmV0dXJuIGZhbHNlOwogI2Vsc2UKLSAgICBzd2l0
Y2ggKGZyYW1lKCkuc2V0dGluZ3MoKS51c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5KCkpIHsK
KyAgICBzd2l0Y2ggKHNldHRpbmdzKCkudXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSgpKSB7
CiAgICAgY2FzZSBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5OjpDb250ZW50OgogICAgICAg
ICByZXR1cm4gc3R5bGUoKS5zaG91bGRQbGFjZUJsb2NrRGlyZWN0aW9uU2Nyb2xsYmFyT25MZWZ0
KCk7CiAgICAgY2FzZSBVc2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5OjpTeXN0ZW06Ci0gICAg
ICAgIHJldHVybiBmcmFtZSgpLnNldHRpbmdzKCkuc3lzdGVtTGF5b3V0RGlyZWN0aW9uKCkgPT0g
UlRMOworICAgICAgICByZXR1cm4gc2V0dGluZ3MoKS5zeXN0ZW1MYXlvdXREaXJlY3Rpb24oKSA9
PSBSVEw7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBzdHls
ZSgpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRleCBjZGY4MDYwYmNiNWVkOGE4
ZjRmOTM3YTdlNDk3ZTE0NjdkNmViYjY1Li41YzA3Yjc1MTFhODg3NTgwMGYwYTgzZmUwMGY3Yjk3
MDdjZjA0M2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3Bw
CkBAIC04NTYsNyArODU2LDcgQEAgYm9vbCBSZW5kZXJMaXN0Qm94OjpzaG91bGRTdXNwZW5kU2Ny
b2xsQW5pbWF0aW9ucygpIGNvbnN0CiAKIGJvb2wgUmVuZGVyTGlzdEJveDo6Zm9yY2VVcGRhdGVT
Y3JvbGxiYXJzT25NYWluVGhyZWFkRm9yUGVyZm9ybWFuY2VUZXN0aW5nKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gZnJhbWUoKS5zZXR0aW5ncygpLmZvcmNlVXBkYXRlU2Nyb2xsYmFyc09uTWFpblRo
cmVhZEZvclBlcmZvcm1hbmNlVGVzdGluZygpOworICAgIHJldHVybiBzZXR0aW5ncygpLmZvcmNl
VXBkYXRlU2Nyb2xsYmFyc09uTWFpblRocmVhZEZvclBlcmZvcm1hbmNlVGVzdGluZygpOwogfQog
CiBTY3JvbGxhYmxlQXJlYSogUmVuZGVyTGlzdEJveDo6ZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDI5MTk3
ZmM0NDRlOWFkODdhYjVlZjFjZGQ3ZjUwZTMwZDkzNWUzMjAuLjY1NGI4NDUyYjk4ODEwZDc4Njlk
ZWRjMTU2MjU1MDkwOTA0NTM0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJGbG9hdFF1YWQuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUGFpbnRQaGFzZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdEVudW1zLmgiCiAj
aW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKQEAgLTUxNiw2ICs1MTcsNyBAQCBwdWJsaWM6CiAgICAg
RG9jdW1lbnQmIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9ub2RlLmRvY3VtZW50KCk7IH0K
ICAgICBGcmFtZSYgZnJhbWUoKSBjb25zdDsKICAgICBQYWdlJiBwYWdlKCkgY29uc3Q7CisgICAg
U2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgeyByZXR1cm4gcGFnZSgpLnNldHRpbmdzKCk7IH0K
IAogICAgIC8vIFJldHVybnMgdGhlIG9iamVjdCBjb250YWluaW5nIHRoaXMgb25lLiBDYW4gYmUg
ZGlmZmVyZW50IGZyb20gcGFyZW50IGZvciBwb3NpdGlvbmVkIGVsZW1lbnRzLgogICAgIC8vIElm
IHJlcGFpbnRDb250YWluZXIgYW5kIHJlcGFpbnRDb250YWluZXJTa2lwcGVkIGFyZSBub3QgbnVs
bCwgb24gcmV0dXJuICpyZXBhaW50Q29udGFpbmVyU2tpcHBlZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHQuY3BwCmluZGV4IDNkM2ZlMjczMDBhZWY0ZDExYzUzNGNlY2M2M2ExMzY0
ODA2NmQ1YjguLjFmNmM2MWI1NmIxZTExMGY1N2ViNzE3NTAwN2Y3ZGFlNjc3YWJhMDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCBp
bmxpbmUgU2VjdXJlVGV4dFRpbWVyOjpTZWN1cmVUZXh0VGltZXIoUmVuZGVyVGV4dCYgcmVuZGVy
ZXIpCiBpbmxpbmUgdm9pZCBTZWN1cmVUZXh0VGltZXI6OnJlc3RhcnQodW5zaWduZWQgb2Zmc2V0
QWZ0ZXJMYXN0VHlwZWRDaGFyYWN0ZXIpCiB7CiAgICAgbV9vZmZzZXRBZnRlckxhc3RUeXBlZENo
YXJhY3RlciA9IG9mZnNldEFmdGVyTGFzdFR5cGVkQ2hhcmFjdGVyOwotICAgIHN0YXJ0T25lU2hv
dChtX3JlbmRlcmVyLmZyYW1lKCkuc2V0dGluZ3MoKS5wYXNzd29yZEVjaG9EdXJhdGlvbkluU2Vj
b25kcygpKTsKKyAgICBzdGFydE9uZVNob3QobV9yZW5kZXJlci5zZXR0aW5ncygpLnBhc3N3b3Jk
RWNob0R1cmF0aW9uSW5TZWNvbmRzKCkpOwogfQogCiBpbmxpbmUgdW5zaWduZWQgU2VjdXJlVGV4
dFRpbWVyOjp0YWtlT2Zmc2V0QWZ0ZXJMYXN0VHlwZWRDaGFyYWN0ZXIoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IGZkZjRlYTNhNjIyODNmZjg1YjVjMzVmNjBl
YTRiYmI4ZjM1MTgxNjMuLjZjYTM4YWFkMmE5Zjc2NTlmNTMwNzdjYjk0NWM4MzJlMjhjZTc1NzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTQwNiw3ICs0MDYs
NyBAQCBMYXlvdXRVbml0IFJlbmRlclZpZXc6OmNsaWVudExvZ2ljYWxXaWR0aEZvckZpeGVkUG9z
aXRpb24oKSBjb25zdAogICAgICAgICByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/
IGZyYW1lVmlldygpLmN1c3RvbUZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KCkud2lkdGgoKSA6IGZy
YW1lVmlldygpLmN1c3RvbUZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KCkuaGVpZ2h0KCk7CiAjZW5k
aWYKIAotICAgIGlmIChmcmFtZVZpZXcoKS5mcmFtZSgpLnNldHRpbmdzKCkudmlzdWFsVmlld3Bv
cnRFbmFibGVkKCkpCisgICAgaWYgKHNldHRpbmdzKCkudmlzdWFsVmlld3BvcnRFbmFibGVkKCkp
CiAgICAgICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gZnJhbWVWaWV3KCku
bGF5b3V0Vmlld3BvcnRSZWN0KCkud2lkdGgoKSA6IGZyYW1lVmlldygpLmxheW91dFZpZXdwb3J0
UmVjdCgpLmhlaWdodCgpOwogCiAgICAgcmV0dXJuIGNsaWVudExvZ2ljYWxXaWR0aCgpOwpAQCAt
NDIzLDcgKzQyMyw3IEBAIExheW91dFVuaXQgUmVuZGVyVmlldzo6Y2xpZW50TG9naWNhbEhlaWdo
dEZvckZpeGVkUG9zaXRpb24oKSBjb25zdAogICAgICAgICByZXR1cm4gaXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUoKSA/IGZyYW1lVmlldygpLmN1c3RvbUZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KCku
aGVpZ2h0KCkgOiBmcmFtZVZpZXcoKS5jdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdCgpLndp
ZHRoKCk7CiAjZW5kaWYKIAotICAgIGlmIChmcmFtZVZpZXcoKS5mcmFtZSgpLnNldHRpbmdzKCku
dmlzdWFsVmlld3BvcnRFbmFibGVkKCkpCisgICAgaWYgKHNldHRpbmdzKCkudmlzdWFsVmlld3Bv
cnRFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8g
ZnJhbWVWaWV3KCkubGF5b3V0Vmlld3BvcnRSZWN0KCkuaGVpZ2h0KCkgOiBmcmFtZVZpZXcoKS5s
YXlvdXRWaWV3cG9ydFJlY3QoKS53aWR0aCgpOwogCiAgICAgcmV0dXJuIGNsaWVudExvZ2ljYWxI
ZWlnaHQoKTsKQEAgLTU5MCw3ICs1OTAsNyBAQCB2b2lkIFJlbmRlclZpZXc6OnBhaW50Qm94RGVj
b3JhdGlvbnMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JikKICAgICAg
ICAgcm9vdE9ic2N1cmVzQmFja2dyb3VuZCA9IHJlbmRlcmVyT2JzY3VyZXNCYWNrZ3JvdW5kKCpy
b290UmVuZGVyZXIpOwogICAgIH0KIAotICAgIGJvb2wgYmFja2dyb3VuZFNob3VsZEV4dGVuZEJl
eW9uZFBhZ2UgPSBmcmFtZVZpZXcoKS5mcmFtZSgpLnNldHRpbmdzKCkuYmFja2dyb3VuZFNob3Vs
ZEV4dGVuZEJleW9uZFBhZ2UoKTsKKyAgICBib29sIGJhY2tncm91bmRTaG91bGRFeHRlbmRCZXlv
bmRQYWdlID0gc2V0dGluZ3MoKS5iYWNrZ3JvdW5kU2hvdWxkRXh0ZW5kQmV5b25kUGFnZSgpOwog
ICAgIGNvbXBvc2l0b3IoKS5zZXRSb290RXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3IoYmFja2dyb3Vu
ZFNob3VsZEV4dGVuZEJleW9uZFBhZ2UgPyBmcmFtZVZpZXcoKS5kb2N1bWVudEJhY2tncm91bmRD
b2xvcigpIDogQ29sb3IoKSk7CiAKICAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dC5jcHAKaW5kZXgg
NWY4MDlkODgwMDdjMWQzYWRkNGI4MjZlZDk2OWUxMjA1ZDU2OGE0MS4uZWI0NTAxM2M4NGZhZDE5
MmE2NmU0YTEzMTVhMWM5OTgwYzk5OGEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9TaW1wbGVMaW5lTGF5b3V0LmNwcApAQCAtMjY4LDcgKzI2OCw3IEBAIHN0YXRpYyBBdm9pZGFu
Y2VSZWFzb25GbGFncyBjYW5Vc2VGb3JXaXRoUmVhc29uKGNvbnN0IFJlbmRlckJsb2NrRmxvdyYg
ZmxvdywgSW5jCiAgICAgfSk7CiAjZW5kaWYKICAgICBBdm9pZGFuY2VSZWFzb25GbGFncyByZWFz
b25zID0geyB9OwotICAgIGlmICghZmxvdy5mcmFtZSgpLnNldHRpbmdzKCkuc2ltcGxlTGluZUxh
eW91dEVuYWJsZWQoKSkKKyAgICBpZiAoIWZsb3cuc2V0dGluZ3MoKS5zaW1wbGVMaW5lTGF5b3V0
RW5hYmxlZCgpKQogICAgICAgICBTRVRfUkVBU09OX0FORF9SRVRVUk5fSUZfTkVFREVEKEZlYXR1
cmVJc0Rpc2FibGVkLCByZWFzb25zLCBpbmNsdWRlUmVhc29ucyk7CiAgICAgaWYgKCFmbG93LnBh
cmVudCgpKQogICAgICAgICBTRVRfUkVBU09OX0FORF9SRVRVUk5fSUZfTkVFREVEKEZsb3dIYXNO
b1BhcmVudCwgcmVhc29ucywgaW5jbHVkZVJlYXNvbnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXRGdW5jdGlvbnMuY3BwCmluZGV4IDk1YTM3
NDg1ZTUxNWMyYWExMzEzMmJmOTMwY2QwYTM2MTBjZWVmZWEuLjVjNTZhMzYwMzFiNTQ2YjQ0N2I2
NzMxMGYyYmYwNWFiZjAwMDRmMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9TaW1wbGVMaW5lTGF5b3V0RnVuY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvU2ltcGxlTGluZUxheW91dEZ1bmN0aW9ucy5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgdm9p
ZCBwYWludEZsb3coY29uc3QgUmVuZGVyQmxvY2tGbG93JiBmbG93LCBjb25zdCBMYXlvdXQmIGxh
eW91dCwgUGFpbnRJbmZvJiBwYWkKICAgICBpZiAoc3R5bGUudmlzaWJpbGl0eSgpICE9IFZJU0lC
TEUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgZGVidWdCb3JkZXJzRW5hYmxlZCA9IGZs
b3cuZnJhbWUoKS5zZXR0aW5ncygpLnNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVk
KCk7CisgICAgYm9vbCBkZWJ1Z0JvcmRlcnNFbmFibGVkID0gZmxvdy5zZXR0aW5ncygpLnNpbXBs
ZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkKCk7CiAKICAgICBUZXh0UGFpbnRlciB0ZXh0
UGFpbnRlcihwYWludEluZm8uY29udGV4dCgpKTsKICAgICB0ZXh0UGFpbnRlci5zZXRGb250KHN0
eWxlLmZvbnRDYXNjYWRlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcAppbmRleCBhMmZlNTliNTZmMDIxZjA2
N2U0MDQ5NzY2MDAwODAxMmZiN2ExYTcxLi4yMzk0ZGI2YWE3MGM2ZDZjOThhNWU0ZWJjZjY4ZWNi
NTg1ZjFmNjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlRmlsdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlRmlsdGVyLmNwcApAQCAtMTg1LDggKzE4NSw3IEBAIGJvb2wgUmVu
ZGVyU1ZHUmVzb3VyY2VGaWx0ZXI6OmFwcGx5UmVzb3VyY2UoUmVuZGVyRWxlbWVudCYgcmVuZGVy
ZXIsIGNvbnN0IFJlbmRlCiAgICAgZWZmZWN0aXZlVHJhbnNmb3JtLnNjYWxlKHNjYWxlLndpZHRo
KCksIHNjYWxlLmhlaWdodCgpKTsKICAgICBlZmZlY3RpdmVUcmFuc2Zvcm0ubXVsdGlwbHkoZmls
dGVyRGF0YS0+c2hlYXJGcmVlQWJzb2x1dGVUcmFuc2Zvcm0pOwogCi0gICAgUmVuZGVyaW5nTW9k
ZSByZW5kZXJpbmdNb2RlID0gcmVuZGVyZXIuZnJhbWUoKS5zZXR0aW5ncygpLmFjY2VsZXJhdGVk
RmlsdGVyc0VuYWJsZWQoKSA/IEFjY2VsZXJhdGVkIDogVW5hY2NlbGVyYXRlZDsKLQorICAgIFJl
bmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSA9IHJlbmRlcmVyLnNldHRpbmdzKCkuYWNjZWxlcmF0
ZWRGaWx0ZXJzRW5hYmxlZCgpID8gQWNjZWxlcmF0ZWQgOiBVbmFjY2VsZXJhdGVkOwogICAgIGF1
dG8gc291cmNlR3JhcGhpYyA9IFNWR1JlbmRlcmluZ0NvbnRleHQ6OmNyZWF0ZUltYWdlQnVmZmVy
KGZpbHRlckRhdGEtPmRyYXdpbmdSZWdpb24sIGVmZmVjdGl2ZVRyYW5zZm9ybSwgQ29sb3JTcGFj
ZUxpbmVhclJHQiwgcmVuZGVyaW5nTW9kZSk7CiAgICAgaWYgKCFzb3VyY2VHcmFwaGljKSB7CiAg
ICAgICAgIEFTU0VSVCghbV9maWx0ZXIuY29udGFpbnMoJnJlbmRlcmVyKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>