<?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>149976</bug_id>
          
          <creation_ts>2015-10-09 16:54:58 -0700</creation_ts>
          <short_desc>Rename RenderObject::isRoot() to isDocumentElementRenderer()</short_desc>
          <delta_ts>2015-10-09 19:21:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>hyatt</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1132045</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-10-09 16:54:58 -0700</bug_when>
    <thetext>Rename RenderObject::isRoot() to isDocumentElementRenderer()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132046</commentid>
    <comment_count>1</comment_count>
      <attachid>262802</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-10-09 16:56:15 -0700</bug_when>
    <thetext>Created attachment 262802
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132047</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-09 16:58:47 -0700</bug_when>
    <thetext>Attachment 262802 did not pass style-queue:


ERROR: Source/WebCore/rendering/RenderBlock.cpp:1836:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132061</commentid>
    <comment_count>3</comment_count>
      <attachid>262802</attachid>
    <who name="alan">zalan</who>
    <bug_when>2015-10-09 17:37:35 -0700</bug_when>
    <thetext>Comment on attachment 262802
Patch

It&apos;s a pity that there&apos;s no shorter name for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132087</commentid>
    <comment_count>4</comment_count>
      <attachid>262802</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-09 19:21:26 -0700</bug_when>
    <thetext>Comment on attachment 262802
Patch

Clearing flags on attachment: 262802

Committed r190834: &lt;http://trac.webkit.org/changeset/190834&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132088</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-09 19:21:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262802</attachid>
            <date>2015-10-09 16:56:15 -0700</date>
            <delta_ts>2015-10-09 19:21:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149976-20151009165541.patch</filename>
            <type>text/plain</type>
            <size>41027</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwODI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWMxNGEzN2Q3MmI2ZmM0
YTAxODdhZmNjNTAxZGI3YWQ0NmMxMmFmNy4uODkxYTlmZjBhMTYyOWQ2Mjk1ZjVhM2ZiNjFlM2Zi
MDhlZjQ5M2MwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDE1LTEwLTA5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBSZW5k
ZXJPYmplY3Q6OmlzUm9vdCgpIHRvIGlzRG9jdW1lbnRFbGVtZW50UmVuZGVyZXIoKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5OTc2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuZGVyT2JqZWN0Ojpp
c1Jvb3QoKSB3YXMgY29uZnVzaW5nbHkgbmFtZWQsIGJlY2F1c2UgaXQgcmV0dXJucyB0cnVlIGZv
cgorICAgICAgICB0aGUgZG9jdW1lbnQgZWxlbWVudCdzIHJlbmRlcmVyLCBub3QgZm9yIHRoZSBh
Y3R1YWwgcm9vdCAodGhlIFJlbmRlclZpZXcpLgorICAgICAgICBJbiB0aGlzIHdheSBpdCBtaXNt
YXRjaGVkIFJlbmRlckxheWVyOjppc1Jvb3RMYXllcigpLCB3aGljaCByZXR1cm5lZCB0cnVlCisg
ICAgICAgIGZvciB0aGUgUmVuZGVyVmlldydzIGxheWVyLgorICAgICAgICAKKyAgICAgICAgUmVu
YW1lIGl0IHRvIHRoZSBtb3JlIGFjY3VyYXRlIGlzRG9jdW1lbnRFbGVtZW50UmVuZGVyZXIoKS4K
KworICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnJlbmRl
clJlY3QpOgorICAgICAgICAqIHBhZ2UvaW9zL0ZyYW1lSU9TLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWU6OnJlbmRlclJlY3RGb3JQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6aXNTZWxlY3Rpb25Sb290KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrOjpzZWxlY3Rpb25HYXBzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQmxvY2tGbG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6
cmVidWlsZEZsb2F0aW5nT2JqZWN0U2V0RnJvbUludHJ1ZGluZ0Zsb2F0cyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEJsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrRmxvdzo6cmVxdWlyZXNDb2x1bW5zKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c3R5bGVXaWxsQ2hh
bmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c3R5bGVEaWRDaGFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojp1cGRhdGVGcm9tU3R5bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94OjpwYWludEJhY2tncm91bmQpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQm94Ojpjb21wdXRlQmFja2dyb3VuZElzS25vd25Ub0JlT2JzY3VyZWQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQm94OjpyZXBhaW50TGF5ZXJSZWN0c0ZvckltYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94Ojpjb21wdXRlUGVyY2VudGFnZUxvZ2ljYWxIZWlnaHQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQm94OjpjcmVhdGVzTmV3Rm9ybWF0dGluZ0NvbnRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwZXJjZW50YWdlTG9naWNhbEhlaWdodElzUmVzb2x2
YWJsZUZyb21CbG9jayk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzdHJldGNoZXNUb1ZpZXdwb3J0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmZpeGVkQmFja2dyb3VuZFBhaW50c0luTG9jYWxD
b29yZGluYXRlcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2Fs
Y3VsYXRlQmFja2dyb3VuZEltYWdlR2VvbWV0cnkpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJCb3hNb2RlbE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVk
RmxleGlibGVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRGVwcmVjYXRlZEZsZXhp
YmxlQm94OjpsYXlvdXRCbG9jayk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hhbmdlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnJlbmRlcmVyRm9yUm9vdEJhY2tncm91
bmQpOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkUmVwYWludEZvckltYWdlQW5pbWF0aW9uKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJs
ZUJveDo6bGF5b3V0QmxvY2spOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmxheW91dEJsb2NrKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkU3VwcHJl
c3NQYWludGluZ0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50Rm9yRml4ZWRSb290QmFj
a2dyb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRl
bnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJC
YWNraW5nOjpyZW5kZXJlckJhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckJhY2tpbmc6OmlzU2ltcGxlQ29udGFpbmVyQ29tcG9zaXRpbmdMYXllcik6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2Jq
ZWN0OjpyZXBhaW50U2xvd1JlcGFpbnRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
T2JqZWN0OjpvZmZzZXRQYXJlbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNEb2N1bWVudEVsZW1lbnRSZW5k
ZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzUm9vdCk6IERlbGV0ZWQu
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRhYmxlOjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
b290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6OmxheW91dCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290OjpzaG91bGRBcHBseVZpZXdwb3J0Q2xpcCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1JlbmRlclN1cHBvcnQ6OmlzT3ZlcmZsb3dIaWRkZW4pOgorCiAyMDE1LTEwLTA5
ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3Zl
IGhhY2sgdGhhdCBhbGxvd2VkIHBsdWctaW5zIHRvIGFsd2F5cyB0YWtlIG92ZXIgY2VydGFpbiBp
bWFnZSBmb3JtYXRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggZTg0MGJkYzcyODZjOWU1NWUwNTY5ZWRm
NjA3ODQ1ZmJmN2UyZjhlYy4uYWVhYWQwMGFkM2E3MjhhZmYxNmUzMjJkOTY4MjllN2I4ZTI1YmU0
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtNzIxLDcgKzcyMSw3IEBAIExheW91dFJlY3QgTm9kZTo6
cmVuZGVyUmVjdChib29sKiBpc1JlcGxhY2VkKQogICAgIFJlbmRlck9iamVjdCogaGl0UmVuZGVy
ZXIgPSB0aGlzLT5yZW5kZXJlcigpOwogICAgIEFTU0VSVChoaXRSZW5kZXJlcik7CiAgICAgUmVu
ZGVyT2JqZWN0KiByZW5kZXJlciA9IGhpdFJlbmRlcmVyOwotICAgIHdoaWxlIChyZW5kZXJlciAm
JiAhcmVuZGVyZXItPmlzQm9keSgpICYmICFyZW5kZXJlci0+aXNSb290KCkpIHsKKyAgICB3aGls
ZSAocmVuZGVyZXIgJiYgIXJlbmRlcmVyLT5pc0JvZHkoKSAmJiAhcmVuZGVyZXItPmlzRG9jdW1l
bnRFbGVtZW50UmVuZGVyZXIoKSkgewogICAgICAgICBpZiAocmVuZGVyZXItPmlzUmVuZGVyQmxv
Y2soKSB8fCByZW5kZXJlci0+aXNJbmxpbmVCbG9ja09ySW5saW5lVGFibGUoKSB8fCByZW5kZXJl
ci0+aXNSZXBsYWNlZCgpKSB7CiAgICAgICAgICAgICAqaXNSZXBsYWNlZCA9IHJlbmRlcmVyLT5p
c1JlcGxhY2VkKCk7CiAgICAgICAgICAgICByZXR1cm4gcmVuZGVyZXItPmFic29sdXRlQm91bmRp
bmdCb3hSZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9GcmFtZUlP
Uy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tCmluZGV4IGEzZTdlOGRi
YzlmODZjYTBiNDBlZmZjOTAxNjQwZWQxNTYzZjFiYmEuLjM1NjViMzY0ZDc3YWI1NWI0MjhmNjQz
M2Y0NWNmOTI1MWM1YjJmZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0Zy
YW1lSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0ZyYW1lSU9TLm1tCkBAIC0y
NDEsNyArMjQxLDcgQEAgQ0dSZWN0IEZyYW1lOjpyZW5kZXJSZWN0Rm9yUG9pbnQoQ0dQb2ludCBw
b2ludCwgYm9vbCogaXNSZXBsYWNlZCwgZmxvYXQqIGZvbnRTaXoKICNpZiBSRUNUX0xPR0dJTkcK
ICAgICBwcmludGYoIlxuJWYgJWZcbiIsIHBvaW50LngsIHBvaW50LnkpOwogI2VuZGlmCi0gICAg
d2hpbGUgKHJlbmRlcmVyICYmICFyZW5kZXJlci0+aXNCb2R5KCkgJiYgIXJlbmRlcmVyLT5pc1Jv
b3QoKSkgeworICAgIHdoaWxlIChyZW5kZXJlciAmJiAhcmVuZGVyZXItPmlzQm9keSgpICYmICFy
ZW5kZXJlci0+aXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigpKSB7CiAjaWYgUkVDVF9MT0dHSU5H
CiAgICAgICAgIENHUmVjdCByZWN0ID0gcmVuZGVyZXItPmFic29sdXRlQm91bmRpbmdCb3hSZWN0
KHRydWUpOwogICAgICAgICBpZiAocmVuZGVyZXItPm5vZGUoKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggODBmODI0NWJkNTc1YWYxMWM5NmJkNjU4MjZm
YjA1YjYzMTA0NmE2My4uM2YzYzIyMjg4YWRhODEwMzFiOWRhN2ZkZDE0ZjY2MTk5NWRjOGJhYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0xMzk1LDkgKzEz
OTUsOSBAQCB2b2lkIFJlbmRlckJsb2NrOjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29u
c3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogICAgIFBhaW50UGhhc2UgcGhhc2UgPSBwYWlu
dEluZm8ucGhhc2U7CiAKICAgICAvLyBDaGVjayBpZiB3ZSBuZWVkIHRvIGRvIGFueXRoaW5nIGF0
IGFsbC4KLSAgICAvLyBGSVhNRTogQ291bGQgZWxpbWluYXRlIHRoZSBpc1Jvb3QoKSBjaGVjayBp
ZiB3ZSBmaXggYmFja2dyb3VuZCBwYWludGluZyBzbyB0aGF0IHRoZSBSZW5kZXJWaWV3CisgICAg
Ly8gRklYTUU6IENvdWxkIGVsaW1pbmF0ZSB0aGUgaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigp
IGNoZWNrIGlmIHdlIGZpeCBiYWNrZ3JvdW5kIHBhaW50aW5nIHNvIHRoYXQgdGhlIFJlbmRlclZp
ZXcKICAgICAvLyBwYWludHMgdGhlIHJvb3QncyBiYWNrZ3JvdW5kLgotICAgIGlmICghaXNSb290
KCkpIHsKKyAgICBpZiAoIWlzRG9jdW1lbnRFbGVtZW50UmVuZGVyZXIoKSkgewogICAgICAgICBM
YXlvdXRSZWN0IG92ZXJmbG93Qm94ID0gb3ZlcmZsb3dSZWN0Rm9yUGFpbnRSZWplY3Rpb24obmFt
ZWRGbG93RnJhZ21lbnQpOwogICAgICAgICBmbGlwRm9yV3JpdGluZ01vZGUob3ZlcmZsb3dCb3gp
OwogICAgICAgICBhZGp1c3RSZWN0V2l0aE1heGltdW1PdXRsaW5lKHBoYXNlLCBvdmVyZmxvd0Jv
eCk7CkBAIC0xNzIzLDcgKzE3MjMsNyBAQCBib29sIFJlbmRlckJsb2NrOjppc1NlbGVjdGlvblJv
b3QoKSBjb25zdAogICAgIGlmIChpc1RhYmxlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgCi0gICAgaWYgKGlzQm9keSgpIHx8IGlzUm9vdCgpIHx8IGhhc092ZXJmbG93Q2xpcCgp
CisgICAgaWYgKGlzQm9keSgpIHx8IGlzRG9jdW1lbnRFbGVtZW50UmVuZGVyZXIoKSB8fCBoYXNP
dmVyZmxvd0NsaXAoKQogICAgICAgICB8fCBpc1Bvc2l0aW9uZWQoKSB8fCBpc0Zsb2F0aW5nKCkK
ICAgICAgICAgfHwgaXNUYWJsZUNlbGwoKSB8fCBpc0lubGluZUJsb2NrT3JJbmxpbmVUYWJsZSgp
CiAgICAgICAgIHx8IGhhc1RyYW5zZm9ybSgpIHx8IGhhc1JlZmxlY3Rpb24oKSB8fCBoYXNNYXNr
KCkgfHwgaXNXcml0aW5nTW9kZVJvb3QoKQpAQCAtMTgzMyw5ICsxODMzLDEwIEBAIEdhcFJlY3Rz
IFJlbmRlckJsb2NrOjpzZWxlY3Rpb25HYXBzKFJlbmRlckJsb2NrJiByb290QmxvY2ssIGNvbnN0
IExheW91dFBvaW50JiByCiAgICAgICAgIHJvb3RCbG9jay5mbGlwRm9yV3JpdGluZ01vZGUoZmxp
cHBlZEJsb2NrUmVjdCk7CiAgICAgICAgIGZsaXBwZWRCbG9ja1JlY3QubW92ZUJ5KHJvb3RCbG9j
a1BoeXNpY2FsUG9zaXRpb24pOwogICAgICAgICBjbGlwT3V0UG9zaXRpb25lZE9iamVjdHMocGFp
bnRJbmZvLCBmbGlwcGVkQmxvY2tSZWN0LmxvY2F0aW9uKCksIHBvc2l0aW9uZWRPYmplY3RzKCkp
OwotICAgICAgICBpZiAoaXNCb2R5KCkgfHwgaXNSb290KCkpIC8vIFRoZSA8Ym9keT4gbXVzdCBt
YWtlIHN1cmUgdG8gZXhhbWluZSBpdHMgY29udGFpbmluZ0Jsb2NrJ3MgcG9zaXRpb25lZCBvYmpl
Y3RzLgorICAgICAgICBpZiAoaXNCb2R5KCkgfHwgaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigp
KSB7IC8vIFRoZSA8Ym9keT4gbXVzdCBtYWtlIHN1cmUgdG8gZXhhbWluZSBpdHMgY29udGFpbmlu
Z0Jsb2NrJ3MgcG9zaXRpb25lZCBvYmplY3RzLgogICAgICAgICAgICAgZm9yIChSZW5kZXJCbG9j
ayogY2IgPSBjb250YWluaW5nQmxvY2soKTsgY2IgJiYgIWNiLT5pc1JlbmRlclZpZXcoKTsgY2Ig
PSBjYi0+Y29udGFpbmluZ0Jsb2NrKCkpCiAgICAgICAgICAgICAgICAgY2xpcE91dFBvc2l0aW9u
ZWRPYmplY3RzKHBhaW50SW5mbywgTGF5b3V0UG9pbnQoY2ItPngoKSwgY2ItPnkoKSksIGNiLT5w
b3NpdGlvbmVkT2JqZWN0cygpKTsgLy8gRklYTUU6IE5vdCByaWdodCBmb3IgZmxpcHBlZCB3cml0
aW5nIG1vZGVzLgorICAgICAgICB9CiAgICAgICAgIGNsaXBPdXRGbG9hdGluZ09iamVjdHMocm9v
dEJsb2NrLCBwYWludEluZm8sIHJvb3RCbG9ja1BoeXNpY2FsUG9zaXRpb24sIG9mZnNldEZyb21S
b290QmxvY2spOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2tGbG93LmNwcAppbmRleCA5YTFkMjY5OGZjMDg1YmJmY2RhYjAxMWFmYzA3ZjUwZjE5NjA4YmUy
Li41OGM0OTU0YzY0NDMyZTA5NDI3YzQ5M2I1YzdjNDhkZjA3YzM1YWJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtMjEzLDcgKzIxMyw3IEBA
IHZvaWQgUmVuZGVyQmxvY2tGbG93OjpyZWJ1aWxkRmxvYXRpbmdPYmplY3RTZXRGcm9tSW50cnVk
aW5nRmxvYXRzKCkKICAgICB9CiAKICAgICAvLyBJbmxpbmUgYmxvY2tzIGFyZSBjb3ZlcmVkIGJ5
IHRoZSBpc1JlcGxhY2VkKCkgY2hlY2sgaW4gdGhlIGF2b2lkRmxvYXRzIG1ldGhvZC4KLSAgICBp
ZiAoYXZvaWRzRmxvYXRzKCkgfHwgaXNSb290KCkgfHwgaXNSZW5kZXJWaWV3KCkgfHwgaXNGbG9h
dGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpIHx8IGlzVGFibGVDZWxsKCkpIHsKKyAgICBpZiAo
YXZvaWRzRmxvYXRzKCkgfHwgaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigpIHx8IGlzUmVuZGVy
VmlldygpIHx8IGlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSB8fCBpc1RhYmxlQ2Vs
bCgpKSB7CiAgICAgICAgIGlmIChtX2Zsb2F0aW5nT2JqZWN0cykKICAgICAgICAgICAgIG1fZmxv
YXRpbmdPYmplY3RzLT5jbGVhcigpOwogICAgICAgICBpZiAoIW9sZEludHJ1ZGluZ0Zsb2F0U2V0
LmlzRW1wdHkoKSkKQEAgLTUyMSw3ICs1MjEsNyBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6bGF5
b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSAog
ICAgIGlmIChoZWlnaHRDaGFuZ2VkKQogICAgICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsK
IAotICAgIGxheW91dFBvc2l0aW9uZWRPYmplY3RzKHJlbGF5b3V0Q2hpbGRyZW4gfHwgaXNSb290
KCkpOworICAgIGxheW91dFBvc2l0aW9uZWRPYmplY3RzKHJlbGF5b3V0Q2hpbGRyZW4gfHwgaXNE
b2N1bWVudEVsZW1lbnRSZW5kZXJlcigpKTsKIAogICAgIC8vIEFkZCBvdmVyZmxvdyBmcm9tIGNo
aWxkcmVuICh1bmxlc3Mgd2UncmUgbXVsdGktY29sdW1uLCBzaW5jZSBpbiB0aGF0IGNhc2UgYWxs
IG91ciBjaGlsZCBvdmVyZmxvdyBpcyBjbGlwcGVkIGFueXdheSkuCiAgICAgY29tcHV0ZU92ZXJm
bG93KG9sZENsaWVudEFmdGVyRWRnZSk7CkBAIC0zODM4LDcgKzM4MzgsNyBAQCBib29sIFJlbmRl
ckJsb2NrRmxvdzo6cmVxdWlyZXNDb2x1bW5zKGludCBkZXNpcmVkQ29sdW1uQ291bnQpIGNvbnN0
CiB7CiAgICAgLy8gSWYgb3ZlcmZsb3cteSBpcyBzZXQgdG8gcGFnZWQteCBvciBwYWdlZC15IG9u
IHRoZSBib2R5IG9yIGh0bWwgZWxlbWVudCwgd2UnbGwgaGFuZGxlIHRoZSBwYWdpbmF0aW5nCiAg
ICAgLy8gaW4gdGhlIFJlbmRlclZpZXcgaW5zdGVhZC4KLSAgICBib29sIGlzUGFnaW5hdGVkID0g
KHN0eWxlKCkub3ZlcmZsb3dZKCkgPT0gT1BBR0VEWCB8fCBzdHlsZSgpLm92ZXJmbG93WSgpID09
IE9QQUdFRFkpICYmICEoaXNSb290KCkgfHwgaXNCb2R5KCkpOworICAgIGJvb2wgaXNQYWdpbmF0
ZWQgPSAoc3R5bGUoKS5vdmVyZmxvd1koKSA9PSBPUEFHRURYIHx8IHN0eWxlKCkub3ZlcmZsb3dZ
KCkgPT0gT1BBR0VEWSkgJiYgIShpc0RvY3VtZW50RWxlbWVudFJlbmRlcmVyKCkgfHwgaXNCb2R5
KCkpOwogCiAgICAgcmV0dXJuIGZpcnN0Q2hpbGQoKSAmJiAoZGVzaXJlZENvbHVtbkNvdW50ICE9
IDEgfHwgIXN0eWxlKCkuaGFzQXV0b0NvbHVtbldpZHRoKCkgfHwgIXN0eWxlKCkuaGFzSW5saW5l
Q29sdW1uQXhpcygpIHx8IGlzUGFnaW5hdGVkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5jcHAKaW5kZXggM2IyZGYxYTg4OWFlNjBlNDEwMWVmN2IxOTBhYWEzYTQxMzMyZWE1
Zi4uODFmN2Q4NmEzZDY3ZTY2Y2M5NDQ4MzdhNzZmNzk5OTBmYzg0YzEyYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTI5Myw3ICsyOTMsNyBAQCB2b2lkIFJlbmRl
ckJveDo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJT
dHlsZSYgbmV3U3R5bAogICAgIGlmIChvbGRTdHlsZSkgewogICAgICAgICAvLyBUaGUgYmFja2dy
b3VuZCBvZiB0aGUgcm9vdCBlbGVtZW50IG9yIHRoZSBib2R5IGVsZW1lbnQgY291bGQgcHJvcGFn
YXRlIHVwIHRvCiAgICAgICAgIC8vIHRoZSBjYW52YXMuIElzc3VlIGZ1bGwgcmVwYWludCwgd2hl
biBvdXIgc3R5bGUgY2hhbmdlcyBzdWJzdGFudGlhbGx5LgotICAgICAgICBpZiAoZGlmZiA+PSBT
dHlsZURpZmZlcmVuY2VSZXBhaW50ICYmIChpc1Jvb3QoKSB8fCBpc0JvZHkoKSkpIHsKKyAgICAg
ICAgaWYgKGRpZmYgPj0gU3R5bGVEaWZmZXJlbmNlUmVwYWludCAmJiAoaXNEb2N1bWVudEVsZW1l
bnRSZW5kZXJlcigpIHx8IGlzQm9keSgpKSkgewogICAgICAgICAgICAgdmlldygpLnJlcGFpbnRS
b290Q29udGVudHMoKTsKICAgICAgICAgICAgIGlmIChvbGRTdHlsZS0+aGFzRW50aXJlbHlGaXhl
ZEJhY2tncm91bmQoKSAhPSBuZXdTdHlsZS5oYXNFbnRpcmVseUZpeGVkQmFja2dyb3VuZCgpKQog
ICAgICAgICAgICAgICAgIHZpZXcoKS5jb21wb3NpdG9yKCkucm9vdEZpeGVkQmFja2dyb3VuZHND
aGFuZ2VkKCk7CkBAIC0zNzMsMjAgKzM3MywyMCBAQCB2b2lkIFJlbmRlckJveDo6c3R5bGVEaWRD
aGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZQog
ICAgIH0KIAogICAgIGJvb2wgaXNCb2R5UmVuZGVyZXIgPSBpc0JvZHkoKTsKLSAgICBib29sIGlz
Um9vdFJlbmRlcmVyID0gaXNSb290KCk7CisgICAgYm9vbCBpc0RvY0VsZW1lbnRSZW5kZXJlciA9
IGlzRG9jdW1lbnRFbGVtZW50UmVuZGVyZXIoKTsKIAogICAgIC8vIFNldCB0aGUgdGV4dCBjb2xv
ciBpZiB3ZSdyZSB0aGUgYm9keS4KICAgICBpZiAoaXNCb2R5UmVuZGVyZXIpCiAgICAgICAgIGRv
Y3VtZW50KCkuc2V0VGV4dENvbG9yKG5ld1N0eWxlLnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQ
cm9wZXJ0eUNvbG9yKSk7CiAKLSAgICBpZiAoaXNSb290UmVuZGVyZXIgfHwgaXNCb2R5UmVuZGVy
ZXIpIHsKKyAgICBpZiAoaXNEb2NFbGVtZW50UmVuZGVyZXIgfHwgaXNCb2R5UmVuZGVyZXIpIHsK
ICAgICAgICAgLy8gUHJvcGFnYXRlIHRoZSBuZXcgd3JpdGluZyBtb2RlIGFuZCBkaXJlY3Rpb24g
dXAgdG8gdGhlIFJlbmRlclZpZXcuCiAgICAgICAgIFJlbmRlclN0eWxlJiB2aWV3U3R5bGUgPSB2
aWV3KCkuc3R5bGUoKTsKICAgICAgICAgYm9vbCB2aWV3Q2hhbmdlZFdyaXRpbmdNb2RlID0gZmFs
c2U7CiAgICAgICAgIGJvb2wgcm9vdFN0eWxlQ2hhbmdlZCA9IGZhbHNlOwogICAgICAgICBib29s
IHZpZXdTdHlsZUNoYW5nZWQgPSBmYWxzZTsKICAgICAgICAgUmVuZGVyT2JqZWN0KiByb290UmVu
ZGVyZXIgPSBpc0JvZHlSZW5kZXJlciA/IGRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCktPnJl
bmRlcmVyKCkgOiBudWxscHRyOwotICAgICAgICBpZiAodmlld1N0eWxlLmRpcmVjdGlvbigpICE9
IG5ld1N0eWxlLmRpcmVjdGlvbigpICYmIChpc1Jvb3RSZW5kZXJlciB8fCAhZG9jdW1lbnQoKS5k
aXJlY3Rpb25TZXRPbkRvY3VtZW50RWxlbWVudCgpKSkgeworICAgICAgICBpZiAodmlld1N0eWxl
LmRpcmVjdGlvbigpICE9IG5ld1N0eWxlLmRpcmVjdGlvbigpICYmIChpc0RvY0VsZW1lbnRSZW5k
ZXJlciB8fCAhZG9jdW1lbnQoKS5kaXJlY3Rpb25TZXRPbkRvY3VtZW50RWxlbWVudCgpKSkgewog
ICAgICAgICAgICAgdmlld1N0eWxlLnNldERpcmVjdGlvbihuZXdTdHlsZS5kaXJlY3Rpb24oKSk7
CiAgICAgICAgICAgICB2aWV3U3R5bGVDaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgIGlmIChp
c0JvZHlSZW5kZXJlcikgewpAQCAtMzk2LDcgKzM5Niw3IEBAIHZvaWQgUmVuZGVyQm94OjpzdHls
ZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0
eWxlCiAgICAgICAgICAgICBzZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKICAg
ICAgICAgfQogCi0gICAgICAgIGlmICh2aWV3U3R5bGUud3JpdGluZ01vZGUoKSAhPSBuZXdTdHls
ZS53cml0aW5nTW9kZSgpICYmIChpc1Jvb3RSZW5kZXJlciB8fCAhZG9jdW1lbnQoKS53cml0aW5n
TW9kZVNldE9uRG9jdW1lbnRFbGVtZW50KCkpKSB7CisgICAgICAgIGlmICh2aWV3U3R5bGUud3Jp
dGluZ01vZGUoKSAhPSBuZXdTdHlsZS53cml0aW5nTW9kZSgpICYmIChpc0RvY0VsZW1lbnRSZW5k
ZXJlciB8fCAhZG9jdW1lbnQoKS53cml0aW5nTW9kZVNldE9uRG9jdW1lbnRFbGVtZW50KCkpKSB7
CiAgICAgICAgICAgICB2aWV3U3R5bGUuc2V0V3JpdGluZ01vZGUobmV3U3R5bGUud3JpdGluZ01v
ZGUoKSk7CiAgICAgICAgICAgICB2aWV3Q2hhbmdlZFdyaXRpbmdNb2RlID0gdHJ1ZTsKICAgICAg
ICAgICAgIHZpZXdTdHlsZUNoYW5nZWQgPSB0cnVlOwpAQCAtNDc3LDE3ICs0NzcsMTcgQEAgdm9p
ZCBSZW5kZXJCb3g6OnVwZGF0ZUZyb21TdHlsZSgpCiAgICAgUmVuZGVyQm94TW9kZWxPYmplY3Q6
OnVwZGF0ZUZyb21TdHlsZSgpOwogCiAgICAgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlVG9Vc2Ug
PSBzdHlsZSgpOwotICAgIGJvb2wgaXNSb290T2JqZWN0ID0gaXNSb290KCk7CisgICAgYm9vbCBp
c0RvY0VsZW1lbnRSZW5kZXJlciA9IGlzRG9jdW1lbnRFbGVtZW50UmVuZGVyZXIoKTsKICAgICBi
b29sIGlzVmlld09iamVjdCA9IGlzUmVuZGVyVmlldygpOwogCiAgICAgLy8gVGhlIHJvb3QgYW5k
IHRoZSBSZW5kZXJWaWV3IGFsd2F5cyBwYWludCB0aGVpciBiYWNrZ3JvdW5kcy9ib3JkZXJzLgot
ICAgIGlmIChpc1Jvb3RPYmplY3QgfHwgaXNWaWV3T2JqZWN0KQorICAgIGlmIChpc0RvY0VsZW1l
bnRSZW5kZXJlciB8fCBpc1ZpZXdPYmplY3QpCiAgICAgICAgIHNldEhhc0JveERlY29yYXRpb25z
KHRydWUpOwogCiAgICAgc2V0RmxvYXRpbmcoIWlzT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmIHN0
eWxlVG9Vc2UuaXNGbG9hdGluZygpKTsKIAogICAgIC8vIFdlIGFsc28gaGFuZGxlIDxib2R5PiBh
bmQgPGh0bWw+LCB3aG9zZSBvdmVyZmxvdyBhcHBsaWVzIHRvIHRoZSB2aWV3cG9ydC4KLSAgICBp
ZiAoc3R5bGVUb1VzZS5vdmVyZmxvd1goKSAhPSBPVklTSUJMRSAmJiAhaXNSb290T2JqZWN0ICYm
IGlzUmVuZGVyQmxvY2soKSkgeworICAgIGlmIChzdHlsZVRvVXNlLm92ZXJmbG93WCgpICE9IE9W
SVNJQkxFICYmICFpc0RvY0VsZW1lbnRSZW5kZXJlciAmJiBpc1JlbmRlckJsb2NrKCkpIHsKICAg
ICAgICAgYm9vbCBib3hIYXNPdmVyZmxvd0NsaXAgPSB0cnVlOwogICAgICAgICBpZiAoaXNCb2R5
KCkpIHsKICAgICAgICAgICAgIC8vIE92ZXJmbG93IG9uIHRoZSBib2R5IGNhbiBwcm9wYWdhdGUg
dG8gdGhlIHZpZXdwb3J0IHVuZGVyIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucy4KQEAgLTEzMjUs
NyArMTMyNSw3IEBAIHZvaWQgUmVuZGVyQm94OjpwYWludEJveERlY29yYXRpb25zKFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpCiAKIHZvaWQgUmVuZGVyQm94Ojpw
YWludEJhY2tncm91bmQoY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFJl
Y3QmIHBhaW50UmVjdCwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlIGJsZWVkQXZvaWRhbmNlKQog
ewotICAgIGlmIChpc1Jvb3QoKSkgeworICAgIGlmIChpc0RvY3VtZW50RWxlbWVudFJlbmRlcmVy
KCkpIHsKICAgICAgICAgcGFpbnRSb290Qm94RmlsbExheWVycyhwYWludEluZm8pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtMTQ2Myw3ICsxNDYzLDcgQEAgYm9vbCBSZW5kZXJCb3g6OmNv
bXB1dGVCYWNrZ3JvdW5kSXNLbm93blRvQmVPYnNjdXJlZChjb25zdCBMYXlvdXRQb2ludCYgcGFp
bnRPZmYKICAgICBpZiAoIWhhc0JhY2tncm91bmQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIC8vIFRhYmxlIGFuZCByb290IGJhY2tncm91bmQgcGFpbnRpbmcgaXMgc3BlY2lhbC4KLSAg
ICBpZiAoaXNUYWJsZSgpIHx8IGlzUm9vdCgpKQorICAgIGlmIChpc1RhYmxlKCkgfHwgaXNEb2N1
bWVudEVsZW1lbnRSZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBMYXlv
dXRSZWN0IGJhY2tncm91bmRSZWN0OwpAQCAtMTY3MCw3ICsxNjcwLDcgQEAgYm9vbCBSZW5kZXJC
b3g6OnJlcGFpbnRMYXllclJlY3RzRm9ySW1hZ2UoV3JhcHBlZEltYWdlUHRyIGltYWdlLCBjb25z
dCBGaWxsTGF5ZXIKICAgICBmb3IgKGNvbnN0IEZpbGxMYXllciogY3VyTGF5ZXIgPSBsYXllcnM7
IGN1ckxheWVyOyBjdXJMYXllciA9IGN1ckxheWVyLT5uZXh0KCkpIHsKICAgICAgICAgaWYgKGN1
ckxheWVyLT5pbWFnZSgpICYmIGltYWdlID09IGN1ckxheWVyLT5pbWFnZSgpLT5kYXRhKCkgJiYg
Y3VyTGF5ZXItPmltYWdlKCktPmNhblJlbmRlcih0aGlzLCBzdHlsZSgpLmVmZmVjdGl2ZVpvb20o
KSkpIHsKICAgICAgICAgICAgIC8vIE5vdyB0aGF0IHdlIGtub3cgdGhpcyBpbWFnZSBpcyBiZWlu
ZyB1c2VkLCBjb21wdXRlIHRoZSByZW5kZXJlciBhbmQgdGhlIHJlY3QgaWYgd2UgaGF2ZW4ndCBh
bHJlYWR5LgotICAgICAgICAgICAgYm9vbCBkcmF3aW5nUm9vdEJhY2tncm91bmQgPSBkcmF3aW5n
QmFja2dyb3VuZCAmJiAoaXNSb290KCkgfHwgKGlzQm9keSgpICYmICFkb2N1bWVudCgpLmRvY3Vt
ZW50RWxlbWVudCgpLT5yZW5kZXJlcigpLT5oYXNCYWNrZ3JvdW5kKCkpKTsKKyAgICAgICAgICAg
IGJvb2wgZHJhd2luZ1Jvb3RCYWNrZ3JvdW5kID0gZHJhd2luZ0JhY2tncm91bmQgJiYgKGlzRG9j
dW1lbnRFbGVtZW50UmVuZGVyZXIoKSB8fCAoaXNCb2R5KCkgJiYgIWRvY3VtZW50KCkuZG9jdW1l
bnRFbGVtZW50KCktPnJlbmRlcmVyKCktPmhhc0JhY2tncm91bmQoKSkpOwogICAgICAgICAgICAg
aWYgKCFsYXllclJlbmRlcmVyKSB7CiAgICAgICAgICAgICAgICAgaWYgKGRyYXdpbmdSb290QmFj
a2dyb3VuZCkgewogICAgICAgICAgICAgICAgICAgICBsYXllclJlbmRlcmVyID0gJnZpZXcoKTsK
QEAgLTI4MDEsMTEgKzI4MDEsMTEgQEAgdm9pZCBSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsSGVp
Z2h0KExheW91dFVuaXQgbG9naWNhbEhlaWdodCwgTGF5b3V0VW5pdCBsb2dpY2EKICAgICAvLyBo
ZWlnaHQgc2luY2Ugd2UgZG9uJ3Qgc2V0IGEgaGVpZ2h0IGluIFJlbmRlclZpZXcgd2hlbiB3ZSdy
ZSBwcmludGluZy4gU28gd2l0aG91dCB0aGlzIHF1aXJrLCB0aGUgCiAgICAgLy8gaGVpZ2h0IGhh
cyBub3RoaW5nIHRvIGJlIGEgcGVyY2VudGFnZSBvZiwgYW5kIGl0IGVuZHMgdXAgYmVpbmcgMC4g
VGhhdCBpcyBiYWQuCiAgICAgYm9vbCBwYWdpbmF0ZWRDb250ZW50TmVlZHNCYXNlSGVpZ2h0ID0g
ZG9jdW1lbnQoKS5wcmludGluZygpICYmIGguaXNQZXJjZW50T3JDYWxjdWxhdGVkKCkKLSAgICAg
ICAgJiYgKGlzUm9vdCgpIHx8IChpc0JvZHkoKSAmJiBkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVu
dCgpLT5yZW5kZXJlcigpLT5zdHlsZSgpLmxvZ2ljYWxIZWlnaHQoKS5pc1BlcmNlbnRPckNhbGN1
bGF0ZWQoKSkpICYmICFpc0lubGluZSgpOworICAgICAgICAmJiAoaXNEb2N1bWVudEVsZW1lbnRS
ZW5kZXJlcigpIHx8IChpc0JvZHkoKSAmJiBkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpLT5y
ZW5kZXJlcigpLT5zdHlsZSgpLmxvZ2ljYWxIZWlnaHQoKS5pc1BlcmNlbnRPckNhbGN1bGF0ZWQo
KSkpICYmICFpc0lubGluZSgpOwogICAgIGlmIChzdHJldGNoZXNUb1ZpZXdwb3J0KCkgfHwgcGFn
aW5hdGVkQ29udGVudE5lZWRzQmFzZUhlaWdodCkgewogICAgICAgICBMYXlvdXRVbml0IG1hcmdp
bnMgPSBjb2xsYXBzZWRNYXJnaW5CZWZvcmUoKSArIGNvbGxhcHNlZE1hcmdpbkFmdGVyKCk7CiAg
ICAgICAgIExheW91dFVuaXQgdmlzaWJsZUhlaWdodCA9IHZpZXcoKS5wYWdlT3JWaWV3TG9naWNh
bEhlaWdodCgpOwotICAgICAgICBpZiAoaXNSb290KCkpCisgICAgICAgIGlmIChpc0RvY3VtZW50
RWxlbWVudFJlbmRlcmVyKCkpCiAgICAgICAgICAgICBjb21wdXRlZFZhbHVlcy5tX2V4dGVudCA9
IHN0ZDo6bWF4KGNvbXB1dGVkVmFsdWVzLm1fZXh0ZW50LCB2aXNpYmxlSGVpZ2h0IC0gbWFyZ2lu
cyk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgTGF5b3V0VW5pdCBtYXJnaW5zQm9yZGVy
c1BhZGRpbmcgPSBtYXJnaW5zICsgcGFyZW50Qm94KCktPm1hcmdpbkJlZm9yZSgpICsgcGFyZW50
Qm94KCktPm1hcmdpbkFmdGVyKCkgKyBwYXJlbnRCb3goKS0+Ym9yZGVyQW5kUGFkZGluZ0xvZ2lj
YWxIZWlnaHQoKTsKQEAgLTI4NzksNyArMjg3OSw3IEBAIE9wdGlvbmFsPExheW91dFVuaXQ+IFJl
bmRlckJveDo6Y29tcHV0ZVBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0KGNvbnN0IExlbmd0aCYgaGVp
CiAgICAgTGF5b3V0VW5pdCByb290TWFyZ2luQm9yZGVyUGFkZGluZ0hlaWdodCA9IDA7CiAgICAg
Ym9vbCBpc0hvcml6b250YWwgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpOwogICAgIHdoaWxl
ICghY2ItPmlzUmVuZGVyVmlldygpICYmIHNraXBDb250YWluaW5nQmxvY2tGb3JQZXJjZW50SGVp
Z2h0Q2FsY3VsYXRpb24oY2IsIGlzSG9yaXpvbnRhbCAhPSBjYi0+aXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUoKSkpIHsKLSAgICAgICAgaWYgKGNiLT5pc0JvZHkoKSB8fCBjYi0+aXNSb290KCkpCisg
ICAgICAgIGlmIChjYi0+aXNCb2R5KCkgfHwgY2ItPmlzRG9jdW1lbnRFbGVtZW50UmVuZGVyZXIo
KSkKICAgICAgICAgICAgIHJvb3RNYXJnaW5Cb3JkZXJQYWRkaW5nSGVpZ2h0ICs9IGNiLT5tYXJn
aW5CZWZvcmUoKSArIGNiLT5tYXJnaW5BZnRlcigpICsgY2ItPmJvcmRlckFuZFBhZGRpbmdMb2dp
Y2FsSGVpZ2h0KCk7CiAgICAgICAgIHNraXBwZWRBdXRvSGVpZ2h0Q29udGFpbmluZ0Jsb2NrID0g
dHJ1ZTsKICAgICAgICAgY29udGFpbmluZ0Jsb2NrQ2hpbGQgPSBjYjsKQEAgLTQzODEsNyArNDM4
MSw3IEBAIGJvb2wgUmVuZGVyQm94OjpzaHJpbmtUb0F2b2lkRmxvYXRzKCkgY29uc3QKIGJvb2wg
UmVuZGVyQm94OjpjcmVhdGVzTmV3Rm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdAogewogICAgIHJl
dHVybiAoaXNJbmxpbmVCbG9ja09ySW5saW5lVGFibGUoKSAmJiAhaXNBbm9ueW1vdXNJbmxpbmVC
bG9jaygpKSB8fCBpc0Zsb2F0aW5nT3JPdXRPZkZsb3dQb3NpdGlvbmVkKCkgfHwgaGFzT3ZlcmZs
b3dDbGlwKCkgfHwgaXNGbGV4SXRlbUluY2x1ZGluZ0RlcHJlY2F0ZWQoKQotICAgICAgICB8fCBp
c1RhYmxlQ2VsbCgpIHx8IGlzVGFibGVDYXB0aW9uKCkgfHwgaXNGaWVsZHNldCgpIHx8IGlzV3Jp
dGluZ01vZGVSb290KCkgfHwgaXNSb290KCkgfHwgaXNSZW5kZXJGbG93VGhyZWFkKCkgfHwgaXNS
ZW5kZXJSZWdpb24oKQorICAgICAgICB8fCBpc1RhYmxlQ2VsbCgpIHx8IGlzVGFibGVDYXB0aW9u
KCkgfHwgaXNGaWVsZHNldCgpIHx8IGlzV3JpdGluZ01vZGVSb290KCkgfHwgaXNEb2N1bWVudEVs
ZW1lbnRSZW5kZXJlcigpIHx8IGlzUmVuZGVyRmxvd1RocmVhZCgpIHx8IGlzUmVuZGVyUmVnaW9u
KCkKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogICAgICAgICB8fCBpc0dyaWRJdGVtKCkK
ICNlbmRpZgpAQCAtNDYwOCw3ICs0NjA4LDcgQEAgYm9vbCBSZW5kZXJCb3g6OnBlcmNlbnRhZ2VM
b2dpY2FsSGVpZ2h0SXNSZXNvbHZhYmxlRnJvbUJsb2NrKGNvbnN0IFJlbmRlckJsb2NrKgogICAg
ICAgICByZXR1cm4gcGVyY2VudGFnZUxvZ2ljYWxIZWlnaHRJc1Jlc29sdmFibGVGcm9tQmxvY2so
Y2ItPmNvbnRhaW5pbmdCbG9jaygpLCBjYi0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpOwogICAg
IGlmIChjYi0+aXNSZW5kZXJWaWV3KCkgfHwgaW5RdWlya3NNb2RlIHx8IGlzT3V0T2ZGbG93UG9z
aXRpb25lZFdpdGhTcGVjaWZpZWRIZWlnaHQpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIGlm
IChjYi0+aXNSb290KCkgJiYgaXNPdXRPZkZsb3dQb3NpdGlvbmVkKSB7CisgICAgaWYgKGNiLT5p
c0RvY3VtZW50RWxlbWVudFJlbmRlcmVyKCkgJiYgaXNPdXRPZkZsb3dQb3NpdGlvbmVkKSB7CiAg
ICAgICAgIC8vIE1hdGNoIHRoZSBwb3NpdGlvbmVkIG9iamVjdHMgYmVoYXZpb3IsIHdoaWNoIGlz
IHRoYXQgcG9zaXRpb25lZCBvYmplY3RzIHdpbGwgZmlsbCB0aGVpciB2aWV3cG9ydAogICAgICAg
ICAvLyBhbHdheXMuICBOb3RlIHdlIGNvdWxkIG9ubHkgaGl0IHRoaXMgY2FzZSBieSByZWN1cnJp
bmcgaW50byBjb21wdXRlUGVyY2VudGFnZUxvZ2ljYWxIZWlnaHQgb24gYSBwb3NpdGlvbmVkIGNv
bnRhaW5pbmcgYmxvY2suCiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5oCmluZGV4IDZkNTcwM2E4ZWI1NmUzOGNiMjA4ZjI2Y2Q2ODM1ZTU0YWRkNGU0
MWQuLjdmY2QxODVkMTAzNmVhYWIzNmI2NjEyYWU2OTJlODM1ZGE4ZWNkNmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIC8v
IHBvc2l0aW9uOnN0YXRpYyBlbGVtZW50cyB0aGF0IGFyZSBub3QgZmxleC1pdGVtcyBnZXQgdGhl
aXIgei1pbmRleCBjb2VyY2VkIHRvIGF1dG8uCiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5
ZXIoKSBjb25zdCBvdmVycmlkZQogICAgIHsKLSAgICAgICAgcmV0dXJuIGlzUm9vdCgpIHx8IGlz
UG9zaXRpb25lZCgpIHx8IGNyZWF0ZXNHcm91cCgpIHx8IGhhc0NsaXBQYXRoKCkgfHwgaGFzT3Zl
cmZsb3dDbGlwKCkKKyAgICAgICAgcmV0dXJuIGlzRG9jdW1lbnRFbGVtZW50UmVuZGVyZXIoKSB8
fCBpc1Bvc2l0aW9uZWQoKSB8fCBjcmVhdGVzR3JvdXAoKSB8fCBoYXNDbGlwUGF0aCgpIHx8IGhh
c092ZXJmbG93Q2xpcCgpCiAgICAgICAgICAgICB8fCBoYXNUcmFuc2Zvcm1SZWxhdGVkUHJvcGVy
dHkoKSB8fCBoYXNIaWRkZW5CYWNrZmFjZSgpIHx8IGhhc1JlZmxlY3Rpb24oKSB8fCBzdHlsZSgp
LnNwZWNpZmllc0NvbHVtbnMoKQogICAgICAgICAgICAgfHwgIXN0eWxlKCkuaGFzQXV0b1pJbmRl
eCgpOwogICAgIH0KQEAgLTQwNyw3ICs0MDcsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIHN0cmV0
Y2hlc1RvVmlld3BvcnQoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50KCku
aW5RdWlya3NNb2RlKCkgJiYgc3R5bGUoKS5sb2dpY2FsSGVpZ2h0KCkuaXNBdXRvKCkgJiYgIWlz
RmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiAoaXNSb290KCkgfHwgaXNCb2R5KCkp
ICYmICFpc0lubGluZSgpOworICAgICAgICByZXR1cm4gZG9jdW1lbnQoKS5pblF1aXJrc01vZGUo
KSAmJiBzdHlsZSgpLmxvZ2ljYWxIZWlnaHQoKS5pc0F1dG8oKSAmJiAhaXNGbG9hdGluZ09yT3V0
T2ZGbG93UG9zaXRpb25lZCgpICYmIChpc0RvY3VtZW50RWxlbWVudFJlbmRlcmVyKCkgfHwgaXNC
b2R5KCkpICYmICFpc0lubGluZSgpOwogICAgIH0KIAogICAgIHZpcnR1YWwgTGF5b3V0U2l6ZSBp
bnRyaW5zaWNTaXplKCkgY29uc3QgeyByZXR1cm4gTGF5b3V0U2l6ZSgpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAppbmRleCBmY2E5
N2FkZjI1YmQxNzE5MmQ5MGZhNWM0NzZmMzNkYTNiYTA1Y2M1Li4xZGNiYmNlZjA5OWVjYTkwMzI3
ZmQ3NDJkOWMyZGY2M2JlNmY5ZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKQEAgLTYyOCw3ICs2MjgsNyBAQCB2b2lkIFJlbmRl
ckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKGNvbnN0IFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjbwogICAgIGJvb2wgaGFzUm91bmRlZEJvcmRlciA9IHN0eWxlKCkuaGFzQm9y
ZGVyUmFkaXVzKCkgJiYgKGluY2x1ZGVMZWZ0RWRnZSB8fCBpbmNsdWRlUmlnaHRFZGdlKTsKICAg
ICBib29sIGNsaXBwZWRXaXRoTG9jYWxTY3JvbGxpbmcgPSBoYXNPdmVyZmxvd0NsaXAoKSAmJiBi
Z0xheWVyLT5hdHRhY2htZW50KCkgPT0gTG9jYWxCYWNrZ3JvdW5kQXR0YWNobWVudDsKICAgICBi
b29sIGlzQm9yZGVyRmlsbCA9IGJnTGF5ZXItPmNsaXAoKSA9PSBCb3JkZXJGaWxsQm94OwotICAg
IGJvb2wgaXNSb290ID0gdGhpcy0+aXNSb290KCk7CisgICAgYm9vbCBpc1Jvb3QgPSB0aGlzLT5p
c0RvY3VtZW50RWxlbWVudFJlbmRlcmVyKCk7CiAKICAgICBDb2xvciBiZ0NvbG9yID0gY29sb3I7
CiAgICAgU3R5bGVJbWFnZSogYmdJbWFnZSA9IGJnTGF5ZXItPmltYWdlKCk7CkBAIC0xMDI4LDcg
KzEwMjgsNyBAQCBzdGF0aWMgdm9pZCBwaXhlbFNuYXBCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeUZv
clBhaW50aW5nKExheW91dFJlY3QmIGRlc3RpbmF0aW9uUgogCiBib29sIFJlbmRlckJveE1vZGVs
T2JqZWN0OjpmaXhlZEJhY2tncm91bmRQYWludHNJbkxvY2FsQ29vcmRpbmF0ZXMoKSBjb25zdAog
ewotICAgIGlmICghaXNSb290KCkpCisgICAgaWYgKCFpc0RvY3VtZW50RWxlbWVudFJlbmRlcmVy
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICh2aWV3KCkuZnJhbWVWaWV3KCku
cGFpbnRCZWhhdmlvcigpICYgUGFpbnRCZWhhdmlvckZsYXR0ZW5Db21wb3NpdGluZ0xheWVycykK
QEAgLTEwODQsNyArMTA4NCw3IEBAIEJhY2tncm91bmRJbWFnZUdlb21ldHJ5IFJlbmRlckJveE1v
ZGVsT2JqZWN0OjpjYWxjdWxhdGVCYWNrZ3JvdW5kSW1hZ2VHZW9tZXRyeShjCiAgICAgICAgIC8v
IFRoZSBiYWNrZ3JvdW5kIG9mIHRoZSBib3ggZ2VuZXJhdGVkIGJ5IHRoZSByb290IGVsZW1lbnQg
Y292ZXJzIHRoZSBlbnRpcmUgY2FudmFzIGluY2x1ZGluZwogICAgICAgICAvLyBpdHMgbWFyZ2lu
cy4gU2luY2UgdGhvc2Ugd2VyZSBhZGRlZCBpbiBhbHJlYWR5LCB3ZSBoYXZlIHRvIGZhY3RvciB0
aGVtIG91dCB3aGVuIGNvbXB1dGluZwogICAgICAgICAvLyB0aGUgYmFja2dyb3VuZCBwb3NpdGlv
bmluZyBhcmVhLgotICAgICAgICBpZiAoaXNSb290KCkpIHsKKyAgICAgICAgaWYgKGlzRG9jdW1l
bnRFbGVtZW50UmVuZGVyZXIoKSkgewogICAgICAgICAgICAgcG9zaXRpb25pbmdBcmVhU2l6ZSA9
IGRvd25jYXN0PFJlbmRlckJveD4oKnRoaXMpLnNpemUoKSAtIExheW91dFNpemUobGVmdCArIHJp
Z2h0LCB0b3AgKyBib3R0b20pOwogICAgICAgICAgICAgcG9zaXRpb25pbmdBcmVhU2l6ZSA9IExh
eW91dFNpemUoc25hcFNpemVUb0RldmljZVBpeGVsKHBvc2l0aW9uaW5nQXJlYVNpemUsIExheW91
dFBvaW50KCksIGRldmljZVNjYWxlRmFjdG9yKSk7CiAgICAgICAgICAgICBpZiAodmlldygpLmZy
YW1lVmlldygpLmhhc0V4dGVuZGVkQmFja2dyb3VuZFJlY3RGb3JQYWludGluZygpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCmluZGV4IDU4
ODA1ZTA4YzI4MjFlNGZkYjZjOGM0OTkyNWMxOTdiOWY2MjAyMDguLmM5NDIwNWRjZjU5NDIzNjgx
ZmE1MmUzOWJkYmNjZGI5MzdjYmNmZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCkBAIC0xMjcsNyArMTI3LDcgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21TdHlsZSgpIG92ZXJyaWRlOwogCi0gICAgdmlydHVh
bCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBpc1Jvb3QoKSB8
fCBpc1Bvc2l0aW9uZWQoKSB8fCBjcmVhdGVzR3JvdXAoKSB8fCBoYXNDbGlwUGF0aCgpIHx8IGhh
c1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0eSgpIHx8IGhhc0hpZGRlbkJhY2tmYWNlKCkgfHwgaGFz
UmVmbGVjdGlvbigpOyB9CisgICAgdmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBpc0RvY3VtZW50RWxlbWVudFJlbmRlcmVyKCkgfHwgaXNQb3NpdGlv
bmVkKCkgfHwgY3JlYXRlc0dyb3VwKCkgfHwgaGFzQ2xpcFBhdGgoKSB8fCBoYXNUcmFuc2Zvcm1S
ZWxhdGVkUHJvcGVydHkoKSB8fCBoYXNIaWRkZW5CYWNrZmFjZSgpIHx8IGhhc1JlZmxlY3Rpb24o
KTsgfQogCiAgICAgLy8gVGhpcyB3aWxsIHdvcmsgb24gaW5saW5lcyB0byByZXR1cm4gdGhlIGJv
dW5kaW5nIGJveCBvZiBhbGwgb2YgdGhlIGxpbmVzJyBib3JkZXIgYm94ZXMuCiAgICAgdmlydHVh
bCBJbnRSZWN0IGJvcmRlckJvdW5kaW5nQm94KCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApp
bmRleCA2MTM1MGI0MWRiMzhhNTUwM2YzMGNmMTFlYmU1MzFhN2YxMjQyZGEyLi4zZThjNDk2Njcy
YWU4MTBmZWI0NmY3Y2FlODBjY2Y0ZjkyYzA4MzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApAQCAtMzIx
LDcgKzMyMSw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRCbG9j
ayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiAgICAgaWYgKHByZXZpb3VzU2l6
ZS5oZWlnaHQoKSAhPSBoZWlnaHQoKSkKICAgICAgICAgcmVsYXlvdXRDaGlsZHJlbiA9IHRydWU7
CiAKLSAgICBsYXlvdXRQb3NpdGlvbmVkT2JqZWN0cyhyZWxheW91dENoaWxkcmVuIHx8IGlzUm9v
dCgpKTsKKyAgICBsYXlvdXRQb3NpdGlvbmVkT2JqZWN0cyhyZWxheW91dENoaWxkcmVuIHx8IGlz
RG9jdW1lbnRFbGVtZW50UmVuZGVyZXIoKSk7CiAKICAgICBjb21wdXRlT3ZlcmZsb3cob2xkQ2xp
ZW50QWZ0ZXJFZGdlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQu
Y3BwCmluZGV4IDM3MTVmN2JiOWEyM2RiMWMwNDRmNzhhMmJkYTY3Y2QzYjM5NzMzMzguLjk5NmVm
N2YyNDIyZDQ2OWYzYWU0MDk1MmVlZmI2YTE1Y2Y3ZTZjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTg5NSw3ICs4OTUsNyBAQCB2b2lkIFJlbmRl
ckVsZW1lbnQ6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVu
ZGVyU3R5bGUmIG5ldwogCiAgICAgICAgIGJvb2wgbmV3U3R5bGVTbG93U2Nyb2xsID0gcmVwYWlu
dEZpeGVkQmFja2dyb3VuZHNPblNjcm9sbCAmJiBuZXdTdHlsZVVzZXNGaXhlZEJhY2tncm91bmRz
OwogICAgICAgICBib29sIG9sZFN0eWxlU2xvd1Njcm9sbCA9IG9sZFN0eWxlICYmIHJlcGFpbnRG
aXhlZEJhY2tncm91bmRzT25TY3JvbGwgJiYgb2xkU3R5bGVVc2VzRml4ZWRCYWNrZ3JvdW5kczsK
LSAgICAgICAgYm9vbCBkcmF3c1Jvb3RCYWNrZ3JvdW5kID0gaXNSb290KCkgfHwgKGlzQm9keSgp
ICYmICFyZW5kZXJlckhhc0JhY2tncm91bmQoZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKS0+
cmVuZGVyZXIoKSkpOworICAgICAgICBib29sIGRyYXdzUm9vdEJhY2tncm91bmQgPSBpc0RvY3Vt
ZW50RWxlbWVudFJlbmRlcmVyKCkgfHwgKGlzQm9keSgpICYmICFyZW5kZXJlckhhc0JhY2tncm91
bmQoZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKS0+cmVuZGVyZXIoKSkpOwogICAgICAgICBp
ZiAoZHJhd3NSb290QmFja2dyb3VuZCAmJiByZXBhaW50Rml4ZWRCYWNrZ3JvdW5kc09uU2Nyb2xs
KSB7CiAgICAgICAgICAgICBpZiAodmlldygpLmNvbXBvc2l0b3IoKS5zdXBwb3J0c0ZpeGVkUm9v
dEJhY2tncm91bmRDb21wb3NpdGluZygpKSB7CiAgICAgICAgICAgICAgICAgaWYgKG5ld1N0eWxl
U2xvd1Njcm9sbCAmJiBuZXdTdHlsZS5oYXNFbnRpcmVseUZpeGVkQmFja2dyb3VuZCgpKQpAQCAt
OTE1LDcgKzkxNSw3IEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6c3R5bGVXaWxsQ2hhbmdlKFN0eWxl
RGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3CiAgICAgICAgIH0KICAgICB9
CiAKLSAgICBpZiAoaXNSb290KCkgfHwgaXNCb2R5KCkpCisgICAgaWYgKGlzRG9jdW1lbnRFbGVt
ZW50UmVuZGVyZXIoKSB8fCBpc0JvZHkoKSkKICAgICAgICAgdmlldygpLmZyYW1lVmlldygpLnVw
ZGF0ZUV4dGVuZEJhY2tncm91bmRJZk5lY2Vzc2FyeSgpOwogCiAgICAgaWYgKCFvbGRTdHlsZSB8
fCAob2xkU3R5bGUtPm91dGxpbmVTaXplKCkgIT0gbmV3U3R5bGUub3V0bGluZVNpemUoKQpAQCAt
MTE1NSw3ICsxMTU1LDcgQEAgdm9pZCBSZW5kZXJFbGVtZW50OjpzZXROZWVkc1NpbXBsaWZpZWRO
b3JtYWxGbG93TGF5b3V0KCkKIAogUmVuZGVyRWxlbWVudCYgUmVuZGVyRWxlbWVudDo6cmVuZGVy
ZXJGb3JSb290QmFja2dyb3VuZCgpCiB7Ci0gICAgQVNTRVJUKGlzUm9vdCgpKTsKKyAgICBBU1NF
UlQoaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigpKTsKICAgICBpZiAoIWhhc0JhY2tncm91bmQo
KSAmJiBpczxIVE1MSHRtbEVsZW1lbnQ+KGVsZW1lbnQoKSkpIHsKICAgICAgICAgLy8gTG9jYXRl
IHRoZSA8Ym9keT4gZWxlbWVudCB1c2luZyB0aGUgRE9NLiBUaGlzIGlzIGVhc2llciB0aGFuIHRy
eWluZwogICAgICAgICAvLyB0byBjcmF3bCBhcm91bmQgYSByZW5kZXIgdHJlZSB3aXRoIHBvdGVu
dGlhbCA6YmVmb3JlLzphZnRlciBjb250ZW50IGFuZApAQCAtMTQ0MSwxMCArMTQ0MSwxMCBAQCBz
dGF0aWMgYm9vbCBzaG91bGRSZXBhaW50Rm9ySW1hZ2VBbmltYXRpb24oY29uc3QgUmVuZGVyRWxl
bWVudCYgcmVuZGVyZXIsIGNvbnN0CiAgICAgLy8gRklYTUU6IFRoaXMgaXMgb3Zlcmx5IGNvbnNl
cnZhdGl2ZSBhcyB0aGUgaW1hZ2UgbWF5IG5vdCBiZSBhIGJhY2tncm91bmQtaW1hZ2UsIGluIHdo
aWNoIGNhc2UgaXQgd2lsbCBub3QKICAgICAvLyBiZSBwcm9wYWdhdGVkIHRvIHRoZSByb290LiBB
dCB0aGlzIHBvaW50LCB3ZSB1bmZvcnR1bmF0ZWx5IGRvbid0IGhhdmUgYWNjZXNzIHRvIHRoZSBp
bWFnZSBhbnltb3JlIHNvIHdlCiAgICAgLy8gY2FuIG5vIGxvbmdlciBjaGVjayBpZiBpdCBpcyBh
IGJhY2tncm91bmQgaW1hZ2UuCi0gICAgYm9vbCBiYWNrZ3JvdW5kSXNQYWludGVkQnlSb290ID0g
cmVuZGVyZXIuaXNSb290KCk7CisgICAgYm9vbCBiYWNrZ3JvdW5kSXNQYWludGVkQnlSb290ID0g
cmVuZGVyZXIuaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigpOwogICAgIGlmIChyZW5kZXJlci5p
c0JvZHkoKSkgewogICAgICAgICBhdXRvJiByb290UmVuZGVyZXIgPSAqcmVuZGVyZXIucGFyZW50
KCk7IC8vIElmIDxib2R5PiBoYXMgYSByZW5kZXJlciB0aGVuIDxodG1sPiBkb2VzIHRvby4KLSAg
ICAgICAgQVNTRVJUKHJvb3RSZW5kZXJlci5pc1Jvb3QoKSk7CisgICAgICAgIEFTU0VSVChyb290
UmVuZGVyZXIuaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigpKTsKICAgICAgICAgQVNTRVJUKGlz
PEhUTUxIdG1sRWxlbWVudD4ocm9vdFJlbmRlcmVyLmVsZW1lbnQoKSkpOwogICAgICAgICAvLyBG
SVhNRTogU2hvdWxkIHNoYXJlIGJvZHkgYmFja2dyb3VuZCBwcm9wYWdhdGlvbiBjb2RlLgogICAg
ICAgICBiYWNrZ3JvdW5kSXNQYWludGVkQnlSb290ID0gIXJvb3RSZW5kZXJlci5oYXNCYWNrZ3Jv
dW5kKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAppbmRleCAzYjlm
ZDkzYjY0YzQ3MmE5ZDFiMzQ5ZjJkZTAwNTA4NzRiZjg2NTc0Li5lNDlmNTI5NDYxMWE0OGI2MTdi
NWZmZjNhMTM1NjA1MWZlNmI1MzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bGVtZW50LmgKQEAgLTEzNCw3ICsxMzQsNyBAQCBwdWJsaWM6CiAgICAgLyogVGhpcyBmdW5jdGlv
biBwZXJmb3JtcyBhIGxheW91dCBvbmx5IGlmIG9uZSBpcyBuZWVkZWQuICovCiAgICAgdm9pZCBs
YXlvdXRJZk5lZWRlZCgpIHsgaWYgKG5lZWRzTGF5b3V0KCkpIGxheW91dCgpOyB9CiAKLSAgICAv
LyBSZXR1cm4gdGhlIHJlbmRlcmVyIHdob3NlIGJhY2tncm91bmQgc3R5bGUgaXMgdXNlZCB0byBw
YWludCB0aGUgcm9vdCBiYWNrZ3JvdW5kLiBTaG91bGQgb25seSBiZSBjYWxsZWQgb24gdGhlIHJl
bmRlcmVyIGZvciB3aGljaCBpc1Jvb3QoKSBpcyB0cnVlLgorICAgIC8vIFJldHVybiB0aGUgcmVu
ZGVyZXIgd2hvc2UgYmFja2dyb3VuZCBzdHlsZSBpcyB1c2VkIHRvIHBhaW50IHRoZSByb290IGJh
Y2tncm91bmQuIFNob3VsZCBvbmx5IGJlIGNhbGxlZCBvbiB0aGUgcmVuZGVyZXIgZm9yIHdoaWNo
IGlzRG9jdW1lbnRFbGVtZW50UmVuZGVyZXIoKSBpcyB0cnVlLgogICAgIFJlbmRlckVsZW1lbnQm
IHJlbmRlcmVyRm9yUm9vdEJhY2tncm91bmQoKTsKIAogICAgIC8vIFVzZWQgb25seSBieSBFbGVt
ZW50Ojpwc2V1ZG9TdHlsZUNhY2hlSXNJbnZhbGlkIHRvIGdldCBhIGZpcnN0IGxpbmUgc3R5bGUg
YmFzZWQgb2ZmIG9mIGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGli
bGVCb3guY3BwCmluZGV4IDNhMDI4MTI4YWZhZWY0MWNlMDEwNjI3NDM4YWY1M2UyOTk4YjA5NzIu
LjQzNzlkNzNiOTEzNzI5YjdjNjI4OTIyZTRiMTFjN2EyMmFjZWY3ZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApAQCAtMjc5LDcgKzI3OSw3
IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGls
ZHJlbiwgTGF5b3V0VW5pdCkKICAgICBpZiAobG9naWNhbEhlaWdodCgpICE9IHByZXZpb3VzSGVp
Z2h0KQogICAgICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsKIAotICAgIGxheW91dFBvc2l0
aW9uZWRPYmplY3RzKHJlbGF5b3V0Q2hpbGRyZW4gfHwgaXNSb290KCkpOworICAgIGxheW91dFBv
c2l0aW9uZWRPYmplY3RzKHJlbGF5b3V0Q2hpbGRyZW4gfHwgaXNEb2N1bWVudEVsZW1lbnRSZW5k
ZXJlcigpKTsKIAogICAgIHJlcGFpbnRDaGlsZHJlbkR1cmluZ0xheW91dElmTW92ZWQob2xkQ2hp
bGRSZWN0cyk7CiAgICAgLy8gRklYTUU6IGNzczMvZmxleGJveC9yZXBhaW50LXJ0bC1jb2x1bW4u
aHRtbCBzZWVtcyB0byByZXBhaW50IG1vcmUgb3ZlcmZsb3cgdGhhbiBpdCBuZWVkcyB0by4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCA1ZGMzZjc2ZmFlNjhjMjk1
NzFkNDk3NDM4YjA0YmE5OTlkNjNiNmViLi44ZjFkMzNkNTc1NDZmMDM0MTg2NjA2NGIxZjAxZjhk
YWVkN2Y5MDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3Jp
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC0z
MjAsNyArMzIwLDcgQEAgdm9pZCBSZW5kZXJHcmlkOjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0
Q2hpbGRyZW4sIExheW91dFVuaXQpCiAgICAgaWYgKHNpemUoKSAhPSBwcmV2aW91c1NpemUpCiAg
ICAgICAgIHJlbGF5b3V0Q2hpbGRyZW4gPSB0cnVlOwogCi0gICAgbGF5b3V0UG9zaXRpb25lZE9i
amVjdHMocmVsYXlvdXRDaGlsZHJlbiB8fCBpc1Jvb3QoKSk7CisgICAgbGF5b3V0UG9zaXRpb25l
ZE9iamVjdHMocmVsYXlvdXRDaGlsZHJlbiB8fCBpc0RvY3VtZW50RWxlbWVudFJlbmRlcmVyKCkp
OwogCiAgICAgY29tcHV0ZU92ZXJmbG93KG9sZENsaWVudEFmdGVyRWRnZSk7CiAgICAgc3RhdGVQ
dXNoZXIucG9wKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRl
eCAwYjI1MTlmMTU3Zjk5MDkzNmI0NGE5ZGVlYzM1ZWJjNmFmNTNlNTNlLi4zNTFiNzA0MzFlZWZl
YmVhZDVkMDI2NTYyOTFmZjNmNDMxMGM1MWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKQEAgLTM4NjQsNyArMzg2NCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBz
aG91bGRTdXBwcmVzc1BhaW50aW5nTGF5ZXIoUmVuZGVyTGF5ZXIqIGxheWVyKQogICAgIC8vIEF2
b2lkIHBhaW50aW5nIGRlc2NlbmRhbnRzIG9mIHRoZSByb290IGxheWVyIHdoZW4gc3R5bGVzaGVl
dHMgaGF2ZW4ndCBsb2FkZWQuIFRoaXMgZWxpbWluYXRlcyBGT1VDLgogICAgIC8vIEl0J3Mgb2sg
bm90IHRvIGRyYXcsIGJlY2F1c2UgbGF0ZXIgb24sIHdoZW4gYWxsIHRoZSBzdHlsZXNoZWV0cyBk
byBsb2FkLCB1cGRhdGVTdHlsZVNlbGVjdG9yIG9uIHRoZSBEb2N1bWVudAogICAgIC8vIHdpbGwg
ZG8gYSBmdWxsIHJlcGFpbnQoKS4KLSAgICBpZiAobGF5ZXItPnJlbmRlcmVyKCkuZG9jdW1lbnQo
KS5kaWRMYXlvdXRXaXRoUGVuZGluZ1N0eWxlc2hlZXRzKCkgJiYgIWxheWVyLT5pc1Jvb3RMYXll
cigpICYmICFsYXllci0+cmVuZGVyZXIoKS5pc1Jvb3QoKSkKKyAgICBpZiAobGF5ZXItPnJlbmRl
cmVyKCkuZG9jdW1lbnQoKS5kaWRMYXlvdXRXaXRoUGVuZGluZ1N0eWxlc2hlZXRzKCkgJiYgIWxh
eWVyLT5pc1Jvb3RMYXllcigpICYmICFsYXllci0+cmVuZGVyZXIoKS5pc0RvY3VtZW50RWxlbWVu
dFJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8gQXZvaWQgcGFpbnRp
bmcgYWxsIGxheWVycyBpZiB0aGUgZG9jdW1lbnQgaXMgaW4gYSBzdGF0ZSB3aGVyZSB2aXN1YWwg
dXBkYXRlcyBhcmVuJ3QgYWxsb3dlZC4KQEAgLTM4NzcsNyArMzg3Nyw3IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzaG91bGRTdXBwcmVzc1BhaW50aW5nTGF5ZXIoUmVuZGVyTGF5ZXIqIGxheWVyKQog
CiBzdGF0aWMgaW5saW5lIGJvb2wgcGFpbnRGb3JGaXhlZFJvb3RCYWNrZ3JvdW5kKGNvbnN0IFJl
bmRlckxheWVyKiBsYXllciwgUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJGbGFncyBwYWludEZsYWdz
KQogewotICAgIHJldHVybiBsYXllci0+cmVuZGVyZXIoKS5pc1Jvb3QoKSAmJiAocGFpbnRGbGFn
cyAmIFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdSb290QmFja2dyb3VuZE9ubHkpOwor
ICAgIHJldHVybiBsYXllci0+cmVuZGVyZXIoKS5pc0RvY3VtZW50RWxlbWVudFJlbmRlcmVyKCkg
JiYgKHBhaW50RmxhZ3MgJiBSZW5kZXJMYXllcjo6UGFpbnRMYXllclBhaW50aW5nUm9vdEJhY2tn
cm91bmRPbmx5KTsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllcihHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQsIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJiBwYWludGluZ0luZm8sIFBh
aW50TGF5ZXJGbGFncyBwYWludEZsYWdzKQpAQCAtNDIzNCw3ICs0MjM0LDcgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYgb3JpZ2luYWxDb250
ZXh0LCBjb25zdCBMYXkKICAgICAgICAgfHwgKCFpc1BhaW50aW5nU2Nyb2xsaW5nQ29udGVudCAm
JiBpc1BhaW50aW5nQ29tcG9zaXRlZEZvcmVncm91bmQpKTsKICAgICBib29sIHNob3VsZFBhaW50
Q29udGVudCA9IG1faGFzVmlzaWJsZUNvbnRlbnQgJiYgaXNTZWxmUGFpbnRpbmdMYXllciAmJiAh
aXNQYWludGluZ092ZXJsYXlTY3JvbGxiYXJzOwogCi0gICAgaWYgKGxvY2FsUGFpbnRGbGFncyAm
IFBhaW50TGF5ZXJQYWludGluZ1Jvb3RCYWNrZ3JvdW5kT25seSAmJiAhcmVuZGVyZXIoKS5pc1Jl
bmRlclZpZXcoKSAmJiAhcmVuZGVyZXIoKS5pc1Jvb3QoKSkKKyAgICBpZiAobG9jYWxQYWludEZs
YWdzICYgUGFpbnRMYXllclBhaW50aW5nUm9vdEJhY2tncm91bmRPbmx5ICYmICFyZW5kZXJlcigp
LmlzUmVuZGVyVmlldygpICYmICFyZW5kZXJlcigpLmlzRG9jdW1lbnRFbGVtZW50UmVuZGVyZXIo
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRW5zdXJlIG91ciBsaXN0cyBhcmUgdXAtdG8t
ZGF0ZS4KQEAgLTU3NTksOSArNTc1OSw5IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnJlcGFpbnRCbG9j
a1NlbGVjdGlvbkdhcHMoKQogYm9vbCBSZW5kZXJMYXllcjo6aW50ZXJzZWN0c0RhbWFnZVJlY3Qo
Y29uc3QgTGF5b3V0UmVjdCYgbGF5ZXJCb3VuZHMsIGNvbnN0IExheW91dFJlY3QmIGRhbWFnZVJl
Y3QsIGNvbnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIsIGNvbnN0IExheW91dFNpemUmIG9mZnNl
dEZyb21Sb290LCBjb25zdCBMYXlvdXRSZWN0KiBjYWNoZWRCb3VuZGluZ0JveCkgY29uc3QKIHsK
ICAgICAvLyBBbHdheXMgZXhhbWluZSB0aGUgY2FudmFzIGFuZCB0aGUgcm9vdC4KLSAgICAvLyBG
SVhNRTogQ291bGQgZWxpbWluYXRlIHRoZSBpc1Jvb3QoKSBjaGVjayBpZiB3ZSBmaXggYmFja2dy
b3VuZCBwYWludGluZyBzbyB0aGF0IHRoZSBSZW5kZXJWaWV3CisgICAgLy8gRklYTUU6IENvdWxk
IGVsaW1pbmF0ZSB0aGUgaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigpIGNoZWNrIGlmIHdlIGZp
eCBiYWNrZ3JvdW5kIHBhaW50aW5nIHNvIHRoYXQgdGhlIFJlbmRlclZpZXcKICAgICAvLyBwYWlu
dHMgdGhlIHJvb3QncyBiYWNrZ3JvdW5kLgotICAgIGlmIChpc1Jvb3RMYXllcigpIHx8IHJlbmRl
cmVyKCkuaXNSb290KCkpCisgICAgaWYgKGlzUm9vdExheWVyKCkgfHwgcmVuZGVyZXIoKS5pc0Rv
Y3VtZW50RWxlbWVudFJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgaWYg
KGRhbWFnZVJlY3QuaXNFbXB0eSgpKQpAQCAtNTkzMiw3ICs1OTMyLDcgQEAgTGF5b3V0UmVjdCBS
ZW5kZXJMYXllcjo6Y2FsY3VsYXRlTGF5ZXJCb3VuZHMoY29uc3QgUmVuZGVyTGF5ZXIqIGFuY2Vz
dG9yTGF5ZXIsIGMKICAgICAgICAgICAgIHJlbmRlcmVyKCkuY29udGFpbmluZ0Jsb2NrKCktPmZs
aXBGb3JXcml0aW5nTW9kZShib3VuZGluZ0JveFJlY3QpOwogICAgIH0KIAotICAgIGlmIChyZW5k
ZXJlcigpLmlzUm9vdCgpKSB7CisgICAgaWYgKHJlbmRlcmVyKCkuaXNEb2N1bWVudEVsZW1lbnRS
ZW5kZXJlcigpKSB7CiAgICAgICAgIC8vIElmIHRoZSByb290IGxheWVyIGJlY29tZXMgY29tcG9z
aXRlZCAoZS5nLiBiZWNhdXNlIHNvbWUgZGVzY2VuZGFudCB3aXRoIG5lZ2F0aXZlIHotaW5kZXgg
aXMgY29tcG9zaXRlZCksCiAgICAgICAgIC8vIHRoZW4gaXQgaGFzIHRvIGJlIGJpZyBlbm91Z2gg
dG8gY292ZXIgdGhlIHZpZXdwb3J0IGluIG9yZGVyIHRvIGRpc3BsYXkgdGhlIGJhY2tncm91bmQu
IFRoaXMgaXMgYWtpbgogICAgICAgICAvLyB0byB0aGUgY29kZSBpbiBSZW5kZXJCb3g6OnBhaW50
Um9vdEJveEZpbGxMYXllcnMoKS4KQEAgLTYxMjcsNyArNjEyNyw3IEBAIGJvb2wgUmVuZGVyTGF5
ZXI6OmJhY2tncm91bmRJc0tub3duVG9CZU9wYXF1ZUluUmVjdChjb25zdCBMYXlvdXRSZWN0JiBs
b2NhbFJlY3QpCiAgICAgaWYgKHBhaW50c1dpdGhUcmFuc3BhcmVuY3koUGFpbnRCZWhhdmlvck5v
cm1hbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChyZW5kZXJlcigpLmlzUm9v
dCgpKSB7CisgICAgaWYgKHJlbmRlcmVyKCkuaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigpKSB7
CiAgICAgICAgIC8vIE5vcm1hbGx5IHRoZSBkb2N1bWVudCBlbGVtZW50IGRvZW5zJ3QgaGF2ZSBh
IGxheWVyLiAgSWYgaXQgZG9lcyBoYXZlIGEgbGF5ZXIsIGl0cyBiYWNrZ3JvdW5kIHByb3BhZ2F0
ZXMgdG8gdGhlIFJlbmRlclZpZXcKICAgICAgICAgLy8gc28gdGhpcyBsYXllciBkb2Vzbid0IGRy
YXcgaXQuCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmgKaW5kZXggOTc5YjZjMDQ2YzBlNWNkNzEzYTNmODU0YjU2NTE2OTMyMWIyZDQ0Ny4u
MGYyMWFhMDYyMThjMTQ5M2E2OTRjMDQ2NzA0OGIxNTJkNDllZmM5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTYxNiw3ICs2MTYsNyBAQCBwdWJsaWM6CiAKICAg
ICBib29sIHBhaW50c1dpdGhUcmFuc3BhcmVuY3koUGFpbnRCZWhhdmlvciBwYWludEJlaGF2aW9y
KSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIChpc1RyYW5zcGFyZW50KCkgfHwgaGFzQmxl
bmRNb2RlKCkgfHwgKGlzb2xhdGVzQmxlbmRpbmcoKSAmJiAhcmVuZGVyZXIoKS5pc1Jvb3QoKSkp
ICYmICgocGFpbnRCZWhhdmlvciAmIFBhaW50QmVoYXZpb3JGbGF0dGVuQ29tcG9zaXRpbmdMYXll
cnMpIHx8ICFpc0NvbXBvc2l0ZWQoKSk7CisgICAgICAgIHJldHVybiAoaXNUcmFuc3BhcmVudCgp
IHx8IGhhc0JsZW5kTW9kZSgpIHx8IChpc29sYXRlc0JsZW5kaW5nKCkgJiYgIXJlbmRlcmVyKCku
aXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigpKSkgJiYgKChwYWludEJlaGF2aW9yICYgUGFpbnRC
ZWhhdmlvckZsYXR0ZW5Db21wb3NpdGluZ0xheWVycykgfHwgIWlzQ29tcG9zaXRlZCgpKTsKICAg
ICB9CiAKICAgICBib29sIHBhaW50c1dpdGhUcmFuc2Zvcm0oUGFpbnRCZWhhdmlvcikgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmlu
ZGV4IDM5MDQxYTc5OTVlOGQ2ZjZmMTllYTE3ZjY0MTMzYzlmZWUzODExZDEuLjYxOGQ4MmMyNzc2
Nzk2NmY3NDgzYjA2MmM3OWUyZTUwN2VhNTAwZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xNzAzLDcgKzE3MDMsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgaGFzUGVyc3BlY3RpdmVPclByZXNlcnZlczNEKGNvbnN0IFJlbmRlclN0
eWxlJiBzdHlsZSkKIAogQ29sb3IgUmVuZGVyTGF5ZXJCYWNraW5nOjpyZW5kZXJlckJhY2tncm91
bmRDb2xvcigpIGNvbnN0CiB7Ci0gICAgY29uc3QgYXV0byYgYmFja2dyb3VuZFJlbmRlcmVyID0g
cmVuZGVyZXIoKS5pc1Jvb3QoKSA/IHJlbmRlcmVyKCkucmVuZGVyZXJGb3JSb290QmFja2dyb3Vu
ZCgpIDogcmVuZGVyZXIoKTsKKyAgICBjb25zdCBhdXRvJiBiYWNrZ3JvdW5kUmVuZGVyZXIgPSBy
ZW5kZXJlcigpLmlzRG9jdW1lbnRFbGVtZW50UmVuZGVyZXIoKSA/IHJlbmRlcmVyKCkucmVuZGVy
ZXJGb3JSb290QmFja2dyb3VuZCgpIDogcmVuZGVyZXIoKTsKICAgICByZXR1cm4gYmFja2dyb3Vu
ZFJlbmRlcmVyLnN0eWxlKCkudmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5QmFja2dy
b3VuZENvbG9yKTsKIH0KIApAQCAtMTg2MCw3ICsxODYwLDcgQEAgYm9vbCBSZW5kZXJMYXllckJh
Y2tpbmc6OmlzU2ltcGxlQ29udGFpbmVyQ29tcG9zaXRpbmdMYXllcigpIGNvbnN0CiAgICAgaWYg
KHJlbmRlcmVyKCkuaXNSZW5kZXJOYW1lZEZsb3dGcmFnbWVudENvbnRhaW5lcigpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAocmVuZGVyZXIoKS5pc1Jvb3QoKSAmJiBtX293bmlu
Z0xheWVyLmlzb2xhdGVzQ29tcG9zaXRlZEJsZW5kaW5nKCkpCisgICAgaWYgKHJlbmRlcmVyKCku
aXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigpICYmIG1fb3duaW5nTGF5ZXIuaXNvbGF0ZXNDb21w
b3NpdGVkQmxlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKHJlbmRl
cmVyKCkuaXNSZW5kZXJWaWV3KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAppbmRleCA1OTlhMTczYjRkMjI4NjhkY2Y3OGU2
MWNjZDkzNzIzMzY5MGM4NGU1Li4xMTdiNmZmNmYzZmMxYzhkNTk0Y2Y5MzMwMWI2NjgyOTk5YzUy
MDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9k
ZWxPYmplY3QuY3BwCkBAIC0xOTAsNyArMTkwLDcgQEAgdm9pZCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3QK
ICAgICAgICAgaWYgKFJlbmRlckxheWVyKiByZW5kZXJMYXllciA9IGxheWVyKCkpIHsKICAgICAg
ICAgICAgIHJlbmRlckxheWVyLT51cGRhdGVTbmFwT2Zmc2V0cygpOwogICAgICAgICAgICAgcmVu
ZGVyTGF5ZXItPnVwZGF0ZVNjcm9sbFNuYXBTdGF0ZSgpOwotICAgICAgICB9IGVsc2UgaWYgKGlz
Qm9keSgpIHx8IGlzUm9vdCgpKSB7CisgICAgICAgIH0gZWxzZSBpZiAoaXNCb2R5KCkgfHwgaXNE
b2N1bWVudEVsZW1lbnRSZW5kZXJlcigpKSB7CiAgICAgICAgICAgICBGcmFtZVZpZXcmIGZyYW1l
VmlldyA9IHZpZXcoKS5mcmFtZVZpZXcoKTsKICAgICAgICAgICAgIGZyYW1lVmlldy51cGRhdGVT
bmFwT2Zmc2V0cygpOwogICAgICAgICAgICAgZnJhbWVWaWV3LnVwZGF0ZVNjcm9sbFNuYXBTdGF0
ZSgpOwpAQCAtMjA0LDcgKzIwNCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6c3R5
bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0CiAgICAgICAg
ICAgICBpZiAoc3R5bGUuc2Nyb2xsU25hcFR5cGUoKSAhPSBTY3JvbGxTbmFwVHlwZTo6Tm9uZSkg
ewogICAgICAgICAgICAgICAgIHNjcm9sbFNuYXBCb3gtPmxheWVyKCktPnVwZGF0ZVNuYXBPZmZz
ZXRzKCk7CiAgICAgICAgICAgICAgICAgc2Nyb2xsU25hcEJveC0+bGF5ZXIoKS0+dXBkYXRlU2Ny
b2xsU25hcFN0YXRlKCk7Ci0gICAgICAgICAgICAgICAgaWYgKHNjcm9sbFNuYXBCb3gtPmlzQm9k
eSgpIHx8IHNjcm9sbFNuYXBCb3gtPmlzUm9vdCgpKQorICAgICAgICAgICAgICAgIGlmIChzY3Jv
bGxTbmFwQm94LT5pc0JvZHkoKSB8fCBzY3JvbGxTbmFwQm94LT5pc0RvY3VtZW50RWxlbWVudFJl
bmRlcmVyKCkpCiAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFNuYXBCb3gtPnZpZXcoKS5mcmFt
ZVZpZXcoKS51cGRhdGVTY3JvbGxpbmdDb29yZGluYXRvclNjcm9sbFNuYXBQcm9wZXJ0aWVzKCk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAKaW5kZXggMmNjZjc3ZjhhMDg2ZDA5NjZiODc1OTc0YzRhM2I0YmM1MzIxYWY3
OS4uN2Q0ZGYzNGE1ODMyZjRjOWViNWQ0N2Y3ZTZiN2ZiZTdiNzA4ODdhZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTk2Niw3ICs5NjYsNyBAQCB2b2lk
IFJlbmRlck9iamVjdDo6cmVwYWludFNsb3dSZXBhaW50T2JqZWN0KCkgY29uc3QKICAgICBJbnRS
ZWN0IHJlcGFpbnRSZWN0OwogICAgIC8vIElmIHRoaXMgaXMgdGhlIHJvb3QgYmFja2dyb3VuZCwg
d2UgbmVlZCB0byBjaGVjayBpZiB0aGVyZSBpcyBhbiBleHRlbmRlZCBiYWNrZ3JvdW5kIHJlY3Qu
IElmCiAgICAgLy8gdGhlcmUgaXMsIHRoZW4gd2Ugc2hvdWxkIG5vdCBhbGxvdyBwYWludGluZyB0
byBjbGlwIHRvIHRoZSBsYXllciBzaXplLgotICAgIGlmIChpc1Jvb3QoKSB8fCBpc0JvZHkoKSkg
eworICAgIGlmIChpc0RvY3VtZW50RWxlbWVudFJlbmRlcmVyKCkgfHwgaXNCb2R5KCkpIHsKICAg
ICAgICAgc2hvdWxkQ2xpcFRvTGF5ZXIgPSAhdmlldy5mcmFtZVZpZXcoKS5oYXNFeHRlbmRlZEJh
Y2tncm91bmRSZWN0Rm9yUGFpbnRpbmcoKTsKICAgICAgICAgcmVwYWludFJlY3QgPSBzbmFwcGVk
SW50UmVjdCh2aWV3LmJhY2tncm91bmRSZWN0KCkpOwogICAgIH0gZWxzZQpAQCAtMTkxNSw3ICsx
OTE1LDcgQEAgUmVuZGVyQm94TW9kZWxPYmplY3QqIFJlbmRlck9iamVjdDo6b2Zmc2V0UGFyZW50
KCkgY29uc3QKICAgICAvLyBBIGlzIHRoZSByb290IGVsZW1lbnQuCiAgICAgLy8gQSBpcyB0aGUg
SFRNTCBib2R5IGVsZW1lbnQuCiAgICAgLy8gVGhlIGNvbXB1dGVkIHZhbHVlIG9mIHRoZSBwb3Np
dGlvbiBwcm9wZXJ0eSBmb3IgZWxlbWVudCBBIGlzIGZpeGVkLgotICAgIGlmIChpc1Jvb3QoKSB8
fCBpc0JvZHkoKSB8fCAoaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgc3R5bGUoKS5wb3NpdGlv
bigpID09IEZpeGVkUG9zaXRpb24pKQorICAgIGlmIChpc0RvY3VtZW50RWxlbWVudFJlbmRlcmVy
KCkgfHwgaXNCb2R5KCkgfHwgKGlzT3V0T2ZGbG93UG9zaXRpb25lZCgpICYmIHN0eWxlKCkucG9z
aXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAg
ICAvLyBJZiBBIGlzIGFuIGFyZWEgSFRNTCBlbGVtZW50IHdoaWNoIGhhcyBhIG1hcCBIVE1MIGVs
ZW1lbnQgc29tZXdoZXJlIGluIHRoZSBhbmNlc3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oCmluZGV4IGUxYTM4MTcyM2Y0OTNiNDk0OTQxYmU1ZTRlNWNhNmNiMDZmYjNk
YjcuLmQ4MWNlYmQxZjY2OGU3NGIzMjcwNzhkYzU1ZWZjZDIxMGM3YjgxZDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTM0NSw3ICszNDUsNyBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJTY3JvbGxiYXJQYXJ0KCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KIAotICAgIGJvb2wgaXNSb290KCkgY29uc3QgeyByZXR1cm4gZG9jdW1lbnQo
KS5kb2N1bWVudEVsZW1lbnQoKSA9PSAmbV9ub2RlOyB9CisgICAgYm9vbCBpc0RvY3VtZW50RWxl
bWVudFJlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQo
KSA9PSAmbV9ub2RlOyB9CiAgICAgYm9vbCBpc0JvZHkoKSBjb25zdCB7IHJldHVybiBub2RlKCkg
JiYgbm9kZSgpLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6Ym9keVRhZyk7IH0KICAgICBib29sIGlz
SFIoKSBjb25zdCB7IHJldHVybiBub2RlKCkgJiYgbm9kZSgpLT5oYXNUYWdOYW1lKEhUTUxOYW1l
czo6aHJUYWcpOyB9CiAgICAgYm9vbCBpc0xlZ2VuZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKaW5kZXggNDg1NTk1YTFiODA2NGE2MzJmOWY4NTM0NGQ5
Y2UxZjhkNjM5NmY0ZS4uMDBjODk5MzVjOWU5OTg1ZDQxM2Q5NzkwOTJlYWVlNGMwYWM2MGExZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCkBAIC02NTgsNyArNjU4
LDcgQEAgdm9pZCBSZW5kZXJUYWJsZTo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0
IExheW91dFBvaW50JiBwYWludE9mZnNldCkKIAogICAgIFBhaW50UGhhc2UgcGFpbnRQaGFzZSA9
IHBhaW50SW5mby5waGFzZTsKIAotICAgIGlmICghaXNSb290KCkpIHsKKyAgICBpZiAoIWlzRG9j
dW1lbnRFbGVtZW50UmVuZGVyZXIoKSkgewogICAgICAgICBMYXlvdXRSZWN0IG92ZXJmbG93Qm94
ID0gdmlzdWFsT3ZlcmZsb3dSZWN0KCk7CiAgICAgICAgIGFkanVzdFJlY3RXaXRoTWF4aW11bU91
dGxpbmUocGFpbnRJbmZvLnBoYXNlLCBvdmVyZmxvd0JveCk7CiAgICAgICAgIGZsaXBGb3JXcml0
aW5nTW9kZShvdmVyZmxvd0JveCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSb290LmNwcAppbmRleCBlNDJmMDEwM2FjY2I1ZDZkMGI0MDRhNzk2ZTZlNjZjZmUy
NjEyMjJhLi45ZmVmMWQzN2E2Y2UzNzY4ZjA5NzNkNmYzNDVjZjBiYWJhMzk1ZTAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKQEAgLTIwMiw3
ICsyMDIsNyBAQCB2b2lkIFJlbmRlclNWR1Jvb3Q6OmxheW91dCgpCiAgICAgfQogCiAgICAgdXBk
YXRlTGF5ZXJUcmFuc2Zvcm0oKTsKLSAgICBtX2hhc0JveERlY29yYXRpb25zID0gaXNSb290KCkg
PyBoYXNCb3hEZWNvcmF0aW9uU3R5bGUoKSA6IGhhc0JveERlY29yYXRpb25zKCk7CisgICAgbV9o
YXNCb3hEZWNvcmF0aW9ucyA9IGlzRG9jdW1lbnRFbGVtZW50UmVuZGVyZXIoKSA/IGhhc0JveERl
Y29yYXRpb25TdHlsZSgpIDogaGFzQm94RGVjb3JhdGlvbnMoKTsKICAgICBpbnZhbGlkYXRlQmFj
a2dyb3VuZE9ic2N1cmF0aW9uU3RhdHVzKCk7CiAKICAgICByZXBhaW50ZXIucmVwYWludEFmdGVy
TGF5b3V0KCk7CkBAIC0yMTgsNyArMjE4LDcgQEAgYm9vbCBSZW5kZXJTVkdSb290OjpzaG91bGRB
cHBseVZpZXdwb3J0Q2xpcCgpIGNvbnN0CiAgICAgcmV0dXJuIHN0eWxlKCkub3ZlcmZsb3dYKCkg
PT0gT0hJRERFTgogICAgICAgICB8fCBzdHlsZSgpLm92ZXJmbG93WCgpID09IE9BVVRPCiAgICAg
ICAgIHx8IHN0eWxlKCkub3ZlcmZsb3dYKCkgPT0gT1NDUk9MTAotICAgICAgICB8fCB0aGlzLT5p
c1Jvb3QoKTsKKyAgICAgICAgfHwgdGhpcy0+aXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigpOwog
fQogCiB2b2lkIFJlbmRlclNWR1Jvb3Q6OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCmluZGV4IDNkYjNjYzk5ZWYxN2Rk
MmE2OGIxOGFkYjVlZjdhY2QyMDkzZDNlMDQuLjNmYjRmMTFiZmMxZjAwY2U5YmNlM2IxYmM3OWM5
M2Y0N2U4MmFjNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
UmVuZGVyU3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdS
ZW5kZXJTdXBwb3J0LmNwcApAQCAtMjk5LDcgKzI5OSw3IEBAIHZvaWQgU1ZHUmVuZGVyU3VwcG9y
dDo6bGF5b3V0Q2hpbGRyZW4oUmVuZGVyRWxlbWVudCYgc3RhcnQsIGJvb2wgc2VsZk5lZWRzTGF5
b3V0CiBib29sIFNWR1JlbmRlclN1cHBvcnQ6OmlzT3ZlcmZsb3dIaWRkZW4oY29uc3QgUmVuZGVy
RWxlbWVudCYgcmVuZGVyZXIpCiB7CiAgICAgLy8gUmVuZGVyU1ZHUm9vdCBzaG91bGQgbmV2ZXIg
cXVlcnkgZm9yIG92ZXJmbG93IHN0YXRlIC0gaXQgc2hvdWxkIGFsd2F5cyBjbGlwIGl0c2VsZiB0
byB0aGUgaW5pdGlhbCB2aWV3cG9ydCBzaXplLgotICAgIEFTU0VSVCghcmVuZGVyZXIuaXNSb290
KCkpOworICAgIEFTU0VSVCghcmVuZGVyZXIuaXNEb2N1bWVudEVsZW1lbnRSZW5kZXJlcigpKTsK
IAogICAgIHJldHVybiByZW5kZXJlci5zdHlsZSgpLm92ZXJmbG93WCgpID09IE9ISURERU4gfHwg
cmVuZGVyZXIuc3R5bGUoKS5vdmVyZmxvd1goKSA9PSBPU0NST0xMOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>