<?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>101541</bug_id>
          
          <creation_ts>2012-11-07 20:58:25 -0800</creation_ts>
          <short_desc>constify ALL the repaint containers</short_desc>
          <delta_ts>2012-11-10 22:46:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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>bdakin</cc>
    
    <cc>d-r</cc>
    
    <cc>eric</cc>
    
    <cc>fmalita</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>761313</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-07 20:58:25 -0800</bug_when>
    <thetext>constify ALL the repaint containers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761314</commentid>
    <comment_count>1</comment_count>
      <attachid>172925</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-07 21:00:45 -0800</bug_when>
    <thetext>Created attachment 172925
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761320</commentid>
    <comment_count>2</comment_count>
      <attachid>172925</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-07 21:15:45 -0800</bug_when>
    <thetext>Comment on attachment 172925
Patch

Attachment 172925 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14747991</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761322</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-07 21:16:49 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/133845

Will fix EFL.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172925</attachid>
            <date>2012-11-07 21:00:45 -0800</date>
            <delta_ts>2012-11-07 21:15:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101541-20121107205853.patch</filename>
            <type>text/plain</type>
            <size>72822</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzhhY2IwY2FkOWY2ZmJm
MTk0NzJkMjdlNTlhNmIwOWIyOTRkNmVhNi4uM2FhYWZmNWRiZTViYmNiYmNiYjIzZTczMmVmNzRi
ZWY3NGFkOTk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwOCBAQAorMjAxMi0xMS0wNyAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBjb25zdGlmeSBB
TEwgdGhlIHJlcGFpbnQgY29udGFpbmVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTWFrZSBhbGwgdGhlIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIgYXJndW1lbnRzIGNvbnN0LCBzaW5jZQorICAgICAgICB0aGVzZSBtZW1i
ZXIgZnVuY3Rpb25zIHNob3VsZCBoYXZlIG5vIG5lZWQgdG8gbXV0YXRlIHRoaXMgb2JqZWN0Lgor
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJS
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjpzZWxlY3Rpb25HYXBSZWN0c0ZvclJlcGFpbnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OnJlY3RXaXRoT3V0bGluZUZvclJlcGFpbnQpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
b3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpvdXRsaW5lQm91bmRzRm9yUmVw
YWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Om1hcExvY2FsVG9Db250YWluZXIp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVw
YWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWlu
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJGbG93VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJl
YWQ6OnJlcGFpbnRSZWN0YW5nbGVJblJlZ2lvbnMpOiBOZWVkIHRvIHVzZSBhIGNvbnN0X2l0ZXJh
dG9yLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmxp
bmU6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlcklubGluZTo6cmVjdFdpdGhPdXRsaW5lRm9yUmVwYWludCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJJbmxpbmU6OmNvbXB1dGVSZWN0Rm9yUmVwYWludCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0TWFya2VyOjpzZWxlY3Rpb25SZWN0Rm9y
UmVwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ck9iamVjdDo6cmVwYWludFVzaW5nQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ck9iamVjdDo6cmVwYWludEFmdGVyTGF5b3V0SWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyT2JqZWN0OjpyZWN0V2l0aE91dGxpbmVGb3JSZXBhaW50KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpsb2NhbFRvQ29udGFpbmVyUXVhZCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmxvY2FsVG9Db250YWluZXJQb2ludCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
T2JqZWN0OjpzZWxlY3Rpb25SZWN0Rm9yUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJPYmplY3Q6Om91dGxpbmVCb3VuZHNGb3JSZXBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OnNl
bGVjdGlvblJlY3RGb3JSZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxhY2Vk
OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclJlcGxhY2VkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OmNsaXBwZWRPdmVyZmxvd1JlY3RG
b3JSZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6Y29tcHV0ZVJl
Y3RGb3JSZXBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRhYmxlQ29sOjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ29sLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRhYmxlUm93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlUm93OjpjbGlwcGVk
T3ZlcmZsb3dSZWN0Rm9yUmVwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxl
Um93Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGV4dDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6c2VsZWN0aW9uUmVjdEZvclJlcGFpbnQpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6bWFwTG9jYWxUb0NvbnRhaW5l
cik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNWR0ZvcmVpZ25PYmplY3Q6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6OmNvbXB1dGVGbG9hdFJlY3RGb3JS
ZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om1hcExv
Y2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWln
bk9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHR3JhZGllbnRTdG9w
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTVkdJbmxpbmU6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0lubGluZTo6Y29tcHV0ZUZsb2F0UmVjdEZvclJl
cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW5saW5lOjptYXBMb2NhbFRvQ29u
dGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBh
aW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR01vZGVsT2JqZWN0Ojpjb21wdXRlRmxv
YXRSZWN0Rm9yUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9iamVj
dDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdNb2Rl
bE9iamVjdDo6b3V0bGluZUJvdW5kc0ZvclJlcGFpbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6Y2xpcHBlZE92
ZXJmbG93UmVjdEZvclJlcGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6
Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZH
Um9vdDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSb290Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JS
ZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OmNvbXB1dGVSZWN0Rm9y
UmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUZXh0Ojpjb21wdXRlRmxvYXRS
ZWN0Rm9yUmVwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUZXh0OjptYXBMb2Nh
bFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEZv
clJlcGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxU
b0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0Lmg6
CisgICAgICAgIChTVkdSZW5kZXJTdXBwb3J0KToKKwogMjAxMi0xMS0wNyAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFtWOF0gSW50cnVzaXZlRE9NV3JhcHBlck1h
cCBzaG91bGQgYmUgdXNhYmxlIGZvciBtb3JlIHRoYW4ganVzdCBOb2RlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgppbmRleCA0YjJlZmM1OTUyMzQxNTM5N2U0N2JjMGZmYTQ5NGIzMTNmY2RiYjdjLi5iNjg3
MTg1MmYyNTllODAyNjAxZWMxYmU2NjBmMzc0NjM0ZjhmNWVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgpAQCAtMTE4MSw3ICsxMTgxLDcgQEAgX19aTks3V2ViQ29yZTExU2NyaXB0VmFsdWU5Z2V0U3Ry
aW5nRVBOM0pTQzlFeGVjU3RhdGVFUk4zV1RGNlN0cmluZ0UKIF9fWk5LN1dlYkNvcmUxMlJlbmRl
ck9iamVjdDE0ZW5jbG9zaW5nTGF5ZXJFdgogX19aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0MTVs
b2NhbFRvQWJzb2x1dGVFUktOU18xMEZsb2F0UG9pbnRFagogX19aTks3V2ViQ29yZTEyUmVuZGVy
T2JqZWN0MTZyZXBhaW50UmVjdGFuZ2xlRVJLTlNfMTBMYXlvdXRSZWN0RWIKLV9fWk5LN1dlYkNv
cmUxMlJlbmRlck9iamVjdDIwbG9jYWxUb0NvbnRhaW5lclF1YWRFUktOU185RmxvYXRRdWFkRVBO
U18yMlJlbmRlckxheWVyTW9kZWxPYmplY3RFalBiCitfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmpl
Y3QyMGxvY2FsVG9Db250YWluZXJRdWFkRVJLTlNfOUZsb2F0UXVhZEVQS05TXzIyUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdEVqUGIKIF9fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDIzYWJzb2x1dGVC
b3VuZGluZ0JveFJlY3RFYgogX19aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0MzlwaXhlbFNuYXBw
ZWRBYnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1JlY3RFdgogX19aTks3V2ViQ29yZTEyUmVuZGVyT2Jq
ZWN0N2NoaWxkQXRFagpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJSLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQlIuaAppbmRleCAwZWJhYTJm
YTI2MTdjZjMwOGY4MGQ5YWNmNjcwNWY4NjRhNzFlNzA1Li4yNWU5MGRhOGRmMDQ2ZDIwODI3MDBm
N2I1ZTQwZDEwMGU0NDFmODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQlIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQlIuaApAQCAt
MzgsNyArMzgsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5h
bWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyQlIiOyB9CiAgCi0gICAgdmlydHVhbCBMYXlvdXRS
ZWN0IHNlbGVjdGlvblJlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIC8qcmVw
YWludENvbnRhaW5lciovLCBib29sIC8qY2xpcFRvVmlzaWJsZUNvbnRlbnQqLykgT1ZFUlJJREUg
eyByZXR1cm4gTGF5b3V0UmVjdCgpOyB9CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IHNlbGVjdGlv
blJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIC8qcmVwYWludENv
bnRhaW5lciovLCBib29sIC8qY2xpcFRvVmlzaWJsZUNvbnRlbnQqLykgT1ZFUlJJREUgeyByZXR1
cm4gTGF5b3V0UmVjdCgpOyB9CiAKICAgICB2aXJ0dWFsIGZsb2F0IHdpZHRoKHVuc2lnbmVkIC8q
ZnJvbSovLCB1bnNpZ25lZCAvKmxlbiovLCBjb25zdCBGb250JiwgZmxvYXQgLyp4UG9zKi8sIEhh
c2hTZXQ8Y29uc3QgU2ltcGxlRm9udERhdGEqPiogPSAwIC8qZmFsbGJhY2tGb250cyovICwgR2x5
cGhPdmVyZmxvdyogPSAwKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBmbG9hdCB3
aWR0aCh1bnNpZ25lZCAvKmZyb20qLywgdW5zaWduZWQgLypsZW4qLywgZmxvYXQgLyp4cG9zKi8s
IGJvb2wgPSBmYWxzZSAvKmZpcnN0TGluZSovLCBIYXNoU2V0PGNvbnN0IFNpbXBsZUZvbnREYXRh
Kj4qID0gMCAvKmZhbGxiYWNrRm9udHMqLywgR2x5cGhPdmVyZmxvdyogPSAwKSBjb25zdCB7IHJl
dHVybiAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBj
ZTU1MDcwN2ZiODEyZjhlYmEwMDk1YWRjYWZjYmQ3YzU3NTgwNGNmLi45ODJiMDk1MTk5YjQzMWIx
MGFmM2Q4Y2ZkZjM1YjBmZTU4NWFlNWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAKQEAgLTMyNTksNyArMzI1OSw3IEBAIGJvb2wgUmVuZGVyQmxvY2s6OmlzU2Vs
ZWN0aW9uUm9vdCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1HYXBSZWN0cyBSZW5k
ZXJCbG9jazo6c2VsZWN0aW9uR2FwUmVjdHNGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIpCitHYXBSZWN0cyBSZW5kZXJCbG9jazo6c2VsZWN0aW9uR2Fw
UmVjdHNGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIpCiB7CiAgICAgQVNTRVJUKCFuZWVkc0xheW91dCgpKTsKIApAQCAtNjgwMiw3ICs2ODAy
LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYg
cXVhZHMsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogICAgICAgICBxdWFkcy5hcHBlbmQoUmVuZGVy
Qm94Ojpsb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdCgwLCAwLCB3aWR0aCgpLCBoZWlnaHQo
KSksIDAgLyogbW9kZSAqLywgd2FzRml4ZWQpKTsKIH0KIAotTGF5b3V0UmVjdCBSZW5kZXJCbG9j
azo6cmVjdFdpdGhPdXRsaW5lRm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBMYXlvdXRVbml0IG91dGxpbmVXaWR0aCkgY29uc3QKK0xheW91dFJlY3Qg
UmVuZGVyQmxvY2s6OnJlY3RXaXRoT3V0bGluZUZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0VW5pdCBvdXRsaW5lV2lkdGgpIGNv
bnN0CiB7CiAgICAgTGF5b3V0UmVjdCByKFJlbmRlckJveDo6cmVjdFdpdGhPdXRsaW5lRm9yUmVw
YWludChyZXBhaW50Q29udGFpbmVyLCBvdXRsaW5lV2lkdGgpKTsKICAgICBpZiAoaXNBbm9ueW1v
dXNCbG9ja0NvbnRpbnVhdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
aAppbmRleCA5ZmUyMzQ4NDRlZDQ4YmNmYmU3ZDcyNDQzNTI4MGU2Zjc5ODBhM2MzLi41NWEwMDFm
NjFjNGNiM2ExMjJlYWU5ZGE3OGNmZmEyMGM5Njc0MjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suaApAQCAtMjIxLDcgKzIyMSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
Y29udGFpbnNOb25aZXJvQmlkaUxldmVsKCkgY29uc3Q7CiAKLSAgICBHYXBSZWN0cyBzZWxlY3Rp
b25HYXBSZWN0c0ZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lcik7CisgICAgR2FwUmVjdHMgc2VsZWN0aW9uR2FwUmVjdHNGb3JSZXBhaW50KGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpOwogICAgIExheW91dFJlY3Qg
bG9naWNhbExlZnRTZWxlY3Rpb25HYXAoUmVuZGVyQmxvY2sqIHJvb3RCbG9jaywgY29uc3QgTGF5
b3V0UG9pbnQmIHJvb3RCbG9ja1BoeXNpY2FsUG9zaXRpb24sIGNvbnN0IExheW91dFNpemUmIG9m
ZnNldEZyb21Sb290QmxvY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSZW5kZXJPYmplY3QqIHNlbE9iaiwgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdCwgTGF5b3V0VW5p
dCBsb2dpY2FsVG9wLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQsIGNvbnN0IFBhaW50SW5mbyop
OwogICAgIExheW91dFJlY3QgbG9naWNhbFJpZ2h0U2VsZWN0aW9uR2FwKFJlbmRlckJsb2NrKiBy
b290QmxvY2ssIGNvbnN0IExheW91dFBvaW50JiByb290QmxvY2tQaHlzaWNhbFBvc2l0aW9uLCBj
b25zdCBMYXlvdXRTaXplJiBvZmZzZXRGcm9tUm9vdEJsb2NrLApAQCAtODMzLDE0ICs4MzMsMTQg
QEAgcHJpdmF0ZToKICAgICAvLyBjaGlsZHJlbi4KICAgICB2aXJ0dWFsIFJlbmRlckJsb2NrKiBm
aXJzdExpbmVCbG9jaygpIGNvbnN0OwogCi0gICAgdmlydHVhbCBMYXlvdXRSZWN0IHJlY3RXaXRo
T3V0bGluZUZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgTGF5b3V0VW5pdCBvdXRsaW5lV2lkdGgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwg
TGF5b3V0UmVjdCByZWN0V2l0aE91dGxpbmVGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFVuaXQgb3V0bGluZVdpZHRoKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFJlbmRlclN0eWxlKiBvdXRsaW5lU3R5bGVGb3JSZXBh
aW50KCkgY29uc3Q7CiAgICAgCiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGhvdmVyQW5jZXN0
b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRHJhZ1N0YXRlKGJvb2wgZHJhZ09u
KTsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRCZWNhbWVOb25JbmxpbmUoUmVuZGVyT2JqZWN0KiBj
aGlsZCk7CiAKLSAgICB2aXJ0dWFsIExheW91dFJlY3Qgc2VsZWN0aW9uUmVjdEZvclJlcGFpbnQo
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCAvKmNsaXBUb1Zp
c2libGVDb250ZW50Ki8pIE9WRVJSSURFCisgICAgdmlydHVhbCBMYXlvdXRSZWN0IHNlbGVjdGlv
blJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIGJvb2wgLypjbGlwVG9WaXNpYmxlQ29udGVudCovKSBPVkVSUklERQogICAgIHsKICAg
ICAgICAgcmV0dXJuIHNlbGVjdGlvbkdhcFJlY3RzRm9yUmVwYWludChyZXBhaW50Q29udGFpbmVy
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IGVlMDdl
YmFkZTU3ZDFhZDliODNjYWMzYTE1M2VhOTc3NWZjNGNhZDUuLmYyZmIzNzhmOGM5NWFiOTUxOWI3
YjE3NTUyNzg3MzlhNGI3YTMyM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwCkBAIC00NDgsNyArNDQ4LDcgQEAgRmxvYXRRdWFkIFJlbmRlckJveDo6YWJzb2x1dGVDb250
ZW50UXVhZCgpIGNvbnN0CiAgICAgcmV0dXJuIGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0
KHJlY3QpKTsKIH0KIAotTGF5b3V0UmVjdCBSZW5kZXJCb3g6Om91dGxpbmVCb3VuZHNGb3JSZXBh
aW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFBvaW50
KiBjYWNoZWRPZmZzZXRUb1JlcGFpbnRDb250YWluZXIpIGNvbnN0CitMYXlvdXRSZWN0IFJlbmRl
ckJveDo6b3V0bGluZUJvdW5kc0ZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0UG9pbnQqIGNhY2hlZE9mZnNldFRvUmVwYWludENv
bnRhaW5lcikgY29uc3QKIHsKICAgICBMYXlvdXRSZWN0IGJveCA9IGJvcmRlckJvdW5kaW5nQm94
KCk7CiAgICAgYWRqdXN0UmVjdEZvck91dGxpbmVBbmRTaGFkb3coYm94KTsKQEAgLTEyNjksNyAr
MTI2OSw3IEBAIExheW91dFVuaXQgUmVuZGVyQm94OjpwZXJwZW5kaWN1bGFyQ29udGFpbmluZ0Js
b2NrTG9naWNhbEhlaWdodCgpIGNvbnN0CiAgICAgcmV0dXJuIGNiLT5hZGp1c3RDb250ZW50Qm94
TG9naWNhbEhlaWdodEZvckJveFNpemluZyhsb2dpY2FsSGVpZ2h0TGVuZ3RoLnZhbHVlKCkpOwog
fQogCi12b2lkIFJlbmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUs
IE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJl
bmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENv
b3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgaWYgKHJl
cGFpbnRDb250YWluZXIgPT0gdGhpcykKICAgICAgICAgcmV0dXJuOwpAQCAtMTQ4NCw3ICsxNDg0
LDcgQEAgdm9pZCBSZW5kZXJCb3g6OmRlbGV0ZUxpbmVCb3hXcmFwcGVyKCkKICAgICB9CiB9CiAK
LUxheW91dFJlY3QgUmVuZGVyQm94OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdAorTGF5b3V0UmVjdCBS
ZW5kZXJCb3g6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0CiB7CiAgICAgaWYgKHN0eWxlKCkt
PnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFICYmICFlbmNsb3NpbmdMYXllcigpLT5oYXNWaXNpYmxl
Q29udGVudCgpKQogICAgICAgICByZXR1cm4gTGF5b3V0UmVjdCgpOwpAQCAtMTUxMSw3ICsxNTEx
LDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJCb3g6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50
KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGEKICAgICByZXR1cm4gcjsKIH0KIAotdm9pZCBS
ZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiByZWN0LCBib29sIGZpeGVkKSBjb25zdAordm9p
ZCBSZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiByZWN0LCBib29sIGZpeGVkKSBj
b25zdAogewogICAgIC8vIFRoZSByZWN0IHdlIGNvbXB1dGUgYXQgZWFjaCBzdGVwIGlzIHNoaWZ0
ZWQgYnkgb3VyIHgveSBvZmZzZXQgaW4gdGhlIHBhcmVudCBjb250YWluZXIncyBjb29yZGluYXRl
IHNwYWNlLgogICAgIC8vIE9ubHkgd2hlbiB3ZSBjcm9zcyBhIHdyaXRpbmcgbW9kZSBib3VuZGFy
eSB3aWxsIHdlIGhhdmUgdG8gcG9zc2libHkgZmxpcEZvcldyaXRpbmdNb2RlICh0byBjb252ZXJ0
IGludG8gYSBtb3JlIGFwcHJvcHJpYXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgK
aW5kZXggOGFhY2RlMGU3ZmU0Y2IzNjczZDdlMjE4NGI1ODJjMDM0NDI0NzQzMC4uZTVkMWM4MzA2
YjVjYjgzYzNlZDI0YzcwNjMxYzgyOGVkYjJjMjU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guaApAQCAtMTU0LDcgKzE1NCw3IEBAIHB1YmxpYzoKICAgICBMYXlvdXRSZWN0IGNv
bXB1dGVkQ1NTQ29udGVudEJveFJlY3QoKSBjb25zdCB7IHJldHVybiBMYXlvdXRSZWN0KGJvcmRl
ckxlZnQoKSArIGNvbXB1dGVkQ1NTUGFkZGluZ0xlZnQoKSwgYm9yZGVyVG9wKCkgKyBjb21wdXRl
ZENTU1BhZGRpbmdUb3AoKSwgY2xpZW50V2lkdGgoKSAtIGNvbXB1dGVkQ1NTUGFkZGluZ0xlZnQo
KSAtIGNvbXB1dGVkQ1NTUGFkZGluZ1JpZ2h0KCksIGNsaWVudEhlaWdodCgpIC0gY29tcHV0ZWRD
U1NQYWRkaW5nVG9wKCkgLSBjb21wdXRlZENTU1BhZGRpbmdCb3R0b20oKSk7IH0KIAogICAgIC8v
IEJvdW5kcyBvZiB0aGUgb3V0bGluZSBib3ggaW4gYWJzb2x1dGUgY29vcmRzLiBSZXNwZWN0cyB0
cmFuc2Zvcm1zCi0gICAgdmlydHVhbCBMYXlvdXRSZWN0IG91dGxpbmVCb3VuZHNGb3JSZXBhaW50
KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIC8qcmVwYWludENvbnRhaW5lciovLCBMYXlvdXRQb2lu
dCogY2FjaGVkT2Zmc2V0VG9SZXBhaW50Q29udGFpbmVyKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIExheW91dFJlY3Qgb3V0bGluZUJvdW5kc0ZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogLypyZXBhaW50Q29udGFpbmVyKi8sIExheW91dFBvaW50KiBjYWNoZWRP
ZmZzZXRUb1JlcGFpbnRDb250YWluZXIpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBhZGRGb2N1c1JpbmdSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25zdCBMYXlvdXRQb2ludCYp
OwogCiAgICAgLy8gVXNlIHRoaXMgd2l0aCBjYXV0aW9uISBObyB0eXBlIGNoZWNraW5nIGlzIGRv
bmUhCkBAIC0zNjAsOCArMzYwLDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0SW5saW5lQm94V3Jh
cHBlcihJbmxpbmVCb3gqIGJveFdyYXBwZXIpIHsgbV9pbmxpbmVCb3hXcmFwcGVyID0gYm94V3Jh
cHBlcjsgfQogICAgIHZvaWQgZGVsZXRlTGluZUJveFdyYXBwZXIoKTsKIAotICAgIHZpcnR1YWwg
TGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIExheW91dFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QmLCBib29sIGZp
eGVkID0gZmFsc2UpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lkIHJlcGFpbnRE
dXJpbmdMYXlvdXRJZk1vdmVkKGNvbnN0IExheW91dFJlY3QmKTsKIApAQCAtNTc2LDcgKzU3Niw3
IEBAIHByb3RlY3RlZDoKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ29tcHV0ZVNpemVB
c1JlcGxhY2VkKCkgY29uc3QgeyByZXR1cm4gaXNSZXBsYWNlZCgpICYmICFpc0lubGluZUJsb2Nr
T3JJbmxpbmVUYWJsZSgpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5l
cihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0
ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0
Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxh
Z3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCog
d2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9i
amVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncywgVHJhbnNmb3JtU3Rh
dGUmKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJl
YWQuY3BwCmluZGV4IGU5OWY1MzNiMjk3MDIxNDBlMGU0ZDU0ZWY3NzNlYjUzZDQwODU4YTIuLmNl
MTgyY2QwNjhiZjMzODg3OTk1Mjk5OGMxZGQ0ZTMzMTU4ZDQxNzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKQEAgLTMwMCw3ICszMDAsNyBAQCBi
b29sIFJlbmRlckZsb3dUaHJlYWQ6OnNob3VsZFJlcGFpbnQoY29uc3QgTGF5b3V0UmVjdCYgcikg
Y29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpyZXBh
aW50UmVjdGFuZ2xlSW5SZWdpb25zKGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0LCBib29s
IGltbWVkaWF0ZSkKK3ZvaWQgUmVuZGVyRmxvd1RocmVhZDo6cmVwYWludFJlY3RhbmdsZUluUmVn
aW9ucyhjb25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBpbW1lZGlhdGUpIGNvbnN0
CiB7CiAgICAgaWYgKCFzaG91bGRSZXBhaW50KHJlcGFpbnRSZWN0KSB8fCAhaGFzVmFsaWRSZWdp
b25JbmZvKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTMxMSw3ICszMTEsNyBAQCB2b2lkIFJlbmRl
ckZsb3dUaHJlYWQ6OnJlcGFpbnRSZWN0YW5nbGVJblJlZ2lvbnMoY29uc3QgTGF5b3V0UmVjdCYg
cmVwYWludFJlY3QsCiAgICAgLy8gTGV0IGVhY2ggcmVnaW9uIGZpZ3VyZSBvdXQgdGhlIHByb3Bl
ciBlbmNsb3NpbmcgZmxvdyB0aHJlYWQuCiAgICAgQ3VycmVudFJlbmRlckZsb3dUaHJlYWREaXNh
YmxlciBkaXNhYmxlcih2aWV3KCkpOwogICAgIAotICAgIGZvciAoUmVuZGVyUmVnaW9uTGlzdDo6
aXRlcmF0b3IgaXRlciA9IG1fcmVnaW9uTGlzdC5iZWdpbigpOyBpdGVyICE9IG1fcmVnaW9uTGlz
dC5lbmQoKTsgKytpdGVyKSB7CisgICAgZm9yIChSZW5kZXJSZWdpb25MaXN0Ojpjb25zdF9pdGVy
YXRvciBpdGVyID0gbV9yZWdpb25MaXN0LmJlZ2luKCk7IGl0ZXIgIT0gbV9yZWdpb25MaXN0LmVu
ZCgpOyArK2l0ZXIpIHsKICAgICAgICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSAqaXRlcjsKIAog
ICAgICAgICByZWdpb24tPnJlcGFpbnRGbG93VGhyZWFkQ29udGVudChyZXBhaW50UmVjdCwgaW1t
ZWRpYXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93
VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCmlu
ZGV4IDU4MTMxNWJlNTJjM2FhNTNjM2E4ZmZhMjRlMjljNTViYmUwMWJjMjQuLmMzOTg3NGM2NDM1
OTZkNWFkMGY5NWJhNzM3NTAwYWI4Mzg2NTFjYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsb3dUaHJlYWQuaApAQCAtOTEsNyArOTEsNyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9s
ZFN0eWxlKTsKIAotICAgIHZvaWQgcmVwYWludFJlY3RhbmdsZUluUmVnaW9ucyhjb25zdCBMYXlv
dXRSZWN0JiwgYm9vbCBpbW1lZGlhdGUpOworICAgIHZvaWQgcmVwYWludFJlY3RhbmdsZUluUmVn
aW9ucyhjb25zdCBMYXlvdXRSZWN0JiwgYm9vbCBpbW1lZGlhdGUpIGNvbnN0OwogCiAgICAgTGF5
b3V0VW5pdCBwYWdlTG9naWNhbFRvcEZvck9mZnNldChMYXlvdXRVbml0KSBjb25zdDsKICAgICBM
YXlvdXRVbml0IHBhZ2VMb2dpY2FsV2lkdGhGb3JPZmZzZXQoTGF5b3V0VW5pdCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCmluZGV4IGE4ZjE4MGFiZTkx
OGQyOTg2YzM3NGMzNDYyMTA2ODMyYzkyZTE1NmIuLjJhOGZlODgyM2Q1MjJiY2JlZmJhYmM3YTAz
Y2QzNDllZGVhOGJhOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUu
Y3BwCkBAIC05NjksNyArOTY5LDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJJbmxpbmU6OmxpbmVzVmlz
dWFsT3ZlcmZsb3dCb3VuZGluZ0JveCgpIGNvbnN0CiAgICAgcmV0dXJuIHJlY3Q7CiB9CiAKLUxh
eW91dFJlY3QgUmVuZGVySW5saW5lOjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdAorTGF5b3V0UmVjdCBS
ZW5kZXJJbmxpbmU6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0CiB7CiAgICAgLy8gT25seSBy
dW4taW5zIGFyZSBhbGxvd2VkIGluIGhlcmUgZHVyaW5nIGxheW91dC4KICAgICBBU1NFUlQoIXZp
ZXcoKSB8fCAhdmlldygpLT5sYXlvdXRTdGF0ZUVuYWJsZWQoKSB8fCBpc1J1bkluKCkpOwpAQCAt
MTAyMCw3ICsxMDIwLDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJJbmxpbmU6OmNsaXBwZWRPdmVyZmxv
d1JlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHIKICAgICByZXR1cm4gcmVw
YWludFJlY3Q7CiB9CiAKLUxheW91dFJlY3QgUmVuZGVySW5saW5lOjpyZWN0V2l0aE91dGxpbmVG
b3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91
dFVuaXQgb3V0bGluZVdpZHRoKSBjb25zdAorTGF5b3V0UmVjdCBSZW5kZXJJbmxpbmU6OnJlY3RX
aXRoT3V0bGluZUZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgTGF5b3V0VW5pdCBvdXRsaW5lV2lkdGgpIGNvbnN0CiB7CiAgICAgTGF5b3V0
UmVjdCByKFJlbmRlckJveE1vZGVsT2JqZWN0OjpyZWN0V2l0aE91dGxpbmVGb3JSZXBhaW50KHJl
cGFpbnRDb250YWluZXIsIG91dGxpbmVXaWR0aCkpOwogICAgIGZvciAoUmVuZGVyT2JqZWN0KiBj
dXJyID0gZmlyc3RDaGlsZCgpOyBjdXJyOyBjdXJyID0gY3Vyci0+bmV4dFNpYmxpbmcoKSkgewpA
QCAtMTAzMCw3ICsxMDMwLDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJJbmxpbmU6OnJlY3RXaXRoT3V0
bGluZUZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWkKICAgICByZXR1cm4g
cjsKIH0KIAotdm9pZCBSZW5kZXJJbmxpbmU6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiByZWN0LCBib29s
IGZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJJbmxpbmU6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0
JiByZWN0LCBib29sIGZpeGVkKSBjb25zdAogewogICAgIGlmIChSZW5kZXJWaWV3KiB2ID0gdmll
dygpKSB7CiAgICAgICAgIC8vIExheW91dFN0YXRlIGlzIG9ubHkgdmFsaWQgZm9yIHJvb3QtcmVs
YXRpdmUgcmVwYWludGluZwpAQCAtMTExMiw3ICsxMTEyLDcgQEAgTGF5b3V0U2l6ZSBSZW5kZXJJ
bmxpbmU6Om9mZnNldEZyb21Db250YWluZXIoUmVuZGVyT2JqZWN0KiBjb250YWluZXIsIGNvbnN0
IExheW8KICAgICByZXR1cm4gb2Zmc2V0OwogfQogCi12b2lkIFJlbmRlcklubGluZTo6bWFwTG9j
YWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwg
Ym9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlcklubGluZTo6bWFwTG9jYWxUb0NvbnRh
aW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFu
c2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9v
bCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgaWYgKHJlcGFpbnRDb250YWluZXIgPT0gdGhpcykK
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCmlu
ZGV4IDViYzk1NGEwYjgwZTIwYTA5NzgxMWJlYTEzMzUwYTE1M2RhZDQ0MGEuLjBiMTNmNjMyYzA5
NDJlYTQ2NTBjYTI2NGMxODJhNjMwZjNlOTczMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW5saW5lLmgKQEAgLTEzNCwxMSArMTM0LDExIEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBMYXlvdXRVbml0IG9mZnNldFdpZHRoKCkgY29uc3QgeyByZXR1cm4gbGluZXNCb3VuZGluZ0Jv
eCgpLndpZHRoKCk7IH0KICAgICB2aXJ0dWFsIExheW91dFVuaXQgb2Zmc2V0SGVpZ2h0KCkgY29u
c3QgeyByZXR1cm4gbGluZXNCb3VuZGluZ0JveCgpLmhlaWdodCgpOyB9CiAKLSAgICB2aXJ0dWFs
IExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBM
YXlvdXRSZWN0IHJlY3RXaXRoT3V0bGluZUZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0VW5pdCBvdXRsaW5lV2lkdGgpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0UmVjdCYsIGJvb2wgZml4ZWQpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0
Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgcmVjdFdpdGhPdXRsaW5l
Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBMYXlvdXRVbml0IG91dGxpbmVXaWR0aCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCkgY29uc3QgT1ZFUlJJREU7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVz
RmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9v
bCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9j
YWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5l
ckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdU
b0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0
LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBWaXNp
YmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCmluZGV4IGJkNzdmN2Yx
YjBkYjViZjJmNDVmNjUxNzBhZWZlNjE5ZTFjMzcyMTkuLjIzZjU0MTZjY2FjYmRlNjk3N2Y5MjEx
YzhlNDk1NzUyOThiZTgxM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0TWFya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdE1hcmtlci5jcHAKQEAgLTE3MDMsNyArMTcwMyw3IEBAIHZvaWQgUmVuZGVyTGlzdE1hcmtl
cjo6c2V0U2VsZWN0aW9uU3RhdGUoU2VsZWN0aW9uU3RhdGUgc3RhdGUpCiAgICAgICAgICAgICBy
b290LT5zZXRIYXNTZWxlY3RlZENoaWxkcmVuKHN0YXRlICE9IFNlbGVjdGlvbk5vbmUpOwogfQog
Ci1MYXlvdXRSZWN0IFJlbmRlckxpc3RNYXJrZXI6OnNlbGVjdGlvblJlY3RGb3JSZXBhaW50KFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJs
ZUNvbnRlbnQpCitMYXlvdXRSZWN0IFJlbmRlckxpc3RNYXJrZXI6OnNlbGVjdGlvblJlY3RGb3JS
ZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJv
b2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQpCiB7CiAgICAgQVNTRVJUKCFuZWVkc0xheW91dCgpKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmgKaW5kZXggZTIy
MGNlNzk4MzgyZWZlYmU4YmY2ODkxMWRjZTRhMGY0YjYxZTU0Ni4uOTg0ODBlYTBmZGQ5N2ExMGNk
MWE0YTEzYWIyMGMwY2U0YTMwYTgzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdE1hcmtlci5oCkBAIC02NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc1Rl
eHQoKSBjb25zdCB7IHJldHVybiAhaXNJbWFnZSgpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0
U2VsZWN0aW9uU3RhdGUoU2VsZWN0aW9uU3RhdGUpOwotICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBz
ZWxlY3Rpb25SZWN0Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBib29sIGNsaXBUb1Zpc2libGVDb250ZW50ID0gdHJ1ZSkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBMYXlvdXRSZWN0IHNlbGVjdGlvblJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRl
bnQgPSB0cnVlKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFm
KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdm9pZCB1cGRhdGVNYXJnaW5zKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDBhOTgyOThmN2Nm
MDk3M2NmOThjOWI0ZGVmMDExZTNmNTYxYTM5ZDMuLjk4M2FjZWQ0ZTgwYzA4ZGEyZGQzODYzMWVi
ZTY4ZjQzOWY1ZTc3MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
Y3BwCkBAIC0xMjk3LDcgKzEyOTcsNyBAQCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBSZW5kZXJP
YmplY3Q6OmNvbnRhaW5lckZvclJlcGFpbnQoKSBjb25zdAogICAgIHJldHVybiByZXBhaW50Q29u
dGFpbmVyOwogfQogCi12b2lkIFJlbmRlck9iamVjdDo6cmVwYWludFVzaW5nQ29udGFpbmVyKFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNvbnN0IEludFJlY3QmIHIs
IGJvb2wgaW1tZWRpYXRlKSBjb25zdAordm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRVc2luZ0Nv
bnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBj
b25zdCBJbnRSZWN0JiByLCBib29sIGltbWVkaWF0ZSkgY29uc3QKIHsKICAgICBpZiAoIXJlcGFp
bnRDb250YWluZXIpIHsKICAgICAgICAgdmlldygpLT5yZXBhaW50Vmlld1JlY3RhbmdsZShyLCBp
bW1lZGlhdGUpOwpAQCAtMTM4MCw3ICsxMzgwLDcgQEAgSW50UmVjdCBSZW5kZXJPYmplY3Q6OnBp
eGVsU25hcHBlZEFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdCgpIGNvbnN0CiAgICAgcmV0dXJu
IHBpeGVsU25hcHBlZEludFJlY3QoYWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCkpOwogfQog
Ci1ib29sIFJlbmRlck9iamVjdDo6cmVwYWludEFmdGVyTGF5b3V0SWZOZWVkZWQoUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgY29uc3QgTGF5b3V0UmVjdCYgb2xkQm91
bmRzLCBjb25zdCBMYXlvdXRSZWN0JiBvbGRPdXRsaW5lQm94LCBjb25zdCBMYXlvdXRSZWN0KiBu
ZXdCb3VuZHNQdHIsIGNvbnN0IExheW91dFJlY3QqIG5ld091dGxpbmVCb3hSZWN0UHRyKQorYm9v
bCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRBZnRlckxheW91dElmTmVlZGVkKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNvbnN0IExheW91dFJlY3QmIG9sZEJv
dW5kcywgY29uc3QgTGF5b3V0UmVjdCYgb2xkT3V0bGluZUJveCwgY29uc3QgTGF5b3V0UmVjdCog
bmV3Qm91bmRzUHRyLCBjb25zdCBMYXlvdXRSZWN0KiBuZXdPdXRsaW5lQm94UmVjdFB0cikKIHsK
ICAgICBSZW5kZXJWaWV3KiB2ID0gdmlldygpOwogICAgIGlmICh2LT5wcmludGluZygpKQpAQCAt
MTUwNCwyMCArMTUwNCwyMCBAQCBib29sIFJlbmRlck9iamVjdDo6Y2hlY2tGb3JSZXBhaW50RHVy
aW5nTGF5b3V0KCkgY29uc3QKICAgICByZXR1cm4gIWRvY3VtZW50KCktPnZpZXcoKS0+bmVlZHNG
dWxsUmVwYWludCgpICYmICFoYXNMYXllcigpICYmIGV2ZXJIYWRMYXlvdXQoKTsKIH0KIAotTGF5
b3V0UmVjdCBSZW5kZXJPYmplY3Q6OnJlY3RXaXRoT3V0bGluZUZvclJlcGFpbnQoUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0VW5pdCBvdXRsaW5lV2lkdGgp
IGNvbnN0CitMYXlvdXRSZWN0IFJlbmRlck9iamVjdDo6cmVjdFdpdGhPdXRsaW5lRm9yUmVwYWlu
dChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRV
bml0IG91dGxpbmVXaWR0aCkgY29uc3QKIHsKICAgICBMYXlvdXRSZWN0IHIoY2xpcHBlZE92ZXJm
bG93UmVjdEZvclJlcGFpbnQocmVwYWludENvbnRhaW5lcikpOwogICAgIHIuaW5mbGF0ZShvdXRs
aW5lV2lkdGgpOwogICAgIHJldHVybiByOwogfQogCi1MYXlvdXRSZWN0IFJlbmRlck9iamVjdDo6
Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCopIGNv
bnN0CitMYXlvdXRSZWN0IFJlbmRlck9iamVjdDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFp
bnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCopIGNvbnN0CiB7CiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIExheW91dFJlY3QoKTsKIH0KIAotdm9pZCBSZW5kZXJP
YmplY3Q6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiByZWN0LCBib29sIGZpeGVkKSBjb25zdAordm9pZCBS
ZW5kZXJPYmplY3Q6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiByZWN0LCBib29sIGZpeGVkKSBj
b25zdAogewogICAgIGlmIChyZXBhaW50Q29udGFpbmVyID09IHRoaXMpCiAgICAgICAgIHJldHVy
bjsKQEAgLTE1NDAsNyArMTU0MCw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0Ojpjb21wdXRlUmVjdEZv
clJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lCiAgICAgfQog
fQogCi12b2lkIFJlbmRlck9iamVjdDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCosIEZsb2F0UmVjdCYsIGJvb2wpIGNvbnN0Cit2b2lkIFJlbmRlck9i
amVjdDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCosIEZsb2F0UmVjdCYsIGJvb2wpIGNvbnN0CiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiB9CkBAIC0yMDM5LDcgKzIwMzksNyBAQCBGbG9hdFBvaW50IFJlbmRlck9iamVjdDo6YWJz
b2x1dGVUb0xvY2FsKGNvbnN0IEZsb2F0UG9pbnQmIGNvbnRhaW5lclBvaW50LCBNYXBDbwogICAg
IHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5sYXN0UGxhbmFyUG9pbnQoKTsKIH0KIAotdm9pZCBSZW5k
ZXJPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGlu
YXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJPYmplY3Q6
Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRl
c0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAgIGlmIChyZXBhaW50Q29u
dGFpbmVyID09IHRoaXMpCiAgICAgICAgIHJldHVybjsKQEAgLTIxMzMsNyArMjEzMyw3IEBAIHZv
aWQgUmVuZGVyT2JqZWN0OjpnZXRUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKGNvbnN0IFJlbmRlck9i
amVjdCogY29udGFpbmVyT2JqZWN0CiAjZW5kaWYKIH0KIAotRmxvYXRRdWFkIFJlbmRlck9iamVj
dDo6bG9jYWxUb0NvbnRhaW5lclF1YWQoY29uc3QgRmxvYXRRdWFkJiBsb2NhbFF1YWQsIFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIE1hcENvb3JkaW5hdGVzRmxhZ3Mg
bW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CitGbG9hdFF1YWQgUmVuZGVyT2JqZWN0Ojpsb2Nh
bFRvQ29udGFpbmVyUXVhZChjb25zdCBGbG9hdFF1YWQmIGxvY2FsUXVhZCwgY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTWFwQ29vcmRpbmF0ZXNGbGFncyBt
b2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKICAgICAvLyBUcmFjayB0aGUgcG9pbnQgYXQg
dGhlIGNlbnRlciBvZiB0aGUgcXVhZCdzIGJvdW5kaW5nIGJveC4gQXMgbWFwTG9jYWxUb0NvbnRh
aW5lcigpIGNhbGxzIG9mZnNldEZyb21Db250YWluZXIoKSwKICAgICAvLyBpdCB3aWxsIHVzZSB0
aGF0IHBvaW50IGFzIHRoZSByZWZlcmVuY2UgcG9pbnQgdG8gZGVjaWRlIHdoaWNoIGNvbHVtbidz
IHRyYW5zZm9ybSB0byBhcHBseSBpbiBtdWx0aXBsZS1jb2x1bW4gYmxvY2tzLgpAQCAtMjE0NCw3
ICsyMTQ0LDcgQEAgRmxvYXRRdWFkIFJlbmRlck9iamVjdDo6bG9jYWxUb0NvbnRhaW5lclF1YWQo
Y29uc3QgRmxvYXRRdWFkJiBsb2NhbFF1YWQsIFJlbmRlckwKICAgICByZXR1cm4gdHJhbnNmb3Jt
U3RhdGUubGFzdFBsYW5hclF1YWQoKTsKIH0KIAotRmxvYXRQb2ludCBSZW5kZXJPYmplY3Q6Omxv
Y2FsVG9Db250YWluZXJQb2ludChjb25zdCBGbG9hdFBvaW50JiBsb2NhbFBvaW50LCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1v
ZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAorRmxvYXRQb2ludCBSZW5kZXJPYmplY3Q6OmxvY2Fs
VG9Db250YWluZXJQb2ludChjb25zdCBGbG9hdFBvaW50JiBsb2NhbFBvaW50LCBjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBNYXBDb29yZGluYXRlc0ZsYWdz
IG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAgIFRyYW5zZm9ybVN0YXRlIHRyYW5z
Zm9ybVN0YXRlKFRyYW5zZm9ybVN0YXRlOjpBcHBseVRyYW5zZm9ybURpcmVjdGlvbiwgbG9jYWxQ
b2ludCk7CiAgICAgbWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zv
cm1TdGF0ZSwgbW9kZSB8IEFwcGx5Q29udGFpbmVyRmxpcCB8IFVzZVRyYW5zZm9ybXMsIHdhc0Zp
eGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCA5OTQyNGYy
ZjY5ZDk2M2ZjM2JiMWM1ZmMxZTllZWUwMGVjY2FkZDMwLi5iMWY1NDFmOTFhNmE3ODU0MzY5ZmVj
ZDkzMjI0NzZkYzYwOGQzOTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oCkBAIC03MzMsOCArNzMzLDggQEAgcHVibGljOgogICAgIH0KIAogICAgIC8vIENvbnZlcnQg
YSBsb2NhbCBxdWFkIGludG8gdGhlIGNvb3JkaW5hdGUgc3lzdGVtIG9mIGNvbnRhaW5lciwgdGFr
aW5nIHRyYW5zZm9ybXMgaW50byBhY2NvdW50LgotICAgIEZsb2F0UXVhZCBsb2NhbFRvQ29udGFp
bmVyUXVhZChjb25zdCBGbG9hdFF1YWQmLCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gMCwgYm9vbCogd2FzRml4ZWQgPSAwKSBj
b25zdDsKLSAgICBGbG9hdFBvaW50IGxvY2FsVG9Db250YWluZXJQb2ludChjb25zdCBGbG9hdFBv
aW50JiwgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTWFwQ29vcmRp
bmF0ZXNGbGFncyA9IDAsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CisgICAgRmxvYXRRdWFk
IGxvY2FsVG9Db250YWluZXJRdWFkKGNvbnN0IEZsb2F0UXVhZCYsIGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSAwLCBi
b29sKiB3YXNGaXhlZCA9IDApIGNvbnN0OworICAgIEZsb2F0UG9pbnQgbG9jYWxUb0NvbnRhaW5l
clBvaW50KGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gMCwgYm9vbCogd2FzRml4ZWQg
PSAwKSBjb25zdDsKIAogICAgIC8vIFJldHVybiB0aGUgb2Zmc2V0IGZyb20gdGhlIGNvbnRhaW5l
cigpIHJlbmRlcmVyIChleGNsdWRpbmcgdHJhbnNmb3JtcykuIEluIG11bHRpLWNvbHVtbiBsYXlv
dXQsCiAgICAgLy8gZGlmZmVyZW50IG9mZnNldHMgYXBwbHkgYXQgZGlmZmVyZW50IHBvaW50cywg
c28gcmV0dXJuIHRoZSBvZmZzZXQgdGhhdCBhcHBsaWVzIHRvIHRoZSBnaXZlbiBwb2ludC4KQEAg
LTc4Myw3ICs3ODMsNyBAQCBwdWJsaWM6CiAgICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogY29u
dGFpbmVyRm9yUmVwYWludCgpIGNvbnN0OwogICAgIC8vIEFjdHVhbGx5IGRvIHRoZSByZXBhaW50
IG9mIHJlY3QgciBmb3IgdGhpcyBvYmplY3Qgd2hpY2ggaGFzIGJlZW4gY29tcHV0ZWQgaW4gdGhl
IGNvb3JkaW5hdGUgc3BhY2UKICAgICAvLyBvZiByZXBhaW50Q29udGFpbmVyLiBJZiByZXBhaW50
Q29udGFpbmVyIGlzIDAsIHJlcGFpbnQgdmlhIHRoZSB2aWV3LgotICAgIHZvaWQgcmVwYWludFVz
aW5nQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNv
bnN0IEludFJlY3QmLCBib29sIGltbWVkaWF0ZSA9IGZhbHNlKSBjb25zdDsKKyAgICB2b2lkIHJl
cGFpbnRVc2luZ0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBjb25zdCBJbnRSZWN0JiwgYm9vbCBpbW1lZGlhdGUgPSBmYWxzZSkgY29uc3Q7
CiAgICAgCiAgICAgLy8gUmVwYWludCB0aGUgZW50aXJlIG9iamVjdC4gIENhbGxlZCB3aGVuLCBl
LmcuLCB0aGUgY29sb3Igb2YgYSBib3JkZXIgY2hhbmdlcywgb3Igd2hlbiBhIGJvcmRlcgogICAg
IC8vIHN0eWxlIGNoYW5nZXMuCkBAIC03OTMsNyArNzkzLDcgQEAgcHVibGljOgogICAgIHZvaWQg
cmVwYWludFJlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiwgYm9vbCBpbW1lZGlhdGUgPSBmYWxz
ZSkgY29uc3Q7CiAKICAgICAvLyBSZXBhaW50IG9ubHkgaWYgb3VyIG9sZCBib3VuZHMgYW5kIG5l
dyBib3VuZHMgYXJlIGRpZmZlcmVudC4gVGhlIGNhbGxlciBtYXkgcGFzcyBpbiBuZXdCb3VuZHMg
YW5kIG5ld091dGxpbmVCb3ggaWYgdGhleSBhcmUga25vd24uCi0gICAgYm9vbCByZXBhaW50QWZ0
ZXJMYXlvdXRJZk5lZWRlZChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBjb25zdCBMYXlvdXRSZWN0JiBvbGRCb3VuZHMsIGNvbnN0IExheW91dFJlY3QmIG9sZE91dGxp
bmVCb3gsIGNvbnN0IExheW91dFJlY3QqIG5ld0JvdW5kc1B0ciA9IDAsIGNvbnN0IExheW91dFJl
Y3QqIG5ld091dGxpbmVCb3hQdHIgPSAwKTsKKyAgICBib29sIHJlcGFpbnRBZnRlckxheW91dElm
TmVlZGVkKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNv
bnN0IExheW91dFJlY3QmIG9sZEJvdW5kcywgY29uc3QgTGF5b3V0UmVjdCYgb2xkT3V0bGluZUJv
eCwgY29uc3QgTGF5b3V0UmVjdCogbmV3Qm91bmRzUHRyID0gMCwgY29uc3QgTGF5b3V0UmVjdCog
bmV3T3V0bGluZUJveFB0ciA9IDApOwogCiAgICAgLy8gUmVwYWludCBvbmx5IGlmIHRoZSBvYmpl
Y3QgbW92ZWQuCiAgICAgdmlydHVhbCB2b2lkIHJlcGFpbnREdXJpbmdMYXlvdXRJZk1vdmVkKGNv
bnN0IExheW91dFJlY3QmKTsKQEAgLTgxMCw4ICs4MTAsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludCgwKTsKICAgICB9CiAgICAgSW50UmVj
dCBwaXhlbFNuYXBwZWRBYnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1JlY3QoKSBjb25zdDsKLSAgICB2
aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3Q7Ci0gICAgdmlydHVhbCBMYXlv
dXRSZWN0IHJlY3RXaXRoT3V0bGluZUZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgTGF5b3V0VW5pdCBvdXRsaW5lV2lkdGgpIGNvbnN0OworICAgIHZp
cnR1YWwgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdDsKKyAgICB2aXJ0dWFs
IExheW91dFJlY3QgcmVjdFdpdGhPdXRsaW5lRm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRVbml0IG91dGxpbmVXaWR0aCkgY29u
c3Q7CiAKICAgICAvLyBHaXZlbiBhIHJlY3QgaW4gdGhlIG9iamVjdCdzIGNvb3JkaW5hdGUgc3Bh
Y2UsIGNvbXB1dGUgYSByZWN0IHN1aXRhYmxlIGZvciByZXBhaW50aW5nCiAgICAgLy8gdGhhdCBy
ZWN0IGluIHZpZXcgY29vcmRpbmF0ZXMuCkBAIC04MjEsOCArODIxLDggQEAgcHVibGljOgogICAg
IH0KICAgICAvLyBHaXZlbiBhIHJlY3QgaW4gdGhlIG9iamVjdCdzIGNvb3JkaW5hdGUgc3BhY2Us
IGNvbXB1dGUgYSByZWN0IHN1aXRhYmxlIGZvciByZXBhaW50aW5nCiAgICAgLy8gdGhhdCByZWN0
IGluIHRoZSBjb29yZGluYXRlIHNwYWNlIG9mIHJlcGFpbnRDb250YWluZXIuCi0gICAgdmlydHVh
bCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBm
aXhlZCA9IGZhbHNlKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBh
aW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91
dFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBjb21w
dXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGZpeGVkID0gZmFsc2Up
IGNvbnN0OwogCiAgICAgLy8gSWYgbXVsdGlwbGUtY29sdW1uIGxheW91dCByZXN1bHRzIGluIGFw
cGx5aW5nIGFuIG9mZnNldCB0byB0aGUgZ2l2ZW4gcG9pbnQsIGFkZCB0aGUgc2FtZQogICAgIC8v
IG9mZnNldCB0byB0aGUgZ2l2ZW4gc2l6ZS4KQEAgLTg2NCw3ICs4NjQsNyBAQCBwdWJsaWM6CiAg
ICAgLy8gQSBzaW5nbGUgcmVjdGFuZ2xlIHRoYXQgZW5jb21wYXNzZXMgYWxsIG9mIHRoZSBzZWxl
Y3RlZCBvYmplY3RzIHdpdGhpbiB0aGlzIG9iamVjdC4gIFVzZWQgdG8gZGV0ZXJtaW5lIHRoZSB0
aWdodGVzdAogICAgIC8vIHBvc3NpYmxlIGJvdW5kaW5nIGJveCBmb3IgdGhlIHNlbGVjdGlvbi4K
ICAgICBMYXlvdXRSZWN0IHNlbGVjdGlvblJlY3QoYm9vbCBjbGlwVG9WaXNpYmxlQ29udGVudCA9
IHRydWUpIHsgcmV0dXJuIHNlbGVjdGlvblJlY3RGb3JSZXBhaW50KDAsIGNsaXBUb1Zpc2libGVD
b250ZW50KTsgfQotICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yUmVwYWlu
dChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiAvKnJlcGFpbnRDb250YWluZXIqLywgYm9vbCAvKmNs
aXBUb1Zpc2libGVDb250ZW50Ki8gPSB0cnVlKSB7IHJldHVybiBMYXlvdXRSZWN0KCk7IH0KKyAg
ICB2aXJ0dWFsIExheW91dFJlY3Qgc2VsZWN0aW9uUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogLypyZXBhaW50Q29udGFpbmVyKi8sIGJvb2wgLypjbGlwVG9WaXNp
YmxlQ29udGVudCovID0gdHJ1ZSkgeyByZXR1cm4gTGF5b3V0UmVjdCgpOyB9CiAKICAgICB2aXJ0
dWFsIGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICBib29sIGhhc1NlbGVjdGVkQ2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBzZWxlY3Rpb25TdGF0
ZSgpICE9IFNlbGVjdGlvbk5vbmU7IH0KQEAgLTkzMiw3ICs5MzIsNyBAQCBwdWJsaWM6CiAKICAg
ICAvLyBNYXAgcG9pbnRzIGFuZCBxdWFkcyB0aHJvdWdoIGVsZW1lbnRzLCBwb3RlbnRpYWxseSB2
aWEgM2QgdHJhbnNmb3Jtcy4gWW91IHNob3VsZCBuZXZlciBuZWVkIHRvIGNhbGwgdGhlc2UgZGly
ZWN0bHk7IHVzZQogICAgIC8vIGxvY2FsVG9BYnNvbHV0ZS9hYnNvbHV0ZVRvTG9jYWwgbWV0aG9k
cyBpbnN0ZWFkLgotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29v
cmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCwgYm9vbCogd2FzRml4ZWQgPSAwKSBj
b25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENv
b3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCkg
Y29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3Jk
aW5hdGVzRmxhZ3MsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAKICAgICAvLyBQdXNoZXMgc3Rh
dGUgb250byBSZW5kZXJHZW9tZXRyeU1hcCBhYm91dCBob3cgdG8gbWFwIGNvb3JkaW5hdGVzIGZy
b20gdGhpcyByZW5kZXJlciB0byBpdHMgY29udGFpbmVyLCBvciBhbmNlc3RvclRvU3RvcEF0ICh3
aGljaGV2ZXIgaXMgZW5jb3VudGVyZWQgZmlyc3QpLgpAQCAtOTgxLDcgKzk4MSw3IEBAIHByb3Rl
Y3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CiAgICAgdm9pZCBhcmVu
YURlbGV0ZShSZW5kZXJBcmVuYSosIHZvaWQqIG9iamVjdEJhc2UpOwogCi0gICAgdmlydHVhbCBM
YXlvdXRSZWN0IG91dGxpbmVCb3VuZHNGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IC8qcmVwYWludENvbnRhaW5lciovLCBMYXlvdXRQb2ludCogLypjYWNoZWRPZmZzZXRUb1JlcGFp
bnRDb250YWluZXIqLyA9IDApIGNvbnN0IHsgcmV0dXJuIExheW91dFJlY3QoKTsgfQorICAgIHZp
cnR1YWwgTGF5b3V0UmVjdCBvdXRsaW5lQm91bmRzRm9yUmVwYWludChjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiAvKnJlcGFpbnRDb250YWluZXIqLywgTGF5b3V0UG9pbnQqIC8qY2FjaGVk
T2Zmc2V0VG9SZXBhaW50Q29udGFpbmVyKi8gPSAwKSBjb25zdCB7IHJldHVybiBMYXlvdXRSZWN0
KCk7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBjYW5CZVJlcGxhY2VkV2l0aElubGluZVJ1bkluKCkg
Y29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBs
YWNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmlu
ZGV4IGM3ZDVkNTU2MzkyYjhhNDg3ZTJlOTlmODgwYjkxYmUwMjM2ZjkzZDEuLjQ3YzIzOWFiNWE3
NWQzNzBkMjUzMzZkZGQ4OWMzMzU3YjEwNzg3NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJlcGxhY2VkLmNwcApAQCAtNDk3LDcgKzQ5Nyw3IEBAIFZpc2libGVQb3NpdGlv
biBSZW5kZXJSZXBsYWNlZDo6cG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYgcG9p
bnQpCiAgICAgcmV0dXJuIFJlbmRlckJveDo6cG9zaXRpb25Gb3JQb2ludChwb2ludCk7CiB9CiAK
LUxheW91dFJlY3QgUmVuZGVyUmVwbGFjZWQ6OnNlbGVjdGlvblJlY3RGb3JSZXBhaW50KFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNv
bnRlbnQpCitMYXlvdXRSZWN0IFJlbmRlclJlcGxhY2VkOjpzZWxlY3Rpb25SZWN0Rm9yUmVwYWlu
dChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGNs
aXBUb1Zpc2libGVDb250ZW50KQogewogICAgIEFTU0VSVCghbmVlZHNMYXlvdXQoKSk7CiAKQEAg
LTU2Miw3ICs1NjIsNyBAQCBib29sIFJlbmRlclJlcGxhY2VkOjppc1NlbGVjdGVkKCkgY29uc3QK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUxheW91dFJlY3QgUmVuZGVyUmVwbGFjZWQ6OmNsaXBw
ZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIpIGNvbnN0CitMYXlvdXRSZWN0IFJlbmRlclJlcGxhY2VkOjpjbGlwcGVkT3ZlcmZs
b3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyKSBjb25zdAogewogICAgIGlmIChzdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0gVklTSUJM
RSAmJiAhZW5jbG9zaW5nTGF5ZXIoKS0+aGFzVmlzaWJsZUNvbnRlbnQoKSkKICAgICAgICAgcmV0
dXJuIExheW91dFJlY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2Vk
LmgKaW5kZXggN2E5MjkwMTQyYWYwZjczNTA4ZDc0OWJlNmM1MDk1ODgwM2IzMjRhNC4uYTZkZWU0
NDNlZDgwYjE2NGI2MmIzM2E2YmY0Y2FmYzI0YTRlMTBjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKQEAgLTcxLDEzICs3MSwxMyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpOwogICAgIHZpcnR1
YWwgdm9pZCBwYWludFJlcGxhY2VkKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50JikgeyB9
CiAKLSAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQo
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0IE9WRVJS
SURFOwogCiAgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25z
dCBMYXlvdXRQb2ludCYpOwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBjYW5CZVNlbGVjdGlvbkxl
YWYoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIExheW91dFJlY3Qgc2Vs
ZWN0aW9uUmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgYm9vbCBjbGlwVG9WaXNpYmxlQ29udGVudCA9IHRydWUpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgTGF5b3V0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGNsaXBUb1Zpc2libGVDb250ZW50
ID0gdHJ1ZSkgT1ZFUlJJREU7CiAgICAgdm9pZCBjb21wdXRlQXNwZWN0UmF0aW9JbmZvcm1hdGlv
bkZvclJlbmRlckJveChSZW5kZXJCb3gqLCBGbG9hdFNpemUmIGNvbnN0cmFpbmVkU2l6ZSwgZG91
YmxlJiBpbnRyaW5zaWNSYXRpbywgYm9vbCYgaXNQZXJjZW50YWdlSW50cmluc2ljU2l6ZSkgY29u
c3Q7CiAKICAgICBtdXRhYmxlIExheW91dFNpemUgbV9pbnRyaW5zaWNTaXplOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAppbmRleCA2ODljZjhhMzkwNTk0
Y2NiOTVhM2QxMWY5YTQ0NDM4MmU3MWZlYmYxLi5hYTNhZDE5N2ZlNDc5NzIwZjdlYTM2NmE5NzM1
ODhmYzVhZGZhOTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVDZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVD
ZWxsLmNwcApAQCAtMzA2LDcgKzMwNiw3IEBAIExheW91dFNpemUgUmVuZGVyVGFibGVDZWxsOjpv
ZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlck9iamVjdCogbywgY29uc3QgTGF5b3V0UG9pCiAgICAg
cmV0dXJuIG9mZnNldDsKIH0KIAotTGF5b3V0UmVjdCBSZW5kZXJUYWJsZUNlbGw6OmNsaXBwZWRP
dmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIpIGNvbnN0CitMYXlvdXRSZWN0IFJlbmRlclRhYmxlQ2VsbDo6Y2xpcHBlZE92ZXJmbG93
UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lcikgY29uc3QKIHsKICAgICAvLyBJZiB0aGUgdGFibGUgZ3JpZCBpcyBkaXJ0eSwgd2UgY2Fu
bm90IGdldCByZWxpYWJsZSBpbmZvcm1hdGlvbiBhYm91dCBhZGpvaW5pbmcgY2VsbHMsCiAgICAg
Ly8gc28gd2UgaWdub3JlIG91dHNpZGUgYm9yZGVycy4gVGhpcyBzaG91bGQgbm90IGJlIGEgcHJv
YmxlbSBiZWNhdXNlIGl0IG1lYW5zIHRoYXQKQEAgLTM1Nyw3ICszNTcsNyBAQCBMYXlvdXRSZWN0
IFJlbmRlclRhYmxlQ2VsbDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdAogICAgIHJldHVybiByOwogfQogCi12b2lkIFJlbmRlclRhYmxlQ2VsbDo6
Y29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIExheW91dFJlY3QmIHIsIGJvb2wgZml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclRhYmxl
Q2VsbDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QmIHIsIGJvb2wgZml4ZWQpIGNvbnN0CiB7CiAg
ICAgaWYgKHJlcGFpbnRDb250YWluZXIgPT0gdGhpcykKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCmluZGV4IDg3ZTZkNTkxYzIzN2M1
ZTU4MjM1MjA5OTk2YzdkYWExZjc2Yjg0MTYuLjJkZDI2YTI0ZDQyNTE4Yzk0MjU4ODM2ZjE0ZDQ1
YTcyMDVhYTFhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZUNlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxs
LmgKQEAgLTIyMyw4ICsyMjMsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBib3hTaGFk
b3dTaG91bGRCZUFwcGxpZWRUb0JhY2tncm91bmQoQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBJ
bmxpbmVGbG93Qm94KikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIExheW91dFNpemUg
b2Zmc2V0RnJvbUNvbnRhaW5lcihSZW5kZXJPYmplY3QqLCBjb25zdCBMYXlvdXRQb2ludCYsIGJv
b2wqIG9mZnNldERlcGVuZHNPblBvaW50ID0gMCkgY29uc3Q7Ci0gICAgdmlydHVhbCBMYXlvdXRS
ZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjb21w
dXRlUmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgTGF5b3V0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0IE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0UmVjdCYsIGJvb2wgZml4ZWQgPSBm
YWxzZSkgY29uc3QgT1ZFUlJJREU7CiAKICAgICBpbnQgYm9yZGVySGFsZkxlZnQoYm9vbCBvdXRl
cikgY29uc3Q7CiAgICAgaW50IGJvcmRlckhhbGZSaWdodChib29sIG91dGVyKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNvbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuY3BwCmluZGV4IGIwMmFhODM4
YmY2NjRlZjA1ZjQ4YTgxZGY5YTU0MzQyMWQ3ZTc0MjMuLmNjNjMwY2IxMTc1ZDBkZGUzODc3N2E0
MTZjYTY5ZjI2M2ZiZTEwOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZUNvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlQ29sLmNwcApAQCAtOTUsNyArOTUsNyBAQCBib29sIFJlbmRlclRhYmxlQ29sOjpjYW5IYXZl
Q2hpbGRyZW4oKSBjb25zdAogICAgIHJldHVybiBpc1RhYmxlQ29sdW1uR3JvdXAoKTsKIH0KIAot
TGF5b3V0UmVjdCBSZW5kZXJUYWJsZUNvbDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQo
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QKK0xheW91dFJl
Y3QgUmVuZGVyVGFibGVDb2w6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0CiB7CiAgICAgLy8g
Rm9yIG5vdywganVzdCByZXBhaW50IHRoZSB3aG9sZSB0YWJsZS4KICAgICAvLyBGSVhNRTogRmlu
ZCBhIGJldHRlciB3YXkgdG8gZG8gdGhpcywgZS5nLiwgbmVlZCB0byByZXBhaW50IGFsbCB0aGUg
Y2VsbHMgdGhhdCB3ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlQ29sLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuaApp
bmRleCAwYzA4ZjgwMTkxNDE2NTZjZTgyZGJlZDZkYjEwOGE2ZWIxNGM1NWJmLi5hMDkxYTkzOTky
YWFmNzM0NWE3ZDcxNWNkYjA4MTUxZGFkZDY4NTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDb2wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGVDb2wuaApAQCAtOTEsNyArOTEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgYm9vbCBjYW5IYXZlQ2hpbGRyZW4oKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcmVxdWly
ZXNMYXllcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIExheW91dFJl
Y3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lcikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0
IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBp
bWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRyLCBjb25zdCBJbnRSZWN0KiA9IDApOwogCiAgICAg
dmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVy
U3R5bGUqIG9sZFN0eWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZVJvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVS
b3cuY3BwCmluZGV4IGYzYzQ2MmUxMzFlZWZiODBkMGU0ZjNmNTg5ODAzZTFiNzJhZDI4YTkuLmUw
MGM5YTY0ZmJkOTdmZDY4ODgzMjMzMjgyOTBhZWVhYzFmYzU2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlUm93LmNwcApAQCAtMTg5LDcgKzE4OSw3IEBAIHZvaWQg
UmVuZGVyVGFibGVSb3c6OmxheW91dCgpCiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQog
Ci1MYXlvdXRSZWN0IFJlbmRlclRhYmxlUm93OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWlu
dChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdAorTGF5b3V0
UmVjdCBSZW5kZXJUYWJsZVJvdzo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QKIHsKICAgICBB
U1NFUlQocGFyZW50KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVSb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJv
dy5oCmluZGV4IGI0MzhhNGMwMTBiOGM5M2JlYjI1NzI2NzRlYWZkMzllN2IzNWU1NDYuLjZmMTk1
ZDMwNDgwZTU2MTdkYzU2NmQxNzUwYmMwMDI1NDgxMjAyNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZVJvdy5oCkBAIC0xMDAsNyArMTAwLDcgQEAgcHJpdmF0ZToKIAog
ICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJPYmpl
Y3QqIGJlZm9yZUNoaWxkID0gMCk7CiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwotICAgIHZp
cnR1YWwgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91
dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIG5vZGVB
dFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRl
c3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3Vt
dWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgYm9v
bCByZXF1aXJlc0xheWVyKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gaGFzT3ZlcmZsb3dDbGlw
KCkgfHwgaGFzVHJhbnNmb3JtKCkgfHwgaGFzSGlkZGVuQmFja2ZhY2UoKSB8fCBoYXNDbGlwUGF0
aCgpIHx8IGNyZWF0ZXNHcm91cCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dC5jcHAKaW5kZXggMWFiNTFjMDEzYmVmYzQ1NWMyNTQ5ZTA2NWVjZGMwYzUzMjMyYTllYS4uYTlh
MjVkZjYzODU4M2EyNDVmYTNiOGFiOGE5YWZlZWYyNjVjNzMzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtMTYzMiw3ICsxNjMyLDcgQEAgTGF5b3V0UmVjdCBS
ZW5kZXJUZXh0OjpsaW5lc1Zpc3VhbE92ZXJmbG93Qm91bmRpbmdCb3goKSBjb25zdAogICAgIHJl
dHVybiByZWN0OwogfQogCi1MYXlvdXRSZWN0IFJlbmRlclRleHQ6OmNsaXBwZWRPdmVyZmxvd1Jl
Y3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNv
bnN0CitMYXlvdXRSZWN0IFJlbmRlclRleHQ6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0CiB7
CiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlclRvUmVwYWludCA9IGNvbnRhaW5pbmdCbG9jaygp
OwogCkBAIC0xNjQ4LDcgKzE2NDgsNyBAQCBMYXlvdXRSZWN0IFJlbmRlclRleHQ6OmNsaXBwZWRP
dmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcAogICAgIHJl
dHVybiByZW5kZXJlclRvUmVwYWludC0+Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQocmVw
YWludENvbnRhaW5lcik7CiB9CiAKLUxheW91dFJlY3QgUmVuZGVyVGV4dDo6c2VsZWN0aW9uUmVj
dEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9v
bCBjbGlwVG9WaXNpYmxlQ29udGVudCkKK0xheW91dFJlY3QgUmVuZGVyVGV4dDo6c2VsZWN0aW9u
UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgYm9vbCBjbGlwVG9WaXNpYmxlQ29udGVudCkKIHsKICAgICBBU1NFUlQoIW5lZWRzTGF5
b3V0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAppbmRleCA2N2JmMjM4
MWJiNGM5YmNlZjJiOTRkOGJkYWMxYjMxMDA5OGVhMGE4Li43Yjk4NjkxN2Q4YmRjNmNmZTY3N2Vh
MWE3MGU4NzFlNDIxYjEyMTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgK
QEAgLTEwOCwxMyArMTA4LDEzIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5CZVNl
bGVjdGlvbkxlYWYoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNl
dFNlbGVjdGlvblN0YXRlKFNlbGVjdGlvblN0YXRlIHMpOwotICAgIHZpcnR1YWwgTGF5b3V0UmVj
dCBzZWxlY3Rpb25SZWN0Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBib29sIGNsaXBUb1Zpc2libGVDb250ZW50ID0gdHJ1ZSkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBMYXlvdXRSZWN0IHNlbGVjdGlvblJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNv
bnRlbnQgPSB0cnVlKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIExheW91dFJlY3QgbG9jYWxDYXJl
dFJlY3QoSW5saW5lQm94KiwgaW50IGNhcmV0T2Zmc2V0LCBMYXlvdXRVbml0KiBleHRyYVdpZHRo
VG9FbmRPZkxpbmUgPSAwKTsKIAogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5MZWZ0KCkg
Y29uc3QgeyByZXR1cm4gbWluaW11bVZhbHVlRm9yTGVuZ3RoKHN0eWxlKCktPm1hcmdpbkxlZnQo
KSwgMCwgdmlldygpKTsgfQogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5SaWdodCgpIGNv
bnN0IHsgcmV0dXJuIG1pbmltdW1WYWx1ZUZvckxlbmd0aChzdHlsZSgpLT5tYXJnaW5SaWdodCgp
LCAwLCB2aWV3KCkpOyB9CiAKLSAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93
UmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1Jl
Y3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgSW5saW5lVGV4dEJveCogZmlyc3RUZXh0Qm94KCkg
Y29uc3QgeyByZXR1cm4gbV9maXJzdFRleHRCb3g7IH0KICAgICBJbmxpbmVUZXh0Qm94KiBsYXN0
VGV4dEJveCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFRleHRCb3g7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCAxOTczMWMyN2E5NzgwMGQ5NWM3ZjY2OTZkNzFi
NTNlMWFmOGFlM2FlLi41ZTg4Y2ExMGFiY2FmYzEyOWEwOWZiMjNjMWRhOTFkZGQxNWExYzc4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC0yMTAsNyArMjEwLDcg
QEAgdm9pZCBSZW5kZXJWaWV3OjpsYXlvdXQoKQogICAgIHNldE5lZWRzTGF5b3V0KGZhbHNlKTsK
IH0KIAotdm9pZCBSZW5kZXJWaWV3OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0
ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQg
UmVuZGVyVmlldzo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1h
cENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgLy8g
SWYgYSBjb250YWluZXIgd2FzIHNwZWNpZmllZCwgYW5kIHdhcyBub3QgMCBvciB0aGUgUmVuZGVy
VmlldywKICAgICAvLyB0aGVuIHdlIHNob3VsZCBoYXZlIGZvdW5kIGl0IGJ5IG5vdy4KQEAgLTQ0
MCw3ICs0NDAsNyBAQCB2b2lkIFJlbmRlclZpZXc6OnJlcGFpbnRSZWN0YW5nbGVJblZpZXdBbmRD
b21wb3NpdGVkTGF5ZXJzKGNvbnN0IExheW91dFJlY3QmIHVyLAogI2VuZGlmCiB9CiAKLXZvaWQg
UmVuZGVyVmlldzo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QmIHJlY3QsIGJvb2wgZml4ZWQpIGNvbnN0Cit2
b2lkIFJlbmRlclZpZXc6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiByZWN0LCBib29sIGZpeGVk
KSBjb25zdAogewogICAgIC8vIElmIGEgY29udGFpbmVyIHdhcyBzcGVjaWZpZWQsIGFuZCB3YXMg
bm90IDAgb3IgdGhlIFJlbmRlclZpZXcsCiAgICAgLy8gdGhlbiB3ZSBzaG91bGQgaGF2ZSBmb3Vu
ZCBpdCBieSBub3cuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCBkYTYw
Njg5MmUwMjg4ZjU5N2E5ZDUxMDZhMmViOGQ5YTE2YmY2NmQ4Li5kMGUxZmFhMDI2MzBkNzNiMmMw
ZjZjNDZmZGRlODk1NTFiZTExOWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmgKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogCiAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXco
KSBjb25zdCB7IHJldHVybiBtX2ZyYW1lVmlldzsgfQogCi0gICAgdmlydHVhbCB2b2lkIGNvbXB1
dGVSZWN0Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2Up
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZXBhaW50Vmlld1JlY3RhbmdsZShj
b25zdCBMYXlvdXRSZWN0JiwgYm9vbCBpbW1lZGlhdGUgPSBmYWxzZSk7CiAgICAgLy8gUmVwYWlu
dCB0aGUgdmlldywgYW5kIGFsbCBjb21wb3NpdGVkIGxheWVycyB0aGF0IGludGVyc2VjdCB0aGUg
Z2l2ZW4gYWJzb2x1dGUgcmVjdGFuZ2xlLgogICAgIC8vIEZJWE1FOiBpZGVhbGx5IHdlJ2QgbmV2
ZXIgaGF2ZSB0byBkbyB0aGlzLCBpZiBhbGwgcmVwYWludHMgYXJlIGNvbnRhaW5lci1yZWxhdGl2
ZS4KQEAgLTIyOCw3ICsyMjgsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNSZW5kZXJDb3VudGVy
cygpIHsgcmV0dXJuIG1fcmVuZGVyQ291bnRlckNvdW50OyB9CiAKIHByb3RlY3RlZDoKLSAgICB2
aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBB
cHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4
ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRh
aW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFu
c2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBT
bmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5l
cihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJH
ZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0
ZVRvTG9jYWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdzLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0
OwogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0NvbHVtbnMoaW50IGRlc2lyZWRDb2x1bW5Db3Vu
dCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcAppbmRleCA2ZmFhZWE0Mzg5ZGU3ZGYyN2Nl
NGNkZDAzMmI2ZDIyMzc1ZTdhMjBiLi40MDhkODg3ZjBkNzQ0NDExNmRjODMyNDM2MTYxM2M1YWFj
ODBhMWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0ZvcmVpZ25PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAKQEAgLTg4LDEyICs4OCwxMiBAQCB2b2lkIFJlbmRlclNW
R0ZvcmVpZ25PYmplY3Q6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQ
b2ludCYpCiAgICAgfQogfQogCi1MYXlvdXRSZWN0IFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6OmNs
aXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIpIGNvbnN0CitMYXlvdXRSZWN0IFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6OmNs
aXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFNWR1JlbmRlclN1cHBvcnQ6
OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KHRoaXMsIHJlcGFpbnRDb250YWluZXIpOwog
fQogCi12b2lkIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBh
aW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYg
cmVwYWludFJlY3QsIGJvb2wgZml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNWR0ZvcmVpZ25PYmpl
Y3Q6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgZml4ZWQp
IGNvbnN0CiB7CiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFp
bnQodGhpcywgcmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3QsIGZpeGVkKTsKIH0KQEAgLTE5
Myw3ICsxOTMsNyBAQCBib29sIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om5vZGVBdFBvaW50KGNv
bnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi12b2lkIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIoUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRy
YW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBj
b25zdAordm9pZCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNG
aXhlZCkgY29uc3QKIHsKICAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVy
KHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlICYgU25hcE9mZnNl
dEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgKaW5kZXggZTIwYWI0N2M1OTdh
ZjVhZTQ3NDI5ZjFkNzVjOTU4ZWZlNTE4NzdkMS4uMDA5NzlkZTYxZTU0YmRiMTUyZGUxZDhhMTMy
YmM5ODBiYzIzMjJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgKQEAgLTQwLDggKzQwLDggQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAK
LSAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxz
ZSkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxv
d1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlRmxvYXRSZWN0
Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBGbG9hdFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IE9WRVJSSURFOwogCiAgICAg
dmlydHVhbCBib29sIHJlcXVpcmVzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1
bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExh
eW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBib29sIGlzU1ZHRm9yZWlnbk9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0
ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBi
b29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBM
b2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFp
bmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGlu
Z1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9w
QXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IHNldE5lZWRzVHJhbnNmb3JtVXBkYXRlKCkgeyBtX25lZWRzVHJhbnNmb3JtVXBkYXRlID0gdHJ1
ZTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0dyYWRpZW50U3RvcC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdH
cmFkaWVudFN0b3AuaAppbmRleCBhZjhiODk4OTFiYzlkMDRkOTNmZmU4ZWU0ZDYxZDlhMzczMTkz
ZTg1Li4xYzBlNDAzM2JlZWMyMDJiZWQ5M2JjY2UzYTJhYjM0ZjY0MjBmMzkzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0dyYWRpZW50U3RvcC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmgK
QEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogICAgIC8vIFRoaXMgb3ZlcnJpZGVzIGFyZSBuZWVk
ZWQgdG8gcHJldmVudCBBU1NFUlRzIG9uIDxzdmc+PHN0b3AgLz48L3N2Zz4KICAgICAvLyBSZW5k
ZXJPYmplY3QncyBkZWZhdWx0IGltcGxlbWVudGF0aW9ucyBBU1NFUlRfTk9UX1JFQUNIRUQoKQog
ICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQwMAotICAg
IHZpcnR1YWwgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChSZW5kZXJM
YXllck1vZGVsT2JqZWN0KikgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gTGF5b3V0UmVjdCgpOyB9
CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBMYXlv
dXRSZWN0KCk7IH0KICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCgpIGNv
bnN0IHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9CiAgICAgdmlydHVhbCBGbG9hdFJlY3Qgc3Ryb2tl
Qm91bmRpbmdCb3goKSBjb25zdCB7IHJldHVybiBGbG9hdFJlY3QoKTsgfQogICAgIHZpcnR1YWwg
RmxvYXRSZWN0IHJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkgY29uc3QgeyByZXR1cm4g
RmxvYXRSZWN0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0hpZGRlbkNvbnRhaW5lci5oCmluZGV4IGIzMDFlYTIzZWRhY2E4ZjBhN2YyYjAz
NmEyNGM4YmEwZGFjNDYxN2QuLjk0ZmY4YzhhMGRlODc1MTUyOTQ5MmZiMGFhMjBlYWNiNmMwYjA2
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSGlk
ZGVuQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdIaWRkZW5Db250YWluZXIuaApAQCAtNDMsNyArNDMsNyBAQCBwcml2YXRlOgogCiAgICAgdmly
dHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CiAgICAgCi0g
ICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBMYXlvdXRSZWN0KCk7
IH0KKyAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCopIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIExh
eW91dFJlY3QoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9h
dFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIG5vZGVB
dEZsb2F0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3Qg
RmxvYXRQb2ludCYgcG9pbnRJblBhcmVudCwgSGl0VGVzdEFjdGlvbik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAKaW5kZXggZGYwYjJkY2U1
ODRmN2UyY2Q0YTVjYzFmZGNjN2NmNTFjNTk5NTM5ZS4uOTI1MmM1NGYzYTUyZGVhODUwNWQ1Mjlm
M2RiMmRjYzY4YTAzMDZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHSW5saW5lLmNwcApAQCAtNjksMTcgKzY5LDE3IEBAIEZsb2F0UmVjdCBSZW5kZXJT
VkdJbmxpbmU6OnJlcGFpbnRSZWN0SW5Mb2NhbENvb3JkaW5hdGVzKCkgY29uc3QKICAgICByZXR1
cm4gRmxvYXRSZWN0KCk7CiB9CiAKLUxheW91dFJlY3QgUmVuZGVyU1ZHSW5saW5lOjpjbGlwcGVk
T3ZlcmZsb3dSZWN0Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyKSBjb25zdAorTGF5b3V0UmVjdCBSZW5kZXJTVkdJbmxpbmU6OmNsaXBwZWRPdmVyZmxv
d1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFNWR1JlbmRlclN1cHBvcnQ6OmNsaXBwZWRPdmVy
Zmxvd1JlY3RGb3JSZXBhaW50KHRoaXMsIHJlcGFpbnRDb250YWluZXIpOwogfQogCi12b2lkIFJl
bmRlclNWR0lubGluZTo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBm
aXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHSW5saW5lOjpjb21wdXRlRmxvYXRSZWN0Rm9yUmVw
YWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9h
dFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGZpeGVkKSBjb25zdAogewogICAgIFNWR1JlbmRlclN1
cHBvcnQ6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KHRoaXMsIHJlcGFpbnRDb250YWluZXIs
IHJlcGFpbnRSZWN0LCBmaXhlZCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHSW5saW5lOjptYXBMb2Nh
bFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRy
YW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBi
b29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHSW5saW5lOjptYXBMb2NhbFRvQ29u
dGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRy
YW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBi
b29sKiB3YXNGaXhlZCkgY29uc3QKIHsKICAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRv
Q29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlICYg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCmluZGV4IGVhNDdhMzY1MjhkNmE3YjY3
YmM2OTg1MzM0YjU1Y2ZhYTM3MjJmZGUuLjUwZGVjMmRkZGQ0ZjAwMTY3ZjFkYThkZmE4ODM4MjIz
NmExYzIwNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHSW5saW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJ
bmxpbmUuaApAQCAtNDUsOSArNDUsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBGbG9hdFJlY3Qg
c3Ryb2tlQm91bmRpbmdCb3goKSBjb25zdDsKICAgICB2aXJ0dWFsIEZsb2F0UmVjdCByZXBhaW50
UmVjdEluTG9jYWxDb29yZGluYXRlcygpIGNvbnN0OwogCi0gICAgdmlydHVhbCBMYXlvdXRSZWN0
IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRl
RmxvYXRSZWN0Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBGbG9hdFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9
IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNG
aXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjbGlwcGVk
T3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZs
b2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgRmxvYXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5h
dGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywg
Ym9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJl
bmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+Jiwg
Ym9vbCogd2FzRml4ZWQpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCmluZGV4IDgzODY2NzU5ZmMxMDFiNGI0
YWJkM2E5ZDE4NjYzMDc1ZTdlMDAxOGEuLmI0YzY3YjliMmJjZjA5ZWY3MmFjZDA5OGVkODVmMmQy
NzFjMzFmMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHTW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHTW9kZWxPYmplY3QuY3BwCkBAIC00NywxNyArNDcsMTcgQEAgUmVuZGVyU1ZHTW9kZWxP
YmplY3Q6OlJlbmRlclNWR01vZGVsT2JqZWN0KFNWR1N0eWxlZEVsZW1lbnQqIG5vZGUpCiB7CiB9
CiAKLUxheW91dFJlY3QgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmNsaXBwZWRPdmVyZmxvd1JlY3RG
b3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0
CitMYXlvdXRSZWN0IFJlbmRlclNWR01vZGVsT2JqZWN0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9y
UmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBj
b25zdAogewogICAgIHJldHVybiBTVkdSZW5kZXJTdXBwb3J0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0
Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29udGFpbmVyKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdN
b2RlbE9iamVjdDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBmaXhl
ZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmNvbXB1dGVGbG9hdFJlY3RGb3JS
ZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZs
b2F0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgZml4ZWQpIGNvbnN0CiB7CiAgICAgU1ZHUmVuZGVy
U3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQodGhpcywgcmVwYWludENvbnRhaW5l
ciwgcmVwYWludFJlY3QsIGZpeGVkKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6
bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3Mg
bW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0Ojpt
YXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNG
bGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKICAgICBTVkdSZW5kZXJTdXBwb3J0
OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0
YXRlLCBtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKIH0KQEAgLTcw
LDcgKzcwLDcgQEAgY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJTVkdNb2RlbE9iamVjdDo6cHVz
aE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXkKIC8vIENvcGllZCBmcm9tIFJlbmRl
ckJveCwgdGhpcyBtZXRob2QgbGlrZWx5IHJlcXVpcmVzIGZ1cnRoZXIgcmVmYWN0b3JpbmcgdG8g
d29yayBlYXNpbHkgZm9yIGJvdGggU1ZHIGFuZCBDU1MgQm94IE1vZGVsIGNvbnRlbnQuCiAvLyBG
SVhNRTogVGhpcyBtYXkgYWxzbyBuZWVkIHRvIG1vdmUgaW50byBTVkdSZW5kZXJTdXBwb3J0IGFz
IHRoZSBSZW5kZXJCb3ggdmVyc2lvbiBkZXBlbmRzCiAvLyBvbiBib3JkZXJCb3VuZGluZ0JveCgp
IHdoaWNoIFNWRyBSZW5kZXJCb3ggc3ViY2xhc2VzIChsaWtlIFNWR1JlbmRlckJsb2NrKSBkbyBu
b3QgaW1wbGVtZW50LgotTGF5b3V0UmVjdCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6b3V0bGluZUJv
dW5kc0ZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
TGF5b3V0UG9pbnQqKSBjb25zdAorTGF5b3V0UmVjdCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6b3V0
bGluZUJvdW5kc0ZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgTGF5b3V0UG9pbnQqKSBjb25zdAogewogICAgIExheW91dFJlY3QgYm94ID0g
ZW5jbG9zaW5nTGF5b3V0UmVjdChyZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpKTsKICAg
ICBhZGp1c3RSZWN0Rm9yT3V0bGluZUFuZFNoYWRvdyhib3gpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCmluZGV4IGE2NDM2YThi
NWJkZTRmNGUzM2IyN2IxOGE5MTUyZGQ5NzE4NDljMDUuLjUwZTlmNjg2MGU2N2RmYjVkN2U3NDdl
OTcyNmM5YzRhY2UzMDlhNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKQEAgLTUxLDE0ICs1MSwxNCBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNMYXllcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAKLSAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQo
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYsIGJvb2wgZml4ZWQgPSBm
YWxzZSkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBMYXlvdXRSZWN0IG91dGxpbmVCb3Vu
ZHNGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExh
eW91dFBvaW50KikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBw
ZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb21wdXRl
RmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBGbG9hdFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBvdXRsaW5lQm91bmRzRm9yUmVwYWludChjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRQb2ludCopIGNv
bnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUmVjdHMoVmVjdG9yPElu
dFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdDsKICAg
ICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYsIGJvb2wqIHdh
c0ZpeGVkKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwg
TWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9
IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNG
aXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0
KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFu
Y2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRl
clN0eWxlKiBuZXdTdHlsZSk7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxl
RGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCmluZGV4IDU1NWQ1MmYxZGI3MzJm
OTIzODdiODZlNmMzNDA3OWE4ZWUyODQ1NGMuLjA0OGM0ZjYwNDQ3N2UzNDI1NWNhMmZkZmQ3OTU3
YjUxMWQ0NGJlNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUm9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdSb290LmNwcApAQCAtMzc1LDEyICszNzUsMTIgQEAgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBS
ZW5kZXJTVkdSb290Ojpsb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkgY29uc3QKICAgICByZXR1cm4g
bV9sb2NhbFRvUGFyZW50VHJhbnNmb3JtOwogfQogCi1MYXlvdXRSZWN0IFJlbmRlclNWR1Jvb3Q6
OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIpIGNvbnN0CitMYXlvdXRSZWN0IFJlbmRlclNWR1Jvb3Q6OmNsaXBwZWRP
dmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFNWR1JlbmRlclN1cHBvcnQ6OmNsaXBw
ZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KHRoaXMsIHJlcGFpbnRDb250YWluZXIpOwogfQogCi12
b2lkIFJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYgcmVwYWludFJlY3QsIGJv
b2wgZml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVGbG9hdFJlY3RGb3JS
ZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZs
b2F0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgZml4ZWQpIGNvbnN0CiB7CiAgICAgLy8gQXBwbHkg
b3VyIGxvY2FsIHRyYW5zZm9ybXMgKGV4Y2VwdCBmb3IgeC95IHRyYW5zbGF0aW9uKSwgdGhlbiBv
dXIgc2hhZG93LCAKICAgICAvLyBhbmQgdGhlbiBjYWxsIFJlbmRlckJveCdzIG1ldGhvZCB0byBo
YW5kbGUgYWxsIHRoZSBub3JtYWwgQ1NTIEJveCBtb2RlbCBiaXRzCkBAIC00MDEsNyArNDAxLDcg
QEAgdm9pZCBSZW5kZXJTVkdSb290Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q28KIC8vIFRoaXMgbWV0aG9kIGV4cGVjdHMgbG9jYWwg
Q1NTIGJveCBjb29yZGluYXRlcy4KIC8vIENhbGxlcnMgd2l0aCBsb2NhbCBTVkcgdmlld3BvcnQg
Y29vcmRpbmF0ZXMgc2hvdWxkIGZpcnN0IGFwcGx5IHRoZSBsb2NhbFRvQm9yZGVyQm94VHJhbnNm
b3JtCiAvLyB0byBjb252ZXJ0IGZyb20gU1ZHIHZpZXdwb3J0IGNvb3JkaW5hdGVzIHRvIGxvY2Fs
IENTUyBib3ggY29vcmRpbmF0ZXMuCi12b2lkIFJlbmRlclNWR1Jvb3Q6Om1hcExvY2FsVG9Db250
YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3Jt
U3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdh
c0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJTVkdSb290OjptYXBMb2NhbFRvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNG
aXhlZCkgY29uc3QKIHsKICAgICBBU1NFUlQobW9kZSAmIH5Jc0ZpeGVkKTsgLy8gV2Ugc2hvdWxk
IGhhdmUgbm8gZml4ZWQgY29udGVudCBpbiB0aGUgU1ZHIHJlbmRlcmluZyB0cmVlLgogICAgIEFT
U0VSVChtb2RlICYgVXNlVHJhbnNmb3Jtcyk7IC8vIG1hcHBpbmcgYSBwb2ludCB0aHJvdWdoIFNW
RyB3L28gcmVzcGVjdGluZyB0cmFzbmZvcm1zIGlzIHVzZWxlc3MuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCmluZGV4IDEzZDc4ZGE0Y2M0ZWNjMThlNjYw
OWFjOWI0ZTk2MzY4NWIxZTkyODcuLjM4ZTg5MTc5ZWYyMGY5ZTMwYjRlMmEwY2MxNzlkNTFlZDU5
MGU4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
Um9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5o
CkBAIC0xMDAsMTAgKzEwMCwxMCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIG5vZGVB
dFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRl
c3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3Vt
dWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgTGF5
b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgRmxvYXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBmaXhlZCkgY29uc3QgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBh
aW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3Qm
IHJlcGFpbnRSZWN0LCBib29sIGZpeGVkKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwg
dm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29u
dGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDAp
IGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZz
ZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5
TWFwJikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQmVTZWxlY3Rpb25M
ZWFmKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCmluZGV4IDU1NDMyMjhmYzRmOTVjMzZhMjJjMWQ1NGQ5
YTU2YTUyOTIxZDU4NjcuLmZkNDlmOWI0NmFmZWFiMjJkZWVlZTBiOGVhMDFlYTJmM2EyYTMxNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcApA
QCAtOTQsMjQgKzk0LDI0IEBAIGNvbnN0IFJlbmRlclNWR1RleHQqIFJlbmRlclNWR1RleHQ6Omxv
Y2F0ZVJlbmRlclNWR1RleHRBbmNlc3Rvcihjb25zdCBSZW5kZXJPYmplCiAgICAgcmV0dXJuIHRv
UmVuZGVyU1ZHVGV4dChzdGFydCk7CiB9CiAKLUxheW91dFJlY3QgUmVuZGVyU1ZHVGV4dDo6Y2xp
cHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lcikgY29uc3QKK0xheW91dFJlY3QgUmVuZGVyU1ZHVGV4dDo6Y2xpcHBlZE92ZXJm
bG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lcikgY29uc3QKIHsKICAgICByZXR1cm4gU1ZHUmVuZGVyU3VwcG9ydDo6Y2xpcHBlZE92
ZXJmbG93UmVjdEZvclJlcGFpbnQodGhpcywgcmVwYWludENvbnRhaW5lcik7CiB9CiAKLXZvaWQg
UmVuZGVyU1ZHVGV4dDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QmIHJlY3QsIGJvb2wgZml4ZWQpIGNvbnN0
Cit2b2lkIFJlbmRlclNWR1RleHQ6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiByZWN0LCBib29s
IGZpeGVkKSBjb25zdAogewogICAgIEZsb2F0UmVjdCByZXBhaW50UmVjdCA9IHJlY3Q7CiAgICAg
Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQocmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3Qs
IGZpeGVkKTsKICAgICByZWN0ID0gZW5jbG9zaW5nTGF5b3V0UmVjdChyZXBhaW50UmVjdCk7CiB9
CiAKLXZvaWQgUmVuZGVyU1ZHVGV4dDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiByZXBhaW50UmVj
dCwgYm9vbCBmaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHVGV4dDo6Y29tcHV0ZUZsb2F0UmVj
dEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgRmxvYXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBmaXhlZCkgY29uc3QKIHsKICAgICBTVkdS
ZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29u
dGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOwogfQogCi12b2lkIFJlbmRlclNWR1RleHQ6Om1h
cExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1v
ZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJTVkdUZXh0OjptYXBMb2NhbFRv
Q29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2Rl
LCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKICAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2Nh
bFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2Rl
ICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgKaW5kZXggOTc2YTZhMTg2NzcxMzM4ZDYw
Mjk3NmI4Njc2MjZmNjE1NDRiMzA1MS4uY2FlNWJhNzIxZjQ1YzhmYTNhZjFiMWZiYzE5OWVhMWNh
MTliMDAyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0
LmgKQEAgLTcxLDExICs3MSwxMSBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGFic29s
dXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CiAKLSAg
ICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25z
dCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQo
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiwgYm9v
bCBmaXhlZCA9IGZhbHNlKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIExheW91dFJlY3Qg
Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lcikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNv
bXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiwgYm9vbCBm
aXhlZCA9IGZhbHNlKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2Nh
bFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRy
YW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29v
cmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29u
c3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQs
IFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
Q2hpbGQoUmVuZGVyT2JqZWN0KikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAppbmRleCAyOTcyNjg5ZDk0M2JhZWRhNjg3
ZjEyOGFmZjAwZGQwZDBjM2NhNThmLi4yZWFiZWViNzAxY2YzNzYyYjM0NWMxYTUzMzliNWFmYTNj
YjgxNDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRl
clN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVy
U3VwcG9ydC5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgRmxvYXRSZWN0IFNWR1JlbmRlclN1cHBvcnQ6
OnJlcGFpbnRSZWN0Rm9yUmVuZGVyZXJJbkxvY2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdTVkcKICAg
ICByZXR1cm4gb2JqZWN0LT5yZXBhaW50UmVjdEluTG9jYWxDb29yZGluYXRlcygpOwogfQogCi1M
YXlvdXRSZWN0IFNWR1JlbmRlclN1cHBvcnQ6OmNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50
KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyKQorTGF5b3V0UmVjdCBTVkdSZW5kZXJTdXBwb3J0OjpjbGlwcGVkT3ZlcmZs
b3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikKIHsKICAgICAvLyBSZXR1cm4gZWFy
bHkgZm9yIGFueSBjYXNlcyB3aGVyZSB3ZSBkb24ndCBhY3R1YWxseSBwYWludAogICAgIGlmIChv
YmplY3QtPnN0eWxlKCktPnZpc2liaWxpdHkoKSAhPSBWSVNJQkxFICYmICFvYmplY3QtPmVuY2xv
c2luZ0xheWVyKCktPmhhc1Zpc2libGVDb250ZW50KCkpCkBAIC03Miw3ICs3Miw3IEBAIExheW91
dFJlY3QgU1ZHUmVuZGVyU3VwcG9ydDo6Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29u
c3QgUmVuZGVyT2JqZWN0KiBvCiAgICAgcmV0dXJuIGVuY2xvc2luZ0xheW91dFJlY3QocmVwYWlu
dFJlY3QpOwogfQogCi12b2lkIFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVGbG9hdFJlY3RGb3JS
ZXBhaW50KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGZpeGVkKQor
dm9pZCBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBS
ZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgRmxvYXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBmaXhlZCkKIHsKICAgICBj
b25zdCBTVkdSZW5kZXJTdHlsZSogc3ZnU3R5bGUgPSBvYmplY3QtPnN0eWxlKCktPnN2Z1N0eWxl
KCk7CiAgICAgaWYgKGNvbnN0IFNoYWRvd0RhdGEqIHNoYWRvdyA9IHN2Z1N0eWxlLT5zaGFkb3co
KSkKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRS
ZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgUmUKICAgICBvYmplY3Qt
PnBhcmVudCgpLT5jb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyLCBy
ZXBhaW50UmVjdCwgZml4ZWQpOwogfQogCi12b2lkIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2Fs
VG9Db250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwg
Ym9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQpCit2b2lkIFNWR1Jl
bmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmpl
Y3QsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5z
Zm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywg
Ym9vbCogd2FzRml4ZWQpCiB7CiAgICAgdHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFuc2Zvcm0ob2Jq
ZWN0LT5sb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oCmluZGV4IDVlMzAxYjA1ZGMyY2M5NzkxMjUw
ZWExNzcwOGM3ZmEwMzgwYTJmZWUuLmY3Mzc1ZTQzYjc5ZTAzNmIzYzlmN2ZiODZjNDU0NTIzNmE2
NDZiOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVy
U3VwcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3Vw
cG9ydC5oCkBAIC02Niw5ICs2Niw5IEBAIHB1YmxpYzoKIAogICAgIC8vIEltcG9ydGFudCBmdW5j
dGlvbnMgdXNlZCBieSBuZWFybHkgYWxsIFNWRyByZW5kZXJlcnMgY2VudHJhbGl6aW5nIGNvb3Jk
aW5hdGUgdHJhbnNmb3JtYXRpb25zIC8gcmVwYWludCByZWN0IGNhbGN1bGF0aW9ucwogICAgIHN0
YXRpYyBGbG9hdFJlY3QgcmVwYWludFJlY3RGb3JSZW5kZXJlckluTG9jYWxDb29yZGluYXRlc0V4
Y2x1ZGluZ1NWR1NoYWRvdyhjb25zdCBSZW5kZXJPYmplY3QqKTsKLSAgICBzdGF0aWMgTGF5b3V0
UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJPYmplY3QqLCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKTsKLSAgICBzdGF0aWMgdm9p
ZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJPYmplY3QqLCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmLCBib29sIGZpeGVk
KTsKLSAgICBzdGF0aWMgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVj
dCosIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcyA9IHRydWUsIGJvb2wqIHdhc0ZpeGVk
ID0gMCk7CisgICAgc3RhdGljIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFp
bnQoY29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lcik7CisgICAgc3RhdGljIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFp
bnQoY29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgRmxvYXRSZWN0JiwgYm9vbCBmaXhlZCk7CisgICAgc3RhdGljIHZvaWQg
bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIGJvb2wgc25h
cE9mZnNldEZvclRyYW5zZm9ybXMgPSB0cnVlLCBib29sKiB3YXNGaXhlZCA9IDApOwogICAgIHN0
YXRpYyBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVu
ZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BB
dCwgUmVuZGVyR2VvbWV0cnlNYXAmKTsKICAgICBzdGF0aWMgYm9vbCBjaGVja0ZvclNWR1JlcGFp
bnREdXJpbmdMYXlvdXQoUmVuZGVyT2JqZWN0Kik7CiAK
</data>
<flag name="review"
          id="187422"
          type_id="1"
          status="+"
          setter="bdakin"
    />
    <flag name="commit-queue"
          id="187425"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>