<?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>122259</bug_id>
          
          <creation_ts>2013-10-02 22:51:45 -0700</creation_ts>
          <short_desc>REGRESSION(r156816): broke 8 tests (Requested by kling on #webkit).</short_desc>
          <delta_ts>2013-10-02 22:58:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>
          
          <blocked>122256</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>935708</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-02 22:51:45 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/156816 broke the build:
broke 8 tests (Requested by kling on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935710</commentid>
    <comment_count>1</comment_count>
      <attachid>213228</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-02 22:52:00 -0700</bug_when>
    <thetext>Created attachment 213228
ROLLOUT of r156816

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935711</commentid>
    <comment_count>2</comment_count>
      <attachid>213228</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-02 22:58:02 -0700</bug_when>
    <thetext>Comment on attachment 213228
ROLLOUT of r156816

Clearing flags on attachment: 213228

Committed r156822: &lt;http://trac.webkit.org/changeset/156822&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>935712</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-02 22:58:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213228</attachid>
            <date>2013-10-02 22:52:00 -0700</date>
            <delta_ts>2013-10-02 22:58:02 -0700</delta_ts>
            <desc>ROLLOUT of r156816</desc>
            <filename>bug-122259-20131002225200.patch</filename>
            <type>text/plain</type>
            <size>111830</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2ODIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjliMGU1YzZiNWQ4OGZl
ZGRkMmViNTk1ODAzNGMwNTdkNDg3ODVlZi4uMDFiMGUyYTRhOGNhNTg2Y2ZiNGQ4MTUyZjFkNDg1
MWY2ZGYwNjMxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxOCBAQAorMjAxMy0xMC0wMiAgQ29t
bWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdl
ZCwgcm9sbGluZyBvdXQgcjE1NjgxNi4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvMTU2ODE2CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjIyNTkKKworICAgICAgICBicm9rZSA4IHRlc3RzIChSZXF1ZXN0ZWQgYnkga2xp
bmcgb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lU2V0RWxlbWVudDo6d2lsbFJlY2FsY1N0eWxl
KToKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJhbmdlSW5wdXRUeXBlOjpsaXN0QXR0cmlidXRlVGFyZ2V0Q2hhbmdlZCk6CisgICAgICAgICog
aHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclNsaWRlckNvbnRhaW5lcjo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRo
dW1iRWxlbWVudDo6c2V0UG9zaXRpb25Gcm9tVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U2xp
ZGVyVGh1bWJFbGVtZW50OjpzZXRQb3NpdGlvbkZyb21Qb2ludCk6CisgICAgICAgIChXZWJDb3Jl
OjpTbGlkZXJUaHVtYkVsZW1lbnQ6OnN0b3BEcmFnZ2luZyk6CisgICAgICAgICogcGFnZS9GcmFt
ZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRIZWFkZXJIZWlnaHQp
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRGb290ZXJIZWlnaHQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjpzZXRWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0c05lZWRMYXlvdXQpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVWaWV3OjpzY2hlZHVsZVJlbGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6c2V0TmVlZHNMYXlvdXQpOgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXRQYWdlU2NhbGVGYWN0b3IpOgorICAgICAgICAqIHJl
bmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1Ro
cmVhZENvbnRyb2xsZXI6OnNldElzUmVuZGVyTmFtZWRGbG93VGhyZWFkT3JkZXJEaXJ0eSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJsb2NrOjpyZWxheW91dFNoYXBlRGVzY2VuZGFudElmTW92ZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6Om1hcmtTaGFwZUluc2lkZURlc2NlbmRhbnRzRm9yTGF5b3V0KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRCbG9jayk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6dXBkYXRlQmxvY2tDaGlsZERpcnR5Qml0c0JlZm9yZUxheW91
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6ZGlydHlGb3JMYXlvdXRGcm9tUGVy
Y2VudGFnZUhlaWdodERlc2NlbmRhbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
OjpzaW1wbGlmaWVkTm9ybWFsRmxvd0xheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6c2ltcGxpZmllZExheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
bWFya0ZpeGVkUG9zaXRpb25PYmplY3RGb3JMYXlvdXRJZk5lZWRlZCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0UG9zaXRpb25lZE9iamVjdHMpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6Om1hcmtQb3NpdGlvbmVkT2JqZWN0c0ZvckxheW91dCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bWFya0ZvclBhZ2luYXRpb25SZWxheW91dElmTmVl
ZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpyZW1vdmVQb3NpdGlvbmVkT2Jq
ZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6aW5zZXJ0RmxvYXRpbmdPYmpl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnBvc2l0aW9uTmV3RmxvYXRzKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjptYXJrQWxsRGVzY2VuZGFudHNXaXRoRmxv
YXRzRm9yTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpnZXRDbGVhckRl
bHRhKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6bGF5b3V0QmxvY2spOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9ja0NoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrRmxvdzo6YWRqdXN0UG9zaXRpb25lZEJsb2NrKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrRmxvdzo6YWRqdXN0QmxvY2tDaGlsZEZvclBhZ2luYXRpb24pOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRJbmxpbmVDaGlsZHJlbik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCbG9jazo6cG9zaXRpb25OZXdGbG9hdE9uTGluZSk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnN0eWxl
V2lsbENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnN0eWxlRGlkQ2hhbmdl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6cG9zaXRpb25MaW5lQm94KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRl
cHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6Z2F0
aGVyRmxleENoaWxkcmVuSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEZXByZWNhdGVk
RmxleGlibGVCb3g6OmxheW91dEhvcml6b250YWxCb3gpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRWZXJ0aWNhbEJveCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmFwcGx5TGluZUNsYW1wKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6Y2xlYXJMaW5lQ2xh
bXApOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckVsZW1lbnQ6Omluc2VydENoaWxkSW50ZXJuYWwpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50
OjpzZXRBbmNlc3RvckxpbmVCb3hEaXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmpl
Y3Q6OnNldE5lZWRzTGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OmxheW91
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckZpZWxkc2V0OjpsYXlvdXRTcGVjaWFsRXhjbHVkZWRDaGlsZCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckZsZXhpYmxlQm94OjpzdHlsZURpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
RmxleGlibGVCb3g6OnByZWZlcnJlZE1haW5BeGlzQ29udGVudEV4dGVudEZvckNoaWxkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94OjpwcmVwYXJlQ2hpbGRGb3JQb3NpdGlv
bmVkTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRB
bmRQbGFjZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94Ojph
cHBseVN0cmV0Y2hBbGlnbm1lbnRUb0NoaWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
Rmxvd1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjppbnZh
bGlkYXRlUmVnaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjptYXJr
QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRm9yTGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRnJhbWVCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZyYW1lQmFzZTo6
bGF5b3V0V2l0aEZsYXR0ZW5pbmcpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGcmFtZVNl
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGcmFtZVNldDo6bGF5b3V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckZyYW1lU2V0Ojpwb3NpdGlvbkZyYW1lcyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJGcmFtZVNldDo6cG9zaXRpb25GcmFtZXNXaXRoRmxhdHRlbmluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJGcmFtZVNldDo6Y29udGludWVSZXNpemluZyk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
R3JpZDo6bGF5b3V0QmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6bG9naWNh
bENvbnRlbnRIZWlnaHRGb3JDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjps
YXlvdXRHcmlkSXRlbXMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckhUTUxDYW52YXM6OmNhbnZhc1NpemVDaGFuZ2Vk
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlcklGcmFtZTo6bGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1h
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6OmltYWdlRGltZW5zaW9uc0No
YW5nZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVySW5saW5lOjpzdHlsZURpZENoYW5nZSk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRh
dGVTY3JvbGxiYXJzQWZ0ZXJMYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ck1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyTW9kZWxPYmpl
Y3Q6OnN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0TWFya2VyOjpsYXlvdXQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJNYXJxdWVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlck1hcnF1ZWU6OnVwZGF0ZU1hcnF1ZWVTdHlsZSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlck1lZGlhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhOjpsYXlvdXQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1uQmxvY2s6OnJlbGF5b3V0Rm9yUGFnaW5hdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNdWx0aUNvbHVtbkJsb2NrOjpsYXlvdXRTcGVjaWFs
RXhjbHVkZWRDaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Om1hcmtDb250YWluaW5nQmxvY2tzRm9yTGF5
b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6bGF5b3V0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmpl
Y3Q6OnNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJPYmplY3Q6OnNldE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c2V0Tm9ybWFsQ2hpbGROZWVkc0xheW91dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnNldFBvc0NoaWxkTmVlZHNMYXlvdXQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzZXROZWVkc1NpbXBsaWZpZWROb3JtYWxG
bG93TGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6c2V0Q2hpbGROZWVk
c0xheW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJSZXBsaWNhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxpY2E6Omxh
eW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyUnVieVJ1bjo6bGF5b3V0U3BlY2lhbEV4Y2x1ZGVkQ2hpbGQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU2Nyb2xsYmFyOjp1cGRhdGVTY3JvbGxiYXJQYXJ0cyk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclNjcm9sbGJhclBhcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2Ny
b2xsYmFyUGFydDo6bGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGU6OmxheW91dCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRhYmxlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZTo6c2V0
TmVlZHNTZWN0aW9uUmVjYWxjKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6Y29tcHV0ZUludHJpbnNp
Y1BhZGRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpzZXRDZWxsTG9n
aWNhbFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6bGF5b3V0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGFibGVSb3c6OnN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRhYmxlUm93OjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVNl
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9uOjpjYWxjUm93
TG9naWNhbEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246Omxh
eW91dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmxheW91dFJvd3Mp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9uOjpyZWNhbGNDZWxscyk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRleHRDb250cm9sOjpsYXlvdXRTcGVjaWFsRXhjbHVkZWRDaGlsZCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzZXROZWVkc0xheW91dE9uQW5jZXN0b3JzKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJWaWRlby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWRl
bzo6dXBkYXRlSW50cmluc2ljU2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6bGF5b3V0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcldpZGdl
dDo6bGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2Nr
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTEJsb2NrOjpjb21wdXRlQ2hpbGRy
ZW5QcmVmZXJyZWRMb2dpY2FsSGVpZ2h0cyk6CisgICAgICAgICogcmVuZGVyaW5nL21hdGhtbC9S
ZW5kZXJNYXRoTUxTY3JpcHRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hdGhNTFNj
cmlwdHM6OmxheW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWlu
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHQ29udGFpbmVyOjpsYXlvdXQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNWR0dyYWRpZW50U3RvcDo6bGF5b3V0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0hpZGRlbkNvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTVkdIaWRkZW5Db250YWluZXI6OmxheW91dCk6CisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJ
bWFnZTo6bGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jlc291cmNlOjptYXJrRm9yTGF5b3V0
QW5kUGFyZW50UmVzb3VyY2VJbnZhbGlkYXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U1ZHUmVzb3VyY2VDb250YWluZXI6OnJlZ2lzdGVyUmVzb3VyY2UpOgorICAgICAgICAqIHJlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdS
b290OjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHU2hhcGU6OmxheW91dCk6CisgICAgICAgICog
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNWR1RleHQ6OmxheW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBw
b3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1cHBvcnQ6OmxheW91dENoaWxk
cmVuKToKKyAgICAgICAgKiBzdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0NsaXBQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdDbGlwUGF0aEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZCk6CisgICAgICAg
ICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVy
RWxlbWVudDo6c2V0RmlsdGVyUmVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpbHRlckVsZW1l
bnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyRWxl
bWVudDo6Y2hpbGRyZW5DaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHR3JhZGllbnRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0dyYWRpZW50RWxlbWVudDo6c3ZnQXR0cmlidXRl
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdHcmFkaWVudEVsZW1lbnQ6OmNoaWxkcmVu
Q2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNo
YW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR01hcmtlckVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTWFya2VyRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKToKKyAgICAgICAgKiBz
dmcvU1ZHTWFza0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFza0VsZW1lbnQ6
OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFza0VsZW1lbnQ6
OmNoaWxkcmVuQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdHRlcm5FbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdHRlcm5FbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQp
OgorICAgICAgICAqIHN2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToK
KyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdT
VkdFbGVtZW50Ojp1cGRhdGVDdXJyZW50VHJhbnNsYXRlKToKKwogMjAxMy0xMC0wMiAgQW5kcmVh
cyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgS2VlcCBTVkdFbGVtZW50UmFy
ZURhdGEgaW4gYW4gU1ZHRWxlbWVudCBtZW1iZXIgaW5zdGVhZCBvZiBhIGhhc2htYXAuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAppbmRleCAwNWNmNGFhOWFl
ZTYxMDZhNGE0OTc3MjBkMWM3OTJmYWJhZWIzZGM5Li5lMGU2MTczOWM1NzI1ODc5Y2QxMGQzMjRi
OTdkMWRlZGRlN2EyOWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZVNldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxl
bWVudC5jcHAKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIEhUTUxGcmFtZVNldEVsZW1lbnQ6OmRl
ZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2dCkKIGJvb2wgSFRNTEZyYW1lU2V0RWxlbWVudDo6
d2lsbFJlY2FsY1N0eWxlKFN0eWxlOjpDaGFuZ2UpCiB7CiAgICAgaWYgKG5lZWRzU3R5bGVSZWNh
bGMoKSAmJiByZW5kZXJlcigpKSB7Ci0gICAgICAgIHJlbmRlcmVyKCktPnNldE5lZWRzTGF5b3V0
KCk7CisgICAgICAgIHJlbmRlcmVyKCktPnNldE5lZWRzTGF5b3V0KHRydWUpOwogICAgICAgICBj
bGVhck5lZWRzU3R5bGVSZWNhbGMoKTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4IDM1OWI0ZjY1YzM1OWU2NmUwMWUwZDUy
NDM0MDUxZWUxNjMyMzdlMDguLjMyMGM1OGM2M2E5N2ViNjU1OGIzNTNjNDVkZjIwNmQ0MzdkOWVk
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC0zNDQsNyArMzQ0
LDcgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6bGlzdEF0dHJpYnV0ZVRhcmdldENoYW5nZWQoKQog
ICAgIG1fdGlja01hcmtWYWx1ZXNEaXJ0eSA9IHRydWU7CiAgICAgSFRNTEVsZW1lbnQqIHNsaWRl
clRyYWNrRWxlbWVudCA9IHNsaWRlclRyYWNrRWxlbWVudE9mKGVsZW1lbnQoKSk7CiAgICAgaWYg
KHNsaWRlclRyYWNrRWxlbWVudC0+cmVuZGVyZXIoKSkKLSAgICAgICAgc2xpZGVyVHJhY2tFbGVt
ZW50LT5yZW5kZXJlcigpLT5zZXROZWVkc0xheW91dCgpOworICAgICAgICBzbGlkZXJUcmFja0Vs
ZW1lbnQtPnJlbmRlcmVyKCktPnNldE5lZWRzTGF5b3V0KHRydWUpOwogfQogCiB2b2lkIFJhbmdl
SW5wdXRUeXBlOjp1cGRhdGVUaWNrTWFya1ZhbHVlcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAppbmRleCBjM2E2MzMzNWMwZTdhYTUw
YjQzNDY4NzRlOTFjZmZkODY3ZDU3YzcwLi42M2M2YmI1NmNhZTMzNTUwMThhY2FkYjk3OGUxNTE4
MjZiY2NjNDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJU
aHVtYkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRo
dW1iRWxlbWVudC5jcHAKQEAgLTE3OSw3ICsxNzksNyBAQCB2b2lkIFJlbmRlclNsaWRlckNvbnRh
aW5lcjo6bGF5b3V0KCkKICAgICAvLyBGb3JjZSBhIGxheW91dCB0byByZXNldCB0aGUgcG9zaXRp
b24gb2YgdGhlIHRodW1iIHNvIHRoZSBjb2RlIGJlbG93IGRvZXNuJ3QgbW92ZSB0aGUgdGh1bWIg
dG8gdGhlIHdyb25nIHBsYWNlLgogICAgIC8vIEZJWE1FOiBNYWtlIGEgY3VzdG9tIFJlbmRlciBj
bGFzcyBmb3IgdGhlIHRyYWNrIGFuZCBtb3ZlIHRoZSB0aHVtYiBwb3NpdGlvbmluZyBjb2RlIHRo
ZXJlLgogICAgIGlmICh0cmFjaykKLSAgICAgICAgdHJhY2stPnNldENoaWxkTmVlZHNMYXlvdXQo
TWFya09ubHlUaGlzKTsKKyAgICAgICAgdHJhY2stPnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwg
TWFya09ubHlUaGlzKTsKIAogICAgIFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXQoKTsKIApAQCAt
MjE3LDcgKzIxNyw3IEBAIHZvaWQgU2xpZGVyVGh1bWJFbGVtZW50OjpzZXRQb3NpdGlvbkZyb21W
YWx1ZSgpCiAgICAgLy8gcGF0aCwgd2UgZG9uJ3QgYWN0dWFsbHkgdXBkYXRlIHRoZSB2YWx1ZSBo
ZXJlLiBJbnN0ZWFkLCB3ZSBwb2tlIGF0IHRoZQogICAgIC8vIHJlbmRlcmVyIGRpcmVjdGx5IHRv
IHRyaWdnZXIgbGF5b3V0LgogICAgIGlmIChyZW5kZXJlcigpKQotICAgICAgICByZW5kZXJlcigp
LT5zZXROZWVkc0xheW91dCgpOworICAgICAgICByZW5kZXJlcigpLT5zZXROZWVkc0xheW91dCh0
cnVlKTsKIH0KIAogUmVuZGVyRWxlbWVudCogU2xpZGVyVGh1bWJFbGVtZW50OjpjcmVhdGVSZW5k
ZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikKQEAgLTMxNCw3ICszMTQsNyBA
QCB2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6c2V0UG9zaXRpb25Gcm9tUG9pbnQoY29uc3QgTGF5
b3V0UG9pbnQmIGFic29sdXRlUG9pbnQpCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgbm8gbG9uZ2Vy
IGJlaW5nIHNldCBmcm9tIHJlbmRlcmVyLiBDb25zaWRlciB1cGRhdGluZyB0aGUgbWV0aG9kIG5h
bWUuCiAgICAgaW5wdXQtPnNldFZhbHVlRnJvbVJlbmRlcmVyKHZhbHVlU3RyaW5nKTsKICAgICBp
ZiAocmVuZGVyZXIoKSkKLSAgICAgICAgcmVuZGVyZXIoKS0+c2V0TmVlZHNMYXlvdXQoKTsKKyAg
ICAgICAgcmVuZGVyZXIoKS0+c2V0TmVlZHNMYXlvdXQodHJ1ZSk7CiAgICAgaW5wdXQtPmRpc3Bh
dGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOwogfQogCkBAIC0zMzUsNyArMzM1LDcgQEAgdm9p
ZCBTbGlkZXJUaHVtYkVsZW1lbnQ6OnN0b3BEcmFnZ2luZygpCiAgICAgICAgIGZyYW1lLT5ldmVu
dEhhbmRsZXIoKS5zZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQobnVsbHB0cik7CiAgICAg
bV9pbkRyYWdNb2RlID0gZmFsc2U7CiAgICAgaWYgKHJlbmRlcmVyKCkpCi0gICAgICAgIHJlbmRl
cmVyKCktPnNldE5lZWRzTGF5b3V0KCk7CisgICAgICAgIHJlbmRlcmVyKCktPnNldE5lZWRzTGF5
b3V0KHRydWUpOwogfQogCiB2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFu
ZGxlcihFdmVudCogZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNzBiNTUw
NDczNTlmNzkzNTEzZGU3ZWExMzYzM2YzZDViYzA5NzIxNC4uMDFhZDY5ZTk2ODRkZTIxNWQ0Njc2
M2Q0Y2NjOWM3MDE4ODg4MjgwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtOTE5
LDcgKzkxOSw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRIZWFkZXJIZWlnaHQoaW50IGhlYWRlckhl
aWdodCkKICAgICBtX2hlYWRlckhlaWdodCA9IGhlYWRlckhlaWdodDsKIAogICAgIGlmIChSZW5k
ZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpKQotICAgICAgICByZW5kZXJW
aWV3LT5zZXROZWVkc0xheW91dCgpOworICAgICAgICByZW5kZXJWaWV3LT5zZXROZWVkc0xheW91
dCh0cnVlKTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OnNldEZvb3RlckhlaWdodChpbnQgZm9vdGVy
SGVpZ2h0KQpAQCAtOTI5LDcgKzkyOSw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRGb290ZXJIZWln
aHQoaW50IGZvb3RlckhlaWdodCkKICAgICBtX2Zvb3RlckhlaWdodCA9IGZvb3RlckhlaWdodDsK
IAogICAgIGlmIChSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpKQot
ICAgICAgICByZW5kZXJWaWV3LT5zZXROZWVkc0xheW91dCgpOworICAgICAgICByZW5kZXJWaWV3
LT5zZXROZWVkc0xheW91dCh0cnVlKTsKIH0KIAogYm9vbCBGcmFtZVZpZXc6Omhhc0NvbXBvc2l0
ZWRDb250ZW50KCkgY29uc3QKQEAgLTExODcsMTAgKzExODcsMTAgQEAgdm9pZCBGcmFtZVZpZXc6
OmxheW91dChib29sIGFsbG93U3VidHJlZSkKICAgICAgICAgICAgIEhUTUxFbGVtZW50KiBib2R5
ID0gZG9jdW1lbnQuYm9keSgpOwogICAgICAgICAgICAgaWYgKGJvZHkgJiYgYm9keS0+cmVuZGVy
ZXIoKSkgewogICAgICAgICAgICAgICAgIGlmIChib2R5LT5oYXNUYWdOYW1lKGZyYW1lc2V0VGFn
KSAmJiAhZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJv
ZHktPnJlbmRlcmVyKCktPnNldENoaWxkTmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgICAgICAg
ICAgYm9keS0+cmVuZGVyZXIoKS0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlKTsKICAgICAgICAg
ICAgICAgICB9IGVsc2UgaWYgKGJvZHktPmhhc1RhZ05hbWUoYm9keVRhZykpIHsKICAgICAgICAg
ICAgICAgICAgICAgaWYgKCFtX2ZpcnN0TGF5b3V0ICYmIG1fc2l6ZS5oZWlnaHQoKSAhPSBsYXlv
dXRIZWlnaHQoKSAmJiBib2R5LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdCb3goKS0+c3RyZXRjaGVz
VG9WaWV3cG9ydCgpKQotICAgICAgICAgICAgICAgICAgICAgICAgYm9keS0+cmVuZGVyZXIoKS0+
c2V0Q2hpbGROZWVkc0xheW91dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgYm9keS0+cmVu
ZGVyZXIoKS0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlKTsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CiAKQEAgLTEyNDQsOSArMTI0NCw5IEBAIHZvaWQgRnJhbWVWaWV3OjpsYXlv
dXQoYm9vbCBhbGxvd1N1YnRyZWUpCiAgICAgICAgICAgICAgICAgICAgIFJlbmRlckJveCogcm9v
dFJlbmRlcmVyID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkgPyBkb2N1bWVudC5kb2N1bWVu
dEVsZW1lbnQoKS0+cmVuZGVyQm94KCkgOiAwOwogICAgICAgICAgICAgICAgICAgICBSZW5kZXJC
b3gqIGJvZHlSZW5kZXJlciA9IHJvb3RSZW5kZXJlciAmJiBkb2N1bWVudC5ib2R5KCkgPyBkb2N1
bWVudC5ib2R5KCktPnJlbmRlckJveCgpIDogMDsKICAgICAgICAgICAgICAgICAgICAgaWYgKGJv
ZHlSZW5kZXJlciAmJiBib2R5UmVuZGVyZXItPnN0cmV0Y2hlc1RvVmlld3BvcnQoKSkKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGJvZHlSZW5kZXJlci0+c2V0Q2hpbGROZWVkc0xheW91dCgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgYm9keVJlbmRlcmVyLT5zZXRDaGlsZE5lZWRzTGF5b3V0
KHRydWUpOwogICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyb290UmVuZGVyZXIgJiYgcm9v
dFJlbmRlcmVyLT5zdHJldGNoZXNUb1ZpZXdwb3J0KCkpCi0gICAgICAgICAgICAgICAgICAgICAg
ICByb290UmVuZGVyZXItPnNldENoaWxkTmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJvb3RSZW5kZXJlci0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlKTsKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTE5NDIsNyArMTk0Miw3IEBA
IHZvaWQgRnJhbWVWaWV3OjpzZXRWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0c05lZWRMYXlvdXQo
KQogICAgICAgICByZXR1cm47CiAKICAgICBmb3IgKGF1dG8gaXQgPSBtX3ZpZXdwb3J0Q29uc3Ry
YWluZWRPYmplY3RzLT5iZWdpbigpLCBlbmQgPSBtX3ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3Rz
LT5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KQotICAgICAgICAoKml0KS0+c2V0TmVlZHNMYXlvdXQo
KTsKKyAgICAgICAgKCppdCktPnNldE5lZWRzTGF5b3V0KHRydWUpOwogfQogCiB2b2lkIEZyYW1l
Vmlldzo6c2Nyb2xsUG9zaXRpb25DaGFuZ2VkVmlhUGxhdGZvcm1XaWRnZXQoKQpAQCAtMjM4Miw3
ICsyMzgyLDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNjaGVkdWxlUmVsYXlvdXQoKQogICAgIC8vIFdo
ZW4gZnJhbWUgZmxhdHRlbmluZyBpcyBlbmFibGVkLCB0aGUgY29udGVudHMgb2YgdGhlIGZyYW1l
IGNvdWxkIGFmZmVjdCB0aGUgbGF5b3V0IG9mIHRoZSBwYXJlbnQgZnJhbWVzLgogICAgIC8vIEFs
c28gaW52YWxpZGF0ZSBwYXJlbnQgZnJhbWUgc3RhcnRpbmcgZnJvbSB0aGUgb3duZXIgZWxlbWVu
dCBvZiB0aGlzIGZyYW1lLgogICAgIGlmIChmcmFtZSgpLm93bmVyUmVuZGVyZXIoKSAmJiBpc0lu
Q2hpbGRGcmFtZVdpdGhGcmFtZUZsYXR0ZW5pbmcoKSkKLSAgICAgICAgZnJhbWUoKS5vd25lclJl
bmRlcmVyKCktPnNldE5lZWRzTGF5b3V0KE1hcmtDb250YWluaW5nQmxvY2tDaGFpbik7CisgICAg
ICAgIGZyYW1lKCkub3duZXJSZW5kZXJlcigpLT5zZXROZWVkc0xheW91dCh0cnVlLCBNYXJrQ29u
dGFpbmluZ0Jsb2NrQ2hhaW4pOwogCiAgICAgaW50IGRlbGF5ID0gZnJhbWUoKS5kb2N1bWVudCgp
LT5taW5pbXVtTGF5b3V0RGVsYXkoKTsKICAgICBpZiAobV9sYXlvdXRUaW1lci5pc0FjdGl2ZSgp
ICYmIG1fZGVsYXllZExheW91dCAmJiAhZGVsYXkpCkBAIC0yNDkxLDcgKzI0OTEsNyBAQCB2b2lk
IEZyYW1lVmlldzo6c2V0TmVlZHNMYXlvdXQoKQogICAgIH0KIAogICAgIGlmIChSZW5kZXJWaWV3
KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpKQotICAgICAgICByZW5kZXJWaWV3LT5z
ZXROZWVkc0xheW91dCgpOworICAgICAgICByZW5kZXJWaWV3LT5zZXROZWVkc0xheW91dCh0cnVl
KTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OnVuc2NoZWR1bGVSZWxheW91dCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAppbmRleCBlNTg0MTI3NGU4ZjBmMTViNjhmYTA4ZDE1YjBlYzc4ZTVlOTRlMjYzLi4wNmRi
NGRhMTFiZWVhOWY3MjMyYTg5YmMxZjE3OGNiYWM4ODkwNmE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
QEAgLTc2Miw3ICs3NjIsNyBAQCB2b2lkIFBhZ2U6OnNldFBhZ2VTY2FsZUZhY3RvcihmbG9hdCBz
Y2FsZSwgY29uc3QgSW50UG9pbnQmIG9yaWdpbikKIAogICAgIGlmICghbV9zZXR0aW5ncy0+YXBw
bHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKSkgewogICAgICAgICBpZiAoZG9jdW1lbnQt
PnJlbmRlclZpZXcoKSkKLSAgICAgICAgICAgIGRvY3VtZW50LT5yZW5kZXJWaWV3KCktPnNldE5l
ZWRzTGF5b3V0KCk7CisgICAgICAgICAgICBkb2N1bWVudC0+cmVuZGVyVmlldygpLT5zZXROZWVk
c0xheW91dCh0cnVlKTsKIAogICAgICAgICBkb2N1bWVudC0+cmVjYWxjU3R5bGUoU3R5bGU6OkZv
cmNlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xs
ZXIuaAppbmRleCBlMjVmZmIxNzcwMjg1YTgwNjg5NDhkYzg1YmJkMmVkMzA1MWZmN2Q0Li44NGUw
M2U4NjI2ZWE5ZDM4ZDg4ZmQxMDVjY2RlMjdlOTZkZmQ1NjM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaApAQCAtNTYsNyArNTYsNyBAQCBw
dWJsaWM6CiAgICAgewogICAgICAgICBtX2lzUmVuZGVyTmFtZWRGbG93VGhyZWFkT3JkZXJEaXJ0
eSA9IGRpcnR5OwogICAgICAgICBpZiAoZGlydHkpCi0gICAgICAgICAgICBtX3ZpZXctPnNldE5l
ZWRzTGF5b3V0KCk7CisgICAgICAgICAgICBtX3ZpZXctPnNldE5lZWRzTGF5b3V0KHRydWUpOwog
ICAgIH0KIAogICAgIFJlbmRlck5hbWVkRmxvd1RocmVhZCYgZW5zdXJlUmVuZGVyRmxvd1RocmVh
ZFdpdGhOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHAKaW5kZXggMWVlMmFkMDI2YjBmYTAwM2M2MjVmNDU4ZWE0NjdjNWEzZWRl
MDljZC4uM2JhMzZlNzBlMzkyY2YwZDQzMTRjYWY0YzBiNzBjMzQxNzZkYmNjMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0xNDAwLDcgKzE0MDAsNyBAQCB2
b2lkIFJlbmRlckJsb2NrOjpyZWxheW91dFNoYXBlRGVzY2VuZGFudElmTW92ZWQoUmVuZGVyQmxv
Y2sqIGNoaWxkLCBMYXlvdXRTaXplCiAgICAgICAgIHJldHVybjsKICAgICAvLyBQcm9wYWdhdGUg
bGF5b3V0IG1hcmtlcnMgb25seSB1cCB0byB0aGUgY2hpbGQsIGFzIHdlIGFyZSBzdGlsbCBpbiB0
aGUgbWlkZGxlCiAgICAgLy8gb2YgYSBsYXlvdXQgcGFzcwotICAgIGNoaWxkLT5zZXROb3JtYWxD
aGlsZE5lZWRzTGF5b3V0Qml0KHRydWUpOworICAgIGNoaWxkLT5zZXROb3JtYWxDaGlsZE5lZWRz
TGF5b3V0KHRydWUpOwogICAgIGNoaWxkLT5tYXJrU2hhcGVJbnNpZGVEZXNjZW5kYW50c0Zvckxh
eW91dCgpOwogICAgIGNoaWxkLT5sYXlvdXRJZk5lZWRlZCgpOwogfQpAQCAtMTQ3Miw3ICsxNDcy
LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6bWFya1NoYXBlSW5zaWRlRGVzY2VuZGFudHNGb3JMYXlv
dXQoKQogICAgIGlmICghZXZlckhhZExheW91dCgpKQogICAgICAgICByZXR1cm47CiAgICAgaWYg
KGNoaWxkcmVuSW5saW5lKCkpIHsKLSAgICAgICAgc2V0TmVlZHNMYXlvdXQoKTsKKyAgICAgICAg
c2V0TmVlZHNMYXlvdXQodHJ1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgZm9yIChS
ZW5kZXJPYmplY3QqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+
bmV4dFNpYmxpbmcoKSkgewpAQCAtMTU5Miw3ICsxNTkyLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6
Y2hlY2tGb3JQYWdpbmF0aW9uTG9naWNhbEhlaWdodENoYW5nZShMYXlvdXRVbml0JiBwYWdlTG9n
aWNhbEgKIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKGJvb2wsIExheW91dFVuaXQpCiB7
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgY2xlYXJOZWVkc0xheW91dCgpOworICAg
IHNldE5lZWRzTGF5b3V0KGZhbHNlKTsKIH0KIAogdm9pZCBSZW5kZXJCbG9jazo6YWRkT3ZlcmZs
b3dGcm9tQ2hpbGRyZW4oKQpAQCAtMTk0MCw3ICsxOTQwLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6
dXBkYXRlQmxvY2tDaGlsZERpcnR5Qml0c0JlZm9yZUxheW91dChib29sIHJlbGF5b3V0Q2hpbGRy
ZW4sIFIKICAgICAvLyBGSVhNRTogVGVjaG5pY2FsbHkgcGVyY2VudGFnZSBoZWlnaHQgb2JqZWN0
cyBvbmx5IG5lZWQgYSByZWxheW91dCBpZiB0aGVpciBwZXJjZW50YWdlIGlzbid0IGdvaW5nIHRv
IGJlIHR1cm5lZCBpbnRvCiAgICAgLy8gYW4gYXV0byB2YWx1ZS4gQWRkIGEgbWV0aG9kIHRvIGRl
dGVybWluZSB0aGlzLCBzbyB0aGF0IHdlIGNhbiBhdm9pZCB0aGUgcmVsYXlvdXQuCiAgICAgaWYg
KHJlbGF5b3V0Q2hpbGRyZW4gfHwgKGNoaWxkLT5oYXNSZWxhdGl2ZUxvZ2ljYWxIZWlnaHQoKSAm
JiAhaXNSZW5kZXJWaWV3KCkpIHx8IGNoaWxkLT5oYXNWaWV3cG9ydFBlcmNlbnRhZ2VMb2dpY2Fs
SGVpZ2h0KCkpCi0gICAgICAgIGNoaWxkLT5zZXRDaGlsZE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhp
cyk7CisgICAgICAgIGNoaWxkLT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhp
cyk7CiAKICAgICAvLyBJZiByZWxheW91dENoaWxkcmVuIGlzIHNldCBhbmQgdGhlIGNoaWxkIGhh
cyBwZXJjZW50YWdlIHBhZGRpbmcgb3IgYW4gZW1iZWRkZWQgY29udGVudCBib3gsIHdlIGFsc28g
bmVlZCB0byBpbnZhbGlkYXRlIHRoZSBjaGlsZHMgcHJlZiB3aWR0aHMuCiAgICAgaWYgKHJlbGF5
b3V0Q2hpbGRyZW4gJiYgY2hpbGQtPm5lZWRzUHJlZmVycmVkV2lkdGhzUmVjYWxjdWxhdGlvbigp
KQpAQCAtMTk2Miw3ICsxOTYyLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6ZGlydHlGb3JMYXlvdXRG
cm9tUGVyY2VudGFnZUhlaWdodERlc2NlbmRhbnRzKCkKICAgICAgICAgd2hpbGUgKGJveCAhPSB0
aGlzKSB7CiAgICAgICAgICAgICBpZiAoYm94LT5ub3JtYWxDaGlsZE5lZWRzTGF5b3V0KCkpCiAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBib3gtPnNldENoaWxkTmVlZHNMYXlv
dXQoTWFya09ubHlUaGlzKTsKKyAgICAgICAgICAgIGJveC0+c2V0Q2hpbGROZWVkc0xheW91dCh0
cnVlLCBNYXJrT25seVRoaXMpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBJZiB0aGUg
d2lkdGggb2YgYW4gaW1hZ2UgaXMgYWZmZWN0ZWQgYnkgdGhlIGhlaWdodCBvZiBhIGNoaWxkIChl
LmcuLCBhbiBpbWFnZSB3aXRoIGFuIGFzcGVjdCByYXRpbyksCiAgICAgICAgICAgICAvLyB0aGVu
IHdlIGhhdmUgdG8gZGlydHkgcHJlZmVycmVkIHdpZHRocywgc2luY2UgZXZlbiBlbmNsb3Npbmcg
YmxvY2tzIGNhbiBiZWNvbWUgZGlydHkgYXMgYSByZXN1bHQuCkBAIC0xOTg5LDcgKzE5ODksNyBA
QCB2b2lkIFJlbmRlckJsb2NrOjpzaW1wbGlmaWVkTm9ybWFsRmxvd0xheW91dCgpCiAgICAgICAg
ICAgICAgICAgaWYgKHRvUmVuZGVyQm94KG8pLT5pbmxpbmVCb3hXcmFwcGVyKCkpCiAgICAgICAg
ICAgICAgICAgICAgIGxpbmVCb3hlcy5hZGQoJnRvUmVuZGVyQm94KG8pLT5pbmxpbmVCb3hXcmFw
cGVyKCktPnJvb3QoKSk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKG8tPmlzVGV4dCgpIHx8IChv
LT5pc1JlbmRlcklubGluZSgpICYmICF3YWxrZXIuYXRFbmRPZklubGluZSgpKSkKLSAgICAgICAg
ICAgICAgICBvLT5jbGVhck5lZWRzTGF5b3V0KCk7CisgICAgICAgICAgICAgICAgby0+c2V0TmVl
ZHNMYXlvdXQoZmFsc2UpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gRklYTUU6IEdseXBoIG92
ZXJmbG93IHdpbGwgZ2V0IGxvc3QgaW4gdGhpcyBjYXNlLCBidXQgbm90IHJlYWxseSBhIGJpZyBk
ZWFsLgpAQCAtMjA1MSw3ICsyMDUxLDcgQEAgYm9vbCBSZW5kZXJCbG9jazo6c2ltcGxpZmllZExh
eW91dCgpCiAKICAgICB1cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXQoKTsKIAotICAgIGNsZWFy
TmVlZHNMYXlvdXQoKTsKKyAgICBzZXROZWVkc0xheW91dChmYWxzZSk7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKQEAgLTIwNzcsMTIgKzIwNzcsMTIgQEAgdm9pZCBSZW5kZXJCbG9jazo6bWFya0Zp
eGVkUG9zaXRpb25PYmplY3RGb3JMYXlvdXRJZk5lZWRlZChSZW5kZXJPYmplY3QqIGNoaWxkKQog
ICAgICAgICBib3gtPmNvbXB1dGVMb2dpY2FsV2lkdGhJblJlZ2lvbihjb21wdXRlZFZhbHVlcyk7
CiAgICAgICAgIExheW91dFVuaXQgbmV3TGVmdCA9IGNvbXB1dGVkVmFsdWVzLm1fcG9zaXRpb247
CiAgICAgICAgIGlmIChuZXdMZWZ0ICE9IGJveC0+bG9naWNhbExlZnQoKSkKLSAgICAgICAgICAg
IGJveC0+c2V0Q2hpbGROZWVkc0xheW91dChNYXJrT25seVRoaXMpOworICAgICAgICAgICAgY2hp
bGQtPnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsKICAgICB9IGVsc2Ug
aWYgKGhhc1N0YXRpY0Jsb2NrUG9zaXRpb24pIHsKICAgICAgICAgTGF5b3V0VW5pdCBvbGRUb3Ag
PSBib3gtPmxvZ2ljYWxUb3AoKTsKICAgICAgICAgYm94LT51cGRhdGVMb2dpY2FsSGVpZ2h0KCk7
CiAgICAgICAgIGlmIChib3gtPmxvZ2ljYWxUb3AoKSAhPSBvbGRUb3ApCi0gICAgICAgICAgICBi
b3gtPnNldENoaWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICAgICAgICAgIGNoaWxk
LT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7CiAgICAgfQogfQogCkBA
IC0yMTE2LDcgKzIxMTYsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRQb3NpdGlvbmVkT2Jq
ZWN0cyhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIGJvb2wgZml4ZWRQb3NpdAogICAgICAgICAvLyBv
YmplY3RzIHRoYXQgYXJlIHBvc2l0aW9uZWQgaW1wbGljaXRseSBsaWtlIHRoaXMuICBTdWNoIG9i
amVjdHMgYXJlIHJhcmUsIGFuZCBzbyBpbiB0eXBpY2FsIERIVE1MIG1lbnUgdXNhZ2UgKHdoZXJl
IGV2ZXJ5dGhpbmcgaXMKICAgICAgICAgLy8gcG9zaXRpb25lZCBleHBsaWNpdGx5KSB0aGlzIHNo
b3VsZCBub3QgaW5jdXIgYSBwZXJmb3JtYW5jZSBwZW5hbHR5LgogICAgICAgICBpZiAocmVsYXlv
dXRDaGlsZHJlbiB8fCAoci0+c3R5bGUoKS0+aGFzU3RhdGljQmxvY2tQb3NpdGlvbihpc0hvcml6
b250YWxXcml0aW5nTW9kZSgpKSAmJiByLT5wYXJlbnQoKSAhPSB0aGlzKSkKLSAgICAgICAgICAg
IHItPnNldENoaWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICAgICAgICAgIHItPnNl
dENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsKICAgICAgICAgICAgIAogICAg
ICAgICAvLyBJZiByZWxheW91dENoaWxkcmVuIGlzIHNldCBhbmQgdGhlIGNoaWxkIGhhcyBwZXJj
ZW50YWdlIHBhZGRpbmcgb3IgYW4gZW1iZWRkZWQgY29udGVudCBib3gsIHdlIGFsc28gbmVlZCB0
byBpbnZhbGlkYXRlIHRoZSBjaGlsZHMgcHJlZiB3aWR0aHMuCiAgICAgICAgIGlmIChyZWxheW91
dENoaWxkcmVuICYmIHItPm5lZWRzUHJlZmVycmVkV2lkdGhzUmVjYWxjdWxhdGlvbigpKQpAQCAt
MjEyOCw3ICsyMTI4LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0UG9zaXRpb25lZE9iamVj
dHMoYm9vbCByZWxheW91dENoaWxkcmVuLCBib29sIGZpeGVkUG9zaXQKICAgICAgICAgLy8gV2Ug
ZG9uJ3QgaGF2ZSB0byBkbyBhIGZ1bGwgbGF5b3V0LiAgV2UganVzdCBoYXZlIHRvIHVwZGF0ZSBv
dXIgcG9zaXRpb24uIFRyeSB0aGF0IGZpcnN0LiBJZiB3ZSBoYXZlIHNocmluay10by1maXQgd2lk
dGgKICAgICAgICAgLy8gYW5kIHdlIGhpdCB0aGUgYXZhaWxhYmxlIHdpZHRoIGNvbnN0cmFpbnQs
IHRoZSBsYXlvdXRJZk5lZWRlZCgpIHdpbGwgY2F0Y2ggaXQgYW5kIGRvIGEgZnVsbCBsYXlvdXQu
CiAgICAgICAgIGlmIChyLT5uZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dE9ubHkoKSAmJiBy
LT50cnlMYXlvdXREb2luZ1Bvc2l0aW9uZWRNb3ZlbWVudE9ubHkoKSkKLSAgICAgICAgICAgIHIt
PmNsZWFyTmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgIHItPnNldE5lZWRzTGF5b3V0KGZhbHNl
KTsKICAgICAgICAgICAgIAogICAgICAgICAvLyBJZiB3ZSBhcmUgcGFnaW5hdGVkIG9yIGluIGEg
bGluZSBncmlkLCBnbyBhaGVhZCBhbmQgY29tcHV0ZSBhIHZlcnRpY2FsIHBvc2l0aW9uIGZvciBv
dXIgb2JqZWN0IG5vdy4KICAgICAgICAgLy8gSWYgaXQncyB3cm9uZyB3ZSdsbCBsYXkgb3V0IGFn
YWluLgpAQCAtMjE0NiwxMiArMjE0NiwxMiBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRQb3Np
dGlvbmVkT2JqZWN0cyhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIGJvb2wgZml4ZWRQb3NpdAogCiAg
ICAgICAgIC8vIExheSBvdXQgYWdhaW4gaWYgb3VyIGVzdGltYXRlIHdhcyB3cm9uZy4KICAgICAg
ICAgaWYgKG5lZWRzQmxvY2tEaXJlY3Rpb25Mb2NhdGlvblNldEJlZm9yZUxheW91dCAmJiBsb2dp
Y2FsVG9wRm9yQ2hpbGQocikgIT0gb2xkTG9naWNhbFRvcCkgewotICAgICAgICAgICAgci0+c2V0
Q2hpbGROZWVkc0xheW91dChNYXJrT25seVRoaXMpOworICAgICAgICAgICAgci0+c2V0Q2hpbGRO
ZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMpOwogICAgICAgICAgICAgci0+bGF5b3V0SWZO
ZWVkZWQoKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICh1cGRhdGVSZWdpb25SYW5nZUZvckJv
eENoaWxkKHIpKSB7Ci0gICAgICAgICAgICByLT5zZXROZWVkc0xheW91dChNYXJrT25seVRoaXMp
OworICAgICAgICAgICAgci0+c2V0TmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsKICAg
ICAgICAgICAgIHItPmxheW91dElmTmVlZGVkKCk7CiAgICAgICAgIH0KICAgICB9CkBAIC0yMTY4
LDcgKzIxNjgsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjptYXJrUG9zaXRpb25lZE9iamVjdHNGb3JM
YXlvdXQoKQogICAgICAgICBUcmFja2VkUmVuZGVyZXJMaXN0SGFzaFNldDo6aXRlcmF0b3IgZW5k
ID0gcG9zaXRpb25lZERlc2NlbmRhbnRzLT5lbmQoKTsKICAgICAgICAgZm9yIChUcmFja2VkUmVu
ZGVyZXJMaXN0SGFzaFNldDo6aXRlcmF0b3IgaXQgPSBwb3NpdGlvbmVkRGVzY2VuZGFudHMtPmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICAgICAgciA9ICppdDsKLSAgICAgICAg
ICAgIHItPnNldENoaWxkTmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgIHItPnNldENoaWxkTmVl
ZHNMYXlvdXQodHJ1ZSk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0yMTgwLDcgKzIxODAsNyBA
QCB2b2lkIFJlbmRlckJsb2NrOjptYXJrRm9yUGFnaW5hdGlvblJlbGF5b3V0SWZOZWVkZWQoKQog
ICAgICAgICByZXR1cm47CiAKICAgICBpZiAodmlldygpLmxheW91dFN0YXRlKCktPnBhZ2VMb2dp
Y2FsSGVpZ2h0Q2hhbmdlZCgpIHx8ICh2aWV3KCkubGF5b3V0U3RhdGUoKS0+cGFnZUxvZ2ljYWxI
ZWlnaHQoKSAmJiB2aWV3KCkubGF5b3V0U3RhdGUoKS0+cGFnZUxvZ2ljYWxPZmZzZXQodGhpcywg
bG9naWNhbFRvcCgpKSAhPSBwYWdlTG9naWNhbE9mZnNldCgpKSkKLSAgICAgICAgc2V0Q2hpbGRO
ZWVkc0xheW91dChNYXJrT25seVRoaXMpOworICAgICAgICBzZXRDaGlsZE5lZWRzTGF5b3V0KHRy
dWUsIE1hcmtPbmx5VGhpcyk7CiB9CiAKIHZvaWQgUmVuZGVyQmxvY2s6OnJlcGFpbnRPdmVyaGFu
Z2luZ0Zsb2F0cyhib29sIHBhaW50QWxsRGVzY2VuZGFudHMpCkBAIC0zMjM4LDE1ICszMjM4LDE1
IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnJlbW92ZVBvc2l0aW9uZWRPYmplY3RzKFJlbmRlckJsb2Nr
KiBvLCBDb250YWluaW5nQmxvY2tTdGF0ZSBjCiAgICAgICAgIHIgPSAqaXQ7CiAgICAgICAgIGlm
ICghbyB8fCByLT5pc0Rlc2NlbmRhbnRPZihvKSkgewogICAgICAgICAgICAgaWYgKGNvbnRhaW5p
bmdCbG9ja1N0YXRlID09IE5ld0NvbnRhaW5pbmdCbG9jaykKLSAgICAgICAgICAgICAgICByLT5z
ZXRDaGlsZE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7CisgICAgICAgICAgICAgICAgci0+c2V0
Q2hpbGROZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMpOwogICAgICAgICAgICAgCiAgICAg
ICAgICAgICAvLyBJdCBpcyBwYXJlbnQgYmxvY2tzIGpvYiB0byBhZGQgcG9zaXRpb25lZCBjaGls
ZCB0byBwb3NpdGlvbmVkIG9iamVjdHMgbGlzdCBvZiBpdHMgY29udGFpbmluZyBibG9jawogICAg
ICAgICAgICAgLy8gUGFyZW50IGxheW91dCBuZWVkcyB0byBiZSBpbnZhbGlkYXRlZCB0byBlbnN1
cmUgdGhpcyBoYXBwZW5zLgotICAgICAgICAgICAgUmVuZGVyRWxlbWVudCogcCA9IHItPnBhcmVu
dCgpOworICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiBwID0gci0+cGFyZW50KCk7CiAgICAgICAg
ICAgICB3aGlsZSAocCAmJiAhcC0+aXNSZW5kZXJCbG9jaygpKQogICAgICAgICAgICAgICAgIHAg
PSBwLT5wYXJlbnQoKTsKICAgICAgICAgICAgIGlmIChwKQotICAgICAgICAgICAgICAgIHAtPnNl
dENoaWxkTmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgICAgICBwLT5zZXRDaGlsZE5lZWRzTGF5
b3V0KHRydWUpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBkZWFkT2JqZWN0cy5hcHBlbmQo
cik7CiAgICAgICAgIH0KQEAgLTMyODcsNyArMzI4Nyw3IEBAIEZsb2F0aW5nT2JqZWN0KiBSZW5k
ZXJCbG9jazo6aW5zZXJ0RmxvYXRpbmdPYmplY3QoUmVuZGVyQm94KiBvKQogICAgIC8vIEp1c3Qg
Z28gYWhlYWQgYW5kIGxheSBvdXQgdGhlIGZsb2F0LgogICAgIGJvb2wgaXNDaGlsZFJlbmRlckJs
b2NrID0gby0+aXNSZW5kZXJCbG9jaygpOwogICAgIGlmIChpc0NoaWxkUmVuZGVyQmxvY2sgJiYg
IW8tPm5lZWRzTGF5b3V0KCkgJiYgdmlldygpLmxheW91dFN0YXRlKCktPnBhZ2VMb2dpY2FsSGVp
Z2h0Q2hhbmdlZCgpKQotICAgICAgICBvLT5zZXRDaGlsZE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhp
cyk7CisgICAgICAgIG8tPnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsK
ICAgICAgICAgICAgIAogICAgIGJvb2wgbmVlZHNCbG9ja0RpcmVjdGlvbkxvY2F0aW9uU2V0QmVm
b3JlTGF5b3V0ID0gaXNDaGlsZFJlbmRlckJsb2NrICYmIHZpZXcoKS5sYXlvdXRTdGF0ZSgpLT5u
ZWVkc0Jsb2NrRGlyZWN0aW9uTG9jYXRpb25TZXRCZWZvcmVMYXlvdXQoKTsKICAgICBpZiAoIW5l
ZWRzQmxvY2tEaXJlY3Rpb25Mb2NhdGlvblNldEJlZm9yZUxheW91dCB8fCBpc1dyaXRpbmdNb2Rl
Um9vdCgpKSAvLyBXZSBhcmUgdW5zcGxpdHRhYmxlIGlmIHdlJ3JlIGEgYmxvY2sgZmxvdyByb290
LgpAQCAtMzUyMywxMiArMzUyMywxMiBAQCBib29sIFJlbmRlckJsb2NrOjpwb3NpdGlvbk5ld0Zs
b2F0cygpCiAgICAgICAgICAgICAgICAgc2V0TG9naWNhbFRvcEZvckNoaWxkKGNoaWxkQm94LCBm
bG9hdExvZ2ljYWxMb2NhdGlvbi55KCkgKyBtYXJnaW5CZWZvcmVGb3JDaGlsZChjaGlsZEJveCkp
OwogICAgICAgICAKICAgICAgICAgICAgICAgICBpZiAoY2hpbGRCbG9jaykKLSAgICAgICAgICAg
ICAgICAgICAgY2hpbGRCbG9jay0+c2V0Q2hpbGROZWVkc0xheW91dChNYXJrT25seVRoaXMpOwor
ICAgICAgICAgICAgICAgICAgICBjaGlsZEJsb2NrLT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUs
IE1hcmtPbmx5VGhpcyk7CiAgICAgICAgICAgICAgICAgY2hpbGRCb3gtPmxheW91dElmTmVlZGVk
KCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmICh1cGRhdGVSZWdpb25SYW5nZUZv
ckJveENoaWxkKGNoaWxkQm94KSkgewotICAgICAgICAgICAgICAgIGNoaWxkQm94LT5zZXROZWVk
c0xheW91dChNYXJrT25seVRoaXMpOworICAgICAgICAgICAgICAgIGNoaWxkQm94LT5zZXROZWVk
c0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMpOwogICAgICAgICAgICAgICAgIGNoaWxkQm94LT5s
YXlvdXRJZk5lZWRlZCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0zOTMxLDcgKzM5
MzEsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjptYXJrQWxsRGVzY2VuZGFudHNXaXRoRmxvYXRzRm9y
TGF5b3V0KFJlbmRlckJveCogZmxvYXRUb1JlbW92ZQogICAgICAgICByZXR1cm47CiAKICAgICBN
YXJraW5nQmVoYXZpb3IgbWFya1BhcmVudHMgPSBpbkxheW91dCA/IE1hcmtPbmx5VGhpcyA6IE1h
cmtDb250YWluaW5nQmxvY2tDaGFpbjsKLSAgICBzZXRDaGlsZE5lZWRzTGF5b3V0KG1hcmtQYXJl
bnRzKTsKKyAgICBzZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIG1hcmtQYXJlbnRzKTsKICAKICAg
ICBpZiAoZmxvYXRUb1JlbW92ZSkKICAgICAgICAgcmVtb3ZlRmxvYXRpbmdPYmplY3QoZmxvYXRU
b1JlbW92ZSk7CkBAIC00MDI5LDcgKzQwMjksNyBAQCBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpn
ZXRDbGVhckRlbHRhKFJlbmRlckJveCogY2hpbGQsIExheW91dFVuaXQgbG9naWNhbFRvcCkKICAg
ICAgICAgICAgICAgICAvLyB3ZSBuZWVkIHRvIGZvcmNlIGEgcmVsYXlvdXQgYXMgdGhvdWdoIHdl
IHNoaWZ0ZWQuIFRoaXMgaGFwcGVucyBiZWNhdXNlIG9mIHRoZSBkeW5hbWljIGFkZGl0aW9uIG9m
IG92ZXJoYW5naW5nIGZsb2F0cwogICAgICAgICAgICAgICAgIC8vIGZyb20gcHJldmlvdXMgc2li
bGluZ3Mgd2hlbiBuZWdhdGl2ZSBtYXJnaW5zIGV4aXN0IG9uIGEgY2hpbGQgKHNlZSB0aGUgYWRk
T3ZlcmhhbmdpbmdGbG9hdHMgY2FsbCBhdCB0aGUgZW5kIG9mIGNvbGxhcHNlTWFyZ2lucykuCiAg
ICAgICAgICAgICAgICAgaWYgKGNoaWxkTG9naWNhbFdpZHRoQXRPbGRMb2dpY2FsVG9wT2Zmc2V0
ICE9IGNoaWxkTG9naWNhbFdpZHRoQXROZXdMb2dpY2FsVG9wT2Zmc2V0KQotICAgICAgICAgICAg
ICAgICAgICBjaGlsZC0+c2V0Q2hpbGROZWVkc0xheW91dChNYXJrT25seVRoaXMpOworICAgICAg
ICAgICAgICAgICAgICBjaGlsZC0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRo
aXMpOwogICAgICAgICAgICAgICAgIHJldHVybiBuZXdMb2dpY2FsVG9wIC0gbG9naWNhbFRvcDsK
ICAgICAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tG
bG93LmNwcAppbmRleCBmZDM1MzM0OGU3ZGI1YjNkYmZmNmY4NjVhNmY4YjgzMmFkMjI4MDhiLi5h
NTViMmE1ZjZlZGY0MWRiOTQ5YTVjNjMwNjRiNTE3NjdlYTU5YjQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtMzkyLDcgKzM5Miw3IEBAIHZv
aWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExh
eW91dFVuaXQgcGFnZUxvZ2ljYWxICiAgICAgICAgIH0KICAgICB9CiAKLSAgICBjbGVhck5lZWRz
TGF5b3V0KCk7CisgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQogCiB2b2lkIFJlbmRlckJs
b2NrRmxvdzo6bGF5b3V0QmxvY2tDaGlsZHJlbihib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91
dFVuaXQmIG1heEZsb2F0TG9naWNhbEJvdHRvbSkKQEAgLTUzNiw3ICs1MzYsNyBAQCB2b2lkIFJl
bmRlckJsb2NrRmxvdzo6bGF5b3V0QmxvY2tDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBNYXJnaW5J
bmZvJiBtYXJnaW5JbmZvLAogICAgICAgICAgICAgLy8gV2hlbiB0aGUgY2hpbGQgc2hpZnRzIHRv
IGNsZWFyIGFuIGl0ZW0sIGl0cyB3aWR0aCBjYW4KICAgICAgICAgICAgIC8vIGNoYW5nZSAoYmVj
YXVzZSBpdCBoYXMgbW9yZSBhdmFpbGFibGUgbGluZSB3aWR0aCkuCiAgICAgICAgICAgICAvLyBT
byBnbyBhaGVhZCBhbmQgbWFyayB0aGUgaXRlbSBhcyBkaXJ0eS4KLSAgICAgICAgICAgIGNoaWxk
LT5zZXRDaGlsZE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7CisgICAgICAgICAgICBjaGlsZC0+
c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMpOwogICAgICAgICB9CiAgICAg
ICAgIAogICAgICAgICBpZiAoY2hpbGRCbG9ja0Zsb3cpIHsKQEAgLTU1MSw3ICs1NTEsNyBAQCB2
b2lkIFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0QmxvY2tDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBN
YXJnaW5JbmZvJiBtYXJnaW5JbmZvLAogICAgIH0KIAogICAgIGlmICh1cGRhdGVSZWdpb25SYW5n
ZUZvckJveENoaWxkKGNoaWxkKSkgewotICAgICAgICBjaGlsZC0+c2V0TmVlZHNMYXlvdXQoTWFy
a09ubHlUaGlzKTsKKyAgICAgICAgY2hpbGQtPnNldE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5
VGhpcyk7CiAgICAgICAgIGNoaWxkLT5sYXlvdXRJZk5lZWRlZCgpOwogICAgIH0KIApAQCAtNjI0
LDcgKzYyNCw3IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjphZGp1c3RQb3NpdGlvbmVkQmxvY2so
UmVuZGVyQm94KiBjaGlsZCwgY29uc3QgTWFyZ2luSW5mbyYKICAgICBpZiAoY2hpbGRMYXllci0+
c3RhdGljQmxvY2tQb3NpdGlvbigpICE9IGxvZ2ljYWxUb3ApIHsKICAgICAgICAgY2hpbGRMYXll
ci0+c2V0U3RhdGljQmxvY2tQb3NpdGlvbihsb2dpY2FsVG9wKTsKICAgICAgICAgaWYgKGhhc1N0
YXRpY0Jsb2NrUG9zaXRpb24pCi0gICAgICAgICAgICBjaGlsZC0+c2V0Q2hpbGROZWVkc0xheW91
dChNYXJrT25seVRoaXMpOworICAgICAgICAgICAgY2hpbGQtPnNldENoaWxkTmVlZHNMYXlvdXQo
dHJ1ZSwgTWFya09ubHlUaGlzKTsKICAgICB9CiB9CiAKQEAgLTEyNjUsNyArMTI2NSw3IEBAIExh
eW91dFVuaXQgUmVuZGVyQmxvY2tGbG93OjphZGp1c3RCbG9ja0NoaWxkRm9yUGFnaW5hdGlvbihM
YXlvdXRVbml0IGxvZ2ljYWxUb3BBCiAgICAgICAgICAgICAvLyBXaGVuIHRoZSBjaGlsZCBzaGlm
dHMgdG8gY2xlYXIgYW4gaXRlbSwgaXRzIHdpZHRoIGNhbgogICAgICAgICAgICAgLy8gY2hhbmdl
IChiZWNhdXNlIGl0IGhhcyBtb3JlIGF2YWlsYWJsZSBsaW5lIHdpZHRoKS4KICAgICAgICAgICAg
IC8vIFNvIGdvIGFoZWFkIGFuZCBtYXJrIHRoZSBpdGVtIGFzIGRpcnR5LgotICAgICAgICAgICAg
Y2hpbGQtPnNldENoaWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICAgICAgICAgIGNo
aWxkLT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7CiAgICAgICAgIH0K
ICAgICAgICAgCiAgICAgICAgIGlmIChjaGlsZFJlbmRlckJsb2NrKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCmluZGV4IGNjMDli
NzY4M2Q0YWIwZjI3NTUzYmM2NzEyMzVhOTZmNzk4Nzc1MzYuLjc1NDBkMDYzNWVmYjljNjZmYzVl
ZTkyMzYwYWZkNWQzODMxM2U1MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBAIC0xMjczLDcgKzEyNzMsNyBAQCB2b2lkIFJl
bmRlckJsb2NrOjpsYXlvdXRSdW5zQW5kRmxvYXRzKExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3Rh
dGUsIGJvb2wgaGFzSW5saQogICAgIC8vIGRldGVybWluZVN0YXJ0UG9zaXRpb24gY2FuIGNoYW5n
ZSB0aGUgZnVsbExheW91dCBmbGFnIHdlIGhhdmUgdG8gZG8gdGhpcyBoZXJlLiBGYWlsdXJlIHRv
IGNhbGwKICAgICAvLyBkZXRlcm1pbmVTdGFydFBvc2l0aW9uIGZpcnN0IHdpbGwgYnJlYWsgZmFz
dC9yZXBhaW50L2xpbmUtZmxvdy13aXRoLWZsb2F0cy05Lmh0bWwuCiAgICAgaWYgKGxheW91dFN0
YXRlLmlzRnVsbExheW91dCgpICYmIGhhc0lubGluZUNoaWxkICYmICFzZWxmTmVlZHNMYXlvdXQo
KSkgewotICAgICAgICBzZXROZWVkc0xheW91dChNYXJrT25seVRoaXMpOyAvLyBNYXJrIGFzIG5l
ZWRpbmcgYSBmdWxsIGxheW91dCB0byBmb3JjZSB1cyB0byByZXBhaW50LgorICAgICAgICBzZXRO
ZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMpOyAvLyBNYXJrIGFzIG5lZWRpbmcgYSBmdWxs
IGxheW91dCB0byBmb3JjZSB1cyB0byByZXBhaW50LgogICAgICAgICBpZiAoIXZpZXcoKS5kb2lu
Z0Z1bGxSZXBhaW50KCkgJiYgaGFzTGF5ZXIoKSkgewogICAgICAgICAgICAgLy8gQmVjYXVzZSB3
ZSB3YWl0ZWQgdW50aWwgd2Ugd2VyZSBhbHJlYWR5IGluc2lkZSBsYXlvdXQgdG8gZGlzY292ZXIK
ICAgICAgICAgICAgIC8vIHRoYXQgdGhlIGJsb2NrIHJlYWxseSBuZWVkZWQgYSBmdWxsIGxheW91
dCwgd2UgbWlzc2VkIG91ciBjaGFuY2UgdG8gcmVwYWludCB0aGUgbGF5ZXIKQEAgLTE4NjYsNyAr
MTg2Niw3IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRJbmxpbmVDaGlsZHJlbihib29s
IHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQmIHJlCiAgICAgICAgICAgICAgICAgUmVuZGVy
Qm94KiBib3ggPSB0b1JlbmRlckJveChvKTsKIAogICAgICAgICAgICAgICAgIGlmIChyZWxheW91
dENoaWxkcmVuIHx8IGJveC0+aGFzUmVsYXRpdmVEaW1lbnNpb25zKCkpCi0gICAgICAgICAgICAg
ICAgICAgIGJveC0+c2V0Q2hpbGROZWVkc0xheW91dChNYXJrT25seVRoaXMpOworICAgICAgICAg
ICAgICAgICAgICBvLT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7CiAK
ICAgICAgICAgICAgICAgICAvLyBJZiByZWxheW91dENoaWxkcmVuIGlzIHNldCBhbmQgdGhlIGNo
aWxkIGhhcyBwZXJjZW50YWdlIHBhZGRpbmcgb3IgYW4gZW1iZWRkZWQgY29udGVudCBib3gsIHdl
IGFsc28gbmVlZCB0byBpbnZhbGlkYXRlIHRoZSBjaGlsZHMgcHJlZiB3aWR0aHMuCiAgICAgICAg
ICAgICAgICAgaWYgKHJlbGF5b3V0Q2hpbGRyZW4gJiYgYm94LT5uZWVkc1ByZWZlcnJlZFdpZHRo
c1JlY2FsY3VsYXRpb24oKSkKQEAgLTE4ODksNyArMTg4OSw3IEBAIHZvaWQgUmVuZGVyQmxvY2tG
bG93OjpsYXlvdXRJbmxpbmVDaGlsZHJlbihib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVu
aXQmIHJlCiAgICAgICAgICAgICAgICAgICAgIHRvUmVuZGVySW5saW5lKG8pLT51cGRhdGVBbHdh
eXNDcmVhdGVMaW5lQm94ZXMobGF5b3V0U3RhdGUuaXNGdWxsTGF5b3V0KCkpOwogICAgICAgICAg
ICAgICAgIGlmIChsYXlvdXRTdGF0ZS5pc0Z1bGxMYXlvdXQoKSB8fCBvLT5zZWxmTmVlZHNMYXlv
dXQoKSkKICAgICAgICAgICAgICAgICAgICAgZGlydHlMaW5lQm94ZXNGb3JSZW5kZXJlcihvLCBs
YXlvdXRTdGF0ZS5pc0Z1bGxMYXlvdXQoKSk7Ci0gICAgICAgICAgICAgICAgby0+Y2xlYXJOZWVk
c0xheW91dCgpOworICAgICAgICAgICAgICAgIG8tPnNldE5lZWRzTGF5b3V0KGZhbHNlKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogCkBAIC0zNDUwLDcgKzM0NTAsNyBAQCBib29sIFJlbmRl
ckJsb2NrOjpwb3NpdGlvbk5ld0Zsb2F0T25MaW5lKEZsb2F0aW5nT2JqZWN0KiBuZXdGbG9hdCwg
RmxvYXRpbmdPYmplYwogICAgICAgICAgICAgUmVuZGVyQm94KiBvID0gJmYtPnJlbmRlcmVyKCk7
CiAgICAgICAgICAgICBzZXRMb2dpY2FsVG9wRm9yQ2hpbGQobywgbG9naWNhbFRvcEZvckNoaWxk
KG8pICsgbWFyZ2luQmVmb3JlRm9yQ2hpbGQobykgKyBwYWdpbmF0aW9uU3RydXQpOwogICAgICAg
ICAgICAgaWYgKG8tPmlzUmVuZGVyQmxvY2soKSkKLSAgICAgICAgICAgICAgICB0b1JlbmRlckJs
b2NrKG8pLT5zZXRDaGlsZE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7CisgICAgICAgICAgICAg
ICAgdG9SZW5kZXJCbG9jayhvKS0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRo
aXMpOwogICAgICAgICAgICAgby0+bGF5b3V0SWZOZWVkZWQoKTsKICAgICAgICAgICAgIC8vIFNh
dmUgdGhlIG9sZCBsb2dpY2FsIHRvcCBiZWZvcmUgY2FsbGluZyByZW1vdmVQbGFjZWRPYmplY3Qg
d2hpY2ggd2lsbCBzZXQKICAgICAgICAgICAgIC8vIGlzUGxhY2VkIHRvIGZhbHNlLiBPdGhlcndp
c2UgaXQgd2lsbCB0cmlnZ2VyIGFuIGFzc2VydCBpbiBsb2dpY2FsVG9wRm9yRmxvYXQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDc3MDNiZjdmNGM1ZmY1MzMzYjAz
ZmRkZTAwN2Q4MmNjMzRjZDFhZDMuLjJlYTNkYWM2ZTFjNDM1NDM4ODIxNGU4NmEzY2VlOWYyNzE5
M2I5MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC0yODMsNyAr
MjgzLDcgQEAgdm9pZCBSZW5kZXJCb3g6OnN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2Ug
ZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWwKICAgICAgICAgICAgIGlmIChvbGRTdHls
ZS0+cG9zaXRpb24oKSA9PSBTdGF0aWNQb3NpdGlvbikKICAgICAgICAgICAgICAgICByZXBhaW50
KCk7CiAgICAgICAgICAgICBlbHNlIGlmIChuZXdTdHlsZS0+aGFzT3V0T2ZGbG93UG9zaXRpb24o
KSkKLSAgICAgICAgICAgICAgICBwYXJlbnQoKS0+c2V0Q2hpbGROZWVkc0xheW91dCgpOworICAg
ICAgICAgICAgICAgIHBhcmVudCgpLT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUpOwogICAgICAg
ICAgICAgaWYgKGlzRmxvYXRpbmcoKSAmJiAhaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgJiYgbmV3
U3R5bGUtPmhhc091dE9mRmxvd1Bvc2l0aW9uKCkpCiAgICAgICAgICAgICAgICAgcmVtb3ZlRmxv
YXRpbmdPclBvc2l0aW9uZWRDaGlsZEZyb21CbG9ja0xpc3RzKCk7CiAgICAgICAgIH0KQEAgLTMx
MSw3ICszMTEsNyBAQCB2b2lkIFJlbmRlckJveDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJl
bmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZQogICAgICAgICAvLyB0byBkZXRl
cm1pbmUgdGhlIG5ldyBzdGF0aWMgcG9zaXRpb24uCiAgICAgICAgIGlmIChpc091dE9mRmxvd1Bv
c2l0aW9uZWQoKSAmJiBuZXdTdHlsZS0+aGFzU3RhdGljQmxvY2tQb3NpdGlvbihpc0hvcml6b250
YWxXcml0aW5nTW9kZSgpKSAmJiBvbGRTdHlsZS0+bWFyZ2luQmVmb3JlKCkgIT0gbmV3U3R5bGUt
Pm1hcmdpbkJlZm9yZSgpCiAgICAgICAgICAgICAmJiBwYXJlbnQoKSAmJiAhcGFyZW50KCktPm5v
cm1hbENoaWxkTmVlZHNMYXlvdXQoKSkKLSAgICAgICAgICAgIHBhcmVudCgpLT5zZXRDaGlsZE5l
ZWRzTGF5b3V0KCk7CisgICAgICAgICAgICBwYXJlbnQoKS0+c2V0Q2hpbGROZWVkc0xheW91dCh0
cnVlKTsKICAgICB9CiAKICAgICBpZiAoUmVuZGVyQmxvY2s6Omhhc1BlcmNlbnRIZWlnaHRDb250
YWluZXJNYXAoKSAmJiBmaXJzdENoaWxkKCkKQEAgLTQ1MCw3ICs0NTAsNyBAQCB2b2lkIFJlbmRl
ckJveDo6bGF5b3V0KCkKIAogICAgIFJlbmRlck9iamVjdCogY2hpbGQgPSBmaXJzdENoaWxkKCk7
CiAgICAgaWYgKCFjaGlsZCkgewotICAgICAgICBjbGVhck5lZWRzTGF5b3V0KCk7CisgICAgICAg
IHNldE5lZWRzTGF5b3V0KGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNDYy
LDcgKzQ2Miw3IEBAIHZvaWQgUmVuZGVyQm94OjpsYXlvdXQoKQogICAgIH0KICAgICBzdGF0ZVB1
c2hlci5wb3AoKTsKICAgICBpbnZhbGlkYXRlQmFja2dyb3VuZE9ic2N1cmF0aW9uU3RhdHVzKCk7
Ci0gICAgY2xlYXJOZWVkc0xheW91dCgpOworICAgIHNldE5lZWRzTGF5b3V0KGZhbHNlKTsKIH0K
IAogLy8gTW9yZSBJRSBleHRlbnNpb25zLiAgY2xpZW50V2lkdGggYW5kIGNsaWVudEhlaWdodCBy
ZXByZXNlbnQgdGhlIGludGVyaW9yIG9mIGFuIG9iamVjdApAQCAtMTk2Miw3ICsxOTYyLDcgQEAg
dm9pZCBSZW5kZXJCb3g6OnBvc2l0aW9uTGluZUJveChJbmxpbmVCb3gqIGJveCkKICAgICAgICAg
ICAgIFJvb3RJbmxpbmVCb3gmIHJvb3RCb3ggPSBib3gtPnJvb3QoKTsKICAgICAgICAgICAgIHJv
b3RCb3guYmxvY2soKS5zZXRTdGF0aWNJbmxpbmVQb3NpdGlvbkZvckNoaWxkKHRoaXMsIHJvb3RC
b3gubGluZVRvcFdpdGhMZWFkaW5nKCksIHJvdW5kZWRMYXlvdXRVbml0KGJveC0+bG9naWNhbExl
ZnQoKSkpOwogICAgICAgICAgICAgaWYgKHN0eWxlKCktPmhhc1N0YXRpY0lubGluZVBvc2l0aW9u
KGJveC0+aXNIb3Jpem9udGFsKCkpKQotICAgICAgICAgICAgICAgIHNldENoaWxkTmVlZHNMYXlv
dXQoTWFya09ubHlUaGlzKTsgLy8gSnVzdCBnbyBhaGVhZCBhbmQgbWFyayB0aGUgcG9zaXRpb25l
ZCBvYmplY3QgYXMgbmVlZGluZyBsYXlvdXQsIHNvIGl0IHdpbGwgdXBkYXRlIGl0cyBwb3NpdGlv
biBwcm9wZXJseS4KKyAgICAgICAgICAgICAgICBzZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1h
cmtPbmx5VGhpcyk7IC8vIEp1c3QgZ28gYWhlYWQgYW5kIG1hcmsgdGhlIHBvc2l0aW9uZWQgb2Jq
ZWN0IGFzIG5lZWRpbmcgbGF5b3V0LCBzbyBpdCB3aWxsIHVwZGF0ZSBpdHMgcG9zaXRpb24gcHJv
cGVybHkuCiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBPdXIgb2JqZWN0IHdhcyBh
IGJsb2NrIG9yaWdpbmFsbHksIHNvIHdlIG1ha2Ugb3VyIG5vcm1hbCBmbG93IHBvc2l0aW9uIGJl
CiAgICAgICAgICAgICAvLyBqdXN0IGJlbG93IHRoZSBsaW5lIGJveCAoYXMgdGhvdWdoIGFsbCB0
aGUgaW5saW5lcyB0aGF0IGNhbWUgYmVmb3JlIHVzIGdvdApAQCAtMTk3MCw3ICsxOTcwLDcgQEAg
dm9pZCBSZW5kZXJCb3g6OnBvc2l0aW9uTGluZUJveChJbmxpbmVCb3gqIGJveCkKICAgICAgICAg
ICAgIC8vIGluIGZsb3cpLiAgVGhpcyB2YWx1ZSB3YXMgY2FjaGVkIGluIHRoZSB5KCkgb2YgdGhl
IGJveC4KICAgICAgICAgICAgIGxheWVyKCktPnNldFN0YXRpY0Jsb2NrUG9zaXRpb24oYm94LT5s
b2dpY2FsVG9wKCkpOwogICAgICAgICAgICAgaWYgKHN0eWxlKCktPmhhc1N0YXRpY0Jsb2NrUG9z
aXRpb24oYm94LT5pc0hvcml6b250YWwoKSkpCi0gICAgICAgICAgICAgICAgc2V0Q2hpbGROZWVk
c0xheW91dChNYXJrT25seVRoaXMpOyAvLyBKdXN0IGdvIGFoZWFkIGFuZCBtYXJrIHRoZSBwb3Np
dGlvbmVkIG9iamVjdCBhcyBuZWVkaW5nIGxheW91dCwgc28gaXQgd2lsbCB1cGRhdGUgaXRzIHBv
c2l0aW9uIHByb3Blcmx5LgorICAgICAgICAgICAgICAgIHNldENoaWxkTmVlZHNMYXlvdXQodHJ1
ZSwgTWFya09ubHlUaGlzKTsgLy8gSnVzdCBnbyBhaGVhZCBhbmQgbWFyayB0aGUgcG9zaXRpb25l
ZCBvYmplY3QgYXMgbmVlZGluZyBsYXlvdXQsIHNvIGl0IHdpbGwgdXBkYXRlIGl0cyBwb3NpdGlv
biBwcm9wZXJseS4KICAgICAgICAgfQogCiAgICAgICAgIC8vIE51a2UgdGhlIGJveC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveC5jcHAKaW5kZXggMjhiYzEzMDBlNzJmNjliMjRiNTU0MWNiZjIxYjEzZDJhMTcyNTA1MS4u
NWNkYzE2YTQxODJlYTk4NzNiMThiMjRhMjE3NGIzYzk1N2UyZTQ3NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5j
cHAKQEAgLTM1MSw3ICszNTEsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6
bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogICAgIC8vIFJl
cGFpbnQgd2l0aCBvdXIgbmV3IGJvdW5kcyBpZiB0aGV5IGFyZSBkaWZmZXJlbnQgZnJvbSBvdXIg
b2xkIGJvdW5kcy4KICAgICByZXBhaW50ZXIucmVwYWludEFmdGVyTGF5b3V0KCk7CiAKLSAgICBj
bGVhck5lZWRzTGF5b3V0KCk7CisgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQogCiAvLyBU
aGUgZmlyc3Qgd2FsayBvdmVyIG91ciBraWRzIGlzIHRvIGZpbmQgb3V0IGlmIHdlIGhhdmUgYW55
IGZsZXhpYmxlIGNoaWxkcmVuLgpAQCAtMzY0LDcgKzM2NCw3IEBAIHN0YXRpYyB2b2lkIGdhdGhl
ckZsZXhDaGlsZHJlbkluZm8oRmxleEJveEl0ZXJhdG9yJiBpdGVyYXRvciwgYm9vbCByZWxheW91
dENoaWxkCiAgICAgICAgICAgICAvLyBtYXkgaGF2ZSBjaGFuZ2VkLCBhbmQgd2UgbmVlZCB0byBy
ZWFsbG9jYXRlIHNwYWNlLgogICAgICAgICAgICAgY2hpbGQtPmNsZWFyT3ZlcnJpZGVTaXplKCk7
CiAgICAgICAgICAgICBpZiAoIXJlbGF5b3V0Q2hpbGRyZW4pCi0gICAgICAgICAgICAgICAgY2hp
bGQtPnNldENoaWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICAgICAgICAgICAgICBj
aGlsZC0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMpOwogICAgICAgICAg
ICAgaGF2ZUZsZXggPSB0cnVlOwogICAgICAgICAgICAgdW5zaWduZWQgaW50IGZsZXhHcm91cCA9
IGNoaWxkLT5zdHlsZSgpLT5ib3hGbGV4R3JvdXAoKTsKICAgICAgICAgICAgIGlmIChsb3dlc3RG
bGV4R3JvdXAgPT0gMCkKQEAgLTQyNSw3ICs0MjUsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRG
bGV4aWJsZUJveDo6bGF5b3V0SG9yaXpvbnRhbEJveChib29sIHJlbGF5b3V0Q2hpbGRyZW4pCiAg
ICAgICAgIExheW91dFVuaXQgbWF4QXNjZW50ID0gMCwgbWF4RGVzY2VudCA9IDA7CiAgICAgICAg
IGZvciAoUmVuZGVyQm94KiBjaGlsZCA9IGl0ZXJhdG9yLmZpcnN0KCk7IGNoaWxkOyBjaGlsZCA9
IGl0ZXJhdG9yLm5leHQoKSkgewogICAgICAgICAgICAgaWYgKHJlbGF5b3V0Q2hpbGRyZW4pCi0g
ICAgICAgICAgICAgICAgY2hpbGQtPnNldENoaWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsK
KyAgICAgICAgICAgICAgICBjaGlsZC0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlLCBNYXJrT25s
eVRoaXMpOwogCiAgICAgICAgICAgICBpZiAoY2hpbGQtPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgp
KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNDg5LDcgKzQ4OSw3IEBAIHZvaWQgUmVu
ZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRIb3Jpem9udGFsQm94KGJvb2wgcmVsYXlv
dXRDaGlsZHJlbikKICAgICAgICAgICAgICAgICBpZiAoY2hpbGRMYXllci0+c3RhdGljQmxvY2tQ
b3NpdGlvbigpICE9IHlQb3MpIHsKICAgICAgICAgICAgICAgICAgICAgY2hpbGRMYXllci0+c2V0
U3RhdGljQmxvY2tQb3NpdGlvbih5UG9zKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxk
LT5zdHlsZSgpLT5oYXNTdGF0aWNCbG9ja1Bvc2l0aW9uKHN0eWxlKCktPmlzSG9yaXpvbnRhbFdy
aXRpbmdNb2RlKCkpKQotICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGQtPnNldENoaWxkTmVl
ZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkLT5z
ZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQpAQCAtNTA5LDcgKzUw
OSw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRIb3Jpem9udGFs
Qm94KGJvb2wgcmVsYXlvdXRDaGlsZHJlbikKICAgICAgICAgICAgIExheW91dFVuaXQgb2xkQ2hp
bGRIZWlnaHQgPSBjaGlsZC0+aGVpZ2h0KCk7CiAgICAgICAgICAgICBjaGlsZC0+dXBkYXRlTG9n
aWNhbEhlaWdodCgpOwogICAgICAgICAgICAgaWYgKG9sZENoaWxkSGVpZ2h0ICE9IGNoaWxkLT5o
ZWlnaHQoKSkKLSAgICAgICAgICAgICAgICBjaGlsZC0+c2V0Q2hpbGROZWVkc0xheW91dChNYXJr
T25seVRoaXMpOworICAgICAgICAgICAgICAgIGNoaWxkLT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRy
dWUsIE1hcmtPbmx5VGhpcyk7CiAKICAgICAgICAgICAgIGlmICghY2hpbGQtPm5lZWRzTGF5b3V0
KCkpCiAgICAgICAgICAgICAgICAgY2hpbGQtPm1hcmtGb3JQYWdpbmF0aW9uUmVsYXlvdXRJZk5l
ZWRlZCgpOwpAQCAtNzI3LDcgKzcyNyw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxl
Qm94OjpsYXlvdXRWZXJ0aWNhbEJveChib29sIHJlbGF5b3V0Q2hpbGRyZW4pCiAgICAgICAgIGZv
ciAoUmVuZGVyQm94KiBjaGlsZCA9IGl0ZXJhdG9yLmZpcnN0KCk7IGNoaWxkOyBjaGlsZCA9IGl0
ZXJhdG9yLm5leHQoKSkgewogICAgICAgICAgICAgLy8gTWFrZSBzdXJlIHdlIHJlbGF5b3V0IGNo
aWxkcmVuIGlmIHdlIG5lZWQgaXQuCiAgICAgICAgICAgICBpZiAoIWhhdmVMaW5lQ2xhbXAgJiYg
cmVsYXlvdXRDaGlsZHJlbikKLSAgICAgICAgICAgICAgICBjaGlsZC0+c2V0Q2hpbGROZWVkc0xh
eW91dChNYXJrT25seVRoaXMpOworICAgICAgICAgICAgICAgIGNoaWxkLT5zZXRDaGlsZE5lZWRz
TGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7CiAKICAgICAgICAgICAgIGlmIChjaGlsZC0+aXNP
dXRPZkZsb3dQb3NpdGlvbmVkKCkpIHsKICAgICAgICAgICAgICAgICBjaGlsZC0+Y29udGFpbmlu
Z0Jsb2NrKCktPmluc2VydFBvc2l0aW9uZWRPYmplY3QoY2hpbGQpOwpAQCAtNzM2LDcgKzczNiw3
IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRWZXJ0aWNhbEJveChi
b29sIHJlbGF5b3V0Q2hpbGRyZW4pCiAgICAgICAgICAgICAgICAgaWYgKGNoaWxkTGF5ZXItPnN0
YXRpY0Jsb2NrUG9zaXRpb24oKSAhPSBoZWlnaHQoKSkgewogICAgICAgICAgICAgICAgICAgICBj
aGlsZExheWVyLT5zZXRTdGF0aWNCbG9ja1Bvc2l0aW9uKGhlaWdodCgpKTsKICAgICAgICAgICAg
ICAgICAgICAgaWYgKGNoaWxkLT5zdHlsZSgpLT5oYXNTdGF0aWNCbG9ja1Bvc2l0aW9uKHN0eWxl
KCktPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpKQotICAgICAgICAgICAgICAgICAgICAgICAg
Y2hpbGQtPnNldENoaWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNoaWxkLT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAg
ICAgfQpAQCAtOTU1LDcgKzk1NSw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94
OjphcHBseUxpbmVDbGFtcChGbGV4Qm94SXRlcmF0b3ImIGl0ZXJhdG9yLCBib29sCiAgICAgICAg
IGNoaWxkLT5jbGVhck92ZXJyaWRlU2l6ZSgpOwogICAgICAgICBpZiAocmVsYXlvdXRDaGlsZHJl
biB8fCAoY2hpbGQtPmlzUmVwbGFjZWQoKSAmJiAoY2hpbGQtPnN0eWxlKCktPndpZHRoKCkuaXNQ
ZXJjZW50KCkgfHwgY2hpbGQtPnN0eWxlKCktPmhlaWdodCgpLmlzUGVyY2VudCgpKSkKICAgICAg
ICAgICAgIHx8IChjaGlsZC0+c3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkgJiYgY2hpbGQtPmlz
UmVuZGVyQmxvY2soKSkpIHsKLSAgICAgICAgICAgIGNoaWxkLT5zZXRDaGlsZE5lZWRzTGF5b3V0
KE1hcmtPbmx5VGhpcyk7CisgICAgICAgICAgICBjaGlsZC0+c2V0Q2hpbGROZWVkc0xheW91dCh0
cnVlLCBNYXJrT25seVRoaXMpOwogCiAgICAgICAgICAgICAvLyBEaXJ0eSBhbGwgdGhlIHBvc2l0
aW9uZWQgb2JqZWN0cy4KICAgICAgICAgICAgIGlmIChjaGlsZC0+aXNSZW5kZXJCbG9jaygpKSB7
CkBAIC05ODgsNyArOTg4LDcgQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmFw
cGx5TGluZUNsYW1wKEZsZXhCb3hJdGVyYXRvciYgaXRlcmF0b3IsIGJvb2wKICAgICAgICAgaWYg
KG5ld0hlaWdodCA9PSBjaGlsZC0+aGVpZ2h0KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAot
ICAgICAgICBjaGlsZC0+c2V0Q2hpbGROZWVkc0xheW91dChNYXJrT25seVRoaXMpOworICAgICAg
ICBjaGlsZC0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMpOwogICAgICAg
ICBjaGlsZC0+c2V0T3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodChuZXdIZWlnaHQgLSBjaGls
ZC0+Ym9yZGVyQW5kUGFkZGluZ0hlaWdodCgpKTsKICAgICAgICAgY2hpbGQtPmxheW91dElmTmVl
ZGVkKCk7CiAKQEAgLTEwNTUsNyArMTA1NSw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhp
YmxlQm94OjpjbGVhckxpbmVDbGFtcCgpCiAgICAgICAgIGNoaWxkLT5jbGVhck92ZXJyaWRlU2l6
ZSgpOwogICAgICAgICBpZiAoKGNoaWxkLT5pc1JlcGxhY2VkKCkgJiYgKGNoaWxkLT5zdHlsZSgp
LT53aWR0aCgpLmlzUGVyY2VudCgpIHx8IGNoaWxkLT5zdHlsZSgpLT5oZWlnaHQoKS5pc1BlcmNl
bnQoKSkpCiAgICAgICAgICAgICB8fCAoY2hpbGQtPnN0eWxlKCktPmhlaWdodCgpLmlzQXV0bygp
ICYmIGNoaWxkLT5pc1JlbmRlckJsb2NrKCkpKSB7Ci0gICAgICAgICAgICBjaGlsZC0+c2V0Q2hp
bGROZWVkc0xheW91dCgpOworICAgICAgICAgICAgY2hpbGQtPnNldENoaWxkTmVlZHNMYXlvdXQo
dHJ1ZSk7CiAKICAgICAgICAgICAgIGlmIChjaGlsZC0+aXNSZW5kZXJCbG9jaygpKSB7CiAgICAg
ICAgICAgICAgICAgdG9SZW5kZXJCbG9jayhjaGlsZCktPm1hcmtQb3NpdGlvbmVkT2JqZWN0c0Zv
ckxheW91dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmlu
ZGV4IDEyYzMyNjlkNzg1ZTYwYzY0MTIzMzBiZjI0Y2JlZmExNzAxMDA4NGEuLmNhNWM1MTYyODcz
MGMyNTA2OTIwZmM5ZmJjMmU4NzU1NDM1NzQ4MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTU1OCw3ICs1NTgsNyBAQCB2b2lkIFJlbmRlckVsZW1l
bnQ6Omluc2VydENoaWxkSW50ZXJuYWwoUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCwgUmVuZGVyT2Jq
ZWN0KiBiZQogICAgIG5ld0NoaWxkLT5zZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMo
KTsKICAgICBzZXRQcmVmZXJyZWRMb2dpY2FsV2lkdGhzRGlydHkodHJ1ZSk7CiAgICAgaWYgKCFu
b3JtYWxDaGlsZE5lZWRzTGF5b3V0KCkpCi0gICAgICAgIHNldENoaWxkTmVlZHNMYXlvdXQoKTsg
Ly8gV2UgbWF5IHN1cHBseSB0aGUgc3RhdGljIHBvc2l0aW9uIGZvciBhbiBhYnNvbHV0ZSBwb3Np
dGlvbmVkIGNoaWxkLgorICAgICAgICBzZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUpOyAvLyBXZSBt
YXkgc3VwcGx5IHRoZSBzdGF0aWMgcG9zaXRpb24gZm9yIGFuIGFic29sdXRlIHBvc2l0aW9uZWQg
Y2hpbGQuCiAKICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmF4T2Jq
ZWN0Q2FjaGUoKSkKICAgICAgICAgY2FjaGUtPmNoaWxkcmVuQ2hhbmdlZCh0aGlzKTsKQEAgLTk5
NSw0MSArOTk1LDYgQEAgdm9pZCBSZW5kZXJFbGVtZW50Ojp3aWxsQmVEZXN0cm95ZWQoKQogICAg
IFJlbmRlck9iamVjdDo6d2lsbEJlRGVzdHJveWVkKCk7CiB9CiAKLXZvaWQgUmVuZGVyRWxlbWVu
dDo6c2V0TmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoY29uc3QgUmVuZGVyU3R5bGUqIG9s
ZFN0eWxlKQotewotICAgIEFTU0VSVCghaXNTZXROZWVkc0xheW91dEZvcmJpZGRlbigpKTsKLSAg
ICBpZiAobmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoKSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIHNldE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0Qml0KHRydWUpOwotICAgIG1hcmtD
b250YWluaW5nQmxvY2tzRm9yTGF5b3V0KCk7Ci0gICAgaWYgKCFoYXNMYXllcigpKSB7Ci0gICAg
ICAgIGlmIChvbGRTdHlsZSAmJiBzdHlsZSgpLT5kaWZmUmVxdWlyZXNSZXBhaW50KG9sZFN0eWxl
KSkKLSAgICAgICAgICAgIHNldExheWVyTmVlZHNGdWxsUmVwYWludCgpOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBzZXRMYXllck5lZWRzRnVsbFJlcGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1l
bnRMYXlvdXQoKTsKLSAgICB9Ci19Ci0KLXZvaWQgUmVuZGVyRWxlbWVudDo6Y2xlYXJDaGlsZE5l
ZWRzTGF5b3V0KCkKLXsKLSAgICBzZXROb3JtYWxDaGlsZE5lZWRzTGF5b3V0Qml0KGZhbHNlKTsK
LSAgICBzZXRQb3NDaGlsZE5lZWRzTGF5b3V0Qml0KGZhbHNlKTsKLSAgICBzZXROZWVkc1NpbXBs
aWZpZWROb3JtYWxGbG93TGF5b3V0Qml0KGZhbHNlKTsKLSAgICBzZXROb3JtYWxDaGlsZE5lZWRz
TGF5b3V0Qml0KGZhbHNlKTsKLSAgICBzZXROZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dEJp
dChmYWxzZSk7Ci19Ci0KLXZvaWQgUmVuZGVyRWxlbWVudDo6c2V0TmVlZHNTaW1wbGlmaWVkTm9y
bWFsRmxvd0xheW91dCgpCi17Ci0gICAgQVNTRVJUKCFpc1NldE5lZWRzTGF5b3V0Rm9yYmlkZGVu
KCkpOwotICAgIGlmIChuZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0KCkpCi0gICAgICAg
IHJldHVybjsKLSAgICBzZXROZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0Qml0KHRydWUp
OwotICAgIG1hcmtDb250YWluaW5nQmxvY2tzRm9yTGF5b3V0KCk7Ci0gICAgaWYgKGhhc0xheWVy
KCkpCi0gICAgICAgIHNldExheWVyTmVlZHNGdWxsUmVwYWludCgpOwotfQotCiBSZW5kZXJFbGVt
ZW50KiBSZW5kZXJFbGVtZW50OjpyZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5kKCkKIHsKICAgICBB
U1NFUlQoaXNSb290KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgK
aW5kZXggMWZjNThiMDhjZjkzZmFkMDM0MWUwYzdlY2U3MjkxM2YwODIwNGM2Ni4uNWRkMzdiZjFi
MWZmM2RlNmYyOGMzZThhMjdjMmQzNzRiMTFmYTMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRWxlbWVudC5oCkBAIC04MiwxMSArODIsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBh
bmNlc3RvckxpbmVCb3hEaXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYW5jZXN0b3JMaW5lQm94RGly
dHk7IH0KICAgICB2b2lkIHNldEFuY2VzdG9yTGluZUJveERpcnR5KGJvb2wgZiA9IHRydWUpOwog
Ci0gICAgdm9pZCBzZXRDaGlsZE5lZWRzTGF5b3V0KE1hcmtpbmdCZWhhdmlvciA9IE1hcmtDb250
YWluaW5nQmxvY2tDaGFpbik7Ci0gICAgdm9pZCBjbGVhckNoaWxkTmVlZHNMYXlvdXQoKTsKLSAg
ICB2b2lkIHNldE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KGNvbnN0IFJlbmRlclN0eWxl
KiBvbGRTdHlsZSk7Ci0gICAgdm9pZCBzZXROZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0
KCk7Ci0KICAgICAvLyBSZXR1cm4gdGhlIHJlbmRlcmVyIHdob3NlIGJhY2tncm91bmQgc3R5bGUg
aXMgdXNlZCB0byBwYWludCB0aGUgcm9vdCBiYWNrZ3JvdW5kLiBTaG91bGQgb25seSBiZSBjYWxs
ZWQgb24gdGhlIHJlbmRlcmVyIGZvciB3aGljaCBpc1Jvb3QoKSBpcyB0cnVlLgogICAgIFJlbmRl
ckVsZW1lbnQqIHJlbmRlcmVyRm9yUm9vdEJhY2tncm91bmQoKTsKIApAQCAtMTc0LDE3ICsxNjks
NyBAQCBpbmxpbmUgdm9pZCBSZW5kZXJFbGVtZW50OjpzZXRBbmNlc3RvckxpbmVCb3hEaXJ0eShi
b29sIGYpCiB7CiAgICAgbV9hbmNlc3RvckxpbmVCb3hEaXJ0eSA9IGY7CiAgICAgaWYgKG1fYW5j
ZXN0b3JMaW5lQm94RGlydHkpCi0gICAgICAgIHNldE5lZWRzTGF5b3V0KCk7Ci19Ci0KLWlubGlu
ZSB2b2lkIFJlbmRlckVsZW1lbnQ6OnNldENoaWxkTmVlZHNMYXlvdXQoTWFya2luZ0JlaGF2aW9y
IG1hcmtQYXJlbnRzKQotewotICAgIEFTU0VSVCghaXNTZXROZWVkc0xheW91dEZvcmJpZGRlbigp
KTsKLSAgICBpZiAobm9ybWFsQ2hpbGROZWVkc0xheW91dCgpKQotICAgICAgICByZXR1cm47Ci0g
ICAgc2V0Tm9ybWFsQ2hpbGROZWVkc0xheW91dEJpdCh0cnVlKTsKLSAgICBpZiAobWFya1BhcmVu
dHMgPT0gTWFya0NvbnRhaW5pbmdCbG9ja0NoYWluKQotICAgICAgICBtYXJrQ29udGFpbmluZ0Js
b2Nrc0ZvckxheW91dCgpOworICAgICAgICBzZXROZWVkc0xheW91dCh0cnVlKTsKIH0KIAogaW5s
aW5lIExheW91dFVuaXQgUmVuZGVyRWxlbWVudDo6dmFsdWVGb3JMZW5ndGgoY29uc3QgTGVuZ3Ro
JiBsZW5ndGgsIExheW91dFVuaXQgbWF4aW11bVZhbHVlLCBib29sIHJvdW5kUGVyY2VudGFnZXMp
IGNvbnN0CkBAIC0yOTksNiArMjg0LDMyIEBAIGlubGluZSBSZW5kZXJTdHlsZSogUmVuZGVyT2Jq
ZWN0OjpmaXJzdExpbmVTdHlsZSgpIGNvbnN0CiAgICAgcmV0dXJuIHRvUmVuZGVyRWxlbWVudCh0
aGlzKS0+Zmlyc3RMaW5lU3R5bGUoKTsKIH0KIAoraW5saW5lIHZvaWQgUmVuZGVyT2JqZWN0Ojpz
ZXROZWVkc0xheW91dChib29sIG5lZWRzTGF5b3V0LCBNYXJraW5nQmVoYXZpb3IgbWFya1BhcmVu
dHMpCit7CisgICAgYm9vbCBhbHJlYWR5TmVlZGVkTGF5b3V0ID0gbV9iaXRmaWVsZHMubmVlZHNM
YXlvdXQoKTsKKyAgICBtX2JpdGZpZWxkcy5zZXROZWVkc0xheW91dChuZWVkc0xheW91dCk7Cisg
ICAgaWYgKG5lZWRzTGF5b3V0KSB7CisgICAgICAgIEFTU0VSVCghaXNTZXROZWVkc0xheW91dEZv
cmJpZGRlbigpKTsKKyAgICAgICAgaWYgKCFhbHJlYWR5TmVlZGVkTGF5b3V0KSB7CisgICAgICAg
ICAgICBpZiAobWFya1BhcmVudHMgPT0gTWFya0NvbnRhaW5pbmdCbG9ja0NoYWluKQorICAgICAg
ICAgICAgICAgIG1hcmtDb250YWluaW5nQmxvY2tzRm9yTGF5b3V0KCk7CisgICAgICAgICAgICBp
ZiAoaGFzTGF5ZXIoKSkKKyAgICAgICAgICAgICAgICBzZXRMYXllck5lZWRzRnVsbFJlcGFpbnQo
KTsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIHNldEV2ZXJIYWRMYXlvdXQodHJ1
ZSk7CisgICAgICAgIHNldFBvc0NoaWxkTmVlZHNMYXlvdXQoZmFsc2UpOworICAgICAgICBzZXRO
ZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0KGZhbHNlKTsKKyAgICAgICAgc2V0Tm9ybWFs
Q2hpbGROZWVkc0xheW91dChmYWxzZSk7CisgICAgICAgIHNldE5lZWRzUG9zaXRpb25lZE1vdmVt
ZW50TGF5b3V0KGZhbHNlKTsKKyAgICAgICAgaWYgKGlzUmVuZGVyRWxlbWVudCgpKQorICAgICAg
ICAgICAgdG9SZW5kZXJFbGVtZW50KHRoaXMpLT5zZXRBbmNlc3RvckxpbmVCb3hEaXJ0eShmYWxz
ZSk7CisjaWZuZGVmIE5ERUJVRworICAgICAgICBjaGVja0Jsb2NrUG9zaXRpb25lZE9iamVjdHNO
ZWVkTGF5b3V0KCk7CisjZW5kaWYKKyAgICB9Cit9CisKIGlubGluZSBSZW5kZXJFbGVtZW50KiBD
b250YWluZXJOb2RlOjpyZW5kZXJlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRvUmVuZGVyRWxl
bWVudChOb2RlOjpyZW5kZXJlcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCmluZGV4IGJkNzY3NGZkOGRiZmYwMTJiYWUwMDM3ZTY4
OTQ3MmIzMmFhMTJmYTguLjMzZTk1NGI5MzhhNjkwMmM3YWMyMjBlNjNlYjAyOGM0OGM5YThiM2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0
LmNwcApAQCAtNDc1LDcgKzQ3NSw3IEBAIHZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmxheW91
dCgpCiAgICAgICAgIHZpZXcoKS5mcmFtZVZpZXcoKS5hZGRFbWJlZGRlZE9iamVjdFRvVXBkYXRl
KCp0aGlzKTsKICAgICB9CiAKLSAgICBjbGVhck5lZWRzTGF5b3V0KCk7CisgICAgc2V0TmVlZHNM
YXlvdXQoZmFsc2UpOwogCiAgICAgTGF5b3V0U2l6ZSBuZXdTaXplID0gY29udGVudEJveFJlY3Qo
KS5zaXplKCk7CiAKQEAgLTUxNSw5ICs1MTUsOSBAQCB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0
OjpsYXlvdXQoKQogICAgIGNoaWxkQm94LT5zZXRMb2NhdGlvbihMYXlvdXRQb2ludChib3JkZXJM
ZWZ0KCksIGJvcmRlclRvcCgpKSArIExheW91dFNpemUocGFkZGluZ0xlZnQoKSwgcGFkZGluZ1Rv
cCgpKSk7CiAgICAgY2hpbGRCb3gtPnN0eWxlKCktPnNldEhlaWdodChMZW5ndGgobmV3U2l6ZS5o
ZWlnaHQoKSwgRml4ZWQpKTsKICAgICBjaGlsZEJveC0+c3R5bGUoKS0+c2V0V2lkdGgoTGVuZ3Ro
KG5ld1NpemUud2lkdGgoKSwgRml4ZWQpKTsKLSAgICBjaGlsZEJveC0+c2V0TmVlZHNMYXlvdXQo
TWFya09ubHlUaGlzKTsKKyAgICBjaGlsZEJveC0+c2V0TmVlZHNMYXlvdXQodHJ1ZSwgTWFya09u
bHlUaGlzKTsKICAgICBjaGlsZEJveC0+bGF5b3V0KCk7Ci0gICAgY2xlYXJDaGlsZE5lZWRzTGF5
b3V0KCk7CisgICAgc2V0Q2hpbGROZWVkc0xheW91dChmYWxzZSk7CiAgICAgCiAgICAgc3RhdGVQ
dXNoZXIucG9wKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmllbGRzZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZpZWxkc2V0
LmNwcAppbmRleCA5NTBhM2MwNjNkNDk4NmRmZTlmMTZmMDU1NGEzZDY1N2Q5OWQ3ZTNlLi5iY2Mz
MmJiODk5MTYzZjZmYjlmYjVhY2RhNmVjNmEwNDU3N2ZkYTQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmllbGRzZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgUmVuZGVyT2Jq
ZWN0KiBSZW5kZXJGaWVsZHNldDo6bGF5b3V0U3BlY2lhbEV4Y2x1ZGVkQ2hpbGQoYm9vbCByZWxh
eW91dENoaWxkcmVuKQogICAgIFJlbmRlckJveCogbGVnZW5kID0gZmluZExlZ2VuZCgpOwogICAg
IGlmIChsZWdlbmQpIHsKICAgICAgICAgaWYgKHJlbGF5b3V0Q2hpbGRyZW4pCi0gICAgICAgICAg
ICBsZWdlbmQtPnNldE5lZWRzTGF5b3V0KCk7CisgICAgICAgICAgICBsZWdlbmQtPnNldE5lZWRz
TGF5b3V0KHRydWUpOwogICAgICAgICBsZWdlbmQtPmxheW91dElmTmVlZGVkKCk7CiAKICAgICAg
ICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IDBmZDJhY2QxMTViYmZhYjNjMmRiZmE4ZGY1MmE1
ZGE4Y2RiMTljZTYuLjk0MGVjMmJmZmI3ZDM0MjYzYTIzMDZlNDE2NTBkMDkzN2Q4NGVmNmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApAQCAt
MzE2LDcgKzMxNiw3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OnN0eWxlRGlkQ2hhbmdlKFN0
eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSoKICAgICAgICAgZm9yIChSZW5k
ZXJCb3gqIGNoaWxkID0gZmlyc3RDaGlsZEJveCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4
dFNpYmxpbmdCb3goKSkgewogICAgICAgICAgICAgRUFsaWduSXRlbXMgcHJldmlvdXNBbGlnbm1l
bnQgPSByZXNvbHZlQWxpZ25tZW50KG9sZFN0eWxlLCBjaGlsZC0+c3R5bGUoKSk7CiAgICAgICAg
ICAgICBpZiAocHJldmlvdXNBbGlnbm1lbnQgPT0gQWxpZ25TdHJldGNoICYmIHByZXZpb3VzQWxp
Z25tZW50ICE9IHJlc29sdmVBbGlnbm1lbnQoc3R5bGUoKSwgY2hpbGQtPnN0eWxlKCkpKQotICAg
ICAgICAgICAgICAgIGNoaWxkLT5zZXRDaGlsZE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7Cisg
ICAgICAgICAgICAgICAgY2hpbGQtPnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlU
aGlzKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTM4NSw3ICszODUsNyBAQCB2b2lkIFJlbmRl
ckZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVu
aXQpCiAKICAgICByZXBhaW50ZXIucmVwYWludEFmdGVyTGF5b3V0KCk7CiAKLSAgICBjbGVhck5l
ZWRzTGF5b3V0KCk7CisgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQogCiB2b2lkIFJlbmRl
ckZsZXhpYmxlQm94OjphcHBlbmRDaGlsZEZyYW1lUmVjdHMoQ2hpbGRGcmFtZVJlY3RzJiBjaGls
ZEZyYW1lUmVjdHMpCkBAIC03NTEsNyArNzUxLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJGbGV4aWJs
ZUJveDo6cHJlZmVycmVkTWFpbkF4aXNDb250ZW50RXh0ZW50Rm9yQ2hpbGQoUmVuZGVyQm94Kgog
ICAgIGlmIChmbGV4QmFzaXMuaXNBdXRvKCkgfHwgKGZsZXhCYXNpcy5pc0ZpeGVkKCkgJiYgIWZs
ZXhCYXNpcy52YWx1ZSgpICYmIGhhc0luZmluaXRlTGluZUxlbmd0aCkpIHsKICAgICAgICAgaWYg
KGhhc09ydGhvZ29uYWxGbG93KGNoaWxkKSkgewogICAgICAgICAgICAgaWYgKGhhc092ZXJyaWRl
U2l6ZSkKLSAgICAgICAgICAgICAgICBjaGlsZC0+c2V0Q2hpbGROZWVkc0xheW91dChNYXJrT25s
eVRoaXMpOworICAgICAgICAgICAgICAgIGNoaWxkLT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUs
IE1hcmtPbmx5VGhpcyk7CiAgICAgICAgICAgICBjaGlsZC0+bGF5b3V0SWZOZWVkZWQoKTsKICAg
ICAgICAgfQogICAgICAgICBMYXlvdXRVbml0IG1haW5BeGlzRXh0ZW50ID0gaGFzT3J0aG9nb25h
bEZsb3coY2hpbGQpID8gY2hpbGQtPmxvZ2ljYWxIZWlnaHQoKSA6IGNoaWxkLT5tYXhQcmVmZXJy
ZWRMb2dpY2FsV2lkdGgoKTsKQEAgLTEwOTcsNyArMTA5Nyw3IEBAIHZvaWQgUmVuZGVyRmxleGli
bGVCb3g6OnByZXBhcmVDaGlsZEZvclBvc2l0aW9uZWRMYXlvdXQoUmVuZGVyQm94KiBjaGlsZCwg
TGF5b3V0CiAgICAgaWYgKGNoaWxkTGF5ZXItPnN0YXRpY0Jsb2NrUG9zaXRpb24oKSAhPSBzdGF0
aWNCbG9ja1Bvc2l0aW9uKSB7CiAgICAgICAgIGNoaWxkTGF5ZXItPnNldFN0YXRpY0Jsb2NrUG9z
aXRpb24oc3RhdGljQmxvY2tQb3NpdGlvbik7CiAgICAgICAgIGlmIChjaGlsZC0+c3R5bGUoKS0+
aGFzU3RhdGljQmxvY2tQb3NpdGlvbihzdHlsZSgpLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgp
KSkKLSAgICAgICAgICAgIGNoaWxkLT5zZXRDaGlsZE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7
CisgICAgICAgICAgICBjaGlsZC0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRo
aXMpOwogICAgIH0KIH0KIApAQCAtMTE3MSw3ICsxMTcxLDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJs
ZUJveDo6bGF5b3V0QW5kUGxhY2VDaGlsZHJlbihMYXlvdXRVbml0JiBjcm9zc0F4aXNPZmZzZXQs
IGNvbnMKICAgICAgICAgc2V0TG9naWNhbE92ZXJyaWRlU2l6ZShjaGlsZCwgY2hpbGRQcmVmZXJy
ZWRTaXplKTsKICAgICAgICAgLy8gRklYTUU6IENhbiBhdm9pZCBsYXlpbmcgb3V0IGhlcmUgaW4g
c29tZSBjYXNlcy4gU2VlIGh0dHBzOi8vd2Via2l0Lm9yZy9iLzg3OTA1LgogICAgICAgICBpZiAo
bmVlZFRvU3RyZXRjaENoaWxkKGNoaWxkKSB8fCBjaGlsZFByZWZlcnJlZFNpemUgIT0gbWFpbkF4
aXNFeHRlbnRGb3JDaGlsZChjaGlsZCkpCi0gICAgICAgICAgICBjaGlsZC0+c2V0Q2hpbGROZWVk
c0xheW91dChNYXJrT25seVRoaXMpOworICAgICAgICAgICAgY2hpbGQtPnNldENoaWxkTmVlZHNM
YXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAv
LyBUbyBhdm9pZCBkb3VibGUgYXBwbHlpbmcgbWFyZ2luIGNoYW5nZXMgaW4gdXBkYXRlQXV0b01h
cmdpbnNJbkNyb3NzQXhpcywgd2UgcmVzZXQgdGhlIG1hcmdpbnMgaGVyZS4KICAgICAgICAgICAg
IHJlc2V0QXV0b01hcmdpbnNBbmRMb2dpY2FsVG9wSW5Dcm9zc0F4aXMoY2hpbGQpOwpAQCAtMTQw
NSw3ICsxNDA1LDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6YXBwbHlTdHJldGNoQWxpZ25t
ZW50VG9DaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBMYXlvdXRVbmkKICAgICAgICAgICAgIGlmIChk
ZXNpcmVkTG9naWNhbEhlaWdodCAhPSBjaGlsZC0+bG9naWNhbEhlaWdodCgpKSB7CiAgICAgICAg
ICAgICAgICAgY2hpbGQtPnNldE92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQoZGVzaXJlZExv
Z2ljYWxIZWlnaHQgLSBjaGlsZC0+Ym9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSk7CiAg
ICAgICAgICAgICAgICAgY2hpbGQtPnNldExvZ2ljYWxIZWlnaHQoMCk7Ci0gICAgICAgICAgICAg
ICAgY2hpbGQtPnNldENoaWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICAgICAgICAg
ICAgICBjaGlsZC0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMpOwogICAg
ICAgICAgICAgICAgIGNoaWxkLT5sYXlvdXQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpA
QCAtMTQxNyw3ICsxNDE3LDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6YXBwbHlTdHJldGNo
QWxpZ25tZW50VG9DaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBMYXlvdXRVbmkKIAogICAgICAgICAg
ICAgaWYgKGNoaWxkV2lkdGggIT0gY2hpbGQtPmxvZ2ljYWxXaWR0aCgpKSB7CiAgICAgICAgICAg
ICAgICAgY2hpbGQtPnNldE92ZXJyaWRlTG9naWNhbENvbnRlbnRXaWR0aChjaGlsZFdpZHRoIC0g
Y2hpbGQtPmJvcmRlckFuZFBhZGRpbmdMb2dpY2FsV2lkdGgoKSk7Ci0gICAgICAgICAgICAgICAg
Y2hpbGQtPnNldENoaWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICAgICAgICAgICAg
ICBjaGlsZC0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMpOwogICAgICAg
ICAgICAgICAgIGNoaWxkLT5sYXlvdXQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCmluZGV4IGI2YmZj
M2Q5YzUyOTAyYmZiNjIwNzRlMTQ1YjU4NzgyNjY1NjJiMTUuLmM5NWE3ZDg3NDc4ZjljZDcwYmFk
NTkzMGUxMTAxMTUzNDM5ZGYxMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGbG93VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxvd1RocmVhZC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIFJlbmRlckZsb3dUaHJl
YWQ6OmludmFsaWRhdGVSZWdpb25zKCkKICAgICBtX3JlZ2lvblJhbmdlTWFwLmNsZWFyKCk7CiAg
ICAgbV9icmVha0JlZm9yZVRvUmVnaW9uTWFwLmNsZWFyKCk7CiAgICAgbV9icmVha0FmdGVyVG9S
ZWdpb25NYXAuY2xlYXIoKTsKLSAgICBzZXROZWVkc0xheW91dCgpOworICAgIHNldE5lZWRzTGF5
b3V0KHRydWUpOwogCiAgICAgbV9yZWdpb25zSW52YWxpZGF0ZWQgPSB0cnVlOwogfQpAQCAtOTY1
LDcgKzk2NSw3IEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6bWFya0F1dG9Mb2dpY2FsSGVpZ2h0
UmVnaW9uc0ZvckxheW91dCgpCiAKICAgICAgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8gZmluZCBh
IHdheSB0byBhdm9pZCBtYXJraW5nIGFsbCB0aGUgcmVnaW9ucyBhbmNlc3RvcnMgZm9yIGxheW91
dAogICAgICAgICAvLyBhcyB3ZSBhcmUgYWxyZWFkeSBpbnNpZGUgbGF5b3V0LgotICAgICAgICBy
ZWdpb24tPnNldE5lZWRzTGF5b3V0KCk7CisgICAgICAgIHJlZ2lvbi0+c2V0TmVlZHNMYXlvdXQo
dHJ1ZSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRnJhbWVCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFt
ZUJhc2UuY3BwCmluZGV4IDgxYzMwMDcyOWE4ZTBlMmNjYTRmNmJjZWRjYTA4N2Q3NmRmMzkwNTgu
LjNiMWM2OGZlOWVkZjY2NDdmYTEwMzMwYmVmNzNmZjBjYTI3M2U4NzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2UuY3BwCkBAIC02MSw3ICs2MSw3IEBAIHZv
aWQgUmVuZGVyRnJhbWVCYXNlOjpsYXlvdXRXaXRoRmxhdHRlbmluZyhib29sIGhhc0ZpeGVkV2lk
dGgsIGJvb2wgaGFzRml4ZWRIZWlnCiAgICAgICAgIHVwZGF0ZVdpZGdldFBvc2l0aW9uKCk7CiAg
ICAgICAgIGlmIChjaGlsZEZyYW1lVmlldykKICAgICAgICAgICAgIGNoaWxkRnJhbWVWaWV3LT5s
YXlvdXQoKTsKLSAgICAgICAgY2xlYXJOZWVkc0xheW91dCgpOworICAgICAgICBzZXROZWVkc0xh
eW91dChmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTk4LDcgKzk4LDcgQEAg
dm9pZCBSZW5kZXJGcmFtZUJhc2U6OmxheW91dFdpdGhGbGF0dGVuaW5nKGJvb2wgaGFzRml4ZWRX
aWR0aCwgYm9vbCBoYXNGaXhlZEhlaWcKICAgICBBU1NFUlQoIWNoaWxkUm9vdC0+bmVlZHNMYXlv
dXQoKSk7CiAgICAgQVNTRVJUKCFjaGlsZFJvb3QtPmZpcnN0Q2hpbGQoKSB8fCAhY2hpbGRSb290
LT5maXJzdENoaWxkKCktPmZpcnN0Q2hpbGRTbG93KCkgfHwgIWNoaWxkUm9vdC0+Zmlyc3RDaGls
ZCgpLT5maXJzdENoaWxkU2xvdygpLT5uZWVkc0xheW91dCgpKTsKIAotICAgIGNsZWFyTmVlZHNM
YXlvdXQoKTsKKyAgICBzZXROZWVkc0xheW91dChmYWxzZSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCmluZGV4IGEzNDA2OGU0ODZjMDRkNmIz
ZjE2NWU2MjlkYjk2YjgyY2Y2ZTMwNmMuLjFkNDBiYzNmODRmYzM5YTBmZTlhYmQ3YTRhNDFlOGUz
MjYyMWZjOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFt
ZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNw
cApAQCAtNDg4LDcgKzQ4OCw3IEBAIHZvaWQgUmVuZGVyRnJhbWVTZXQ6OmxheW91dCgpCiAgICAg
ICAgICAgICByZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5lciwgcGl4ZWxTbmFw
cGVkSW50UmVjdChuZXdCb3VuZHMpKTsKICAgICB9CiAKLSAgICBjbGVhck5lZWRzTGF5b3V0KCk7
CisgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQogCiB2b2lkIFJlbmRlckZyYW1lU2V0Ojpw
b3NpdGlvbkZyYW1lcygpCkBAIC01MTMsNyArNTEzLDcgQEAgdm9pZCBSZW5kZXJGcmFtZVNldDo6
cG9zaXRpb25GcmFtZXMoKQogICAgICAgICAgICAgaWYgKHdpZHRoICE9IGNoaWxkLT53aWR0aCgp
IHx8IGhlaWdodCAhPSBjaGlsZC0+aGVpZ2h0KCkpIHsKICAgICAgICAgICAgICAgICBjaGlsZC0+
c2V0V2lkdGgod2lkdGgpOwogICAgICAgICAgICAgICAgIGNoaWxkLT5zZXRIZWlnaHQoaGVpZ2h0
KTsKLSAgICAgICAgICAgICAgICBjaGlsZC0+c2V0TmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAg
ICAgICBjaGlsZC0+c2V0TmVlZHNMYXlvdXQodHJ1ZSk7CiAgICAgICAgICAgICAgICAgY2hpbGQt
PmxheW91dCgpOwogICAgICAgICAgICAgfQogCkBAIC01MzAsNyArNTMwLDcgQEAgdm9pZCBSZW5k
ZXJGcmFtZVNldDo6cG9zaXRpb25GcmFtZXMoKQogICAgIGZvciAoOyBjaGlsZDsgY2hpbGQgPSBj
aGlsZC0+bmV4dFNpYmxpbmdCb3goKSkgewogICAgICAgICBjaGlsZC0+c2V0V2lkdGgoMCk7CiAg
ICAgICAgIGNoaWxkLT5zZXRIZWlnaHQoMCk7Ci0gICAgICAgIGNoaWxkLT5jbGVhck5lZWRzTGF5
b3V0KCk7CisgICAgICAgIGNoaWxkLT5zZXROZWVkc0xheW91dChmYWxzZSk7CiAgICAgfQogfQog
CkBAIC01NjcsNyArNTY3LDcgQEAgdm9pZCBSZW5kZXJGcmFtZVNldDo6cG9zaXRpb25GcmFtZXNX
aXRoRmxhdHRlbmluZygpCiAgICAgICAgICAgICAgICAgY2hpbGQtPnNldFdpZHRoKHdpZHRoKTsK
ICAgICAgICAgICAgIGNoaWxkLT5zZXRIZWlnaHQoaGVpZ2h0KTsKIAotICAgICAgICAgICAgY2hp
bGQtPnNldE5lZWRzTGF5b3V0KCk7CisgICAgICAgICAgICBjaGlsZC0+c2V0TmVlZHNMYXlvdXQo
dHJ1ZSk7CiAKICAgICAgICAgICAgIGlmIChjaGlsZC0+aXNGcmFtZVNldCgpKQogICAgICAgICAg
ICAgICAgIHRvUmVuZGVyRnJhbWVTZXQoY2hpbGQpLT5sYXlvdXQoKTsKQEAgLTYxMSw3ICs2MTEs
NyBAQCB2b2lkIFJlbmRlckZyYW1lU2V0Ojpwb3NpdGlvbkZyYW1lc1dpdGhGbGF0dGVuaW5nKCkK
ICAgICAgICAgICAgICAgICByZXBhaW50TmVlZGVkID0gdHJ1ZTsKIAogICAgICAgICAgICAgICAg
IC8vIHVwZGF0ZSB0byBmaW5hbCBzaXplCi0gICAgICAgICAgICAgICAgY2hpbGQtPnNldE5lZWRz
TGF5b3V0KCk7CisgICAgICAgICAgICAgICAgY2hpbGQtPnNldE5lZWRzTGF5b3V0KHRydWUpOwog
ICAgICAgICAgICAgICAgIGlmIChjaGlsZC0+aXNGcmFtZVNldCgpKQogICAgICAgICAgICAgICAg
ICAgICB0b1JlbmRlckZyYW1lU2V0KGNoaWxkKS0+bGF5b3V0KCk7CiAgICAgICAgICAgICAgICAg
ZWxzZQpAQCAtNjM4LDcgKzYzOCw3IEBAIHZvaWQgUmVuZGVyRnJhbWVTZXQ6OnBvc2l0aW9uRnJh
bWVzV2l0aEZsYXR0ZW5pbmcoKQogICAgIGZvciAoOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4
dFNpYmxpbmdCb3goKSkgewogICAgICAgICBjaGlsZC0+c2V0V2lkdGgoMCk7CiAgICAgICAgIGNo
aWxkLT5zZXRIZWlnaHQoMCk7Ci0gICAgICAgIGNoaWxkLT5jbGVhck5lZWRzTGF5b3V0KCk7Cisg
ICAgICAgIGNoaWxkLT5zZXROZWVkc0xheW91dChmYWxzZSk7CiAgICAgfQogfQogCkBAIC02NzAs
NyArNjcwLDcgQEAgdm9pZCBSZW5kZXJGcmFtZVNldDo6Y29udGludWVSZXNpemluZyhHcmlkQXhp
cyYgYXhpcywgaW50IHBvc2l0aW9uKQogICAgICAgICByZXR1cm47CiAgICAgYXhpcy5tX2RlbHRh
c1theGlzLm1fc3BsaXRCZWluZ1Jlc2l6ZWQgLSAxXSArPSBkZWx0YTsKICAgICBheGlzLm1fZGVs
dGFzW2F4aXMubV9zcGxpdEJlaW5nUmVzaXplZF0gLT0gZGVsdGE7Ci0gICAgc2V0TmVlZHNMYXlv
dXQoKTsKKyAgICBzZXROZWVkc0xheW91dCh0cnVlKTsKIH0KIAogYm9vbCBSZW5kZXJGcmFtZVNl
dDo6dXNlclJlc2l6ZShNb3VzZUV2ZW50KiBldnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyR3JpZC5jcHAKaW5kZXggNGI0Yzc4ZTZkOGViNTQ3N2Y5ZGQyYmYxMTU5OGUxNjIwZTI3OTEy
Ny4uOGFkODliMTIxMzZhNjZiZTY4YWU4MTczNDZlMjIwMWNkMTE0YTRjMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtMTg0LDcgKzE4NCw3IEBAIHZvaWQgUmVu
ZGVyR3JpZDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQog
CiAgICAgcmVwYWludGVyLnJlcGFpbnRBZnRlckxheW91dCgpOwogCi0gICAgY2xlYXJOZWVkc0xh
eW91dCgpOworICAgIHNldE5lZWRzTGF5b3V0KGZhbHNlKTsKIH0KIAogdm9pZCBSZW5kZXJHcmlk
Ojpjb21wdXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lk
dGgsIExheW91dFVuaXQmIG1heExvZ2ljYWxXaWR0aCkgY29uc3QKQEAgLTM2Nyw3ICszNjcsNyBA
QCBMYXlvdXRVbml0IFJlbmRlckdyaWQ6OmxvZ2ljYWxDb250ZW50SGVpZ2h0Rm9yQ2hpbGQoUmVu
ZGVyQm94KiBjaGlsZCwgVmVjdG9yPEdyaQogICAgIC8vIGRvZXNuJ3QgcmV0dXJuIGlmIHRoZSBs
b2dpY2FsIGhlaWdodCBpcyBhdmFpbGFibGUgc28gd291bGQgbmVlZCB0byBiZSBjaGFuZ2VkLgog
ICAgIC8vIDIpIFJlbGF5b3V0IGlmIHRoZSBjb2x1bW4gdHJhY2sncyB1c2VkIGJyZWFkdGggY2hh
bmdlZCBPUiB0aGUgbG9naWNhbCBoZWlnaHQgaXMgdW5hdmFpbGFibGUuCiAgICAgaWYgKCFjaGls
ZC0+bmVlZHNMYXlvdXQoKSkKLSAgICAgICAgY2hpbGQtPnNldE5lZWRzTGF5b3V0KE1hcmtPbmx5
VGhpcyk7CisgICAgICAgIGNoaWxkLT5zZXROZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMp
OwogCiAgICAgY2hpbGQtPnNldE92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxX
aWR0aChncmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjaGlsZCwgRm9yQ29sdW1ucywgY29sdW1uVHJh
Y2tzKSk7CiAgICAgLy8gSWYgfGNoaWxkfCBoYXMgYSBwZXJjZW50YWdlIGxvZ2ljYWwgaGVpZ2h0
LCB3ZSBzaG91bGRuJ3QgbGV0IGl0IG92ZXJyaWRlIGl0cyBpbnRyaW5zaWMgaGVpZ2h0LCB3aGlj
aCBpcwpAQCAtNjc0LDcgKzY3NCw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6bGF5b3V0R3JpZEl0ZW1z
KCkKICAgICAgICAgTGF5b3V0VW5pdCBvdmVycmlkZUNvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dp
Y2FsV2lkdGggPSBncmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjaGlsZCwgRm9yQ29sdW1ucywgY29s
dW1uVHJhY2tzKTsKICAgICAgICAgTGF5b3V0VW5pdCBvdmVycmlkZUNvbnRhaW5pbmdCbG9ja0Nv
bnRlbnRMb2dpY2FsSGVpZ2h0ID0gZ3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY2hpbGQsIEZvclJv
d3MsIHJvd1RyYWNrcyk7CiAgICAgICAgIGlmIChvbGRPdmVycmlkZUNvbnRhaW5pbmdCbG9ja0Nv
bnRlbnRMb2dpY2FsV2lkdGggIT0gb3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNh
bFdpZHRoIHx8IG9sZE92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxIZWlnaHQg
IT0gb3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodCkKLSAgICAgICAg
ICAgIGNoaWxkLT5zZXROZWVkc0xheW91dChNYXJrT25seVRoaXMpOworICAgICAgICAgICAgY2hp
bGQtPnNldE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7CiAKICAgICAgICAgY2hpbGQt
PnNldE92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0aChvdmVycmlkZUNv
bnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGgpOwogICAgICAgICBjaGlsZC0+c2V0T3Zl
cnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodChvdmVycmlkZUNvbnRhaW5p
bmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJIVE1MQ2FudmFzLmNwcAppbmRleCA4MjkwODA5ZDk5NDFmMTlhMGUxMjk3Zjc0MzVi
ZjE5YTJmNzY1YjFhLi4yYWQ1NDczNTkyZGQ2ZjlkZWVhYTU5NmVkYTU1YzJjMzU0NGJmYzNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwCkBAIC0x
MTEsNyArMTExLDcgQEAgdm9pZCBSZW5kZXJIVE1MQ2FudmFzOjpjYW52YXNTaXplQ2hhbmdlZCgp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghc2VsZk5lZWRzTGF5b3V0KCkpCi0gICAgICAg
IHNldE5lZWRzTGF5b3V0KCk7CisgICAgICAgIHNldE5lZWRzTGF5b3V0KHRydWUpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySUZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJh
bWUuY3BwCmluZGV4IDBhM2FmOTk4YTJlNWI2NWIzODM3MDYyZDE3MzE4MTEyZGY1MGI0MTIuLjg0
NTk0ZjhmOGM2ODIzN2YzNjhiZGM5MzFhYTdiZjU2MWQ5MWQyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuY3BwCkBAIC0xNzMsNyArMTczLDcgQEAgdm9pZCBSZW5k
ZXJJRnJhbWU6OmxheW91dCgpCiAgICAgYWRkVmlzdWFsRWZmZWN0T3ZlcmZsb3coKTsKICAgICB1
cGRhdGVMYXllclRyYW5zZm9ybSgpOwogCi0gICAgY2xlYXJOZWVkc0xheW91dCgpOworICAgIHNl
dE5lZWRzTGF5b3V0KGZhbHNlKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbWFnZS5jcHAKaW5kZXggMjBiY2Y5N2YwZWRjYjNlMmJhNjg3ODNhYjI3ZDQ5YmUyMDQ4NThi
NS4uYjE2ZTY2YzAwNWFjYmEyZmY1YTJlNDYxMzZlNmYwNDIxNmI5YzgzZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBAIC0yNjIsNyArMjYyLDcgQEAgdm9pZCBS
ZW5kZXJJbWFnZTo6aW1hZ2VEaW1lbnNpb25zQ2hhbmdlZChib29sIGltYWdlU2l6ZUNoYW5nZWQs
IGNvbnN0IEludFJlY3QqIHIKICAgICAgICAgaWYgKGltYWdlU2l6ZUNoYW5nZWQgfHwgaGFzT3Zl
cnJpZGVTaXplIHx8IGNvbnRhaW5pbmdCbG9ja05lZWRzVG9SZWNvbXB1dGVQcmVmZXJyZWRTaXpl
KSB7CiAgICAgICAgICAgICBzaG91bGRSZXBhaW50ID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAo
IXNlbGZOZWVkc0xheW91dCgpKQotICAgICAgICAgICAgICAgIHNldE5lZWRzTGF5b3V0KCk7Cisg
ICAgICAgICAgICAgICAgc2V0TmVlZHNMYXlvdXQodHJ1ZSk7CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAoZXZlckhhZExheW91dCgpICYmICFzZWxmTmVlZHNMYXlvdXQoKSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAppbmRleCA5N2I1ZDcwMjY2NmM3YWQwNzNm
YTM5YWUyNTk4M2ZkZTQ0YzE2NmZiLi4zMzBiODEwMzU3ZDc5ZDkzNTY5OGM1ZTBhMmJmNzU5OWNk
YWIwMjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcApAQCAt
MTk3LDcgKzE5Nyw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjpzdHlsZURpZENoYW5nZShTdHlsZURp
ZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0CiAgICAgICAgIGJvb2wgYWx3
YXlzQ3JlYXRlTGluZUJveGVzID0gaGFzU2VsZlBhaW50aW5nTGF5ZXIoKSB8fCBoYXNCb3hEZWNv
cmF0aW9ucygpIHx8IG5ld1N0eWxlLT5oYXNQYWRkaW5nKCkgfHwgbmV3U3R5bGUtPmhhc01hcmdp
bigpIHx8IGhhc091dGxpbmUoKTsKICAgICAgICAgaWYgKG9sZFN0eWxlICYmIGFsd2F5c0NyZWF0
ZUxpbmVCb3hlcykgewogICAgICAgICAgICAgZGlydHlMaW5lQm94ZXMoZmFsc2UpOwotICAgICAg
ICAgICAgc2V0TmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgIHNldE5lZWRzTGF5b3V0KHRydWUp
OwogICAgICAgICB9CiAgICAgICAgIG1fYWx3YXlzQ3JlYXRlTGluZUJveGVzID0gYWx3YXlzQ3Jl
YXRlTGluZUJveGVzOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCmluZGV4IDk5ZGQyZDMxOTNmZDI4Mzg3MzZhOGY2NzAwYzQwZmNmYjhlNDU5MzYuLjE1MGY1
MDU1ZjExMDE1NDIzOWJjM2JiNjE0N2IxZGI4ZTlmZDY3ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMzE1OSw3ICszMTU5LDcgQEAgdm9pZCBSZW5kZXJM
YXllcjo6dXBkYXRlU2Nyb2xsYmFyc0FmdGVyTGF5b3V0KCkKICAgICAgICAgICAgIGlmICghbV9p
bk92ZXJmbG93UmVsYXlvdXQpIHsKICAgICAgICAgICAgICAgICAvLyBPdXIgcHJvcHJpZXRhcnkg
b3ZlcmZsb3c6IG92ZXJsYXkgdmFsdWUgZG9lc24ndCB0cmlnZ2VyIGEgbGF5b3V0LgogICAgICAg
ICAgICAgICAgIG1faW5PdmVyZmxvd1JlbGF5b3V0ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBy
ZW5kZXJlcigpLnNldE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7CisgICAgICAgICAgICAgICAg
cmVuZGVyZXIoKS5zZXROZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMpOwogICAgICAgICAg
ICAgICAgIGlmIChyZW5kZXJlcigpLmlzUmVuZGVyQmxvY2soKSkgewogICAgICAgICAgICAgICAg
ICAgICBSZW5kZXJCbG9jayYgYmxvY2sgPSB0b1JlbmRlckJsb2NrKHJlbmRlcmVyKCkpOwogICAg
ICAgICAgICAgICAgICAgICBibG9jay5zY3JvbGxiYXJzQ2hhbmdlZChhdXRvSG9yaXpvbnRhbFNj
cm9sbEJhckNoYW5nZWQsIGF1dG9WZXJ0aWNhbFNjcm9sbEJhckNoYW5nZWQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCmluZGV4
IDU0MjI0ZDcwYTg5YmIyZWIyMDdjYTMwYzE1ZjE3NWNmOTRlOWQ5YTYuLmI5MWNkMDBmOTM5YmIz
ODRjZGUwYjk2ZjA2YmRkZWIzMGFkNWRiNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKQEAgLTE0Miw3ICsxNDIsNyBAQCB2
b2lkIFJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5j
ZSBkaWZmLCBjb25zdCBSZW5kZXJTdAogICAgIGlmIChyZXF1aXJlc0xheWVyKCkpIHsKICAgICAg
ICAgaWYgKCFsYXllcigpICYmIGxheWVyQ3JlYXRpb25BbGxvd2VkRm9yU3VidHJlZSgpKSB7CiAg
ICAgICAgICAgICBpZiAoc193YXNGbG9hdGluZyAmJiBpc0Zsb2F0aW5nKCkpCi0gICAgICAgICAg
ICAgICAgc2V0Q2hpbGROZWVkc0xheW91dCgpOworICAgICAgICAgICAgICAgIHNldENoaWxkTmVl
ZHNMYXlvdXQodHJ1ZSk7CiAgICAgICAgICAgICBlbnN1cmVMYXllcigpOwogICAgICAgICAgICAg
aWYgKHBhcmVudCgpICYmICFuZWVkc0xheW91dCgpICYmIGNvbnRhaW5pbmdCbG9jaygpKSB7CiAg
ICAgICAgICAgICAgICAgbGF5ZXIoKS0+c2V0UmVwYWludFN0YXR1cyhOZWVkc0Z1bGxSZXBhaW50
KTsKQEAgLTE1Niw3ICsxNTYsNyBAQCB2b2lkIFJlbmRlckxheWVyTW9kZWxPYmplY3Q6OnN0eWxl
RGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdAogICAgICAgICBz
ZXRIYXNSZWZsZWN0aW9uKGZhbHNlKTsKICAgICAgICAgbGF5ZXIoKS0+cmVtb3ZlT25seVRoaXNM
YXllcigpOyAvLyBjYWxscyBkZXN0cm95TGF5ZXIoKSB3aGljaCBjbGVhcnMgbV9sYXllcgogICAg
ICAgICBpZiAoc193YXNGbG9hdGluZyAmJiBpc0Zsb2F0aW5nKCkpCi0gICAgICAgICAgICBzZXRD
aGlsZE5lZWRzTGF5b3V0KCk7CisgICAgICAgICAgICBzZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUp
OwogICAgICAgICBpZiAoc19oYWRUcmFuc2Zvcm0pCiAgICAgICAgICAgICBzZXROZWVkc0xheW91
dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKICAgICB9CkBAIC0xNjQsNyArMTY0LDcgQEAgdm9pZCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlm
ZiwgY29uc3QgUmVuZGVyU3QKICAgICBpZiAobGF5ZXIoKSkgewogICAgICAgICBsYXllcigpLT5z
dHlsZUNoYW5nZWQoZGlmZiwgb2xkU3R5bGUpOwogICAgICAgICBpZiAoc19oYWRMYXllciAmJiBs
YXllcigpLT5pc1NlbGZQYWludGluZ0xheWVyKCkgIT0gc19sYXllcldhc1NlbGZQYWludGluZykK
LSAgICAgICAgICAgIHNldENoaWxkTmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgIHNldENoaWxk
TmVlZHNMYXlvdXQodHJ1ZSk7CiAgICAgfQogCiAgICAgYm9vbCBuZXdTdHlsZUlzVmlld3BvcnRD
b25zdGFpbmVkID0gc3R5bGUoKS0+aGFzVmlld3BvcnRDb25zdHJhaW5lZFBvc2l0aW9uKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKaW5kZXggOWM1
OWJiYzIyZTczYmQ3OTI2MTUzMmZkMTU0MDI3OThkMDNkMTJmNS4uNzNlYjhkZjg3ZmZhNjEyNmMy
OTFiNGZhOWRkMWVmMWM2NDkxYzFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0TWFya2VyLmNwcApAQCAtMTQwNyw3ICsxNDA3LDcgQEAgdm9pZCBSZW5kZXJMaXN0
TWFya2VyOjpsYXlvdXQoKQogICAgIGlmIChlbmRNYXJnaW4uaXNGaXhlZCgpKQogICAgICAgICBz
ZXRNYXJnaW5FbmQoZW5kTWFyZ2luLnZhbHVlKCkpOwogCi0gICAgY2xlYXJOZWVkc0xheW91dCgp
OworICAgIHNldE5lZWRzTGF5b3V0KGZhbHNlKTsKIH0KIAogdm9pZCBSZW5kZXJMaXN0TWFya2Vy
OjppbWFnZUNoYW5nZWQoV3JhcHBlZEltYWdlUHRyIG8sIGNvbnN0IEludFJlY3QqKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1hcnF1ZWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1hcnF1ZWUuY3BwCmluZGV4IDdkYWM4N2MxZmNiZDAy
ZjRkZjZlMzZmYTQ4NjllZDVkNGE2NzA2YmMuLjBhODg5OWRjYTEyYTgxOTZiZTE4MjY5ZTEwNWQ5
ZGJlMDIxYjk3NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
YXJxdWVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWFycXVlZS5j
cHAKQEAgLTI0Niw3ICsyNDYsNyBAQCB2b2lkIFJlbmRlck1hcnF1ZWU6OnVwZGF0ZU1hcnF1ZWVT
dHlsZSgpCiAgICAgLy8gQ2hlY2sgdGhlIGxvb3AgY291bnQgdG8gc2VlIGlmIHdlIHNob3VsZCBu
b3cgc3RvcC4KICAgICBib29sIGFjdGl2YXRlID0gKG1fdG90YWxMb29wcyA8PSAwIHx8IG1fY3Vy
cmVudExvb3AgPCBtX3RvdGFsTG9vcHMpOwogICAgIGlmIChhY3RpdmF0ZSAmJiAhbV90aW1lci5p
c0FjdGl2ZSgpKQotICAgICAgICBtX2xheWVyLT5yZW5kZXJlcigpLnNldE5lZWRzTGF5b3V0KCk7
CisgICAgICAgIG1fbGF5ZXItPnJlbmRlcmVyKCkuc2V0TmVlZHNMYXlvdXQodHJ1ZSk7CiAgICAg
ZWxzZSBpZiAoIWFjdGl2YXRlICYmIG1fdGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV90aW1l
ci5zdG9wKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWVkaWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmNwcAppbmRl
eCBiMzI3ZTU3YjlkODhhMTkzYWViN2U3ZmZmMzhmNGVlZmFhOGM2ODVmLi5kMzhjNWIyZDc0Yzgz
ZTljZDNlNTUzZjUyYzAzNWY5YmI3N2Q0Mjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVkaWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZWRpYS5jcHAKQEAgLTgzLDkgKzgzLDkgQEAgdm9pZCBSZW5kZXJNZWRpYTo6bGF5b3V0
KCkKICAgICBjb250cm9sc1JlbmRlcmVyLT5zZXRMb2NhdGlvbihMYXlvdXRQb2ludChib3JkZXJM
ZWZ0KCksIGJvcmRlclRvcCgpKSArIExheW91dFNpemUocGFkZGluZ0xlZnQoKSwgcGFkZGluZ1Rv
cCgpKSk7CiAgICAgY29udHJvbHNSZW5kZXJlci0+c3R5bGUoKS0+c2V0SGVpZ2h0KExlbmd0aChu
ZXdTaXplLmhlaWdodCgpLCBGaXhlZCkpOwogICAgIGNvbnRyb2xzUmVuZGVyZXItPnN0eWxlKCkt
PnNldFdpZHRoKExlbmd0aChuZXdTaXplLndpZHRoKCksIEZpeGVkKSk7Ci0gICAgY29udHJvbHNS
ZW5kZXJlci0+c2V0TmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICBjb250cm9sc1JlbmRl
cmVyLT5zZXROZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMpOwogICAgIGNvbnRyb2xzUmVu
ZGVyZXItPmxheW91dCgpOwotICAgIGNsZWFyQ2hpbGROZWVkc0xheW91dCgpOworICAgIHNldENo
aWxkTmVlZHNMYXlvdXQoZmFsc2UpOwogCiAgICAgc3RhdGVQdXNoZXIucG9wKCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAK
aW5kZXggNWJiNTEwZTY1NTk5MjM5Y2ZjY2FmOTEzMTBjOTk1Njc3YzJmYTg1MC4uZTNkYTIyZjVm
OGRhM2VhM2U1YzEzYTZhNDU5OGYxNjU0MmQ5NTE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmNwcApAQCAtMTE2LDcgKzExNiw3
IEBAIGJvb2wgUmVuZGVyTXVsdGlDb2x1bW5CbG9jazo6cmVsYXlvdXRGb3JQYWdpbmF0aW9uKGJv
b2wsIExheW91dFVuaXQsIExheW91dFN0YXRlCiAgICAgICAgICAgICBpZiAoY2hpbGRCb3ggIT0g
bV9mbG93VGhyZWFkICYmIGNoaWxkQm94LT5pc1JlbmRlck11bHRpQ29sdW1uU2V0KCkpIHsKICAg
ICAgICAgICAgICAgICBSZW5kZXJNdWx0aUNvbHVtblNldCogbXVsdGljb2xTZXQgPSB0b1JlbmRl
ck11bHRpQ29sdW1uU2V0KGNoaWxkQm94KTsKICAgICAgICAgICAgICAgICBpZiAobXVsdGljb2xT
ZXQtPmNhbGN1bGF0ZUJhbGFuY2VkSGVpZ2h0KGZpcnN0UGFzcykpIHsKLSAgICAgICAgICAgICAg
ICAgICAgbXVsdGljb2xTZXQtPnNldENoaWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAg
ICAgICAgICAgICAgICAgICAgbXVsdGljb2xTZXQtPnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwg
TWFya09ubHlUaGlzKTsKICAgICAgICAgICAgICAgICAgICAgbmVlZHNSZWxheW91dCA9IHRydWU7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMTI0LDggKzEyNCw4IEBAIGJv
b2wgUmVuZGVyTXVsdGlDb2x1bW5CbG9jazo6cmVsYXlvdXRGb3JQYWdpbmF0aW9uKGJvb2wsIExh
eW91dFVuaXQsIExheW91dFN0YXRlCiAgICAgICAgIGlmIChuZWVkc1JlbGF5b3V0KSB7CiAgICAg
ICAgICAgICAvLyBMYXlvdXQgYWdhaW4uIENvbHVtbiBiYWxhbmNpbmcgcmVzdWx0ZWQgaW4gYSBu
ZXcgaGVpZ2h0LgogICAgICAgICAgICAgbmVlZGVkUmVsYXlvdXQgPSB0cnVlOwotICAgICAgICAg
ICAgbV9mbG93VGhyZWFkLT5zZXRDaGlsZE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7Ci0gICAg
ICAgICAgICBzZXRDaGlsZE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7CisgICAgICAgICAgICBt
X2Zsb3dUaHJlYWQtPnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsKKyAg
ICAgICAgICAgIHNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsKICAgICAg
ICAgICAgIGlmIChmaXJzdFBhc3MpCiAgICAgICAgICAgICAgICAgc3RhdGVQdXNoZXIucG9wKCk7
CiAgICAgICAgICAgICBsYXlvdXRCbG9jayhmYWxzZSk7CkBAIC0xNzAsNyArMTcwLDcgQEAgUmVu
ZGVyT2JqZWN0KiBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrOjpsYXlvdXRTcGVjaWFsRXhjbHVkZWRD
aGlsZChib29sIHJlbGF5b3V0Q2gKICAgICAgICAgbV9mbG93VGhyZWFkLT5pbnZhbGlkYXRlUmVn
aW9ucygpOwogCiAgICAgaWYgKHJlbGF5b3V0Q2hpbGRyZW4pCi0gICAgICAgIG1fZmxvd1RocmVh
ZC0+c2V0Q2hpbGROZWVkc0xheW91dChNYXJrT25seVRoaXMpOworICAgICAgICBtX2Zsb3dUaHJl
YWQtPnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsKICAgICAKICAgICBz
ZXRMb2dpY2FsVG9wRm9yQ2hpbGQobV9mbG93VGhyZWFkLCBib3JkZXJBbmRQYWRkaW5nQmVmb3Jl
KCkpOwogICAgIG1fZmxvd1RocmVhZC0+bGF5b3V0SWZOZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggOThkNTAzY2VhZGU4Yzk1ZDI5NDY2ZTk4
MTY5NjA1NGE3ODExYWJmNy4uNWIzOWNiYjE1ZGE2MDA0YWUyOGNlMjc0NTM1NDM3YTIwNDVhODMy
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTYxOSwy
MSArNjE5LDYgQEAgc3RhdGljIGlubGluZSBib29sIG9iamVjdElzUmVsYXlvdXRCb3VuZGFyeShj
b25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBS
ZW5kZXJPYmplY3Q6OmNsZWFyTmVlZHNMYXlvdXQoKQotewotICAgIG1fYml0ZmllbGRzLnNldE5l
ZWRzTGF5b3V0KGZhbHNlKTsKLSAgICBzZXRFdmVySGFkTGF5b3V0KHRydWUpOwotICAgIHNldFBv
c0NoaWxkTmVlZHNMYXlvdXRCaXQoZmFsc2UpOwotICAgIHNldE5lZWRzU2ltcGxpZmllZE5vcm1h
bEZsb3dMYXlvdXRCaXQoZmFsc2UpOwotICAgIHNldE5vcm1hbENoaWxkTmVlZHNMYXlvdXRCaXQo
ZmFsc2UpOwotICAgIHNldE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0Qml0KGZhbHNlKTsK
LSAgICBpZiAoaXNSZW5kZXJFbGVtZW50KCkpCi0gICAgICAgIHRvUmVuZGVyRWxlbWVudCh0aGlz
KS0+c2V0QW5jZXN0b3JMaW5lQm94RGlydHkoZmFsc2UpOwotI2lmbmRlZiBOREVCVUcKLSAgICBj
aGVja0Jsb2NrUG9zaXRpb25lZE9iamVjdHNOZWVkTGF5b3V0KCk7Ci0jZW5kaWYKLX0KLQogdm9p
ZCBSZW5kZXJPYmplY3Q6Om1hcmtDb250YWluaW5nQmxvY2tzRm9yTGF5b3V0KGJvb2wgc2NoZWR1
bGVSZWxheW91dCwgUmVuZGVyT2JqZWN0KiBuZXdSb290KQogewogICAgIEFTU0VSVCghc2NoZWR1
bGVSZWxheW91dCB8fCAhbmV3Um9vdCk7CkBAIC02NTUsNyArNjQwLDcgQEAgdm9pZCBSZW5kZXJP
YmplY3Q6Om1hcmtDb250YWluaW5nQmxvY2tzRm9yTGF5b3V0KGJvb2wgc2NoZWR1bGVSZWxheW91
dCwgUmVuZGVyT2IKICAgICAgICAgUmVuZGVyRWxlbWVudCogY29udGFpbmVyID0gb2JqZWN0LT5j
b250YWluZXIoKTsKICAgICAgICAgaWYgKCFjb250YWluZXIgJiYgIW9iamVjdC0+aXNSZW5kZXJW
aWV3KCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmIChsYXN0LT5zdHlsZSgpLT5o
YXNPdXRPZkZsb3dQb3NpdGlvbigpKSB7CisgICAgICAgIGlmICghbGFzdC0+aXNUZXh0KCkgJiYg
bGFzdC0+c3R5bGUoKS0+aGFzT3V0T2ZGbG93UG9zaXRpb24oKSkgewogICAgICAgICAgICAgYm9v
bCB3aWxsU2tpcFJlbGF0aXZlbHlQb3NpdGlvbmVkSW5saW5lcyA9ICFvYmplY3QtPmlzUmVuZGVy
QmxvY2soKSB8fCBvYmplY3QtPmlzQW5vbnltb3VzQmxvY2soKTsKICAgICAgICAgICAgIC8vIFNr
aXAgcmVsYXRpdmVseSBwb3NpdGlvbmVkIGlubGluZXMgYW5kIGFub255bW91cyBibG9ja3MgdG8g
Z2V0IHRvIHRoZSBlbmNsb3NpbmcgUmVuZGVyQmxvY2suCiAgICAgICAgICAgICB3aGlsZSAob2Jq
ZWN0ICYmICghb2JqZWN0LT5pc1JlbmRlckJsb2NrKCkgfHwgb2JqZWN0LT5pc0Fub255bW91c0Js
b2NrKCkpKQpAQCAtNjY0LDE4ICs2NDksMTggQEAgdm9pZCBSZW5kZXJPYmplY3Q6Om1hcmtDb250
YWluaW5nQmxvY2tzRm9yTGF5b3V0KGJvb2wgc2NoZWR1bGVSZWxheW91dCwgUmVuZGVyT2IKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBpZiAod2lsbFNraXBSZWxhdGl2ZWx5
UG9zaXRpb25lZElubGluZXMpCiAgICAgICAgICAgICAgICAgY29udGFpbmVyID0gb2JqZWN0LT5j
b250YWluZXIoKTsKLSAgICAgICAgICAgIG9iamVjdC0+c2V0UG9zQ2hpbGROZWVkc0xheW91dEJp
dCh0cnVlKTsKKyAgICAgICAgICAgIG9iamVjdC0+c2V0UG9zQ2hpbGROZWVkc0xheW91dCh0cnVl
KTsKICAgICAgICAgICAgIHNpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0ID0gdHJ1ZTsKICAgICAg
ICAgICAgIEFTU0VSVCghb2JqZWN0LT5pc1NldE5lZWRzTGF5b3V0Rm9yYmlkZGVuKCkpOwogICAg
ICAgICB9IGVsc2UgaWYgKHNpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0KSB7CiAgICAgICAgICAg
ICBpZiAob2JqZWN0LT5uZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0KCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgb2JqZWN0LT5zZXROZWVkc1NpbXBsaWZpZWRO
b3JtYWxGbG93TGF5b3V0Qml0KHRydWUpOworICAgICAgICAgICAgb2JqZWN0LT5zZXROZWVkc1Np
bXBsaWZpZWROb3JtYWxGbG93TGF5b3V0KHRydWUpOwogICAgICAgICAgICAgQVNTRVJUKCFvYmpl
Y3QtPmlzU2V0TmVlZHNMYXlvdXRGb3JiaWRkZW4oKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICBpZiAob2JqZWN0LT5ub3JtYWxDaGlsZE5lZWRzTGF5b3V0KCkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICAgICAgb2JqZWN0LT5zZXROb3JtYWxDaGlsZE5lZWRzTGF5
b3V0Qml0KHRydWUpOworICAgICAgICAgICAgb2JqZWN0LT5zZXROb3JtYWxDaGlsZE5lZWRzTGF5
b3V0KHRydWUpOwogICAgICAgICAgICAgQVNTRVJUKCFvYmplY3QtPmlzU2V0TmVlZHNMYXlvdXRG
b3JiaWRkZW4oKSk7CiAgICAgICAgIH0KIApAQCAtMjIyNCw3ICsyMjA5LDcgQEAgdm9pZCBSZW5k
ZXJPYmplY3Q6OmxheW91dCgpCiAgICAgICAgIEFTU0VSVCghY2hpbGQtPm5lZWRzTGF5b3V0KCkp
OwogICAgICAgICBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpOwogICAgIH0KLSAgICBjbGVh
ck5lZWRzTGF5b3V0KCk7CisgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQogCiBSZW5kZXJT
dHlsZSogUmVuZGVyT2JqZWN0OjpnZXRDYWNoZWRQc2V1ZG9TdHlsZShQc2V1ZG9JZCBwc2V1ZG8s
IFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaAppbmRleCA5MGMwNjdiMTIzZDM0Zjc1MTk3ZTBlNTc4MWU5YTlkY2Y0ZTli
YTU2Li5lNDNjYTA3M2U4ZDgwZGFjZWIxYWRhOTc3YjcyNDU2ODNiMmZiYTgyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC02MTcsMTQgKzYxNywxNiBAQCBwdWJs
aWM6CiAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QqIG9mZnNldFBhcmVudCgpIGNvbnN0OwogCiAg
ICAgdm9pZCBtYXJrQ29udGFpbmluZ0Jsb2Nrc0ZvckxheW91dChib29sIHNjaGVkdWxlUmVsYXlv
dXQgPSB0cnVlLCBSZW5kZXJPYmplY3QqIG5ld1Jvb3QgPSAwKTsKLSAgICB2b2lkIHNldE5lZWRz
TGF5b3V0KE1hcmtpbmdCZWhhdmlvciA9IE1hcmtDb250YWluaW5nQmxvY2tDaGFpbik7Ci0gICAg
dm9pZCBjbGVhck5lZWRzTGF5b3V0KCk7CisgICAgdm9pZCBzZXROZWVkc0xheW91dChib29sIG5l
ZWRzTGF5b3V0LCBNYXJraW5nQmVoYXZpb3IgPSBNYXJrQ29udGFpbmluZ0Jsb2NrQ2hhaW4pOwor
ICAgIHZvaWQgc2V0Q2hpbGROZWVkc0xheW91dChib29sIGNoaWxkTmVlZHNMYXlvdXQsIE1hcmtp
bmdCZWhhdmlvciA9IE1hcmtDb250YWluaW5nQmxvY2tDaGFpbik7CisgICAgdm9pZCBzZXROZWVk
c1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dChjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOwor
ICAgIHZvaWQgc2V0TmVlZHNTaW1wbGlmaWVkTm9ybWFsRmxvd0xheW91dCgpOwogICAgIHZvaWQg
c2V0UHJlZmVycmVkTG9naWNhbFdpZHRoc0RpcnR5KGJvb2wsIE1hcmtpbmdCZWhhdmlvciA9IE1h
cmtDb250YWluaW5nQmxvY2tDaGFpbik7CiAgICAgdm9pZCBpbnZhbGlkYXRlQ29udGFpbmVyUHJl
ZmVycmVkTG9naWNhbFdpZHRocygpOwogICAgIAogICAgIHZvaWQgc2V0TmVlZHNMYXlvdXRBbmRQ
cmVmV2lkdGhzUmVjYWxjKCkKICAgICB7Ci0gICAgICAgIHNldE5lZWRzTGF5b3V0KCk7CisgICAg
ICAgIHNldE5lZWRzTGF5b3V0KHRydWUpOwogICAgICAgICBzZXRQcmVmZXJyZWRMb2dpY2FsV2lk
dGhzRGlydHkodHJ1ZSk7CiAgICAgfQogCkBAIC05MzksMTEgKzk0MSw2IEBAIHByb3RlY3RlZDoK
IAogICAgIHZvaWQgc2V0RG9jdW1lbnRGb3JBbm9ueW1vdXMoRG9jdW1lbnQmIGRvY3VtZW50KSB7
IEFTU0VSVChpc0Fub255bW91cygpKTsgbV9ub2RlID0gJmRvY3VtZW50OyB9CiAKLSAgICB2b2lk
IHNldE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0Qml0KGJvb2wgYikgeyBtX2JpdGZpZWxk
cy5zZXROZWVkc1Bvc2l0aW9uZWRNb3ZlbWVudExheW91dChiKTsgfQotICAgIHZvaWQgc2V0Tm9y
bWFsQ2hpbGROZWVkc0xheW91dEJpdChib29sIGIpIHsgbV9iaXRmaWVsZHMuc2V0Tm9ybWFsQ2hp
bGROZWVkc0xheW91dChiKTsgfQotICAgIHZvaWQgc2V0UG9zQ2hpbGROZWVkc0xheW91dEJpdChi
b29sIGIpIHsgbV9iaXRmaWVsZHMuc2V0UG9zQ2hpbGROZWVkc0xheW91dChiKTsgfQotICAgIHZv
aWQgc2V0TmVlZHNTaW1wbGlmaWVkTm9ybWFsRmxvd0xheW91dEJpdChib29sIGIpIHsgbV9iaXRm
aWVsZHMuc2V0TmVlZHNTaW1wbGlmaWVkTm9ybWFsRmxvd0xheW91dChiKTsgfQotCiBwcml2YXRl
OgogICAgIFJlbmRlckZsb3dUaHJlYWQqIGxvY2F0ZUZsb3dUaHJlYWRDb250YWluaW5nQmxvY2so
KSBjb25zdDsKICAgICB2b2lkIHJlbW92ZUZyb21SZW5kZXJGbG93VGhyZWFkKCk7CkBAIC0xMDgw
LDYgKzEwNzcsMTAgQEAgcHJpdmF0ZToKIAogICAgIFJlbmRlck9iamVjdEJpdGZpZWxkcyBtX2Jp
dGZpZWxkczsKIAorICAgIHZvaWQgc2V0TmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoYm9v
bCBiKSB7IG1fYml0ZmllbGRzLnNldE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KGIpOyB9
CisgICAgdm9pZCBzZXROb3JtYWxDaGlsZE5lZWRzTGF5b3V0KGJvb2wgYikgeyBtX2JpdGZpZWxk
cy5zZXROb3JtYWxDaGlsZE5lZWRzTGF5b3V0KGIpOyB9CisgICAgdm9pZCBzZXRQb3NDaGlsZE5l
ZWRzTGF5b3V0KGJvb2wgYikgeyBtX2JpdGZpZWxkcy5zZXRQb3NDaGlsZE5lZWRzTGF5b3V0KGIp
OyB9CisgICAgdm9pZCBzZXROZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0KGJvb2wgYikg
eyBtX2JpdGZpZWxkcy5zZXROZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0KGIpOyB9CiAg
ICAgdm9pZCBzZXRJc0RyYWdnaW5nKGJvb2wgYikgeyBtX2JpdGZpZWxkcy5zZXRJc0RyYWdnaW5n
KGIpOyB9CiAgICAgdm9pZCBzZXRFdmVySGFkTGF5b3V0KGJvb2wgYikgeyBtX2JpdGZpZWxkcy5z
ZXRFdmVySGFkTGF5b3V0KGIpOyB9CiB9OwpAQCAtMTExNCwxNiArMTExNSw0OCBAQCBpbmxpbmUg
Ym9vbCBSZW5kZXJPYmplY3Q6OmlzQmVmb3JlT3JBZnRlckNvbnRlbnQoKSBjb25zdAogICAgIHJl
dHVybiBpc0JlZm9yZUNvbnRlbnQoKSB8fCBpc0FmdGVyQ29udGVudCgpOwogfQogCi1pbmxpbmUg
dm9pZCBSZW5kZXJPYmplY3Q6OnNldE5lZWRzTGF5b3V0KE1hcmtpbmdCZWhhdmlvciBtYXJrUGFy
ZW50cykKK2lubGluZSB2b2lkIFJlbmRlck9iamVjdDo6c2V0Q2hpbGROZWVkc0xheW91dChib29s
IGNoaWxkTmVlZHNMYXlvdXQsIE1hcmtpbmdCZWhhdmlvciBtYXJrUGFyZW50cykKIHsKKyAgICBi
b29sIGFscmVhZHlOZWVkZWRMYXlvdXQgPSBub3JtYWxDaGlsZE5lZWRzTGF5b3V0KCk7CisgICAg
c2V0Tm9ybWFsQ2hpbGROZWVkc0xheW91dChjaGlsZE5lZWRzTGF5b3V0KTsKKyAgICBpZiAoY2hp
bGROZWVkc0xheW91dCkgeworICAgICAgICBBU1NFUlQoIWlzU2V0TmVlZHNMYXlvdXRGb3JiaWRk
ZW4oKSk7CisgICAgICAgIGlmICghYWxyZWFkeU5lZWRlZExheW91dCAmJiBtYXJrUGFyZW50cyA9
PSBNYXJrQ29udGFpbmluZ0Jsb2NrQ2hhaW4pCisgICAgICAgICAgICBtYXJrQ29udGFpbmluZ0Js
b2Nrc0ZvckxheW91dCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNldFBvc0NoaWxkTmVlZHNM
YXlvdXQoZmFsc2UpOworICAgICAgICBzZXROZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0
KGZhbHNlKTsKKyAgICAgICAgc2V0Tm9ybWFsQ2hpbGROZWVkc0xheW91dChmYWxzZSk7CisgICAg
ICAgIHNldE5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KGZhbHNlKTsKKyAgICB9Cit9CisK
K2lubGluZSB2b2lkIFJlbmRlck9iamVjdDo6c2V0TmVlZHNQb3NpdGlvbmVkTW92ZW1lbnRMYXlv
dXQoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQoreworICAgIGJvb2wgYWxyZWFkeU5lZWRl
ZExheW91dCA9IG5lZWRzUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0KCk7CisgICAgc2V0TmVlZHNQ
b3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQodHJ1ZSk7CiAgICAgQVNTRVJUKCFpc1NldE5lZWRzTGF5
b3V0Rm9yYmlkZGVuKCkpOwotICAgIGlmIChtX2JpdGZpZWxkcy5uZWVkc0xheW91dCgpKQotICAg
ICAgICByZXR1cm47Ci0gICAgbV9iaXRmaWVsZHMuc2V0TmVlZHNMYXlvdXQodHJ1ZSk7Ci0gICAg
aWYgKG1hcmtQYXJlbnRzID09IE1hcmtDb250YWluaW5nQmxvY2tDaGFpbikKKyAgICBpZiAoIWFs
cmVhZHlOZWVkZWRMYXlvdXQpIHsKKyAgICAgICAgbWFya0NvbnRhaW5pbmdCbG9ja3NGb3JMYXlv
dXQoKTsKKyAgICAgICAgaWYgKGhhc0xheWVyKCkpIHsKKyAgICAgICAgICAgIGlmIChvbGRTdHls
ZSAmJiBzdHlsZSgpLT5kaWZmUmVxdWlyZXNSZXBhaW50KG9sZFN0eWxlKSkKKyAgICAgICAgICAg
ICAgICBzZXRMYXllck5lZWRzRnVsbFJlcGFpbnQoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBzZXRMYXllck5lZWRzRnVsbFJlcGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1lbnRM
YXlvdXQoKTsKKyAgICAgICAgfQorICAgIH0KK30KKworaW5saW5lIHZvaWQgUmVuZGVyT2JqZWN0
OjpzZXROZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0KCkKK3sKKyAgICBib29sIGFscmVh
ZHlOZWVkZWRMYXlvdXQgPSBuZWVkc1NpbXBsaWZpZWROb3JtYWxGbG93TGF5b3V0KCk7CisgICAg
c2V0TmVlZHNTaW1wbGlmaWVkTm9ybWFsRmxvd0xheW91dCh0cnVlKTsKKyAgICBBU1NFUlQoIWlz
U2V0TmVlZHNMYXlvdXRGb3JiaWRkZW4oKSk7CisgICAgaWYgKCFhbHJlYWR5TmVlZGVkTGF5b3V0
KSB7CiAgICAgICAgIG1hcmtDb250YWluaW5nQmxvY2tzRm9yTGF5b3V0KCk7Ci0gICAgaWYgKGhh
c0xheWVyKCkpCi0gICAgICAgIHNldExheWVyTmVlZHNGdWxsUmVwYWludCgpOworICAgICAgICBp
ZiAoaGFzTGF5ZXIoKSkKKyAgICAgICAgICAgIHNldExheWVyTmVlZHNGdWxsUmVwYWludCgpOwor
ICAgIH0KIH0KIAogaW5saW5lIGJvb2wgUmVuZGVyT2JqZWN0OjpwcmVzZXJ2ZXNOZXdsaW5lKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4
IGM4NWI1Y2YwZjQ4MzUyNmNkMWUxNTEyYWZhYWU2N2YyMGMwMjY3OWQuLmYzZWJlYWU4N2NmMzQ2
ZDAwMjI0MzZmZWM0ZDU1Nzg1NjM4MDE1NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclJlcGxhY2VkLmNwcApAQCAtOTYsNyArOTYsNyBAQCB2b2lkIFJlbmRlclJlcGxhY2Vk
OjpsYXlvdXQoKQogICAgIGludmFsaWRhdGVCYWNrZ3JvdW5kT2JzY3VyYXRpb25TdGF0dXMoKTsK
IAogICAgIHJlcGFpbnRlci5yZXBhaW50QWZ0ZXJMYXlvdXQoKTsKLSAgICBjbGVhck5lZWRzTGF5
b3V0KCk7CisgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQogCiB2b2lkIFJlbmRlclJlcGxh
Y2VkOjppbnRyaW5zaWNTaXplQ2hhbmdlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVwbGljYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVwbGljYS5jcHAKaW5kZXggODc1N2U2YjRiMzc4OWIzMTg1MDM2M2Q0NTkxODFjYmJjMmNl
NjdhYS4uNzMzMGQ0ZWY5YjJiNDUxMDZmNTllMTcyNDAwNWU3NTc0ZGRiOTI1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxpY2EuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsaWNhLmNwcApAQCAtNjAsNyArNjAsNyBAQCB2
b2lkIFJlbmRlclJlcGxpY2E6OmxheW91dCgpCiAgICAgU3RhY2tTdGF0czo6TGF5b3V0Q2hlY2tQ
b2ludCBsYXlvdXRDaGVja1BvaW50OwogICAgIHNldEZyYW1lUmVjdChwYXJlbnRCb3goKS0+Ym9y
ZGVyQm94UmVjdCgpKTsKICAgICB1cGRhdGVMYXllclRyYW5zZm9ybSgpOwotICAgIGNsZWFyTmVl
ZHNMYXlvdXQoKTsKKyAgICBzZXROZWVkc0xheW91dChmYWxzZSk7CiB9CiAKIHZvaWQgUmVuZGVy
UmVwbGljYTo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJ1YnlSdW4uY3BwCmluZGV4IDUyMzFlOTA1OWMwMjFkZGNkNGEzYmY3
MGM5OGJkY2M3NDViZTdmY2MuLmUxMDFhNGU3ZWQ1NmM3MmQ4NTEwNzVlMTI1MTk4NjJjNTYzNzk0
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5UnVuLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieVJ1bi5jcHAKQEAgLTIy
NSw3ICsyMjUsNyBAQCBSZW5kZXJPYmplY3QqIFJlbmRlclJ1YnlSdW46OmxheW91dFNwZWNpYWxF
eGNsdWRlZENoaWxkKGJvb2wgcmVsYXlvdXRDaGlsZHJlbikKICAgICBpZiAoIXJ0KQogICAgICAg
ICByZXR1cm4gMDsKICAgICBpZiAocmVsYXlvdXRDaGlsZHJlbikKLSAgICAgICAgcnQtPnNldENo
aWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICAgICAgcnQtPnNldENoaWxkTmVlZHNM
YXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsKICAgICBydC0+bGF5b3V0SWZOZWVkZWQoKTsKICAg
ICByZXR1cm4gcnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU2Nyb2xsYmFyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxi
YXIuY3BwCmluZGV4IDg4NWQyYzIzZGQxMWY1ZDNmMDQ0ZGM4MTliZDY3NjRlYzliNzQ1MDAuLmY2
MTRjYzc4ZjliOTllMTI0Mzk4NGJlNWQ2MjczYjZjM2JkNDZlNGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXIuY3BwCkBAIC0xOTAsNyArMTkwLDcgQEAgdm9p
ZCBSZW5kZXJTY3JvbGxiYXI6OnVwZGF0ZVNjcm9sbGJhclBhcnRzKGJvb2wgZGVzdHJveSkKICAg
ICBpZiAobmV3VGhpY2tuZXNzICE9IG9sZFRoaWNrbmVzcykgewogICAgICAgICBzZXRGcmFtZVJl
Y3QoSW50UmVjdChsb2NhdGlvbigpLCBJbnRTaXplKGlzSG9yaXpvbnRhbCA/IHdpZHRoKCkgOiBu
ZXdUaGlja25lc3MsIGlzSG9yaXpvbnRhbCA/IG5ld1RoaWNrbmVzcyA6IGhlaWdodCgpKSkpOwog
ICAgICAgICBpZiAoUmVuZGVyQm94KiBib3ggPSBvd25pbmdSZW5kZXJlcigpKQotICAgICAgICAg
ICAgYm94LT5zZXRDaGlsZE5lZWRzTGF5b3V0KCk7CisgICAgICAgICAgICBib3gtPnNldENoaWxk
TmVlZHNMYXlvdXQodHJ1ZSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU2Nyb2xsYmFyUGFydC5jcHAKaW5kZXggNmUzMTNmZTA1NjgyMjQ1M2Q1ZGVh
MmJmODEzNWRjMWIzZTU4NmQyZi4uMDJiNDI3YmEzMmM3MWQ2NmVmZTFiMWExMzIxOGRmZGQ4NmRh
OTdjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNjcm9sbGJh
clBhcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTY3JvbGxiYXJQ
YXJ0LmNwcApAQCAtNjMsNyArNjMsNyBAQCB2b2lkIFJlbmRlclNjcm9sbGJhclBhcnQ6OmxheW91
dCgpCiAgICAgZWxzZQogICAgICAgICBsYXlvdXRWZXJ0aWNhbFBhcnQoKTsKIAotICAgIGNsZWFy
TmVlZHNMYXlvdXQoKTsKKyAgICBzZXROZWVkc0xheW91dChmYWxzZSk7CiB9CiAKIHZvaWQgUmVu
ZGVyU2Nyb2xsYmFyUGFydDo6bGF5b3V0SG9yaXpvbnRhbFBhcnQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKaW5kZXggNDQwYjZmMjliYTcxNjZkMWNmY2NhZTc4MTg0
NTQyYWNlZWI5N2NkNi4uNzRmODViYzIxNmQxZDBhMzQ5M2YwOTE2NzVjZjI5Y2ZlZTJmYzdlYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCkBAIC00MTQsNyArNDE0
LDcgQEAgdm9pZCBSZW5kZXJUYWJsZTo6bGF5b3V0KCkKIAogICAgIGlmIChsb2dpY2FsV2lkdGgo
KSAhPSBvbGRMb2dpY2FsV2lkdGgpIHsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG1fY2FwdGlvbnMuc2l6ZSgpOyBpKyspCi0gICAgICAgICAgICBtX2NhcHRpb25zW2ldLT5zZXRO
ZWVkc0xheW91dChNYXJrT25seVRoaXMpOworICAgICAgICAgICAgbV9jYXB0aW9uc1tpXS0+c2V0
TmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsKICAgICB9CiAgICAgLy8gRklYTUU6IFRo
ZSBvcHRpbWlzYXRpb24gYmVsb3cgZG9lc24ndCB3b3JrIHNpbmNlIHRoZSBpbnRlcm5hbCB0YWJs
ZQogICAgIC8vIGxheW91dCBjb3VsZCBoYXZlIGNoYW5nZWQuICB3ZSBuZWVkIHRvIGFkZCBhIGZs
YWcgdG8gdGhlIHRhYmxlCkBAIC00MzQsNyArNDM0LDcgQEAgdm9pZCBSZW5kZXJUYWJsZTo6bGF5
b3V0KCkKICAgICAgICAgaWYgKGNoaWxkLT5pc1RhYmxlU2VjdGlvbigpKSB7CiAgICAgICAgICAg
ICBSZW5kZXJUYWJsZVNlY3Rpb24qIHNlY3Rpb24gPSB0b1JlbmRlclRhYmxlU2VjdGlvbihjaGls
ZCk7CiAgICAgICAgICAgICBpZiAobV9jb2x1bW5Mb2dpY2FsV2lkdGhDaGFuZ2VkKQotICAgICAg
ICAgICAgICAgIHNlY3Rpb24tPnNldENoaWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAg
ICAgICAgICAgICAgICBzZWN0aW9uLT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5
VGhpcyk7CiAgICAgICAgICAgICBzZWN0aW9uLT5sYXlvdXRJZk5lZWRlZCgpOwogICAgICAgICAg
ICAgdG90YWxTZWN0aW9uTG9naWNhbEhlaWdodCArPSBzZWN0aW9uLT5jYWxjUm93TG9naWNhbEhl
aWdodCgpOwogICAgICAgICAgICAgaWYgKGNvbGxhcHNpbmcpCkBAIC01NTYsNyArNTU2LDcgQEAg
dm9pZCBSZW5kZXJUYWJsZTo6bGF5b3V0KCkKICAgICB9CiAKICAgICBtX2NvbHVtbkxvZ2ljYWxX
aWR0aENoYW5nZWQgPSBmYWxzZTsKLSAgICBjbGVhck5lZWRzTGF5b3V0KCk7CisgICAgc2V0TmVl
ZHNMYXlvdXQoZmFsc2UpOwogfQogCiAvLyBDb2xsZWN0IGFsbCB0aGUgdW5pcXVlIGJvcmRlciB2
YWx1ZXMgdGhhdCB3ZSB3YW50IHRvIHBhaW50IGluIGEgc29ydGVkIGxpc3QuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCmluZGV4IGE5NzZmYjQ5MDJhOTkwMmI0NDQ3MmNhNTU1
NmM4N2YyY2VmZGQ2YmUuLmJkZTlhYTA3ZWVlMzdkMGFjMmUyN2Y1OGZjNjM2NzZjOGVlZjUzYjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCkBAIC0yMjEsNyArMjIxLDcg
QEAgcHVibGljOgogICAgICAgICBpZiAoZG9jdW1lbnRCZWluZ0Rlc3Ryb3llZCgpKQogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICBtX25lZWRzU2VjdGlvblJlY2FsYyA9IHRydWU7Ci0gICAg
ICAgIHNldE5lZWRzTGF5b3V0KCk7CisgICAgICAgIHNldE5lZWRzTGF5b3V0KHRydWUpOwogICAg
IH0KIAogICAgIFJlbmRlclRhYmxlU2VjdGlvbiogc2VjdGlvbkFib3ZlKGNvbnN0IFJlbmRlclRh
YmxlU2VjdGlvbiosIFNraXBFbXB0eVNlY3Rpb25zVmFsdWUgPSBEb05vdFNraXBFbXB0eVNlY3Rp
b25zKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
YWJsZUNlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5j
cHAKaW5kZXggZWUyNTMwZmVkZDkyYjRkZDYzMmZkMjI1NjdjZTEyYjhhMGQ2MGM5Ni4uMjA5Y2Mx
MGFmNDBkOWE3ZmU3MDEyY2RmODhmZTViMDY3NjI0OGUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKQEAgLTIxOCw3ICsyMTgsNyBAQCB2b2lkIFJl
bmRlclRhYmxlQ2VsbDo6Y29tcHV0ZUludHJpbnNpY1BhZGRpbmcoaW50IHJvd0hlaWdodCkKICAg
ICAvLyBGSVhNRTogQ2hhbmdpbmcgYW4gaW50cmluc2ljIHBhZGRpbmcgc2hvdWxkbid0IHRyaWdn
ZXIgYSByZWxheW91dCBhcyBpdCBvbmx5IHNoaWZ0cyB0aGUgY2VsbCBpbnNpZGUgdGhlIHJvdyBi
dXQKICAgICAvLyBkb2Vzbid0IGNoYW5nZSB0aGUgbG9naWNhbCBoZWlnaHQuCiAgICAgaWYgKGlu
dHJpbnNpY1BhZGRpbmdCZWZvcmUgIT0gb2xkSW50cmluc2ljUGFkZGluZ0JlZm9yZSB8fCBpbnRy
aW5zaWNQYWRkaW5nQWZ0ZXIgIT0gb2xkSW50cmluc2ljUGFkZGluZ0FmdGVyKQotICAgICAgICBz
ZXROZWVkc0xheW91dChNYXJrT25seVRoaXMpOworICAgICAgICBzZXROZWVkc0xheW91dCh0cnVl
LCBNYXJrT25seVRoaXMpOwogfQogCiB2b2lkIFJlbmRlclRhYmxlQ2VsbDo6dXBkYXRlTG9naWNh
bFdpZHRoKCkKQEAgLTIzMCw4ICsyMzAsOCBAQCB2b2lkIFJlbmRlclRhYmxlQ2VsbDo6c2V0Q2Vs
bExvZ2ljYWxXaWR0aChpbnQgdGFibGVMYXlvdXRMb2dpY2FsV2lkdGgpCiAgICAgaWYgKHRhYmxl
TGF5b3V0TG9naWNhbFdpZHRoID09IGxvZ2ljYWxXaWR0aCgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBzZXROZWVkc0xheW91dChNYXJrT25seVRoaXMpOwotICAgIHJvdygpLT5zZXRDaGlsZE5l
ZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7CisgICAgc2V0TmVlZHNMYXlvdXQodHJ1ZSwgTWFya09u
bHlUaGlzKTsKKyAgICByb3coKS0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRo
aXMpOwogCiAgICAgaWYgKCF0YWJsZSgpLT5zZWxmTmVlZHNMYXlvdXQoKSAmJiBjaGVja0ZvclJl
cGFpbnREdXJpbmdMYXlvdXQoKSkKICAgICAgICAgcmVwYWludCgpOwpAQCAtMjU1LDcgKzI1NSw3
IEBAIHZvaWQgUmVuZGVyVGFibGVDZWxsOjpsYXlvdXQoKQogICAgIGlmIChpc0Jhc2VsaW5lQWxp
Z25lZCgpICYmIHNlY3Rpb24oKS0+cm93QmFzZWxpbmUocm93SW5kZXgoKSkgJiYgY2VsbEJhc2Vs
aW5lUG9zaXRpb24oKSA+IHNlY3Rpb24oKS0+cm93QmFzZWxpbmUocm93SW5kZXgoKSkpIHsKICAg
ICAgICAgaW50IG5ld0ludHJpbnNpY1BhZGRpbmdCZWZvcmUgPSBtYXg8TGF5b3V0VW5pdD4oMCwg
aW50cmluc2ljUGFkZGluZ0JlZm9yZSgpIC0gbWF4PExheW91dFVuaXQ+KDAsIGNlbGxCYXNlbGlu
ZVBvc2l0aW9uKCkgLSBvbGRDZWxsQmFzZWxpbmUpKTsKICAgICAgICAgc2V0SW50cmluc2ljUGFk
ZGluZ0JlZm9yZShuZXdJbnRyaW5zaWNQYWRkaW5nQmVmb3JlKTsKLSAgICAgICAgc2V0TmVlZHNM
YXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICAgICAgc2V0TmVlZHNMYXlvdXQodHJ1ZSwgTWFya09u
bHlUaGlzKTsKICAgICAgICAgbGF5b3V0QmxvY2soY2VsbFdpZHRoQ2hhbmdlZCgpKTsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVJvdy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVSb3cuY3BwCmluZGV4IGU0
ZDY2ZGFkMDFjNmY0NWUzNDFmOGI0ZjRkNWUwZTYzOGVjM2M3OWQuLjMxOGI5ZTRkNWMwN2JkNWQ1
M2I2Yzk5NzFhNjRjMDAyZDQ2YWExMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUYWJsZVJvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlUm93LmNwcApAQCAtODIsNyArODIsNyBAQCB2b2lkIFJlbmRlclRhYmxlUm93Ojpz
dHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9s
ZAogICAgICAgICAgICAgLy8gVGhpcyBvbmx5IGhhcHBlbnMgd2hlbiBib3JkZXJzIGFyZSBjb2xs
YXBzZWQsIHNpbmNlIHRoZXkgZW5kIHVwIGFmZmVjdGluZyB0aGUgYm9yZGVyIHNpZGVzIG9mIHRo
ZSBjZWxsCiAgICAgICAgICAgICAvLyBpdHNlbGYuCiAgICAgICAgICAgICBmb3IgKFJlbmRlclRh
YmxlQ2VsbCogY2VsbCA9IGZpcnN0Q2VsbCgpOyBjZWxsOyBjZWxsID0gY2VsbC0+bmV4dENlbGwo
KSkKLSAgICAgICAgICAgICAgICBjZWxsLT5zZXRDaGlsZE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhp
cyk7CisgICAgICAgICAgICAgICAgY2VsbC0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlLCBNYXJr
T25seVRoaXMpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMTYzLDcgKzE2Myw3IEBAIHZvaWQg
UmVuZGVyVGFibGVSb3c6OmxheW91dCgpCiAgICAgICAgICAgICAgICAgCiAgICAgZm9yIChSZW5k
ZXJUYWJsZUNlbGwqIGNlbGwgPSBmaXJzdENlbGwoKTsgY2VsbDsgY2VsbCA9IGNlbGwtPm5leHRD
ZWxsKCkpIHsKICAgICAgICAgaWYgKCFjZWxsLT5uZWVkc0xheW91dCgpICYmIHBhZ2luYXRlZCAm
JiB2aWV3KCkubGF5b3V0U3RhdGUoKS0+cGFnZUxvZ2ljYWxIZWlnaHQoKSAmJiB2aWV3KCkubGF5
b3V0U3RhdGUoKS0+cGFnZUxvZ2ljYWxPZmZzZXQoY2VsbCwgY2VsbC0+bG9naWNhbFRvcCgpKSAh
PSBjZWxsLT5wYWdlTG9naWNhbE9mZnNldCgpKQotICAgICAgICAgICAgY2VsbC0+c2V0Q2hpbGRO
ZWVkc0xheW91dChNYXJrT25seVRoaXMpOworICAgICAgICAgICAgY2VsbC0+c2V0Q2hpbGROZWVk
c0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMpOwogCiAgICAgICAgIGlmIChjZWxsLT5uZWVkc0xh
eW91dCgpKSB7CiAgICAgICAgICAgICBjZWxsLT5jb21wdXRlQW5kU2V0QmxvY2tEaXJlY3Rpb25N
YXJnaW5zKHRhYmxlKCkpOwpAQCAtMTgzLDcgKzE4Myw3IEBAIHZvaWQgUmVuZGVyVGFibGVSb3c6
OmxheW91dCgpCiAKICAgICBzdGF0ZVB1c2hlci5wb3AoKTsKICAgICAvLyBSZW5kZXJUYWJsZVNl
Y3Rpb246OmxheW91dFJvd3Mgd2lsbCBzZXQgb3VyIGxvZ2ljYWwgaGVpZ2h0IGFuZCB3aWR0aCBs
YXRlciwgc28gaXQgY2FsbHMgdXBkYXRlTGF5ZXJUcmFuc2Zvcm0oKS4KLSAgICBjbGVhck5lZWRz
TGF5b3V0KCk7CisgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQogCiBMYXlvdXRSZWN0IFJl
bmRlclRhYmxlUm93OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAppbmRleCA3Mjk3ZDgyNGVmNmY0
NmRhNjY2NmU2YWE2MjUzN2ZhNTc1OGNmNjcxLi4xYmRhYzQxNjc2N2JiNWEwZDc4NzMxNTI3YzM5
N2IxNzVlYzgwNzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVTZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGVTZWN0aW9uLmNwcApAQCAtMzI2LDcgKzMyNiw3IEBAIGludCBSZW5kZXJUYWJsZVNlY3Rpb246
OmNhbGNSb3dMb2dpY2FsSGVpZ2h0KCkKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgICAgICBjZWxsLT5jbGVhckludHJpbnNpY1BhZGRpbmcoKTsKICAgICAgICAgICAgICAg
ICAgICAgY2VsbC0+Y2xlYXJPdmVycmlkZVNpemUoKTsKLSAgICAgICAgICAgICAgICAgICAgY2Vs
bC0+c2V0Q2hpbGROZWVkc0xheW91dChNYXJrT25seVRoaXMpOworICAgICAgICAgICAgICAgICAg
ICBjZWxsLT5zZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7CiAgICAgICAg
ICAgICAgICAgICAgIGNlbGwtPmxheW91dElmTmVlZGVkKCk7CiAgICAgICAgICAgICAgICAgfQog
CkBAIC00MDYsNyArNDA2LDcgQEAgdm9pZCBSZW5kZXJUYWJsZVNlY3Rpb246OmxheW91dCgpCiAg
ICAgfQogCiAgICAgc3RhdGVQdXNoZXIucG9wKCk7Ci0gICAgY2xlYXJOZWVkc0xheW91dCgpOwor
ICAgIHNldE5lZWRzTGF5b3V0KGZhbHNlKTsKIH0KIAogdm9pZCBSZW5kZXJUYWJsZVNlY3Rpb246
OmRpc3RyaWJ1dGVFeHRyYUxvZ2ljYWxIZWlnaHRUb1BlcmNlbnRSb3dzKGludCYgZXh0cmFMb2dp
Y2FsSGVpZ2h0LCBpbnQgdG90YWxQZXJjZW50KQpAQCAtNTY2LDcgKzU2Niw3IEBAIHZvaWQgUmVu
ZGVyVGFibGVTZWN0aW9uOjpsYXlvdXRSb3dzKCkKICAgICAgICAgICAgICAgICBpZiAoIW8tPmlz
VGV4dCgpICYmIG8tPnN0eWxlKCktPmxvZ2ljYWxIZWlnaHQoKS5pc1BlcmNlbnQoKSAmJiAoZmxl
eEFsbENoaWxkcmVuIHx8ICgoby0+aXNSZXBsYWNlZCgpIHx8IChvLT5pc0JveCgpICYmIHRvUmVu
ZGVyQm94KG8pLT5zY3JvbGxzT3ZlcmZsb3coKSkpICYmICFvLT5pc1RleHRDb250cm9sKCkpKSkg
ewogICAgICAgICAgICAgICAgICAgICAvLyBUYWJsZXMgd2l0aCBubyBzZWN0aW9ucyBkbyBub3Qg
ZmxleC4KICAgICAgICAgICAgICAgICAgICAgaWYgKCFvLT5pc1RhYmxlKCkgfHwgdG9SZW5kZXJU
YWJsZShvKS0+aGFzU2VjdGlvbnMoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgby0+c2V0
TmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIG8tPnNl
dE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBjZWxsQ2hpbGRyZW5GbGV4ID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIH0KQEAgLTU4Miw3ICs1ODIsNyBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6
bGF5b3V0Um93cygpCiAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChib3ggIT0gY2VsbCkgewog
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJveC0+bm9ybWFsQ2hpbGROZWVkc0xheW91dCgp
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAg
ICAgICAgYm94LT5zZXRDaGlsZE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBib3gtPnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlz
KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGJveCA9IGJveC0+Y29udGFpbmluZ0Jsb2NrKCk7
CiAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoYm94KTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICghYm94KQpAQCAtNTkzLDcgKzU5Myw3IEBAIHZvaWQgUmVuZGVyVGFibGVTZWN0
aW9uOjpsYXlvdXRSb3dzKCkKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKGNlbGxD
aGlsZHJlbkZsZXgpIHsKLSAgICAgICAgICAgICAgICBjZWxsLT5zZXRDaGlsZE5lZWRzTGF5b3V0
KE1hcmtPbmx5VGhpcyk7CisgICAgICAgICAgICAgICAgY2VsbC0+c2V0Q2hpbGROZWVkc0xheW91
dCh0cnVlLCBNYXJrT25seVRoaXMpOwogICAgICAgICAgICAgICAgIC8vIEFsaWdubWVudCB3aXRo
aW4gYSBjZWxsIGlzIGJhc2VkIG9mZiB0aGUgY2FsY3VsYXRlZAogICAgICAgICAgICAgICAgIC8v
IGhlaWdodCwgd2hpY2ggYmVjb21lcyBpcnJlbGV2YW50IG9uY2UgdGhlIGNlbGwgaGFzCiAgICAg
ICAgICAgICAgICAgLy8gYmVlbiByZXNpemVkIGJhc2VkIG9mZiBpdHMgcGVyY2VudGFnZS4KQEAg
LTYxNSw3ICs2MTUsNyBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6bGF5b3V0Um93cygpCiAg
ICAgICAgICAgICBzZXRMb2dpY2FsUG9zaXRpb25Gb3JDZWxsKGNlbGwsIGMpOwogCiAgICAgICAg
ICAgICBpZiAoIWNlbGwtPm5lZWRzTGF5b3V0KCkgJiYgdmlldygpLmxheW91dFN0YXRlKCktPnBh
Z2VMb2dpY2FsSGVpZ2h0KCkgJiYgdmlldygpLmxheW91dFN0YXRlKCktPnBhZ2VMb2dpY2FsT2Zm
c2V0KGNlbGwsIGNlbGwtPmxvZ2ljYWxUb3AoKSkgIT0gY2VsbC0+cGFnZUxvZ2ljYWxPZmZzZXQo
KSkKLSAgICAgICAgICAgICAgICBjZWxsLT5zZXRDaGlsZE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhp
cyk7CisgICAgICAgICAgICAgICAgY2VsbC0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlLCBNYXJr
T25seVRoaXMpOwogCiAgICAgICAgICAgICBjZWxsLT5sYXlvdXRJZk5lZWRlZCgpOwogCkBAIC0x
MjM4LDcgKzEyMzgsNyBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6cmVjYWxjQ2VsbHMoKQog
ICAgIH0KIAogICAgIG1fZ3JpZC5zaHJpbmtUb0ZpdCgpOwotICAgIHNldE5lZWRzTGF5b3V0KCk7
CisgICAgc2V0TmVlZHNMYXlvdXQodHJ1ZSk7CiB9CiAKIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9u
IGNvdWxkIGJlIG1hZGUgTygxKSBpbiBjZXJ0YWluIGNhc2VzIChsaWtlIGZvciB0aGUgbm9uLW1v
c3QtY29uc3RyYWluaXZlIGNlbGxzJyBjYXNlKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCmluZGV4IDRiODc5YzU2NzgxNzE1M2ZkYmFhOTFlZGJm
NzE5ODAyMmIzZDFhYjEuLmJjZTkwOTcwMzc4NmJiZTQyODY1ZWQ5ZDlmMzQ3MDFjNWQ2MmRhYjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcApA
QCAtMjkxLDE0ICsyOTEsMTQgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbDo6YWRkRm9jdXNSaW5n
UmVjdHMoVmVjdG9yPEludFJlY3Q+JiByZWN0cywgY29uc3QgTGF5b3V0UG8KIFJlbmRlck9iamVj
dCogUmVuZGVyVGV4dENvbnRyb2w6OmxheW91dFNwZWNpYWxFeGNsdWRlZENoaWxkKGJvb2wgcmVs
YXlvdXRDaGlsZHJlbikKIHsKICAgICBIVE1MRWxlbWVudCogcGxhY2Vob2xkZXIgPSB0ZXh0Rm9y
bUNvbnRyb2xFbGVtZW50KCkucGxhY2Vob2xkZXJFbGVtZW50KCk7Ci0gICAgUmVuZGVyRWxlbWVu
dCogcGxhY2Vob2xkZXJSZW5kZXJlciA9IHBsYWNlaG9sZGVyID8gcGxhY2Vob2xkZXItPnJlbmRl
cmVyKCkgOiAwOworICAgIFJlbmRlck9iamVjdCogcGxhY2Vob2xkZXJSZW5kZXJlciA9IHBsYWNl
aG9sZGVyID8gcGxhY2Vob2xkZXItPnJlbmRlcmVyKCkgOiAwOwogICAgIGlmICghcGxhY2Vob2xk
ZXJSZW5kZXJlcikKICAgICAgICAgcmV0dXJuIDA7CiAgICAgaWYgKHJlbGF5b3V0Q2hpbGRyZW4p
IHsKICAgICAgICAgLy8gVGhlIG1hcmtQYXJlbnRzIGFyZ3VtZW50cyBzaG91bGQgYmUgZmFsc2Ug
YmVjYXVzZSB0aGlzIGZ1bmN0aW9uIGlzCiAgICAgICAgIC8vIGNhbGxlZCBmcm9tIGxheW91dCgp
IG9mIHRoZSBwYXJlbnQgYW5kIHRoZSBwbGFjZWhvbGRlciBsYXlvdXQgZG9lc24ndAogICAgICAg
ICAvLyBhZmZlY3QgdGhlIHBhcmVudCBsYXlvdXQuCi0gICAgICAgIHBsYWNlaG9sZGVyUmVuZGVy
ZXItPnNldENoaWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICAgICAgcGxhY2Vob2xk
ZXJSZW5kZXJlci0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMpOwogICAg
IH0KICAgICByZXR1cm4gcGxhY2Vob2xkZXJSZW5kZXJlcjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKaW5k
ZXggMWJkZGQzMWU3ODJkNWU2MDc4YWYyNWEwODE0MGRiMTBiMDQ5MzEyMC4uZmFmOTE1ZGZmM2Zl
MDBlYjQzNTk1OTFkMjYyNzQ3YjRmZDgxNWFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKQEAgLTEwMiw3
ICsxMDIsNyBAQCBzdGF0aWMgdm9pZCBzZXROZWVkc0xheW91dE9uQW5jZXN0b3JzKFJlbmRlck9i
amVjdCogc3RhcnQsIFJlbmRlck9iamVjdCogYW5jZXN0bwogICAgIEFTU0VSVChzdGFydCAhPSBh
bmNlc3Rvcik7CiAgICAgZm9yIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gc3RhcnQ7IHJlbmRl
cmVyICE9IGFuY2VzdG9yOyByZW5kZXJlciA9IHJlbmRlcmVyLT5wYXJlbnQoKSkgewogICAgICAg
ICBBU1NFUlQocmVuZGVyZXIpOwotICAgICAgICByZW5kZXJlci0+c2V0TmVlZHNMYXlvdXQoTWFy
a09ubHlUaGlzKTsKKyAgICAgICAgcmVuZGVyZXItPnNldE5lZWRzTGF5b3V0KHRydWUsIE1hcmtP
bmx5VGhpcyk7CiAgICAgfQogfQogCkBAIC0xNDQsMTUgKzE0NCwxNSBAQCB2b2lkIFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZTo6bGF5b3V0KCkKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxIZWln
aHRMaW1pdCA9IGNvbXB1dGVMb2dpY2FsSGVpZ2h0TGltaXQoKTsKICAgICBpZiAoaW5uZXJUZXh0
UmVuZGVyZXIgJiYgaW5uZXJUZXh0UmVuZGVyZXItPmxvZ2ljYWxIZWlnaHQoKSA+IGxvZ2ljYWxI
ZWlnaHRMaW1pdCkgewogICAgICAgICBpZiAoZGVzaXJlZExvZ2ljYWxIZWlnaHQgIT0gaW5uZXJU
ZXh0UmVuZGVyZXItPmxvZ2ljYWxIZWlnaHQoKSkKLSAgICAgICAgICAgIHNldE5lZWRzTGF5b3V0
KE1hcmtPbmx5VGhpcyk7CisgICAgICAgICAgICBzZXROZWVkc0xheW91dCh0cnVlLCBNYXJrT25s
eVRoaXMpOwogCiAgICAgICAgIG1fZGVzaXJlZElubmVyVGV4dExvZ2ljYWxIZWlnaHQgPSBkZXNp
cmVkTG9naWNhbEhlaWdodDsKIAogICAgICAgICBpbm5lclRleHRSZW5kZXJlci0+c3R5bGUoKS0+
c2V0TG9naWNhbEhlaWdodChMZW5ndGgoZGVzaXJlZExvZ2ljYWxIZWlnaHQsIEZpeGVkKSk7Ci0g
ICAgICAgIGlubmVyVGV4dFJlbmRlcmVyLT5zZXROZWVkc0xheW91dChNYXJrT25seVRoaXMpOwor
ICAgICAgICBpbm5lclRleHRSZW5kZXJlci0+c2V0TmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlU
aGlzKTsKICAgICAgICAgaWYgKGlubmVyQmxvY2tSZW5kZXJlcikgewogICAgICAgICAgICAgaW5u
ZXJCbG9ja1JlbmRlcmVyLT5zdHlsZSgpLT5zZXRMb2dpY2FsSGVpZ2h0KExlbmd0aChkZXNpcmVk
TG9naWNhbEhlaWdodCwgRml4ZWQpKTsKLSAgICAgICAgICAgIGlubmVyQmxvY2tSZW5kZXJlci0+
c2V0TmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICAgICAgICAgIGlubmVyQmxvY2tSZW5k
ZXJlci0+c2V0TmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsKICAgICAgICAgfQogICAg
IH0KICAgICAvLyBUaGUgY29udGFpbmVyIG1pZ2h0IGJlIHRhbGxlciBiZWNhdXNlIG9mIGRlY29y
YXRpb24gZWxlbWVudHMuCkBAIC0xNjEsMTAgKzE2MSwxMCBAQCB2b2lkIFJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZTo6bGF5b3V0KCkKICAgICAgICAgTGF5b3V0VW5pdCBjb250YWluZXJMb2dp
Y2FsSGVpZ2h0ID0gY29udGFpbmVyUmVuZGVyZXItPmxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAg
aWYgKGNvbnRhaW5lckxvZ2ljYWxIZWlnaHQgPiBsb2dpY2FsSGVpZ2h0TGltaXQpIHsKICAgICAg
ICAgICAgIGNvbnRhaW5lclJlbmRlcmVyLT5zdHlsZSgpLT5zZXRMb2dpY2FsSGVpZ2h0KExlbmd0
aChsb2dpY2FsSGVpZ2h0TGltaXQsIEZpeGVkKSk7Ci0gICAgICAgICAgICBzZXROZWVkc0xheW91
dChNYXJrT25seVRoaXMpOworICAgICAgICAgICAgc2V0TmVlZHNMYXlvdXQodHJ1ZSwgTWFya09u
bHlUaGlzKTsKICAgICAgICAgfSBlbHNlIGlmIChjb250YWluZXJSZW5kZXJlci0+bG9naWNhbEhl
aWdodCgpIDwgY29udGVudExvZ2ljYWxIZWlnaHQoKSkgewogICAgICAgICAgICAgY29udGFpbmVy
UmVuZGVyZXItPnN0eWxlKCktPnNldExvZ2ljYWxIZWlnaHQoTGVuZ3RoKGNvbnRlbnRMb2dpY2Fs
SGVpZ2h0KCksIEZpeGVkKSk7Ci0gICAgICAgICAgICBzZXROZWVkc0xheW91dChNYXJrT25seVRo
aXMpOworICAgICAgICAgICAgc2V0TmVlZHNMYXlvdXQodHJ1ZSwgTWFya09ubHlUaGlzKTsKICAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICBjb250YWluZXJSZW5kZXJlci0+c3R5bGUoKS0+c2V0
TG9naWNhbEhlaWdodChMZW5ndGgoY29udGFpbmVyTG9naWNhbEhlaWdodCwgRml4ZWQpKTsKICAg
ICB9CkBAIC0yNjMsNyArMjYzLDcgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6
OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW4KICAgICB9CiAg
ICAgUmVuZGVyT2JqZWN0KiBpbm5lclRleHRSZW5kZXJlciA9IGlubmVyVGV4dEVsZW1lbnQoKS0+
cmVuZGVyZXIoKTsKICAgICBpZiAoaW5uZXJUZXh0UmVuZGVyZXIgJiYgZGlmZiA9PSBTdHlsZURp
ZmZlcmVuY2VMYXlvdXQpCi0gICAgICAgIGlubmVyVGV4dFJlbmRlcmVyLT5zZXROZWVkc0xheW91
dChNYXJrQ29udGFpbmluZ0Jsb2NrQ2hhaW4pOworICAgICAgICBpbm5lclRleHRSZW5kZXJlci0+
c2V0TmVlZHNMYXlvdXQodHJ1ZSwgTWFya0NvbnRhaW5pbmdCbG9ja0NoYWluKTsKICAgICBpZiAo
SFRNTEVsZW1lbnQqIHBsYWNlaG9sZGVyID0gaW5wdXRFbGVtZW50KCkucGxhY2Vob2xkZXJFbGVt
ZW50KCkpCiAgICAgICAgIHBsYWNlaG9sZGVyLT5zZXRJbmxpbmVTdHlsZVByb3BlcnR5KENTU1By
b3BlcnR5VGV4dE92ZXJmbG93LCB0ZXh0U2hvdWxkQmVUcnVuY2F0ZWQoKSA/IENTU1ZhbHVlRWxs
aXBzaXMgOiBDU1NWYWx1ZUNsaXApOwogICAgIHNldEhhc092ZXJmbG93Q2xpcChmYWxzZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcAppbmRleCA5MGZjNjVlMjg2MzU4
YjY1YTA3NzhhMDQyY2RlMTUzZDU1MTljYTg4Li5lNTM1YzJmZGQzZjMzOTBkNGJjYmIxMzAzMTRj
ZWM3MzE2N2FmMDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VmlkZW8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAK
QEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBSZW5kZXJWaWRlbzo6dXBkYXRlSW50cmluc2ljU2l6ZSgp
CiAKICAgICBzZXRJbnRyaW5zaWNTaXplKHNpemUpOwogICAgIHNldFByZWZlcnJlZExvZ2ljYWxX
aWR0aHNEaXJ0eSh0cnVlKTsKLSAgICBzZXROZWVkc0xheW91dCgpOworICAgIHNldE5lZWRzTGF5
b3V0KHRydWUpOwogfQogICAgIAogTGF5b3V0U2l6ZSBSZW5kZXJWaWRlbzo6Y2FsY3VsYXRlSW50
cmluc2ljU2l6ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXgg
NjY2MWQzNGQ0NGRmMmRhYjZlNDQwYmRlYzY3Njg2M2M3NWQ4MGRiMy4uNDQ0MGE4YzcwOTgzODQ4
NGZhNGU2MWMzMTEyNDQ2Y2RlOGQ5OTM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmNwcApAQCAtMzAyLDI0ICszMDIsMjAgQEAgdm9pZCBSZW5kZXJWaWV3OjpsYXlvdXQo
KQogICAgIC8vIFVzZSBjYWxjV2lkdGgvSGVpZ2h0IHRvIGdldCB0aGUgbmV3IHdpZHRoL2hlaWdo
dCwgc2luY2UgdGhpcyB3aWxsIHRha2UgdGhlIGZ1bGwgcGFnZSB6b29tIGZhY3RvciBpbnRvIGFj
Y291bnQuCiAgICAgYm9vbCByZWxheW91dENoaWxkcmVuID0gIXNob3VsZFVzZVByaW50aW5nTGF5
b3V0KCkgJiYgKHdpZHRoKCkgIT0gdmlld1dpZHRoKCkgfHwgaGVpZ2h0KCkgIT0gdmlld0hlaWdo
dCgpKTsKICAgICBpZiAocmVsYXlvdXRDaGlsZHJlbikgewotICAgICAgICBzZXRDaGlsZE5lZWRz
TGF5b3V0KE1hcmtPbmx5VGhpcyk7CisgICAgICAgIHNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwg
TWFya09ubHlUaGlzKTsKICAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGNoaWxkID0gZmlyc3RD
aGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICAg
ICAgaWYgKCFjaGlsZC0+aXNCb3goKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgICAgIFJlbmRlckJveCYgYm94ID0gdG9SZW5kZXJCb3goKmNoaWxkKTsKLSAgICAgICAgICAg
IGlmIChib3guaGFzUmVsYXRpdmVMb2dpY2FsSGVpZ2h0KCkKLSAgICAgICAgICAgICAgICB8fCBi
b3guaGFzVmlld3BvcnRQZXJjZW50YWdlTG9naWNhbEhlaWdodCgpCi0gICAgICAgICAgICAgICAg
fHwgYm94LnN0eWxlKCktPmxvZ2ljYWxIZWlnaHQoKS5pc1BlcmNlbnQoKQotICAgICAgICAgICAg
ICAgIHx8IGJveC5zdHlsZSgpLT5sb2dpY2FsTWluSGVpZ2h0KCkuaXNQZXJjZW50KCkKLSAgICAg
ICAgICAgICAgICB8fCBib3guc3R5bGUoKS0+bG9naWNhbE1heEhlaWdodCgpLmlzUGVyY2VudCgp
Ci0gICAgICAgICAgICAgICAgfHwgYm94LnN0eWxlKCktPmxvZ2ljYWxIZWlnaHQoKS5pc1ZpZXdw
b3J0UGVyY2VudGFnZSgpCi0gICAgICAgICAgICAgICAgfHwgYm94LnN0eWxlKCktPmxvZ2ljYWxN
aW5IZWlnaHQoKS5pc1ZpZXdwb3J0UGVyY2VudGFnZSgpCi0gICAgICAgICAgICAgICAgfHwgYm94
LnN0eWxlKCktPmxvZ2ljYWxNYXhIZWlnaHQoKS5pc1ZpZXdwb3J0UGVyY2VudGFnZSgpCisgICAg
ICAgICAgICBpZiAoKGNoaWxkLT5pc0JveCgpICYmICh0b1JlbmRlckJveChjaGlsZCktPmhhc1Jl
bGF0aXZlTG9naWNhbEhlaWdodCgpIHx8IHRvUmVuZGVyQm94KGNoaWxkKS0+aGFzVmlld3BvcnRQ
ZXJjZW50YWdlTG9naWNhbEhlaWdodCgpKSkKKyAgICAgICAgICAgICAgICAgICAgfHwgY2hpbGQt
PnN0eWxlKCktPmxvZ2ljYWxIZWlnaHQoKS5pc1BlcmNlbnQoKQorICAgICAgICAgICAgICAgICAg
ICB8fCBjaGlsZC0+c3R5bGUoKS0+bG9naWNhbE1pbkhlaWdodCgpLmlzUGVyY2VudCgpCisgICAg
ICAgICAgICAgICAgICAgIHx8IGNoaWxkLT5zdHlsZSgpLT5sb2dpY2FsTWF4SGVpZ2h0KCkuaXNQ
ZXJjZW50KCkKKyAgICAgICAgICAgICAgICAgICAgfHwgY2hpbGQtPnN0eWxlKCktPmxvZ2ljYWxI
ZWlnaHQoKS5pc1ZpZXdwb3J0UGVyY2VudGFnZSgpCisgICAgICAgICAgICAgICAgICAgIHx8IGNo
aWxkLT5zdHlsZSgpLT5sb2dpY2FsTWluSGVpZ2h0KCkuaXNWaWV3cG9ydFBlcmNlbnRhZ2UoKQor
ICAgICAgICAgICAgICAgICAgICB8fCBjaGlsZC0+c3R5bGUoKS0+bG9naWNhbE1heEhlaWdodCgp
LmlzVmlld3BvcnRQZXJjZW50YWdlKCkKICNpZiBFTkFCTEUoU1ZHKQotICAgICAgICAgICAgICAg
IHx8IGJveC5pc1NWR1Jvb3QoKQorICAgICAgICAgICAgICAgICAgICB8fCBjaGlsZC0+aXNTVkdS
b290KCkKICNlbmRpZgogICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICBib3guc2V0
Q2hpbGROZWVkc0xheW91dChNYXJrT25seVRoaXMpOworICAgICAgICAgICAgICAgIGNoaWxkLT5z
ZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7CiAgICAgICAgIH0KICAgICB9
CiAKQEAgLTM0NCw3ICszNDAsNyBAQCB2b2lkIFJlbmRlclZpZXc6OmxheW91dCgpCiAgICAgY2hl
Y2tMYXlvdXRTdGF0ZShzdGF0ZSk7CiAjZW5kaWYKICAgICBtX2xheW91dFN0YXRlID0gMDsKLSAg
ICBjbGVhck5lZWRzTGF5b3V0KCk7CisgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogICAgIAog
ICAgIGlmIChpc1NlYW1sZXNzQW5jZXN0b3JJbkZsb3dUaHJlYWQpCiAgICAgICAgIGZsb3dUaHJl
YWRDb250cm9sbGVyKCkuc2V0Q3VycmVudFJlbmRlckZsb3dUaHJlYWQoMCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCmluZGV4IDkwNTg0Yjk5NGNlM2E0ZTQ2MDU4
OGY5YWE4OGRkODBlMGI2MWQxMTQuLjYxNjhkNTIyYTdhNmM3YmYxZDEyMTM1ZDgxOTM4MDNjNWJm
MDQ1NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCkBAIC0y
MTcsNyArMjE3LDcgQEAgdm9pZCBSZW5kZXJXaWRnZXQ6OmxheW91dCgpCiAgICAgU3RhY2tTdGF0
czo6TGF5b3V0Q2hlY2tQb2ludCBsYXlvdXRDaGVja1BvaW50OwogICAgIEFTU0VSVChuZWVkc0xh
eW91dCgpKTsKIAotICAgIGNsZWFyTmVlZHNMYXlvdXQoKTsKKyAgICBzZXROZWVkc0xheW91dChm
YWxzZSk7CiB9CiAKIHZvaWQgUmVuZGVyV2lkZ2V0OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZl
cmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcAppbmRleCAx
NDRkMDc0Nzg0MWNiMzc5YmU2NTI5NTNiYzNkN2U4Y2IzOTAzZTM2Li4zYzU2YzNkMWNmNTJkYjUy
NDU3NjQyYjMxZTVjZDYzMjE5ZjJmMWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEJsb2NrLmNwcApAQCAtODIsNyArODIsNyBAQCB2
b2lkIFJlbmRlck1hdGhNTEJsb2NrOjpjb21wdXRlQ2hpbGRyZW5QcmVmZXJyZWRMb2dpY2FsSGVp
Z2h0cygpCiAgICAgRnJhZ21lbnRhdGlvbkRpc2FibGVyIGZyYWdtZW50YXRpb25EaXNhYmxlcih0
aGlzKTsKIAogICAgIC8vIEVuc3VyZSBhIGZ1bGwgcmVwYWludCB3aWxsIGhhcHBlbiBhZnRlciBs
YXlvdXQgZmluaXNoZXMuCi0gICAgc2V0TmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICBz
ZXROZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMpOwogCiAgICAgYm9vbCBoYWRMYXlvdXRT
dGF0ZSA9IHZpZXcoKS5sYXlvdXRTdGF0ZSgpOwogICAgIGlmICghaGFkTGF5b3V0U3RhdGUpCkBA
IC0xMDAsNyArMTAwLDcgQEAgdm9pZCBSZW5kZXJNYXRoTUxCbG9jazo6Y29tcHV0ZUNoaWxkcmVu
UHJlZmVycmVkTG9naWNhbEhlaWdodHMoKQogICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBC
ZWNhdXNlIG91ciB3aWR0aCBjaGFuZ2VkLCB8Y2hpbGR8IG1heSBuZWVkIGxheW91dC4KICAgICAg
ICAgICAgIGlmIChjaGlsZC0+bWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCkgPiBvbGRBdmFpbGFi
bGVMb2dpY2FsV2lkdGgpCi0gICAgICAgICAgICAgICAgY2hpbGQtPnNldE5lZWRzTGF5b3V0KE1h
cmtPbmx5VGhpcyk7CisgICAgICAgICAgICAgICAgY2hpbGQtPnNldE5lZWRzTGF5b3V0KHRydWUs
IE1hcmtPbmx5VGhpcyk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIFJlbmRlck1hdGhNTEJs
b2NrKiBjaGlsZE1hdGhNTEJsb2NrID0gY2hpbGQtPmlzUmVuZGVyTWF0aE1MQmxvY2soKSA/IHRv
UmVuZGVyTWF0aE1MQmxvY2soY2hpbGQpIDogMDsKICAgICAgICAgICAgIGlmIChjaGlsZE1hdGhN
TEJsb2NrICYmICFjaGlsZE1hdGhNTEJsb2NrLT5pc1ByZWZlcnJlZExvZ2ljYWxIZWlnaHREaXJ0
eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJN
YXRoTUxTY3JpcHRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVy
TWF0aE1MU2NyaXB0cy5jcHAKaW5kZXggNzg2MWZiZmRlZjU5N2JmNmQwNzdkNWZlNzNkZDIzZDJl
ZGY5YmU1NC4uY2JlY2FiYWVkOTRmMzJiNTc3OTAzZTA0N2M0NDgyOGRjNzRmMjEzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxTY3JpcHRz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTFNj
cmlwdHMuY3BwCkBAIC0zNDksOCArMzQ5LDggQEAgdm9pZCBSZW5kZXJNYXRoTUxTY3JpcHRzOjps
YXlvdXQoKQogICAgIGlmICghbmVlZHNTZWNvbmRMYXlvdXQpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIHNldE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7Ci0gICAgbV9iYXNlV3JhcHBlci0+c2V0
Q2hpbGROZWVkc0xheW91dChNYXJrT25seVRoaXMpOworICAgIHNldE5lZWRzTGF5b3V0KHRydWUs
IE1hcmtPbmx5VGhpcyk7CisgICAgbV9iYXNlV3JhcHBlci0+c2V0Q2hpbGROZWVkc0xheW91dCh0
cnVlLCBNYXJrT25seVRoaXMpOwogCiAgICAgUmVuZGVyTWF0aE1MQmxvY2s6OmxheW91dCgpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250
YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWlu
ZXIuY3BwCmluZGV4IDk2Y2JlZDY1YTRjZWVkYTA2Y2U2YTI0OTE1NzAzZWRiNDJjZmQxYmYuLjhi
ZWE5MGZlOWI1ZWQyZjE0MmQ2ZDdiZmExNzZlNGM1ODE3Nzg2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5jcHAKQEAgLTg2LDcg
Kzg2LDcgQEAgdm9pZCBSZW5kZXJTVkdDb250YWluZXI6OmxheW91dCgpCiAgICAgfQogCiAgICAg
cmVwYWludGVyLnJlcGFpbnRBZnRlckxheW91dCgpOwotICAgIGNsZWFyTmVlZHNMYXlvdXQoKTsK
KyAgICBzZXROZWVkc0xheW91dChmYWxzZSk7CiB9CiAKIHZvaWQgUmVuZGVyU1ZHQ29udGFpbmVy
OjphZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxk
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdHcmFk
aWVudFN0b3AuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdHcmFk
aWVudFN0b3AuY3BwCmluZGV4IGFhMDJkMDlkMWZlNDM3MzIzODA2ZjQ4YjczZjhiOGMzMDlmNmFh
MmUuLmQxM2NjNjU4ODRmNDc1MjE3Y2JlZjQxYjE5M2JlY2ExNDdhZmQ4ZDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHR3JhZGllbnRTdG9wLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0dyYWRpZW50U3RvcC5j
cHAKQEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBSZW5kZXJTVkdHcmFkaWVudFN0b3A6OnN0eWxlRGlk
Q2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHkKIHZvaWQgUmVuZGVy
U1ZHR3JhZGllbnRTdG9wOjpsYXlvdXQoKQogewogICAgIFN0YWNrU3RhdHM6OkxheW91dENoZWNr
UG9pbnQgbGF5b3V0Q2hlY2tQb2ludDsKLSAgICBjbGVhck5lZWRzTGF5b3V0KCk7CisgICAgc2V0
TmVlZHNMYXlvdXQoZmFsc2UpOwogfQogCiBTVkdHcmFkaWVudEVsZW1lbnQqIFJlbmRlclNWR0dy
YWRpZW50U3RvcDo6Z3JhZGllbnRFbGVtZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyLmNwcAppbmRl
eCBhYTUyMDVhZDM5N2ZlMzgwZmMyMTk1MGUxMWMzOWZkOGE0ZDI0NDBmLi41N2E3YmE3NWI2N2Ni
NmYxMWI3ZjIzOTQ1MjljMGNkNjc3ODQxODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0hpZGRlbkNvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdIaWRkZW5Db250YWluZXIuY3BwCkBAIC0zOCw3
ICszOCw3IEBAIHZvaWQgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyOjpsYXlvdXQoKQogICAgIFN0
YWNrU3RhdHM6OkxheW91dENoZWNrUG9pbnQgbGF5b3V0Q2hlY2tQb2ludDsKICAgICBBU1NFUlQo
bmVlZHNMYXlvdXQoKSk7CiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6bGF5b3V0Q2hpbGRyZW4odGhp
cywgc2VsZk5lZWRzTGF5b3V0KCkpOyAKLSAgICBjbGVhck5lZWRzTGF5b3V0KCk7ICAgIAorICAg
IHNldE5lZWRzTGF5b3V0KGZhbHNlKTsgICAgCiB9CiAKIHZvaWQgUmVuZGVyU1ZHSGlkZGVuQ29u
dGFpbmVyOjpwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3BwCmluZGV4IDhjOWYzMzk4
YjE0NzRhNDBhNjY1MjkxYTZjMDI3MTE4MjdlODJjOTguLjUxYmZkZmZhNzczNGI5ZGZkZmFiMzlh
YmE1MWMxN2JlNGUzMTRhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHSW1hZ2UuY3BwCkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBSZW5kZXJTVkdJbWFn
ZTo6bGF5b3V0KCkKICAgICAgICAgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OnNldE5lZWRzQm91bmRh
cmllc1VwZGF0ZSgpOwogCiAgICAgcmVwYWludGVyLnJlcGFpbnRBZnRlckxheW91dCgpOwotICAg
IGNsZWFyTmVlZHNMYXlvdXQoKTsKKyAgICBzZXROZWVkc0xheW91dChmYWxzZSk7CiB9CiAKIHZv
aWQgUmVuZGVyU1ZHSW1hZ2U6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlv
dXRQb2ludCYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
UmVzb3VyY2UuY3BwCmluZGV4IDRlNTRkNDA2YzI1YzUzODQ5ODc1M2M3MTRmNTBkODU0NzRmOTAy
M2IuLmEzN2NmZGI3NWE2OWM5MGFhMTU0MmQzNzMwMmVhZTE4OTkzNjk4YzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2UuY3BwCkBAIC0x
OTUsNyArMTk1LDcgQEAgdm9pZCBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBh
cmVudFJlc291cmNlSW52YWxpZGF0aW9uKFJlbmRlck9iamVjdCoKICAgICBBU1NFUlQob2JqZWN0
LT5ub2RlKCkpOwogCiAgICAgaWYgKG5lZWRzTGF5b3V0ICYmICFvYmplY3QtPmRvY3VtZW50QmVp
bmdEZXN0cm95ZWQoKSkKLSAgICAgICAgb2JqZWN0LT5zZXROZWVkc0xheW91dCgpOworICAgICAg
ICBvYmplY3QtPnNldE5lZWRzTGF5b3V0KHRydWUpOwogCiAgICAgcmVtb3ZlRnJvbUNhY2hlQW5k
SW52YWxpZGF0ZURlcGVuZGVuY2llcyhvYmplY3QsIG5lZWRzTGF5b3V0KTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ29u
dGFpbmVyLmNwcAppbmRleCBlZDcyNzIzMTM3NjljYmE0MTAxOTAxOGNiN2ZiNTgyYmNiOGI5MjM1
Li4zYzk0ZDk3ZjQ1MWMyOTA5ODI3YWZjNTJhNzRiZWZmYjMwODA0Yjc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ29u
dGFpbmVyLmNwcApAQCAtMTkzLDcgKzE5Myw3IEBAIHZvaWQgUmVuZGVyU1ZHUmVzb3VyY2VDb250
YWluZXI6OnJlZ2lzdGVyUmVzb3VyY2UoKQogICAgICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIFNWR1Jlc291cmNlc0NhY2hlOjpjbGllbnRTdHlsZUNo
YW5nZWQocmVuZGVyZXIsIFN0eWxlRGlmZmVyZW5jZUxheW91dCwgcmVuZGVyZXItPnN0eWxlKCkp
OwotICAgICAgICByZW5kZXJlci0+c2V0TmVlZHNMYXlvdXQoKTsKKyAgICAgICAgcmVuZGVyZXIt
PnNldE5lZWRzTGF5b3V0KHRydWUpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKaW5kZXggNjFmZGNiMmZiYTA0OWIwMDBmMjY3
ZmNhMWVlYTZkOWRhMzQwYjY3Mi4uOWRlMjBhMjQ1YTlhM2VmMzM0NjFjOGQ0NzVkNTExNjUzY2Y1
YTlkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
b290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3Qu
Y3BwCkBAIC0yMzYsNyArMjM2LDcgQEAgdm9pZCBSZW5kZXJTVkdSb290OjpsYXlvdXQoKQogCiAg
ICAgcmVwYWludGVyLnJlcGFpbnRBZnRlckxheW91dCgpOwogCi0gICAgY2xlYXJOZWVkc0xheW91
dCgpOworICAgIHNldE5lZWRzTGF5b3V0KGZhbHNlKTsKIH0KIAogdm9pZCBSZW5kZXJTVkdSb290
OjpwYWludFJlcGxhY2VkKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYg
cGFpbnRPZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1NoYXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
U2hhcGUuY3BwCmluZGV4IDhjYjlhMzQ3YjJlNDZlNjMwOTU0OTkzYjc4MTg4NzEzNzIyZDFkNTUu
LjljZDU1ZmFmMTYyY2Q2MzJjNjlkZDRiYzczOThkMGI2NjRiZDEzN2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuY3BwCkBAIC0xNzIsNyArMTcy
LDcgQEAgdm9pZCBSZW5kZXJTVkdTaGFwZTo6bGF5b3V0KCkKICAgICAgICAgUmVuZGVyU1ZHTW9k
ZWxPYmplY3Q6OnNldE5lZWRzQm91bmRhcmllc1VwZGF0ZSgpOwogCiAgICAgcmVwYWludGVyLnJl
cGFpbnRBZnRlckxheW91dCgpOwotICAgIGNsZWFyTmVlZHNMYXlvdXQoKTsKKyAgICBzZXROZWVk
c0xheW91dChmYWxzZSk7CiB9CiAKIFBhdGgqIFJlbmRlclNWR1NoYXBlOjpub25TY2FsaW5nU3Ry
b2tlUGF0aChjb25zdCBQYXRoKiBwYXRoLCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHN0cm9rZVRy
YW5zZm9ybSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1RleHQuY3BwCmluZGV4IDZlNTAwYzc3NmIwODMzZWVmODhhNTNjOThhZDdjMDcwZTc4ZDlkMjku
LjgwZTJiZDQ1YzA3Yzg3ZmJiZmU5OGE5ZjZiYWM5YjJiNGNlMWNiNmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcApAQCAtNDM4LDcgKzQzOCw3
IEBAIHZvaWQgUmVuZGVyU1ZHVGV4dDo6bGF5b3V0KCkKICAgICAgICAgUmVuZGVyU1ZHQmxvY2s6
OnNldE5lZWRzQm91bmRhcmllc1VwZGF0ZSgpOwogCiAgICAgcmVwYWludGVyLnJlcGFpbnRBZnRl
ckxheW91dCgpOwotICAgIGNsZWFyTmVlZHNMYXlvdXQoKTsKKyAgICBzZXROZWVkc0xheW91dChm
YWxzZSk7CiB9CiAKIFJvb3RJbmxpbmVCb3gqIFJlbmRlclNWR1RleHQ6OmNyZWF0ZVJvb3RJbmxp
bmVCb3goKSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVu
ZGVyU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1
cHBvcnQuY3BwCmluZGV4IDM0YzdiNThkN2ZlMjQxNGQzNmI1NTEzMWQ4NjA4MDMwYzQzODBmYTAu
LjUwYWY4NzQyNmFkZWMzMWFhOWUyMjQ2NWNkMWM1ZTNjODdlMzExYzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcApAQCAtMjY5LDcg
KzI2OSw3IEBAIHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6bGF5b3V0Q2hpbGRyZW4oUmVuZGVyT2Jq
ZWN0KiBzdGFydCwgYm9vbCBzZWxmTmVlZHNMYXlvdXQpCiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAobmVlZHNMYXlvdXQpCi0gICAgICAgICAgICBjaGlsZC0+c2V0TmVlZHNMYXlvdXQoTWFya09u
bHlUaGlzKTsKKyAgICAgICAgICAgIGNoaWxkLT5zZXROZWVkc0xheW91dCh0cnVlLCBNYXJrT25s
eVRoaXMpOwogCiAgICAgICAgIGlmIChjaGlsZC0+bmVlZHNMYXlvdXQoKSkgewogICAgICAgICAg
ICAgY2hpbGQtPmxheW91dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Ns
aXBQYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50
LmNwcAppbmRleCBmOGY5NTA0M2UwOTE2NzEzNjU5MGJlYTc2NzUyNWNhY2RhMmVjM2VmLi5kOGQz
NjgwOGE4ZTQzMjUzODViM2E4OGFkZWE5MTVkZTM1YmM5ZWY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcApAQCAtMTAwLDcgKzEwMCw3IEBAIHZvaWQgU1ZHQ2xp
cFBhdGhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW1lKQogICAgIFNWR0VsZW1lbnRJbnN0YW5jZTo6SW52YWxpZGF0aW9uR3VhcmQgaW52YWxp
ZGF0aW9uR3VhcmQodGhpcyk7CiAKICAgICBpZiAoUmVuZGVyT2JqZWN0KiBvYmplY3QgPSByZW5k
ZXJlcigpKQotICAgICAgICBvYmplY3QtPnNldE5lZWRzTGF5b3V0KCk7CisgICAgICAgIG9iamVj
dC0+c2V0TmVlZHNMYXlvdXQodHJ1ZSk7CiB9CiAKIHZvaWQgU1ZHQ2xpcFBhdGhFbGVtZW50Ojpj
aGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKQEAgLTExMSw3ICsxMTEs
NyBAQCB2b2lkIFNWR0NsaXBQYXRoRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0IENoaWxk
Q2hhbmdlJiBjaGFuZ2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChSZW5kZXJPYmplY3Qq
IG9iamVjdCA9IHJlbmRlcmVyKCkpCi0gICAgICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQoKTsK
KyAgICAgICAgb2JqZWN0LT5zZXROZWVkc0xheW91dCh0cnVlKTsKIH0KIAogUmVuZGVyRWxlbWVu
dCogU1ZHQ2xpcFBhdGhFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEs
IFJlbmRlclN0eWxlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmNwcAppbmRl
eCAzZGQwYmE1OTI3N2ZkNDEwNzU2ZjIyYjNjMzkwZWU4YmQzYTIxNWIyLi44NWRiNGNhNjE2MDlk
ZDJiOGVmNzBkNzVmOTk5Y2FiZTE5YTU4MzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRl
ckVsZW1lbnQuY3BwCkBAIC0xMDAsNyArMTAwLDcgQEAgdm9pZCBTVkdGaWx0ZXJFbGVtZW50Ojpz
ZXRGaWx0ZXJSZXModW5zaWduZWQgZmlsdGVyUmVzWCwgdW5zaWduZWQgZmlsdGVyUmVzWSkKICAg
ICBzZXRGaWx0ZXJSZXNZQmFzZVZhbHVlKGZpbHRlclJlc1kpOwogCiAgICAgaWYgKFJlbmRlck9i
amVjdCogb2JqZWN0ID0gcmVuZGVyZXIoKSkKLSAgICAgICAgb2JqZWN0LT5zZXROZWVkc0xheW91
dCgpOworICAgICAgICBvYmplY3QtPnNldE5lZWRzTGF5b3V0KHRydWUpOwogfQogCiBib29sIFNW
R0ZpbHRlckVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJOYW1lKQpAQCAtMTc0LDcgKzE3NCw3IEBAIHZvaWQgU1ZHRmlsdGVyRWxlbWVudDo6c3Zn
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAg
dXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5mb3JtYXRpb24oKTsKIAogICAgIGlmIChSZW5kZXJPYmpl
Y3QqIG9iamVjdCA9IHJlbmRlcmVyKCkpCi0gICAgICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQo
KTsKKyAgICAgICAgb2JqZWN0LT5zZXROZWVkc0xheW91dCh0cnVlKTsKIH0KIAogdm9pZCBTVkdG
aWx0ZXJFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkK
QEAgLTE4NSw3ICsxODUsNyBAQCB2b2lkIFNWR0ZpbHRlckVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdl
ZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAo
UmVuZGVyT2JqZWN0KiBvYmplY3QgPSByZW5kZXJlcigpKQotICAgICAgICBvYmplY3QtPnNldE5l
ZWRzTGF5b3V0KCk7CisgICAgICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQodHJ1ZSk7CiB9CiAK
IFJlbmRlckVsZW1lbnQqIFNWR0ZpbHRlckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFy
ZW5hJiBhcmVuYSwgUmVuZGVyU3R5bGUmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dyYWRpZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRF
bGVtZW50LmNwcAppbmRleCAxMGYzYWMxMGJjYWVlNGY4YzY3YzcyMzRjMjVkMmZhZDhkNDRjMWMw
Li5mNDk0M2QzOThjYTM4YzU1NDE5M2ZkYTU3MzlhNWJjOWU1ZWU2YjY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcApAQCAtMTIzLDcgKzEyMyw3IEBAIHZvaWQg
U1ZHR3JhZGllbnRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lKQogICAgIFNWR0VsZW1lbnRJbnN0YW5jZTo6SW52YWxpZGF0aW9uR3VhcmQg
aW52YWxpZGF0aW9uR3VhcmQodGhpcyk7CiAgICAgCiAgICAgaWYgKFJlbmRlck9iamVjdCogb2Jq
ZWN0ID0gcmVuZGVyZXIoKSkKLSAgICAgICAgb2JqZWN0LT5zZXROZWVkc0xheW91dCgpOworICAg
ICAgICBvYmplY3QtPnNldE5lZWRzTGF5b3V0KHRydWUpOwogfQogICAgIAogdm9pZCBTVkdHcmFk
aWVudEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQpA
QCAtMTM0LDcgKzEzNCw3IEBAIHZvaWQgU1ZHR3JhZGllbnRFbGVtZW50OjpjaGlsZHJlbkNoYW5n
ZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KFJlbmRlck9iamVjdCogb2JqZWN0ID0gcmVuZGVyZXIoKSkKLSAgICAgICAgb2JqZWN0LT5zZXRO
ZWVkc0xheW91dCgpOworICAgICAgICBvYmplY3QtPnNldE5lZWRzTGF5b3V0KHRydWUpOwogfQog
CiBWZWN0b3I8R3JhZGllbnQ6OkNvbG9yU3RvcD4gU1ZHR3JhZGllbnRFbGVtZW50OjpidWlsZFN0
b3BzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5j
cHAKaW5kZXggYjU0Y2Q0ZGU2NmFkNDEwNThmOTBhMjY5NTM4Yzc0MDg1Yjg3YzU2YS4uZmQ5NGQ2
MDZjYjI2YzgxMjY4NzExM2NmYjJhNTcxYzFkNGE3ZDFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKQEAgLTExNSw3ICsxMTUsNyBAQCB2
b2lkIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTmFtZQogICAgIHVwZGF0ZVJlbGF0aXZlTGVuZ3Roc0luZm9ybWF0
aW9uKCk7CiAKICAgICBpZiAoUmVuZGVyT2JqZWN0KiBvYmplY3QgPSByZW5kZXJlcigpKQotICAg
ICAgICBvYmplY3QtPnNldE5lZWRzTGF5b3V0KCk7CisgICAgICAgIG9iamVjdC0+c2V0TmVlZHNM
YXlvdXQodHJ1ZSk7CiB9CiAKIFJlbmRlckVsZW1lbnQqIFNWR0xpbmVhckdyYWRpZW50RWxlbWVu
dDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEmIGFyZW5hLCBSZW5kZXJTdHlsZSYpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5jcHAKaW5kZXggOWM2YjM3NjJlNjg5NTU1ZTVi
ZGMyNWE4NDdjMDU1YzUzYjg1OGNjZS4uMmE4ZjI0ZDYxNzViNDk1ZjgwMDk4MzA0ZjdjMGY0Y2Fh
NDViNTAzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcApAQCAtMTc2
LDcgKzE3Niw3IEBAIHZvaWQgU1ZHTWFya2VyRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgdXBkYXRlUmVsYXRpdmVMZW5n
dGhzSW5mb3JtYXRpb24oKTsKIAogICAgIGlmIChSZW5kZXJPYmplY3QqIG9iamVjdCA9IHJlbmRl
cmVyKCkpCi0gICAgICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQoKTsKKyAgICAgICAgb2JqZWN0
LT5zZXROZWVkc0xheW91dCh0cnVlKTsKIH0KIAogdm9pZCBTVkdNYXJrZXJFbGVtZW50OjpjaGls
ZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKQEAgLTE4Nyw3ICsxODcsNyBA
QCB2b2lkIFNWR01hcmtlckVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5n
ZSYgY2hhbmdlKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoUmVuZGVyT2JqZWN0KiBvYmpl
Y3QgPSByZW5kZXJlcigpKQotICAgICAgICBvYmplY3QtPnNldE5lZWRzTGF5b3V0KCk7CisgICAg
ICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQodHJ1ZSk7CiB9CiAKIHZvaWQgU1ZHTWFya2VyRWxl
bWVudDo6c2V0T3JpZW50VG9BdXRvKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXNrRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3Bw
CmluZGV4IDkwZWI2ZDM5NTVjZDgxNzBiYTVmYWEwZTgwM2E2Nzg1YzkxNzQwNWMuLjFiNjIzNjM3
Y2NiOTJjZDE5ZTUyYjM5ZjMxMmZlOGFkNjVkY2JlNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01h
c2tFbGVtZW50LmNwcApAQCAtMTQzLDcgKzE0Myw3IEBAIHZvaWQgU1ZHTWFza0VsZW1lbnQ6OnN2
Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAg
IHVwZGF0ZVJlbGF0aXZlTGVuZ3Roc0luZm9ybWF0aW9uKCk7CiAKICAgICBpZiAoUmVuZGVyT2Jq
ZWN0KiBvYmplY3QgPSByZW5kZXJlcigpKQotICAgICAgICBvYmplY3QtPnNldE5lZWRzTGF5b3V0
KCk7CisgICAgICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQodHJ1ZSk7CiB9CiAKIHZvaWQgU1ZH
TWFza0VsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQpA
QCAtMTU0LDcgKzE1NCw3IEBAIHZvaWQgU1ZHTWFza0VsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChj
b25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoUmVu
ZGVyT2JqZWN0KiBvYmplY3QgPSByZW5kZXJlcigpKQotICAgICAgICBvYmplY3QtPnNldE5lZWRz
TGF5b3V0KCk7CisgICAgICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQodHJ1ZSk7CiB9CiAKIFJl
bmRlckVsZW1lbnQqIFNWR01hc2tFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSYg
YXJlbmEsIFJlbmRlclN0eWxlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXR0ZXJuRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQu
Y3BwCmluZGV4IDNmNDBhOTc3NDNhMGMyNGNlMzI4NmExMmMwNmEwNjdhNDAwNTc1OTguLjY1M2Nh
MzQyYmE0OTMxY2U1YTliYzgxM2NjZWI2NWE3YTRhNGFlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdHRlcm5FbGVtZW50LmNwcApAQCAtMTY4LDcgKzE2OCw3IEBAIHZvaWQgU1ZHUGF0dGVy
bkVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCiAgICAgICAgIHVwZGF0ZVJlbGF0aXZlTGVuZ3Roc0luZm9ybWF0aW9uKCk7CiAKICAgICBp
ZiAoUmVuZGVyT2JqZWN0KiBvYmplY3QgPSByZW5kZXJlcigpKQotICAgICAgICBvYmplY3QtPnNl
dE5lZWRzTGF5b3V0KCk7CisgICAgICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQodHJ1ZSk7CiB9
CiAKIHZvaWQgU1ZHUGF0dGVybkVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENo
YW5nZSYgY2hhbmdlKQpAQCAtMTc5LDcgKzE3OSw3IEBAIHZvaWQgU1ZHUGF0dGVybkVsZW1lbnQ6
OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgICAgICByZXR1
cm47CiAKICAgICBpZiAoUmVuZGVyT2JqZWN0KiBvYmplY3QgPSByZW5kZXJlcigpKQotICAgICAg
ICBvYmplY3QtPnNldE5lZWRzTGF5b3V0KCk7CisgICAgICAgIG9iamVjdC0+c2V0TmVlZHNMYXlv
dXQodHJ1ZSk7CiB9CiAKIFJlbmRlckVsZW1lbnQqIFNWR1BhdHRlcm5FbGVtZW50OjpjcmVhdGVS
ZW5kZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAKaW5kZXggMmI2YTM0NWY5ZmRk
NGFhMzVkODM3OTUxYzVmODZjYzhkZTg1ZWVmYi4uYzQyZDM3NGZhMGI2NDNmODYwZTBjMGFhNDkx
MzEwZjIwNzdlMTI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdy
YWRpZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRp
ZW50RWxlbWVudC5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCB2b2lkIFNWR1JhZGlhbEdyYWRpZW50
RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZQogICAgIHVwZGF0ZVJlbGF0aXZlTGVuZ3Roc0luZm9ybWF0aW9uKCk7CiAgICAgICAgIAogICAg
IGlmIChSZW5kZXJPYmplY3QqIG9iamVjdCA9IHJlbmRlcmVyKCkpCi0gICAgICAgIG9iamVjdC0+
c2V0TmVlZHNMYXlvdXQoKTsKKyAgICAgICAgb2JqZWN0LT5zZXROZWVkc0xheW91dCh0cnVlKTsK
IH0KIAogUmVuZGVyRWxlbWVudCogU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjpjcmVhdGVSZW5k
ZXJlcihSZW5kZXJBcmVuYSYgYXJlbmEsIFJlbmRlclN0eWxlJikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
VkdFbGVtZW50LmNwcAppbmRleCA2OWQ1OWRiYjdmYTVkM2Q5NzA5MjE5NDQxZDc0NjRiYzNiZWIw
OTg2Li44N2RmNWRlNzlmYjM5OGU3MjhlZWE3OWFmYmE1YTdlYTBmMmZjMGNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1NWR0VsZW1lbnQuY3BwCkBAIC0yMjEsNyArMjIxLDcgQEAgdm9pZCBTVkdTVkdF
bGVtZW50OjpzZXRDdXJyZW50VHJhbnNsYXRlKGNvbnN0IEZsb2F0UG9pbnQmIHRyYW5zbGF0aW9u
KQogdm9pZCBTVkdTVkdFbGVtZW50Ojp1cGRhdGVDdXJyZW50VHJhbnNsYXRlKCkKIHsKICAgICBp
ZiAoUmVuZGVyT2JqZWN0KiBvYmplY3QgPSByZW5kZXJlcigpKQotICAgICAgICBvYmplY3QtPnNl
dE5lZWRzTGF5b3V0KCk7CisgICAgICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQodHJ1ZSk7CiAK
ICAgICBpZiAocGFyZW50Tm9kZSgpID09ICZkb2N1bWVudCgpICYmIGRvY3VtZW50KCkucmVuZGVy
VmlldygpKQogICAgICAgICBkb2N1bWVudCgpLnJlbmRlclZpZXcoKS0+cmVwYWludCgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>