<?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>105164</bug_id>
          
          <creation_ts>2012-12-17 04:55:52 -0800</creation_ts>
          <short_desc>[chromium] move webintent related methods to TestRunner library</short_desc>
          <delta_ts>2012-12-18 01:06:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>jochen</reporter>
          <assigned_to>jochen</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>792635</commentid>
    <comment_count>0</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-12-17 04:55:52 -0800</bug_when>
    <thetext>[chromium] move webintent related methods to TestRunner library</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792636</commentid>
    <comment_count>1</comment_count>
      <attachid>179720</attachid>
    <who name="">jochen</who>
    <bug_when>2012-12-17 04:56:44 -0800</bug_when>
    <thetext>Created attachment 179720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792637</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-17 04:58:46 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792790</commentid>
    <comment_count>3</comment_count>
      <attachid>179720</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-12-17 09:36:26 -0800</bug_when>
    <thetext>Comment on attachment 179720
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793358</commentid>
    <comment_count>4</comment_count>
      <attachid>179720</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-17 22:11:01 -0800</bug_when>
    <thetext>Comment on attachment 179720
Patch

Rejecting attachment 179720 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
chromium/TestRunner/src/WebTestProxy.cpp
patching file Tools/DumpRenderTree/chromium/WebViewHost.cpp
Hunk #2 succeeded at 1292 (offset 10 lines).
Hunk #3 succeeded at 1376 (offset 10 lines).
patching file Tools/DumpRenderTree/chromium/WebViewHost.h
Hunk #3 succeeded at 280 (offset 2 lines).
Hunk #4 succeeded at 293 (offset 2 lines).

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Darin Fish...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/15404045</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793433</commentid>
    <comment_count>5</comment_count>
      <attachid>179895</attachid>
    <who name="">jochen</who>
    <bug_when>2012-12-18 00:47:02 -0800</bug_when>
    <thetext>Created attachment 179895
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793440</commentid>
    <comment_count>6</comment_count>
      <attachid>179895</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-18 01:06:09 -0800</bug_when>
    <thetext>Comment on attachment 179895
Patch for landing

Clearing flags on attachment: 179895

Committed r137997: &lt;http://trac.webkit.org/changeset/137997&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793441</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-18 01:06:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179720</attachid>
            <date>2012-12-17 04:56:44 -0800</date>
            <delta_ts>2012-12-18 00:46:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105164-20121217135401.patch</filename>
            <type>text/plain</type>
            <size>25077</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3ODgyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTQ1ZTk5ZWNmYjAxYjA1OTkyZDBjNjY2ODc1MjhlNDIw
NThlODE1Yy4uNzhhNzhlNjM5NWE0YmZlYmVkZTFmZDA5ZjMxYzA2M2E0Zjg0YTdiNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDEyLTEyLTE3ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gbW92ZSB3ZWJpbnRlbnQgcmVsYXRlZCBtZXRob2RzIHRvIFRl
c3RSdW5uZXIgbGlicmFyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA1MTY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWxzbyBkZWxldGVkIHRoZSB1bnVzZWQgZGVsaXZlcmVkSW50ZW50RmFpbHVyZSBh
bmQKKyAgICAgICAgZGVsaXZlcmVkSW50ZW50UmVzdWx0IG1ldGhvZHMuCisKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKERSVFRl
c3RSdW5uZXI6OkRSVFRlc3RSdW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0RSVFRlc3RSdW5uZXIuaDoKKyAgICAgICAgKERSVFRlc3RSdW5uZXIpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0
ZS5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RE
ZWxlZ2F0ZTo6c2V0Q3VycmVudFdlYkludGVudFJlcXVlc3QpOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcjo6V2ViVGVzdERlbGVnYXRlOjpjdXJyZW50V2ViSW50ZW50UmVxdWVzdCk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5
Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViVGVzdFByb3h5QmFzZSk6CisgICAg
ICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6OnJlZ2lzdGVySW50ZW50U2VydmljZSk6
CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6OmRpc3BhdGNoSW50ZW50KToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVu
bmVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OlRlc3RSdW5uZXIp
OgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6c2VuZFdlYkludGVudFJlc3Bv
bnNlKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6
VGVzdFJ1bm5lcjo6ZGVsaXZlcldlYkludGVudCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oOgorICAgICAgICAoVGVzdFJ1bm5l
cik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2Vi
VGVzdFByb3h5LmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eUJhc2U6
OnBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OldlYlRlc3RQcm94eUJhc2U6OnJlZ2lzdGVySW50ZW50U2VydmljZSk6CisgICAgICAgIChXZWJU
ZXN0UnVubmVyKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eUJhc2U6OmRp
c3BhdGNoSW50ZW50KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3
SG9zdC5jcHA6CisgICAgICAgIChXZWJWaWV3SG9zdDo6c2V0Q3VycmVudFdlYkludGVudFJlcXVl
c3QpOgorICAgICAgICAoV2ViVmlld0hvc3Q6OmN1cnJlbnRXZWJJbnRlbnRSZXF1ZXN0KToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oOgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKFdlYlZpZXdIb3N0KToKKwogMjAxMi0xMi0xNiAgQXJ2aWQgTmls
c3NvbiAgPGFuaWxzc29uQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIEFkYXB0IHRv
IG5ldyBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6VG91Y2hQb2ludCBBUEkKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5jcHAKaW5kZXggZGY5NmNkODE3MDY0
ZTNjZGNiYzI0OTc4NjkyZjQ2ZmU3YzQ2ZWMzYy4uNTE0OTAyMzQwNjViMmZkMWE4MzM1NmI5ZjE4
ZDI1MDgyNTIzZGNmNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
RFJUVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJU
VGVzdFJ1bm5lci5jcHAKQEAgLTUwLDggKzUwLDYgQEAKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlv
bkNsaWVudE1vY2suaCIKICNpbmNsdWRlICJXZWJJREJGYWN0b3J5LmgiCiAjaW5jbHVkZSAiV2Vi
SW5wdXRFbGVtZW50LmgiCi0jaW5jbHVkZSAiV2ViSW50ZW50LmgiCi0jaW5jbHVkZSAiV2ViSW50
ZW50UmVxdWVzdC5oIgogI2luY2x1ZGUgIldlYktpdC5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNh
dGlvblByZXNlbnRlci5oIgogI2luY2x1ZGUgIldlYlBlcm1pc3Npb25zLmgiCkBAIC04NywyMyAr
ODUsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJUZXN0
UnVubmVyOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAotY2xhc3MgRW1wdHlXZWJEZWxpdmVyZWRJ
bnRlbnRDbGllbnQgOiBwdWJsaWMgV2ViS2l0OjpXZWJEZWxpdmVyZWRJbnRlbnRDbGllbnQgewot
cHVibGljOgotICAgIEVtcHR5V2ViRGVsaXZlcmVkSW50ZW50Q2xpZW50KCkgeyB9Ci0gICAgfkVt
cHR5V2ViRGVsaXZlcmVkSW50ZW50Q2xpZW50KCkgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgcG9z
dFJlc3VsdChjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmIGRhdGEpIGNvbnN0IHsgfQot
ICAgIHZpcnR1YWwgdm9pZCBwb3N0RmFpbHVyZShjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFs
dWUmIGRhdGEpIGNvbnN0IHsgfQotICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95KCkgeyB9Ci19Owot
CiBEUlRUZXN0UnVubmVyOjpEUlRUZXN0UnVubmVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgOiBt
X3NoZWxsKHNoZWxsKQogICAgICwgbV9jbG9zZVJlbWFpbmluZ1dpbmRvd3MoZmFsc2UpCiAgICAg
LCBtX2RlZmVyTWFpblJlc291cmNlRGF0YUxvYWQoZmFsc2UpCiAgICAgLCBtX3Nob3dEZWJ1Z0xh
eWVyVHJlZShmYWxzZSkKICAgICAsIG1fd29ya1F1ZXVlKHRoaXMpCi0gICAgLCBtX2ludGVudENs
aWVudChhZG9wdFB0cihuZXcgRW1wdHlXZWJEZWxpdmVyZWRJbnRlbnRDbGllbnQpKQogICAgICwg
bV9zaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZChmYWxzZSkKIHsKIApA
QCAtMjA5LDggKzE5Niw2IEBAIERSVFRlc3RSdW5uZXI6OkRSVFRlc3RSdW5uZXIoVGVzdFNoZWxs
KiBzaGVsbCkKICAgICBiaW5kUHJvcGVydHkoIndlYkhpc3RvcnlJdGVtQ291bnQiLCAmbV93ZWJI
aXN0b3J5SXRlbUNvdW50KTsKICAgICBiaW5kUHJvcGVydHkoInRpdGxlVGV4dERpcmVjdGlvbiIs
ICZtX3RpdGxlVGV4dERpcmVjdGlvbik7CiAgICAgYmluZFByb3BlcnR5KCJpbnRlcmNlcHRQb3N0
TWVzc2FnZSIsICZtX2ludGVyY2VwdFBvc3RNZXNzYWdlKTsKLSAgICBiaW5kTWV0aG9kKCJzZW5k
V2ViSW50ZW50UmVzcG9uc2UiLCAmRFJUVGVzdFJ1bm5lcjo6c2VuZFdlYkludGVudFJlc3BvbnNl
KTsKLSAgICBiaW5kTWV0aG9kKCJkZWxpdmVyV2ViSW50ZW50IiwgJkRSVFRlc3RSdW5uZXI6OmRl
bGl2ZXJXZWJJbnRlbnQpOwogfQogCiBEUlRUZXN0UnVubmVyOjp+RFJUVGVzdFJ1bm5lcigpCkBA
IC0xMDU5LDQ5ICsxMDQ0LDYgQEAgdm9pZCBEUlRUZXN0UnVubmVyOjpzZXRTaG91bGRTdGF5T25Q
YWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZChjb25zdCBDcHBBcmd1bWUKICAgICByZXN1bHQt
PnNldE51bGwoKTsKIH0KIAotdm9pZCBEUlRUZXN0UnVubmVyOjpzZW5kV2ViSW50ZW50UmVzcG9u
c2UoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkK
LXsKLSAgICB2ODo6SGFuZGxlU2NvcGUgc2NvcGU7Ci0gICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0
PiBjdHggPSBtX3NoZWxsLT53ZWJWaWV3KCktPm1haW5GcmFtZSgpLT5tYWluV29ybGRTY3JpcHRD
b250ZXh0KCk7Ci0gICAgcmVzdWx0LT5zZXQobV9zaGVsbC0+d2ViVmlldygpLT5tYWluRnJhbWUo
KS0+c2VsZWN0aW9uQXNNYXJrdXAoKS51dGY4KCkpOwotICAgIHY4OjpDb250ZXh0OjpTY29wZSBj
c2NvcGUoY3R4KTsKLQotICAgIFdlYktpdDo6V2ViSW50ZW50UmVxdWVzdCogcmVxdWVzdCA9IG1f
c2hlbGwtPndlYlZpZXdIb3N0KCktPmN1cnJlbnRJbnRlbnRSZXF1ZXN0KCk7Ci0gICAgaWYgKHJl
cXVlc3QtPmlzTnVsbCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoYXJndW1lbnRzLnNp
emUoKSA9PSAxKSB7Ci0gICAgICAgIFdlYktpdDo6V2ViQ1N0cmluZyByZXBseSA9IGNwcFZhcmlh
bnRUb1dlYlN0cmluZyhhcmd1bWVudHNbMF0pLnV0ZjgoKTsKLSAgICAgICAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHY4dmFsdWUgPSB2ODo6U3RyaW5nOjpOZXcocmVwbHkuZGF0YSgpLCByZXBseS5s
ZW5ndGgoKSk7Ci0gICAgICAgIHJlcXVlc3QtPnBvc3RSZXN1bHQoV2ViS2l0OjpXZWJTZXJpYWxp
emVkU2NyaXB0VmFsdWU6OnNlcmlhbGl6ZSh2OHZhbHVlKSk7Ci0gICAgfSBlbHNlIHsKLSAgICAg
ICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHY4dmFsdWUgPSB2ODo6U3RyaW5nOjpOZXcoIkVSUk9S
Iik7Ci0gICAgICAgIHJlcXVlc3QtPnBvc3RGYWlsdXJlKFdlYktpdDo6V2ViU2VyaWFsaXplZFNj
cmlwdFZhbHVlOjpzZXJpYWxpemUodjh2YWx1ZSkpOwotICAgIH0KLSAgICByZXN1bHQtPnNldE51
bGwoKTsKLX0KLQotdm9pZCBEUlRUZXN0UnVubmVyOjpkZWxpdmVyV2ViSW50ZW50KGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAgaWYg
KGFyZ3VtZW50cy5zaXplKCkgPCAgMykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdjg6OkhhbmRs
ZVNjb3BlIHNjb3BlOwotICAgIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gY3R4ID0gbV9zaGVsbC0+
d2ViVmlldygpLT5tYWluRnJhbWUoKS0+bWFpbldvcmxkU2NyaXB0Q29udGV4dCgpOwotICAgIHJl
c3VsdC0+c2V0KG1fc2hlbGwtPndlYlZpZXcoKS0+bWFpbkZyYW1lKCktPnNlbGVjdGlvbkFzTWFy
a3VwKCkudXRmOCgpKTsKLSAgICB2ODo6Q29udGV4dDo6U2NvcGUgY3Njb3BlKGN0eCk7Ci0KLSAg
ICBXZWJTdHJpbmcgYWN0aW9uID0gY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50c1swXSk7
Ci0gICAgV2ViU3RyaW5nIHR5cGUgPSBjcHBWYXJpYW50VG9XZWJTdHJpbmcoYXJndW1lbnRzWzFd
KTsKLSAgICBXZWJLaXQ6OldlYkNTdHJpbmcgZGF0YSA9IGNwcFZhcmlhbnRUb1dlYlN0cmluZyhh
cmd1bWVudHNbMl0pLnV0ZjgoKTsKLSAgICBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUgc2VyaWFs
aXplZERhdGEgPSBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnNlcmlhbGl6ZSgKLSAgICAgICAg
djg6OlN0cmluZzo6TmV3KGRhdGEuZGF0YSgpLCBkYXRhLmxlbmd0aCgpKSk7Ci0KLSAgICBXZWJJ
bnRlbnQgaW50ZW50ID0gV2ViSW50ZW50OjpjcmVhdGUoYWN0aW9uLCB0eXBlLCBzZXJpYWxpemVk
RGF0YS50b1N0cmluZygpLCBXZWJWZWN0b3I8V2ViU3RyaW5nPigpLCBXZWJWZWN0b3I8V2ViU3Ry
aW5nPigpKTsKLQotICAgIG1fc2hlbGwtPndlYlZpZXcoKS0+bWFpbkZyYW1lKCktPmRlbGl2ZXJJ
bnRlbnQoaW50ZW50LCAwLCBtX2ludGVudENsaWVudC5nZXQoKSk7Ci19Ci0KIGNsYXNzIEludm9r
ZUNhbGxiYWNrVGFzayA6IHB1YmxpYyBXZWJNZXRob2RUYXNrPERSVFRlc3RSdW5uZXI+IHsKIHB1
YmxpYzoKICAgICBJbnZva2VDYWxsYmFja1Rhc2soRFJUVGVzdFJ1bm5lciogb2JqZWN0LCBQYXNz
T3duQXJyYXlQdHI8Q3BwVmFyaWFudD4gY2FsbGJhY2tBcmd1bWVudHMsIHVpbnQzMl90IG51bWJl
ck9mQXJndW1lbnRzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
RFJUVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1
bm5lci5oCmluZGV4IGMxNjZjN2RhM2Q5MjQyNTdiMTA1YjdiM2M1YzQxYzg5NzI1NGFjOTQuLjMw
OGI0MjUzMDJhNGI0YmFiNGIwM2ZmNTE5ZjllYjgyNTI3MzM2MTIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmgKQEAgLTQzLDcgKzQzLDYgQEAKICNk
ZWZpbmUgRFJUVGVzdFJ1bm5lcl9oCiAKICNpbmNsdWRlICJUZXN0UnVubmVyL3NyYy9UZXN0UnVu
bmVyLmgiCi0jaW5jbHVkZSAiV2ViRGVsaXZlcmVkSW50ZW50Q2xpZW50LmgiCiAjaW5jbHVkZSAi
V2ViVGFzay5oIgogI2luY2x1ZGUgIldlYlRleHREaXJlY3Rpb24uaCIKICNpbmNsdWRlICJwbGF0
Zm9ybS9XZWJBcnJheUJ1ZmZlclZpZXcuaCIKQEAgLTI3NywxMyArMjc2LDYgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0UG9pbnRlckxvY2tXaWxsUmVzcG9uZEFzeW5jaHJvbm91c2x5KGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICNlbmRpZgogCi0gICAgLy8gRXhwZWN0cyBv
bmUgc3RyaW5nIGFyZ3VtZW50IGZvciBzZW5kaW5nIHN1Y2Nlc3NmdWwgcmVzdWx0LCB6ZXJvCi0g
ICAgLy8gYXJndW1lbnRzIGZvciBzZW5kaW5nIGEgZmFpbHVyZSByZXN1bHQuCi0gICAgdm9pZCBz
ZW5kV2ViSW50ZW50UmVzcG9uc2UoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
OwotCi0gICAgLy8gQ2F1c2UgdGhlIHdlYiBpbnRlbnQgdG8gYmUgZGVsaXZlcmVkIHRvIHRoaXMg
Y29udGV4dC4KLSAgICB2b2lkIGRlbGl2ZXJXZWJJbnRlbnQoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCopOwotCiAgICAgLy8gVXNlZCB0byBzZXQgdGhlIGRldmljZSBzY2FsZSBm
YWN0b3IuCiAgICAgdm9pZCBzZXRCYWNraW5nU2NhbGVGYWN0b3IoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiwgQ3BwVmFyaWFudCopOwogCkBAIC01MjMsOSArNTE1LDYgQEAgcHJpdmF0ZToKICAgICAv
LyBXQVYgYXVkaW8gZGF0YSBpcyBzdG9yZWQgaGVyZS4KICAgICBXZWJLaXQ6OldlYkFycmF5QnVm
ZmVyVmlldyBtX2F1ZGlvRGF0YTsKIAotICAgIC8vIE1vY2sgb2JqZWN0IGZvciB0ZXN0aW5nIGRl
bGl2ZXJpbmcgd2ViIGludGVudHMuCi0gICAgT3duUHRyPFdlYktpdDo6V2ViRGVsaXZlcmVkSW50
ZW50Q2xpZW50PiBtX2ludGVudENsaWVudDsKLQogICAgIGJvb2wgbV9zaG91bGRTdGF5T25QYWdl
QWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZDsKIH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxlZ2F0ZS5oIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERl
bGVnYXRlLmgKaW5kZXggNjcwYzJhMjIyODZiYmM3MDgxY2JiNjVlNzM2YmYzNWZhMjAyYmVhMy4u
MzA4Njc3NjQ4YzQ2NGFkMmFjMzlkOWFkMDEyMGYxMWRmNzQyNTdjOCAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERlbGVn
YXRlLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJs
aWMvV2ViVGVzdERlbGVnYXRlLmgKQEAgLTM4LDYgKzM4LDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogc3RydWN0IFdlYkNvbnRleHRNZW51RGF0YTsKIGNsYXNzIFdlYkdhbWVwYWRzOworY2xhc3Mg
V2ViSW50ZW50UmVxdWVzdDsKIH0KIAogbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgewpAQCAtNzEs
NiArNzIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJLaXQ6OldlYlVSTCByZXdyaXRlTGF5
b3V0VGVzdHNVUkwoY29uc3Qgc3RkOjpzdHJpbmcmKSB7IHJldHVybiBXZWJLaXQ6OldlYlVSTCgp
OyB9CiAgICAgdmlydHVhbCBXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMoKSB7IHJldHVybiAw
OyB9CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5UHJlZmVyZW5jZXMoKSB7IH07CisgICAgdmlydHVh
bCB2b2lkIHNldEN1cnJlbnRXZWJJbnRlbnRSZXF1ZXN0KGNvbnN0IFdlYktpdDo6V2ViSW50ZW50
UmVxdWVzdCYpIHsgfTsKKyAgICB2aXJ0dWFsIFdlYktpdDo6V2ViSW50ZW50UmVxdWVzdCogY3Vy
cmVudFdlYkludGVudFJlcXVlc3QoKSB7IHJldHVybiAwOyB9CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0
UHJveHkuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGlj
L1dlYlRlc3RQcm94eS5oCmluZGV4IGI0YTU5M2NlZWEwNWExNWYwODJhN2Q0YWM0MDEyMDgzMWEz
MzM2NWIuLjA4YTBlMTQ0NDRjYzE2MmU4ZjRhMTE3NjEyYzYxMWVkMDg0ZjQxYjIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRl
c3RQcm94eS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
cHVibGljL1dlYlRlc3RQcm94eS5oCkBAIC00MSw3ICs0MSwxMCBAQCBjbGFzcyBXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0OwogY2xhc3MgV2ViRHJhZ0RhdGE7CiBjbGFzcyBXZWJGcmFtZTsKIGNsYXNz
IFdlYkltYWdlOworY2xhc3MgV2ViSW50ZW50UmVxdWVzdDsKK2NsYXNzIFdlYkludGVudFNlcnZp
Y2VJbmZvOwogc3RydWN0IFdlYlBvaW50OworY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVl
Owogc3RydWN0IFdlYlNpemU7CiB9CiAKQEAgLTcxLDYgKzc0LDggQEAgcHJvdGVjdGVkOgogICAg
IHZvaWQgZGlkQXV0b1Jlc2l6ZShjb25zdCBXZWJLaXQ6OldlYlNpemUmKTsKICAgICB2b2lkIHBv
c3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uKGNvbnN0IFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0
eU9iamVjdCYsIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbik7CiAgICAgdm9p
ZCBzdGFydERyYWdnaW5nKFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYkRyYWdE
YXRhJiwgV2ViS2l0OjpXZWJEcmFnT3BlcmF0aW9uc01hc2ssIGNvbnN0IFdlYktpdDo6V2ViSW1h
Z2UmLCBjb25zdCBXZWJLaXQ6OldlYlBvaW50Jik7CisgICAgdm9pZCByZWdpc3RlckludGVudFNl
cnZpY2UoV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViSW50ZW50U2VydmljZUlu
Zm8mKTsKKyAgICB2b2lkIGRpc3BhdGNoSW50ZW50KFdlYktpdDo6V2ViRnJhbWUqIHNvdXJjZSwg
Y29uc3QgV2ViS2l0OjpXZWJJbnRlbnRSZXF1ZXN0Jik7CiAKIHByaXZhdGU6CiAgICAgV2ViVGVz
dEludGVyZmFjZXMqIG1fdGVzdEludGVyZmFjZXM7CkBAIC0xMzYsNiArMTQxLDE2IEBAIHB1Ymxp
YzoKICAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6c3RhcnREcmFnZ2luZyhmcmFtZSwgZGF0YSwg
bWFzaywgaW1hZ2UsIHBvaW50KTsKICAgICAgICAgV2ViVmlld0NsaWVudEltcGw6OnN0YXJ0RHJh
Z2dpbmcoZnJhbWUsIGRhdGEsIG1hc2ssIGltYWdlLCBwb2ludCk7CiAgICAgfQorICAgIHZpcnR1
YWwgdm9pZCByZWdpc3RlckludGVudFNlcnZpY2UoV2ViS2l0OjpXZWJGcmFtZSogZnJhbWUsIGNv
bnN0IFdlYktpdDo6V2ViSW50ZW50U2VydmljZUluZm8mIHNlcnZpY2UpCisgICAgeworICAgICAg
ICBXZWJUZXN0UHJveHlCYXNlOjpyZWdpc3RlckludGVudFNlcnZpY2UoZnJhbWUsIHNlcnZpY2Up
OworICAgICAgICBXZWJWaWV3Q2xpZW50SW1wbDo6cmVnaXN0ZXJJbnRlbnRTZXJ2aWNlKGZyYW1l
LCBzZXJ2aWNlKTsKKyAgICB9CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoSW50ZW50KFdlYktp
dDo6V2ViRnJhbWUqIHNvdXJjZSwgY29uc3QgV2ViS2l0OjpXZWJJbnRlbnRSZXF1ZXN0JiByZXF1
ZXN0KQorICAgIHsKKyAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6ZGlzcGF0Y2hJbnRlbnQoc291
cmNlLCByZXF1ZXN0KTsKKyAgICAgICAgV2ViVmlld0NsaWVudEltcGw6OmRpc3BhdGNoSW50ZW50
KHNvdXJjZSwgcmVxdWVzdCk7CisgICAgfQogfTsKIAogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcApp
bmRleCA0NmU1MjAxMzMxMmQ5MTNlZjNhYWJhNzcyYmQ1NjA5NjNjMzhlNWEyLi41ODJmMmY4MjAw
MTI5YWRiMzVmMzcxYzY2MDEwMzU5MDI5ZGFjYzI4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcApA
QCAtMzksNiArMzksOCBAQAogI2luY2x1ZGUgIldlYkZpbmRPcHRpb25zLmgiCiAjaW5jbHVkZSAi
V2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJXZWJJ
bnRlbnQuaCIKKyNpbmNsdWRlICJXZWJJbnRlbnRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV2ViUHJl
ZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXZWJTY3JpcHRTb3VyY2UuaCIKICNpbmNsdWRlICJXZWJT
ZWN1cml0eVBvbGljeS5oIgpAQCAtNDgsNiArNTAsNyBAQAogI2luY2x1ZGUgIldlYlZpZXcuaCIK
ICNpbmNsdWRlICJXZWJXb3JrZXJJbmZvLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViUG9pbnQu
aCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNs
dWRlICJ2OC9pbmNsdWRlL3Y4LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
QEAgLTYyLDYgKzY1LDE2IEBAIG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKIAogbmFtZXNwYWNl
IHsKIAorY2xhc3MgRW1wdHlXZWJEZWxpdmVyZWRJbnRlbnRDbGllbnQgOiBwdWJsaWMgV2ViRGVs
aXZlcmVkSW50ZW50Q2xpZW50IHsKK3B1YmxpYzoKKyAgICBFbXB0eVdlYkRlbGl2ZXJlZEludGVu
dENsaWVudCgpIHsgfQorICAgIH5FbXB0eVdlYkRlbGl2ZXJlZEludGVudENsaWVudCgpIHsgfQor
CisgICAgdmlydHVhbCB2b2lkIHBvc3RSZXN1bHQoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZh
bHVlJiBkYXRhKSBjb25zdCB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcG9zdEZhaWx1cmUoY29uc3Qg
V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiBkYXRhKSBjb25zdCB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgZGVzdHJveSgpIHsgfQorfTsKKwogLy8gU2V0cyBtYXAgYmFzZWQgb24gc2NyaXB0Rm9udFBh
aXJzLCBhIGNvbGxhcHNlZCB2ZWN0b3Igb2YgcGFpcnMgb2YgSVNPIDE1OTI0CiAvLyBmb3VyLWxl
dHRlciBzY3JpcHQgY29kZSBhbmQgZm9udCBzdWNoIGFzOgogLy8geyAiQXJhYiIsICJNeSBBcmFi
aWMgRm9udCIsICJHcmVrIiwgIk15IEdyZWVrIEZvbnQiIH0KQEAgLTg0LDYgKzk3LDcgQEAgc3Rh
dGljIHZvaWQgc2V0Rm9udE1hcChXZWJQcmVmZXJlbmNlczo6U2NyaXB0Rm9udEZhbWlseU1hcCYg
bWFwLCBjb25zdCBWZWN0b3I8V2UKIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoKQogICAgIDogbV9k
ZWxlZ2F0ZSgwKQogICAgICwgbV93ZWJWaWV3KDApCisgICAgLCBtX2ludGVudENsaWVudChhZG9w
dFB0cihuZXcgRW1wdHlXZWJEZWxpdmVyZWRJbnRlbnRDbGllbnQpKQogewogICAgIC8vIE1ldGhv
ZHMgaW1wbGVtZW50ZWQgaW4gdGVybXMgb2YgY2hyb21pdW0ncyBwdWJsaWMgV2ViS2l0IEFQSS4K
ICAgICBiaW5kTWV0aG9kKCJzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMiLCAmVGVzdFJ1
bm5lcjo6c2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKTsKQEAgLTEzNSw2ICsxNDksMTAg
QEAgVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcigpCiAgICAgYmluZE1ldGhvZCgib3ZlcnJpZGVQcmVm
ZXJlbmNlIiwgJlRlc3RSdW5uZXI6Om92ZXJyaWRlUHJlZmVyZW5jZSk7CiAgICAgYmluZE1ldGhv
ZCgic2V0UGx1Z2luc0VuYWJsZWQiLCAmVGVzdFJ1bm5lcjo6c2V0UGx1Z2luc0VuYWJsZWQpOwog
CisgICAgLy8gVGhlIGZvbGxvd2luZyBtZXRob2RzIGludGVyYWN0IHdpdGggdGhlIFdlYlRlc3RQ
cm94eS4KKyAgICBiaW5kTWV0aG9kKCJzZW5kV2ViSW50ZW50UmVzcG9uc2UiLCAmVGVzdFJ1bm5l
cjo6c2VuZFdlYkludGVudFJlc3BvbnNlKTsKKyAgICBiaW5kTWV0aG9kKCJkZWxpdmVyV2ViSW50
ZW50IiwgJlRlc3RSdW5uZXI6OmRlbGl2ZXJXZWJJbnRlbnQpOworCiAgICAgLy8gUHJvcGVydGll
cy4KICAgICBiaW5kUHJvcGVydHkoIndvcmtlclRocmVhZENvdW50IiwgJlRlc3RSdW5uZXI6Ondv
cmtlclRocmVhZENvdW50KTsKICAgICBiaW5kUHJvcGVydHkoImdsb2JhbEZsYWciLCAmbV9nbG9i
YWxGbGFnKTsKQEAgLTkwMSw2ICs5MTksNDggQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRQbHVnaW5z
RW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCoKICAg
ICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpzZW5kV2ViSW50ZW50
UmVzcG9uc2UoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJl
c3VsdCkKK3sKKyAgICB2ODo6SGFuZGxlU2NvcGUgc2NvcGU7CisgICAgdjg6OkxvY2FsPHY4OjpD
b250ZXh0PiBjdHggPSBtX3dlYlZpZXctPm1haW5GcmFtZSgpLT5tYWluV29ybGRTY3JpcHRDb250
ZXh0KCk7CisgICAgcmVzdWx0LT5zZXQobV93ZWJWaWV3LT5tYWluRnJhbWUoKS0+c2VsZWN0aW9u
QXNNYXJrdXAoKS51dGY4KCkpOworICAgIHY4OjpDb250ZXh0OjpTY29wZSBjc2NvcGUoY3R4KTsK
KworICAgIFdlYkludGVudFJlcXVlc3QqIHJlcXVlc3QgPSBtX2RlbGVnYXRlLT5jdXJyZW50V2Vi
SW50ZW50UmVxdWVzdCgpOworICAgIGlmIChyZXF1ZXN0LT5pc051bGwoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPT0gMSkgeworICAgICAgICBXZWJDU3Ry
aW5nIHJlcGx5ID0gY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50c1swXSkudXRmOCgpOwor
ICAgICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdjh2YWx1ZSA9IHY4OjpTdHJpbmc6Ok5ldyhy
ZXBseS5kYXRhKCksIHJlcGx5Lmxlbmd0aCgpKTsKKyAgICAgICAgcmVxdWVzdC0+cG9zdFJlc3Vs
dChXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnNlcmlhbGl6ZSh2OHZhbHVlKSk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHY4dmFsdWUgPSB2ODo6U3RyaW5n
OjpOZXcoIkVSUk9SIik7CisgICAgICAgIHJlcXVlc3QtPnBvc3RGYWlsdXJlKFdlYlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6c2VyaWFsaXplKHY4dmFsdWUpKTsKKyAgICB9CisgICAgcmVzdWx0LT5z
ZXROdWxsKCk7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6ZGVsaXZlcldlYkludGVudChjb25zdCBD
cHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIGlm
IChhcmd1bWVudHMuc2l6ZSgpIDwgIDMpCisgICAgICAgIHJldHVybjsKKworICAgIHY4OjpIYW5k
bGVTY29wZSBzY29wZTsKKyAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IGN0eCA9IG1fd2ViVmll
dy0+bWFpbkZyYW1lKCktPm1haW5Xb3JsZFNjcmlwdENvbnRleHQoKTsKKyAgICByZXN1bHQtPnNl
dChtX3dlYlZpZXctPm1haW5GcmFtZSgpLT5zZWxlY3Rpb25Bc01hcmt1cCgpLnV0ZjgoKSk7Cisg
ICAgdjg6OkNvbnRleHQ6OlNjb3BlIGNzY29wZShjdHgpOworCisgICAgV2ViU3RyaW5nIGFjdGlv
biA9IGNwcFZhcmlhbnRUb1dlYlN0cmluZyhhcmd1bWVudHNbMF0pOworICAgIFdlYlN0cmluZyB0
eXBlID0gY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50c1sxXSk7CisgICAgV2ViQ1N0cmlu
ZyBkYXRhID0gY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50c1syXSkudXRmOCgpOworICAg
IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBzZXJpYWxpemVkRGF0YSA9IFdlYlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6c2VyaWFsaXplKHY4OjpTdHJpbmc6Ok5ldyhkYXRhLmRhdGEoKSwgZGF0YS5s
ZW5ndGgoKSkpOworCisgICAgV2ViSW50ZW50IGludGVudCA9IFdlYkludGVudDo6Y3JlYXRlKGFj
dGlvbiwgdHlwZSwgc2VyaWFsaXplZERhdGEudG9TdHJpbmcoKSwgV2ViVmVjdG9yPFdlYlN0cmlu
Zz4oKSwgV2ViVmVjdG9yPFdlYlN0cmluZz4oKSk7CisKKyAgICBtX3dlYlZpZXctPm1haW5GcmFt
ZSgpLT5kZWxpdmVySW50ZW50KGludGVudCwgMCwgbV9pbnRlbnRDbGllbnQuZ2V0KCkpOworfQor
CiB2b2lkIFRlc3RSdW5uZXI6OndvcmtlclRocmVhZENvdW50KENwcFZhcmlhbnQqIHJlc3VsdCkK
IHsKICAgICByZXN1bHQtPnNldChzdGF0aWNfY2FzdDxpbnQ+KFdlYldvcmtlckluZm86OmRlZGlj
YXRlZFdvcmtlckNvdW50KCkpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaAppbmRleCA2ZTY3NzhlZWI1MjFl
ZTBhNjBjZWMzOWQxZmFiNjk5ZmM3MmM3OWFiLi4zYjAwYTYxNDIyMmM4Njc2MDY5OTg2ZDllMDQ3
OWI1MDFlZDllNDk1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCkBAIC0zMyw2ICszMyw3IEBACiAjZGVm
aW5lIFRlc3RSdW5uZXJfaAogCiAjaW5jbHVkZSAiQ3BwQm91bmRDbGFzcy5oIgorI2luY2x1ZGUg
IldlYkRlbGl2ZXJlZEludGVudENsaWVudC5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYlVSTC5o
IgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTE3NCw2ICsxNzUsMTYgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHNldFBsdWdpbnNFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlh
bnQqKTsKIAogICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworICAgIC8vIE1ldGhvZHMgaW50ZXJhY3Rp
bmcgd2l0aCB0aGUgV2ViVGVzdFByb3h5CisKKyAgICAvLyBFeHBlY3RzIG9uZSBzdHJpbmcgYXJn
dW1lbnQgZm9yIHNlbmRpbmcgc3VjY2Vzc2Z1bCByZXN1bHQsIHplcm8KKyAgICAvLyBhcmd1bWVu
dHMgZm9yIHNlbmRpbmcgYSBmYWlsdXJlIHJlc3VsdC4KKyAgICB2b2lkIHNlbmRXZWJJbnRlbnRS
ZXNwb25zZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisKKyAgICAvLyBD
YXVzZSB0aGUgd2ViIGludGVudCB0byBiZSBkZWxpdmVyZWQgdG8gdGhpcyBjb250ZXh0LgorICAg
IHZvaWQgZGVsaXZlcldlYkludGVudChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
Kik7CisKKyAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICAgICAvLyBQcm9wZXJ0aWVzCiAgICAgdm9p
ZCB3b3JrZXJUaHJlYWRDb3VudChDcHBWYXJpYW50Kik7CiAKQEAgLTIwNyw2ICsyMTgsOSBAQCBw
cml2YXRlOgogCiAgICAgV2ViVGVzdERlbGVnYXRlKiBtX2RlbGVnYXRlOwogICAgIFdlYktpdDo6
V2ViVmlldyogbV93ZWJWaWV3OworCisgICAgLy8gTW9jayBvYmplY3QgZm9yIHRlc3RpbmcgZGVs
aXZlcmluZyB3ZWIgaW50ZW50cy4KKyAgICBPd25QdHI8V2ViS2l0OjpXZWJEZWxpdmVyZWRJbnRl
bnRDbGllbnQ+IG1faW50ZW50Q2xpZW50OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5j
cHAKaW5kZXggOTQyZjBiYjg4OWMwNTIzZDk3MjYzOTFiNzE0ZWZmYzEzZDM1ZjAwYS4uYTMzZDlh
ZGU4MGI4NzFlYjQyOGExN2M0ZmJmOThlYTM2ODlhMmJkNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJv
eHkuY3BwCkBAIC0zNiwxMCArMzYsMTQgQEAKICNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiV2ViRWxlbWVudC5oIgogI2luY2x1ZGUgIldlYkV2ZW50U2VuZGVy
LmgiCisjaW5jbHVkZSAiV2ViSW50ZW50LmgiCisjaW5jbHVkZSAiV2ViSW50ZW50UmVxdWVzdC5o
IgorI2luY2x1ZGUgIldlYkludGVudFNlcnZpY2VJbmZvLmgiCiAjaW5jbHVkZSAiV2ViTm9kZS5o
IgogI2luY2x1ZGUgIldlYlRlc3REZWxlZ2F0ZS5oIgogI2luY2x1ZGUgIldlYlRlc3RJbnRlcmZh
Y2VzLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViQ1N0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9T
dHJpbmdFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5hbWVzcGFj
ZSBzdGQ7CkBAIC0xOTcsNyArMjAxLDcgQEAgdm9pZCBXZWJUZXN0UHJveHlCYXNlOjpwb3N0QWNj
ZXNzaWJpbGl0eU5vdGlmaWNhdGlvbihjb25zdCBXZWJLaXQ6OldlYkFjY2Vzc2liaWwKICAgICBt
X3Rlc3RJbnRlcmZhY2VzLT5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpLT5ub3RpZmljYXRpb25S
ZWNlaXZlZChvYmosIG5vdGlmaWNhdGlvbk5hbWUpOwogCiAgICAgaWYgKG1fdGVzdEludGVyZmFj
ZXMtPmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCktPnNob3VsZExvZ0FjY2Vzc2liaWxpdHlFdmVu
dHMoKSkgewotICAgICAgICBzdGQ6OnN0cmluZyBtZXNzYWdlKCJBY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uIC0gIik7CisgICAgICAgIHN0cmluZyBtZXNzYWdlKCJBY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uIC0gIik7CiAgICAgICAgIG1lc3NhZ2UgKz0gbm90aWZpY2F0aW9uTmFtZTsKIAogICAg
ICAgICBXZWJLaXQ6OldlYk5vZGUgbm9kZSA9IG9iai5ub2RlKCk7CkBAIC0yMjAsNCArMjI0LDM1
IEBAIHZvaWQgV2ViVGVzdFByb3h5QmFzZTo6c3RhcnREcmFnZ2luZyhXZWJGcmFtZSosIGNvbnN0
IFdlYkRyYWdEYXRhJiBkYXRhLCBXZWJEcmFnCiAgICAgbV90ZXN0SW50ZXJmYWNlcy0+ZXZlbnRT
ZW5kZXIoKS0+ZG9EcmFnRHJvcChkYXRhLCBtYXNrKTsKIH0KIAordm9pZCBXZWJUZXN0UHJveHlC
YXNlOjpyZWdpc3RlckludGVudFNlcnZpY2UoV2ViRnJhbWUqLCBjb25zdCBXZWJJbnRlbnRTZXJ2
aWNlSW5mbyYgc2VydmljZSkKK3sKKyAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2Uoc3RyaW5n
KCJSZWdpc3RlcmVkIFdlYiBJbnRlbnQgU2VydmljZTogYWN0aW9uPSIpICsgc2VydmljZS5hY3Rp
b24oKS51dGY4KCkuZGF0YSgpICsgIiB0eXBlPSIgKyBzZXJ2aWNlLnR5cGUoKS51dGY4KCkuZGF0
YSgpICsgIiB0aXRsZT0iICsgc2VydmljZS50aXRsZSgpLnV0ZjgoKS5kYXRhKCkgKyAiIHVybD0i
ICsgc2VydmljZS51cmwoKS5zcGVjKCkuZGF0YSgpICsgIiBkaXNwb3NpdGlvbj0iICsgc2Vydmlj
ZS5kaXNwb3NpdGlvbigpLnV0ZjgoKS5kYXRhKCkgKyAiXG4iKTsKK30KKwordm9pZCBXZWJUZXN0
UHJveHlCYXNlOjpkaXNwYXRjaEludGVudChXZWJGcmFtZSogc291cmNlLCBjb25zdCBXZWJJbnRl
bnRSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZShzdHJp
bmcoIlJlY2VpdmVkIFdlYiBJbnRlbnQ6IGFjdGlvbj0iKSArIHJlcXVlc3QuaW50ZW50KCkuYWN0
aW9uKCkudXRmOCgpLmRhdGEoKSArICIgdHlwZT0iICsgcmVxdWVzdC5pbnRlbnQoKS50eXBlKCku
dXRmOCgpLmRhdGEoKSArICJcbiIpOworICAgIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5KiBw
b3J0cyA9IHJlcXVlc3QuaW50ZW50KCkubWVzc2FnZVBvcnRDaGFubmVsc1JlbGVhc2UoKTsKKyAg
ICBtX2RlbGVnYXRlLT5zZXRDdXJyZW50V2ViSW50ZW50UmVxdWVzdChyZXF1ZXN0KTsKKyAgICBp
ZiAocG9ydHMpIHsKKyAgICAgICAgY2hhciBkYXRhWzEwMF07CisgICAgICAgIHNucHJpbnRmKGRh
dGEsIHNpemVvZihkYXRhKSwgIkhhdmUgJWQgcG9ydHNcbiIsIHN0YXRpY19jYXN0PGludD4ocG9y
dHMtPnNpemUoKSkpOworICAgICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UoZGF0YSk7Cisg
ICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcG9ydHMtPnNpemUoKTsgKytpKQorICAgICAg
ICAgICAgKCpwb3J0cylbaV0tPmRlc3Ryb3koKTsKKyAgICAgICAgZGVsZXRlIHBvcnRzOworICAg
IH0KKworICAgIGlmICghcmVxdWVzdC5pbnRlbnQoKS5zZXJ2aWNlKCkuaXNFbXB0eSgpKQorICAg
ICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2Uoc3RyaW5nKCJFeHBsaWNpdCBpbnRlbnQgc2Vy
dmljZTogIikgKyByZXF1ZXN0LmludGVudCgpLnNlcnZpY2UoKS5zcGVjKCkuZGF0YSgpICsgIlxu
Iik7CisKKyAgICBXZWJWZWN0b3I8V2ViU3RyaW5nPiBleHRyYXMgPSByZXF1ZXN0LmludGVudCgp
LmV4dHJhc05hbWVzKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBleHRyYXMuc2l6ZSgp
OyArK2kpCisgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZShzdHJpbmcoIkV4dHJhc1si
KSArIGV4dHJhc1tpXS51dGY4KCkuZGF0YSgpICsgIl0gPSAiICsgcmVxdWVzdC5pbnRlbnQoKS5l
eHRyYXNWYWx1ZShleHRyYXNbaV0pLnV0ZjgoKS5kYXRhKCkgKyAiXG4iKTsKKworICAgIFdlYlZl
Y3RvcjxXZWJVUkw+IHN1Z2dlc3Rpb25zID0gcmVxdWVzdC5pbnRlbnQoKS5zdWdnZXN0aW9ucygp
OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3VnZ2VzdGlvbnMuc2l6ZSgpOyArK2kpCisg
ICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZShzdHJpbmcoIkhhdmUgc3VnZ2VzdGlvbiAi
KSArIHN1Z2dlc3Rpb25zW2ldLnNwZWMoKS5kYXRhKCkgKyAiXG4iKTsKK30KKwogfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IDhmZThhM2Vm
YTViN2Y4OGRmNGI3MWQyMjg2MWRmYmNlZDk4MDQ4YjUuLmFjNjAxODNkOTYyMjk1NjdhNDczZjc0
NzU4Zjg0MmFmZmM0MGZhZTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlZpZXdIb3N0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9X
ZWJWaWV3SG9zdC5jcHAKQEAgLTUwLDggKzUwLDYgQEAKICNpbmNsdWRlICJXZWJGcmFtZS5oIgog
I2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uQ2xpZW50TW9jay5oIgogI2luY2x1ZGUgIldlYkhpc3Rv
cnlJdGVtLmgiCi0jaW5jbHVkZSAiV2ViSW50ZW50LmgiCi0jaW5jbHVkZSAiV2ViSW50ZW50U2Vy
dmljZUluZm8uaCIKICNpbmNsdWRlICJXZWJLaXQuaCIKICNpbmNsdWRlICJXZWJOb2RlLmgiCiAj
aW5jbHVkZSAiV2ViUGx1Z2luUGFyYW1zLmgiCkBAIC0xMjg0LDUwICsxMjgyLDYgQEAgYm9vbCBX
ZWJWaWV3SG9zdDo6d2lsbENoZWNrQW5kRGlzcGF0Y2hNZXNzYWdlRXZlbnQoV2ViRnJhbWUqIHNv
dXJjZUZyYW1lLCBXZWJGcmEKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgV2ViVmlld0hv
c3Q6OnJlZ2lzdGVySW50ZW50U2VydmljZShXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0
OjpXZWJJbnRlbnRTZXJ2aWNlSW5mbyYgc2VydmljZSkKLXsKLSAgICBwcmludGYoIlJlZ2lzdGVy
ZWQgV2ViIEludGVudCBTZXJ2aWNlOiBhY3Rpb249JXMgdHlwZT0lcyB0aXRsZT0lcyB1cmw9JXMg
ZGlzcG9zaXRpb249JXNcbiIsCi0gICAgICAgICAgIHNlcnZpY2UuYWN0aW9uKCkudXRmOCgpLmRh
dGEoKSwgc2VydmljZS50eXBlKCkudXRmOCgpLmRhdGEoKSwgc2VydmljZS50aXRsZSgpLnV0Zjgo
KS5kYXRhKCksIHNlcnZpY2UudXJsKCkuc3BlYygpLmRhdGEoKSwgc2VydmljZS5kaXNwb3NpdGlv
bigpLnV0ZjgoKS5kYXRhKCkpOwotfQotCi12b2lkIFdlYlZpZXdIb3N0OjpkaXNwYXRjaEludGVu
dChXZWJGcmFtZSogc291cmNlLCBjb25zdCBXZWJJbnRlbnRSZXF1ZXN0JiByZXF1ZXN0KQotewot
ICAgIHByaW50ZigiUmVjZWl2ZWQgV2ViIEludGVudDogYWN0aW9uPSVzIHR5cGU9JXNcbiIsCi0g
ICAgICAgICAgIHJlcXVlc3QuaW50ZW50KCkuYWN0aW9uKCkudXRmOCgpLmRhdGEoKSwKLSAgICAg
ICAgICAgcmVxdWVzdC5pbnRlbnQoKS50eXBlKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgV2ViTWVz
c2FnZVBvcnRDaGFubmVsQXJyYXkqIHBvcnRzID0gcmVxdWVzdC5pbnRlbnQoKS5tZXNzYWdlUG9y
dENoYW5uZWxzUmVsZWFzZSgpOwotICAgIG1fY3VycmVudFJlcXVlc3QgPSByZXF1ZXN0OwotICAg
IGlmIChwb3J0cykgewotICAgICAgICBwcmludGYoIkhhdmUgJWQgcG9ydHNcbiIsIHN0YXRpY19j
YXN0PGludD4ocG9ydHMtPnNpemUoKSkpOwotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IHBvcnRzLT5zaXplKCk7ICsraSkKLSAgICAgICAgICAgICgqcG9ydHMpW2ldLT5kZXN0cm95KCk7
Ci0gICAgICAgIGRlbGV0ZSBwb3J0czsKLSAgICB9Ci0KLSAgICBpZiAoIXJlcXVlc3QuaW50ZW50
KCkuc2VydmljZSgpLmlzRW1wdHkoKSkKLSAgICAgICAgcHJpbnRmKCJFeHBsaWNpdCBpbnRlbnQg
c2VydmljZTogJXNcbiIsIHJlcXVlc3QuaW50ZW50KCkuc2VydmljZSgpLnNwZWMoKS5kYXRhKCkp
OwotCi0gICAgV2ViVmVjdG9yPFdlYlN0cmluZz4gZXh0cmFzID0gcmVxdWVzdC5pbnRlbnQoKS5l
eHRyYXNOYW1lcygpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZXh0cmFzLnNpemUoKTsg
KytpKSB7Ci0gICAgICAgIHByaW50ZigiRXh0cmFzWyVzXSA9ICVzXG4iLCBleHRyYXNbaV0udXRm
OCgpLmRhdGEoKSwKLSAgICAgICAgICAgICAgIHJlcXVlc3QuaW50ZW50KCkuZXh0cmFzVmFsdWUo
ZXh0cmFzW2ldKS51dGY4KCkuZGF0YSgpKTsKLSAgICB9Ci0KLSAgICBXZWJWZWN0b3I8V2ViVVJM
PiBzdWdnZXN0aW9ucyA9IHJlcXVlc3QuaW50ZW50KCkuc3VnZ2VzdGlvbnMoKTsKLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHN1Z2dlc3Rpb25zLnNpemUoKTsgKytpKQotICAgICAgICBwcmlu
dGYoIkhhdmUgc3VnZ2VzdGlvbiAlc1xuIiwgc3VnZ2VzdGlvbnNbaV0uc3BlYygpLmRhdGEoKSk7
Ci19Ci0KLXZvaWQgV2ViVmlld0hvc3Q6OmRlbGl2ZXJlZEludGVudFJlc3VsdChXZWJGcmFtZSog
ZnJhbWUsIGludCBpZCwgY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiBkYXRhKQotewot
ICAgIHByaW50ZigiV2ViIGludGVudCBzdWNjZXNzIGZvciBpZCAlZFxuIiwgaWQpOwotfQotCi12
b2lkIFdlYlZpZXdIb3N0OjpkZWxpdmVyZWRJbnRlbnRGYWlsdXJlKFdlYkZyYW1lKiBmcmFtZSwg
aW50IGlkLCBjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmIGRhdGEpCi17Ci0gICAgcHJp
bnRmKCJXZWIgaW50ZW50IGZhaWx1cmUgZm9yIGlkICVkXG4iLCBpZCk7Ci19Ci0KIC8vIFdlYlRl
c3REZWxlZ2F0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIAogV2ViQ29udGV4dE1lbnVEYXRhKiBXZWJWaWV3SG9zdDo6bGFzdENv
bnRleHRNZW51RGF0YSgpIGNvbnN0CkBAIC0xNDEyLDYgKzEzNjYsMTYgQEAgdm9pZCBXZWJWaWV3
SG9zdDo6YXBwbHlQcmVmZXJlbmNlcygpCiAgICAgbV9zaGVsbC0+YXBwbHlQcmVmZXJlbmNlcygp
OwogfQogCit2b2lkIFdlYlZpZXdIb3N0OjpzZXRDdXJyZW50V2ViSW50ZW50UmVxdWVzdChjb25z
dCBXZWJJbnRlbnRSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIG1fY3VycmVudFJlcXVlc3QgPSBy
ZXF1ZXN0OworfQorCitXZWJJbnRlbnRSZXF1ZXN0KiBXZWJWaWV3SG9zdDo6Y3VycmVudFdlYklu
dGVudFJlcXVlc3QoKQoreworICAgIHJldHVybiAmbV9jdXJyZW50UmVxdWVzdDsKK30KKwogLy8g
UHVibGljIGZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogCiBXZWJWaWV3SG9zdDo6V2ViVmlld0hvc3QoVGVzdFNoZWxs
KiBzaGVsbCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZp
ZXdIb3N0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCmlu
ZGV4IDgwMGQwYWZmMTEyMDUxNGVlMDI3OWIzNThkZWFhYzFlMWU0MmJhODAuLjhhN2VlZDI1OTQ5
NGJkNGFkZGFlNGEwYTAyNTdhM2E5Y2RlOTNiNDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVmlld0hvc3QuaApAQCAtNjIsNyArNjIsNiBAQCBjbGFzcyBXZWJEZXZpY2VP
cmllbnRhdGlvbkNsaWVudE1vY2s7CiBjbGFzcyBXZWJHZW9sb2NhdGlvbkNsaWVudDsKIGNsYXNz
IFdlYkdlb2xvY2F0aW9uQ2xpZW50TW9jazsKIGNsYXNzIFdlYkdlb2xvY2F0aW9uU2VydmljZU1v
Y2s7Ci1jbGFzcyBXZWJJbnRlbnRTZXJ2aWNlSW5mbzsKIGNsYXNzIFdlYlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTsKIGNsYXNzIFdlYlNoYXJlZFdvcmtlckNsaWVudDsKIGNsYXNzIFdlYlNwZWVjaElu
cHV0Q29udHJvbGxlcjsKQEAgLTE0Nyw2ICsxNDYsOCBAQCBjbGFzcyBXZWJWaWV3SG9zdCA6IHB1
YmxpYyBXZWJLaXQ6OldlYlZpZXdDbGllbnQsIHB1YmxpYyBXZWJLaXQ6OldlYkZyYW1lQ2xpZW50
LAogICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJVUkwgcmV3cml0ZUxheW91dFRlc3RzVVJMKGNvbnN0
IHN0ZDo6c3RyaW5nJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBXZWJUZXN0UnVubmVyOjpXZWJQ
cmVmZXJlbmNlcyogcHJlZmVyZW5jZXMoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYXBw
bHlQcmVmZXJlbmNlcygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJyZW50V2Vi
SW50ZW50UmVxdWVzdChjb25zdCBXZWJLaXQ6OldlYkludGVudFJlcXVlc3QmKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIFdlYktpdDo6V2ViSW50ZW50UmVxdWVzdCogY3VycmVudFdlYkludGVudFJl
cXVlc3QoKSBPVkVSUklERTsKIAogICAgIC8vIE5hdmlnYXRpb25Ib3N0CiAgICAgdmlydHVhbCBi
b29sIG5hdmlnYXRlKGNvbnN0IFRlc3ROYXZpZ2F0aW9uRW50cnkmLCBib29sIHJlbG9hZCk7CkBA
IC0yNzcsMTAgKzI3OCw2IEBAIGNsYXNzIFdlYlZpZXdIb3N0IDogcHVibGljIFdlYktpdDo6V2Vi
Vmlld0NsaWVudCwgcHVibGljIFdlYktpdDo6V2ViRnJhbWVDbGllbnQsCiAgICAgdmlydHVhbCBi
b29sIHdpbGxDaGVja0FuZERpc3BhdGNoTWVzc2FnZUV2ZW50KAogICAgICAgICBXZWJLaXQ6Oldl
YkZyYW1lKiBzb3VyY2VGcmFtZSwgV2ViS2l0OjpXZWJGcmFtZSogdGFyZ2V0RnJhbWUsIAogICAg
ICAgICBXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luIHRhcmdldCwgV2ViS2l0OjpXZWJET01NZXNz
YWdlRXZlbnQpOwotICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckludGVudFNlcnZpY2UoV2ViS2l0
OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViSW50ZW50U2VydmljZUluZm8mKTsKLSAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hJbnRlbnQoV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktp
dDo6V2ViSW50ZW50UmVxdWVzdCYpOwotICAgIHZpcnR1YWwgdm9pZCBkZWxpdmVyZWRJbnRlbnRS
ZXN1bHQoV2ViS2l0OjpXZWJGcmFtZSosIGludCwgY29uc3QgV2ViS2l0OjpXZWJTZXJpYWxpemVk
U2NyaXB0VmFsdWUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVsaXZlcmVkSW50ZW50RmFpbHVyZShX
ZWJLaXQ6OldlYkZyYW1lKiwgaW50LCBjb25zdCBXZWJLaXQ6OldlYlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSYpOwogCiAgICAgV2ViS2l0OjpXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2sqIGRl
dmljZU9yaWVudGF0aW9uQ2xpZW50TW9jaygpOwogICAgIApAQCAtMjk0LDkgKzI5MSw2IEBAIGNs
YXNzIFdlYlZpZXdIb3N0IDogcHVibGljIFdlYktpdDo6V2ViVmlld0NsaWVudCwgcHVibGljIFdl
YktpdDo6V2ViRnJhbWVDbGllbnQsCiAgICAgLy8gUGVuZGluZyB0YXNrIGxpc3QsIE5vdGUgdGFo
dCB0aGUgbWV0aG9kIGlzIHJlZmVycmVkIGZyb20gV2ViTWV0aG9kVGFzayBjbGFzcy4KICAgICBX
ZWJUZXN0UnVubmVyOjpXZWJUYXNrTGlzdCogdGFza0xpc3QoKSB7IHJldHVybiAmbV90YXNrTGlz
dDsgfQogCi0gICAgLy8gVGhlIGN1cnJlbnQgd2ViIGludGVudHMgcmVxdWVzdC4KLSAgICBXZWJL
aXQ6OldlYkludGVudFJlcXVlc3QqIGN1cnJlbnRJbnRlbnRSZXF1ZXN0KCkgeyByZXR1cm4gJm1f
Y3VycmVudFJlcXVlc3Q7IH0KLQogcHJpdmF0ZToKIAogICAgIGNsYXNzIEhvc3RNZXRob2RUYXNr
IDogcHVibGljIFdlYlRlc3RSdW5uZXI6OldlYk1ldGhvZFRhc2s8V2ViVmlld0hvc3Q+IHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179895</attachid>
            <date>2012-12-18 00:47:02 -0800</date>
            <delta_ts>2012-12-18 01:06:09 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-105164-20121218094419.patch</filename>
            <type>text/plain</type>
            <size>23990</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3OTkzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODI5OTBlMTFkNjg2MTkxZTE2NTMxZDc1MzhjZmFiNDZk
ODYzNjNjOC4uMGU0YjU2MDEyN2RiMTc2NDRmMTdkZTJjMzYxN2Y0ZTU3NTVmMjk1NyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDEyLTEyLTE3ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gbW92ZSB3ZWJpbnRlbnQgcmVsYXRlZCBtZXRob2RzIHRvIFRl
c3RSdW5uZXIgbGlicmFyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA1MTY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgorCisg
ICAgICAgIEFsc28gZGVsZXRlZCB0aGUgdW51c2VkIGRlbGl2ZXJlZEludGVudEZhaWx1cmUgYW5k
CisgICAgICAgIGRlbGl2ZXJlZEludGVudFJlc3VsdCBtZXRob2RzLgorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChEUlRUZXN0
UnVubmVyOjpEUlRUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9EUlRUZXN0UnVubmVyLmg6CisgICAgICAgIChEUlRUZXN0UnVubmVyKToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0RGVsZWdhdGUu
aDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0RGVs
ZWdhdGU6OnNldEN1cnJlbnRXZWJJbnRlbnRSZXF1ZXN0KToKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXI6OldlYlRlc3REZWxlZ2F0ZTo6Y3VycmVudFdlYkludGVudFJlcXVlc3QpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5o
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYlRlc3RQcm94eUJhc2UpOgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5OjpyZWdpc3RlckludGVudFNlcnZpY2UpOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5OjpkaXNwYXRjaEludGVudCk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5l
ci5jcHA6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpUZXN0UnVubmVyKToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OnNlbmRXZWJJbnRlbnRSZXNwb25z
ZSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRl
c3RSdW5uZXI6OmRlbGl2ZXJXZWJJbnRlbnQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFRlc3RSdW5uZXIp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRl
c3RQcm94eS5jcHA6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHlCYXNlOjpw
b3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpX
ZWJUZXN0UHJveHlCYXNlOjpyZWdpc3RlckludGVudFNlcnZpY2UpOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHlCYXNlOjpkaXNw
YXRjaEludGVudCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hv
c3QuY3BwOgorICAgICAgICAoV2ViVmlld0hvc3Q6OnNldEN1cnJlbnRXZWJJbnRlbnRSZXF1ZXN0
KToKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpjdXJyZW50V2ViSW50ZW50UmVxdWVzdCk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaDoKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChXZWJWaWV3SG9zdCk6CisKIDIwMTItMTItMTggIEpvY2hlbiBFaXNp
bmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBtb3ZlIGVk
aXRpbmcgY2FsbGJhY2sgZHVtcGluZyB0byB0aGUgV2ViVGVzdFByb3h5CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuY3BwCmluZGV4IDA0OWE0M2ZlM2Q1
ZDAxNjYxNWY0N2NjYmZjY2NjNGE2MDAyZjY2MzEuLjQ0YzI4NDUxYmM1ODJjMDk1YjU0M2ZmOTRk
NjY4Njc4ZTk0M2JjMjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0RSVFRlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RS
VFRlc3RSdW5uZXIuY3BwCkBAIC01MCw4ICs1MCw2IEBACiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRp
b25DbGllbnRNb2NrLmgiCiAjaW5jbHVkZSAiV2ViSURCRmFjdG9yeS5oIgogI2luY2x1ZGUgIldl
YklucHV0RWxlbWVudC5oIgotI2luY2x1ZGUgIldlYkludGVudC5oIgotI2luY2x1ZGUgIldlYklu
dGVudFJlcXVlc3QuaCIKICNpbmNsdWRlICJXZWJLaXQuaCIKICNpbmNsdWRlICJXZWJOb3RpZmlj
YXRpb25QcmVzZW50ZXIuaCIKICNpbmNsdWRlICJXZWJQZXJtaXNzaW9ucy5oIgpAQCAtODcsMjMg
Kzg1LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiB1c2luZyBuYW1lc3BhY2UgV2ViVGVz
dFJ1bm5lcjsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKLWNsYXNzIEVtcHR5V2ViRGVsaXZlcmVk
SW50ZW50Q2xpZW50IDogcHVibGljIFdlYktpdDo6V2ViRGVsaXZlcmVkSW50ZW50Q2xpZW50IHsK
LXB1YmxpYzoKLSAgICBFbXB0eVdlYkRlbGl2ZXJlZEludGVudENsaWVudCgpIHsgfQotICAgIH5F
bXB0eVdlYkRlbGl2ZXJlZEludGVudENsaWVudCgpIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIHBv
c3RSZXN1bHQoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiBkYXRhKSBjb25zdCB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgcG9zdEZhaWx1cmUoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZh
bHVlJiBkYXRhKSBjb25zdCB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveSgpIHsgfQotfTsK
LQogRFJUVGVzdFJ1bm5lcjo6RFJUVGVzdFJ1bm5lcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIDog
bV9zaGVsbChzaGVsbCkKICAgICAsIG1fY2xvc2VSZW1haW5pbmdXaW5kb3dzKGZhbHNlKQogICAg
ICwgbV9kZWZlck1haW5SZXNvdXJjZURhdGFMb2FkKGZhbHNlKQogICAgICwgbV9zaG93RGVidWdM
YXllclRyZWUoZmFsc2UpCiAgICAgLCBtX3dvcmtRdWV1ZSh0aGlzKQotICAgICwgbV9pbnRlbnRD
bGllbnQoYWRvcHRQdHIobmV3IEVtcHR5V2ViRGVsaXZlcmVkSW50ZW50Q2xpZW50KSkKICAgICAs
IG1fc2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQoZmFsc2UpCiB7CiAK
QEAgLTIwOCw4ICsxOTUsNiBAQCBEUlRUZXN0UnVubmVyOjpEUlRUZXN0UnVubmVyKFRlc3RTaGVs
bCogc2hlbGwpCiAgICAgYmluZFByb3BlcnR5KCJ3ZWJIaXN0b3J5SXRlbUNvdW50IiwgJm1fd2Vi
SGlzdG9yeUl0ZW1Db3VudCk7CiAgICAgYmluZFByb3BlcnR5KCJ0aXRsZVRleHREaXJlY3Rpb24i
LCAmbV90aXRsZVRleHREaXJlY3Rpb24pOwogICAgIGJpbmRQcm9wZXJ0eSgiaW50ZXJjZXB0UG9z
dE1lc3NhZ2UiLCAmbV9pbnRlcmNlcHRQb3N0TWVzc2FnZSk7Ci0gICAgYmluZE1ldGhvZCgic2Vu
ZFdlYkludGVudFJlc3BvbnNlIiwgJkRSVFRlc3RSdW5uZXI6OnNlbmRXZWJJbnRlbnRSZXNwb25z
ZSk7Ci0gICAgYmluZE1ldGhvZCgiZGVsaXZlcldlYkludGVudCIsICZEUlRUZXN0UnVubmVyOjpk
ZWxpdmVyV2ViSW50ZW50KTsKIH0KIAogRFJUVGVzdFJ1bm5lcjo6fkRSVFRlc3RSdW5uZXIoKQpA
QCAtMTA1MSw0OSArMTAzNiw2IEBAIHZvaWQgRFJUVGVzdFJ1bm5lcjo6c2V0U2hvdWxkU3RheU9u
UGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQoY29uc3QgQ3BwQXJndW1lCiAgICAgcmVzdWx0
LT5zZXROdWxsKCk7CiB9CiAKLXZvaWQgRFJUVGVzdFJ1bm5lcjo6c2VuZFdlYkludGVudFJlc3Bv
bnNlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQp
Ci17Ci0gICAgdjg6OkhhbmRsZVNjb3BlIHNjb3BlOwotICAgIHY4OjpMb2NhbDx2ODo6Q29udGV4
dD4gY3R4ID0gbV9zaGVsbC0+d2ViVmlldygpLT5tYWluRnJhbWUoKS0+bWFpbldvcmxkU2NyaXB0
Q29udGV4dCgpOwotICAgIHJlc3VsdC0+c2V0KG1fc2hlbGwtPndlYlZpZXcoKS0+bWFpbkZyYW1l
KCktPnNlbGVjdGlvbkFzTWFya3VwKCkudXRmOCgpKTsKLSAgICB2ODo6Q29udGV4dDo6U2NvcGUg
Y3Njb3BlKGN0eCk7Ci0KLSAgICBXZWJLaXQ6OldlYkludGVudFJlcXVlc3QqIHJlcXVlc3QgPSBt
X3NoZWxsLT53ZWJWaWV3SG9zdCgpLT5jdXJyZW50SW50ZW50UmVxdWVzdCgpOwotICAgIGlmIChy
ZXF1ZXN0LT5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGFyZ3VtZW50cy5z
aXplKCkgPT0gMSkgewotICAgICAgICBXZWJLaXQ6OldlYkNTdHJpbmcgcmVwbHkgPSBjcHBWYXJp
YW50VG9XZWJTdHJpbmcoYXJndW1lbnRzWzBdKS51dGY4KCk7Ci0gICAgICAgIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiB2OHZhbHVlID0gdjg6OlN0cmluZzo6TmV3KHJlcGx5LmRhdGEoKSwgcmVwbHku
bGVuZ3RoKCkpOwotICAgICAgICByZXF1ZXN0LT5wb3N0UmVzdWx0KFdlYktpdDo6V2ViU2VyaWFs
aXplZFNjcmlwdFZhbHVlOjpzZXJpYWxpemUodjh2YWx1ZSkpOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2OHZhbHVlID0gdjg6OlN0cmluZzo6TmV3KCJFUlJP
UiIpOwotICAgICAgICByZXF1ZXN0LT5wb3N0RmFpbHVyZShXZWJLaXQ6OldlYlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6c2VyaWFsaXplKHY4dmFsdWUpKTsKLSAgICB9Ci0gICAgcmVzdWx0LT5zZXRO
dWxsKCk7Ci19Ci0KLXZvaWQgRFJUVGVzdFJ1bm5lcjo6ZGVsaXZlcldlYkludGVudChjb25zdCBD
cHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIGlm
IChhcmd1bWVudHMuc2l6ZSgpIDwgIDMpCi0gICAgICAgIHJldHVybjsKLQotICAgIHY4OjpIYW5k
bGVTY29wZSBzY29wZTsKLSAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IGN0eCA9IG1fc2hlbGwt
PndlYlZpZXcoKS0+bWFpbkZyYW1lKCktPm1haW5Xb3JsZFNjcmlwdENvbnRleHQoKTsKLSAgICBy
ZXN1bHQtPnNldChtX3NoZWxsLT53ZWJWaWV3KCktPm1haW5GcmFtZSgpLT5zZWxlY3Rpb25Bc01h
cmt1cCgpLnV0ZjgoKSk7Ci0gICAgdjg6OkNvbnRleHQ6OlNjb3BlIGNzY29wZShjdHgpOwotCi0g
ICAgV2ViU3RyaW5nIGFjdGlvbiA9IGNwcFZhcmlhbnRUb1dlYlN0cmluZyhhcmd1bWVudHNbMF0p
OwotICAgIFdlYlN0cmluZyB0eXBlID0gY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50c1sx
XSk7Ci0gICAgV2ViS2l0OjpXZWJDU3RyaW5nIGRhdGEgPSBjcHBWYXJpYW50VG9XZWJTdHJpbmco
YXJndW1lbnRzWzJdKS51dGY4KCk7Ci0gICAgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlIHNlcmlh
bGl6ZWREYXRhID0gV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpzZXJpYWxpemUoCi0gICAgICAg
IHY4OjpTdHJpbmc6Ok5ldyhkYXRhLmRhdGEoKSwgZGF0YS5sZW5ndGgoKSkpOwotCi0gICAgV2Vi
SW50ZW50IGludGVudCA9IFdlYkludGVudDo6Y3JlYXRlKGFjdGlvbiwgdHlwZSwgc2VyaWFsaXpl
ZERhdGEudG9TdHJpbmcoKSwgV2ViVmVjdG9yPFdlYlN0cmluZz4oKSwgV2ViVmVjdG9yPFdlYlN0
cmluZz4oKSk7Ci0KLSAgICBtX3NoZWxsLT53ZWJWaWV3KCktPm1haW5GcmFtZSgpLT5kZWxpdmVy
SW50ZW50KGludGVudCwgMCwgbV9pbnRlbnRDbGllbnQuZ2V0KCkpOwotfQotCiBjbGFzcyBJbnZv
a2VDYWxsYmFja1Rhc2sgOiBwdWJsaWMgV2ViTWV0aG9kVGFzazxEUlRUZXN0UnVubmVyPiB7CiBw
dWJsaWM6CiAgICAgSW52b2tlQ2FsbGJhY2tUYXNrKERSVFRlc3RSdW5uZXIqIG9iamVjdCwgUGFz
c093bkFycmF5UHRyPENwcFZhcmlhbnQ+IGNhbGxiYWNrQXJndW1lbnRzLCB1aW50MzJfdCBudW1i
ZXJPZkFyZ3VtZW50cykKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0RSVFRlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RS
dW5uZXIuaAppbmRleCBjMTM3ZGZhNjk5MzU5MzcwMGRkNjY4YWU1ZmE1ZjZkOGRhYmVmZTU5Li41
MWQ2OWRiYzY0NTE2NjUyMjkzNTkwMGUwN2MyMjNhOWUxMTUzMGU3IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oCkBAIC00Myw3ICs0Myw2IEBACiAj
ZGVmaW5lIERSVFRlc3RSdW5uZXJfaAogCiAjaW5jbHVkZSAiVGVzdFJ1bm5lci9zcmMvVGVzdFJ1
bm5lci5oIgotI2luY2x1ZGUgIldlYkRlbGl2ZXJlZEludGVudENsaWVudC5oIgogI2luY2x1ZGUg
IldlYlRhc2suaCIKICNpbmNsdWRlICJXZWJUZXh0RGlyZWN0aW9uLmgiCiAjaW5jbHVkZSAicGxh
dGZvcm0vV2ViQXJyYXlCdWZmZXJWaWV3LmgiCkBAIC0yNzQsMTMgKzI3Myw2IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFBvaW50ZXJMb2NrV2lsbFJlc3BvbmRBc3luY2hyb25vdXNseShjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAjZW5kaWYKIAotICAgIC8vIEV4cGVjdHMg
b25lIHN0cmluZyBhcmd1bWVudCBmb3Igc2VuZGluZyBzdWNjZXNzZnVsIHJlc3VsdCwgemVybwot
ICAgIC8vIGFyZ3VtZW50cyBmb3Igc2VuZGluZyBhIGZhaWx1cmUgcmVzdWx0LgotICAgIHZvaWQg
c2VuZFdlYkludGVudFJlc3BvbnNlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQq
KTsKLQotICAgIC8vIENhdXNlIHRoZSB3ZWIgaW50ZW50IHRvIGJlIGRlbGl2ZXJlZCB0byB0aGlz
IGNvbnRleHQuCi0gICAgdm9pZCBkZWxpdmVyV2ViSW50ZW50KGNvbnN0IENwcEFyZ3VtZW50TGlz
dCYsIENwcFZhcmlhbnQqKTsKLQogICAgIC8vIFVzZWQgdG8gc2V0IHRoZSBkZXZpY2Ugc2NhbGUg
ZmFjdG9yLgogICAgIHZvaWQgc2V0QmFja2luZ1NjYWxlRmFjdG9yKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYsIENwcFZhcmlhbnQqKTsKIApAQCAtNTE1LDkgKzUwNyw2IEBAIHByaXZhdGU6CiAgICAg
Ly8gV0FWIGF1ZGlvIGRhdGEgaXMgc3RvcmVkIGhlcmUuCiAgICAgV2ViS2l0OjpXZWJBcnJheUJ1
ZmZlclZpZXcgbV9hdWRpb0RhdGE7CiAKLSAgICAvLyBNb2NrIG9iamVjdCBmb3IgdGVzdGluZyBk
ZWxpdmVyaW5nIHdlYiBpbnRlbnRzLgotICAgIE93blB0cjxXZWJLaXQ6OldlYkRlbGl2ZXJlZElu
dGVudENsaWVudD4gbV9pbnRlbnRDbGllbnQ7Ci0KICAgICBib29sIG1fc2hvdWxkU3RheU9uUGFn
ZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQ7CiB9OwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0RGVsZWdhdGUuaCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RE
ZWxlZ2F0ZS5oCmluZGV4IDY3MGMyYTIyMjg2YmJjNzA4MWNiYjY1ZTczNmJmMzVmYTIwMmJlYTMu
LjMwODY3NzY0OGM0NjRhZDJhYzM5ZDlhZDAxMjBmMTFkZjc0MjU3YzggMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3REZWxl
Z2F0ZS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVi
bGljL1dlYlRlc3REZWxlZ2F0ZS5oCkBAIC0zOCw2ICszOCw3IEBACiBuYW1lc3BhY2UgV2ViS2l0
IHsKIHN0cnVjdCBXZWJDb250ZXh0TWVudURhdGE7CiBjbGFzcyBXZWJHYW1lcGFkczsKK2NsYXNz
IFdlYkludGVudFJlcXVlc3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKQEAgLTcx
LDYgKzcyLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJVUkwgcmV3cml0ZUxh
eW91dFRlc3RzVVJMKGNvbnN0IHN0ZDo6c3RyaW5nJikgeyByZXR1cm4gV2ViS2l0OjpXZWJVUkwo
KTsgfQogICAgIHZpcnR1YWwgV2ViUHJlZmVyZW5jZXMqIHByZWZlcmVuY2VzKCkgeyByZXR1cm4g
MDsgfQogICAgIHZpcnR1YWwgdm9pZCBhcHBseVByZWZlcmVuY2VzKCkgeyB9OworICAgIHZpcnR1
YWwgdm9pZCBzZXRDdXJyZW50V2ViSW50ZW50UmVxdWVzdChjb25zdCBXZWJLaXQ6OldlYkludGVu
dFJlcXVlc3QmKSB7IH07CisgICAgdmlydHVhbCBXZWJLaXQ6OldlYkludGVudFJlcXVlc3QqIGN1
cnJlbnRXZWJJbnRlbnRSZXF1ZXN0KCkgeyByZXR1cm4gMDsgfQogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVz
dFByb3h5LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1Ymxp
Yy9XZWJUZXN0UHJveHkuaAppbmRleCAzMTNkM2Q5NTNjNTNkZTk0NjU0Yzk2ZWIxZWIxZTllMDc4
NTMwNjAxLi44MDZkZTA4NjQ2NGVhNGQyNzNkMDNjNDQwOWViMDM2OGM2M2U1NDZmIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJU
ZXN0UHJveHkuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3B1YmxpYy9XZWJUZXN0UHJveHkuaApAQCAtNDMsMTAgKzQzLDEzIEBAIGNsYXNzIFdlYkFjY2Vz
c2liaWxpdHlPYmplY3Q7CiBjbGFzcyBXZWJEcmFnRGF0YTsKIGNsYXNzIFdlYkZyYW1lOwogY2xh
c3MgV2ViSW1hZ2U7CitjbGFzcyBXZWJJbnRlbnRSZXF1ZXN0OworY2xhc3MgV2ViSW50ZW50U2Vy
dmljZUluZm87CiBjbGFzcyBXZWJOb2RlOwogY2xhc3MgV2ViUmFuZ2U7CiBjbGFzcyBXZWJTdHJp
bmc7CiBzdHJ1Y3QgV2ViUG9pbnQ7CitjbGFzcyBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBz
dHJ1Y3QgV2ViU2l6ZTsKIH0KIApAQCAtODgsNiArOTEsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9p
ZCBkaWRDaGFuZ2VTZWxlY3Rpb24oYm9vbCBpc0VtcHR5U2VsZWN0aW9uKTsKICAgICB2b2lkIGRp
ZENoYW5nZUNvbnRlbnRzKCk7CiAgICAgdm9pZCBkaWRFbmRFZGl0aW5nKCk7CisgICAgdm9pZCBy
ZWdpc3RlckludGVudFNlcnZpY2UoV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2Vi
SW50ZW50U2VydmljZUluZm8mKTsKKyAgICB2b2lkIGRpc3BhdGNoSW50ZW50KFdlYktpdDo6V2Vi
RnJhbWUqIHNvdXJjZSwgY29uc3QgV2ViS2l0OjpXZWJJbnRlbnRSZXF1ZXN0Jik7CiAKIHByaXZh
dGU6CiAgICAgV2ViVGVzdEludGVyZmFjZXMqIG1fdGVzdEludGVyZmFjZXM7CkBAIC0yMDgsNiAr
MjEzLDE2IEBAIHB1YmxpYzoKICAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6ZGlkRW5kRWRpdGlu
ZygpOwogICAgICAgICBXZWJWaWV3Q2xpZW50SW1wbDo6ZGlkRW5kRWRpdGluZygpOwogICAgIH0K
KyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlKFdlYktpdDo6V2ViRnJhbWUq
IGZyYW1lLCBjb25zdCBXZWJLaXQ6OldlYkludGVudFNlcnZpY2VJbmZvJiBzZXJ2aWNlKQorICAg
IHsKKyAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6cmVnaXN0ZXJJbnRlbnRTZXJ2aWNlKGZyYW1l
LCBzZXJ2aWNlKTsKKyAgICAgICAgV2ViVmlld0NsaWVudEltcGw6OnJlZ2lzdGVySW50ZW50U2Vy
dmljZShmcmFtZSwgc2VydmljZSk7CisgICAgfQorICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaElu
dGVudChXZWJLaXQ6OldlYkZyYW1lKiBzb3VyY2UsIGNvbnN0IFdlYktpdDo6V2ViSW50ZW50UmVx
dWVzdCYgcmVxdWVzdCkKKyAgICB7CisgICAgICAgIFdlYlRlc3RQcm94eUJhc2U6OmRpc3BhdGNo
SW50ZW50KHNvdXJjZSwgcmVxdWVzdCk7CisgICAgICAgIFdlYlZpZXdDbGllbnRJbXBsOjpkaXNw
YXRjaEludGVudChzb3VyY2UsIHJlcXVlc3QpOworICAgIH0KIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIu
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1
bm5lci5jcHAKaW5kZXggZGJlYTljYjk4YjYzYTNkZTVlNjg4YjY3MjBiMWZkYmNlYjM0Y2NiNC4u
MGM5MGE3OTBhMzk2MDVhNWVjODRmOTRmMGM5YjMxY2E5NWI2MWIxYSAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1
bm5lci5jcHAKQEAgLTM5LDYgKzM5LDggQEAKICNpbmNsdWRlICJXZWJGaW5kT3B0aW9ucy5oIgog
I2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViSW5wdXRFbGVtZW50LmgiCisjaW5j
bHVkZSAiV2ViSW50ZW50LmgiCisjaW5jbHVkZSAiV2ViSW50ZW50UmVxdWVzdC5oIgogI2luY2x1
ZGUgIldlYlByZWZlcmVuY2VzLmgiCiAjaW5jbHVkZSAiV2ViU2NyaXB0U291cmNlLmgiCiAjaW5j
bHVkZSAiV2ViU2VjdXJpdHlQb2xpY3kuaCIKQEAgLTQ4LDYgKzUwLDcgQEAKICNpbmNsdWRlICJX
ZWJWaWV3LmgiCiAjaW5jbHVkZSAiV2ViV29ya2VySW5mby5oIgogI2luY2x1ZGUgInBsYXRmb3Jt
L1dlYlBvaW50LmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgiCiAjaW5jbHVkZSAidjgvaW5jbHVkZS92OC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCkBAIC02MCw5ICs2MywyNCBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1l
c3BhY2UgV2ViVGVzdFJ1bm5lciB7CiAKK25hbWVzcGFjZSB7CisKK2NsYXNzIEVtcHR5V2ViRGVs
aXZlcmVkSW50ZW50Q2xpZW50IDogcHVibGljIFdlYkRlbGl2ZXJlZEludGVudENsaWVudCB7Citw
dWJsaWM6CisgICAgRW1wdHlXZWJEZWxpdmVyZWRJbnRlbnRDbGllbnQoKSB7IH0KKyAgICB+RW1w
dHlXZWJEZWxpdmVyZWRJbnRlbnRDbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBwb3N0
UmVzdWx0KGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgZGF0YSkgY29uc3QgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIHBvc3RGYWlsdXJlKGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSYgZGF0YSkgY29uc3QgeyB9CisgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKSB7IH0KK307CisK
K30KKwogVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcigpCiAgICAgOiBtX2RlbGVnYXRlKDApCiAgICAg
LCBtX3dlYlZpZXcoMCkKKyAgICAsIG1faW50ZW50Q2xpZW50KGFkb3B0UHRyKG5ldyBFbXB0eVdl
YkRlbGl2ZXJlZEludGVudENsaWVudCkpCiB7CiAgICAgLy8gTWV0aG9kcyBpbXBsZW1lbnRlZCBp
biB0ZXJtcyBvZiBjaHJvbWl1bSdzIHB1YmxpYyBXZWJLaXQgQVBJLgogICAgIGJpbmRNZXRob2Qo
InNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyIsICZUZXN0UnVubmVyOjpzZXRUYWJLZXlD
eWNsZXNUaHJvdWdoRWxlbWVudHMpOwpAQCAtMTE3LDYgKzEzNSwxMCBAQCBUZXN0UnVubmVyOjpU
ZXN0UnVubmVyKCkKICAgICAvLyBUaGUgZm9sbG93aW5nIG1vZGlmeSB0aGUgc3RhdGUgb2YgdGhl
IFRlc3RSdW5uZXIuCiAgICAgYmluZE1ldGhvZCgiZHVtcEVkaXRpbmdDYWxsYmFja3MiLCAmVGVz
dFJ1bm5lcjo6ZHVtcEVkaXRpbmdDYWxsYmFja3MpOwogCisgICAgLy8gVGhlIGZvbGxvd2luZyBt
ZXRob2RzIGludGVyYWN0IHdpdGggdGhlIFdlYlRlc3RQcm94eS4KKyAgICBiaW5kTWV0aG9kKCJz
ZW5kV2ViSW50ZW50UmVzcG9uc2UiLCAmVGVzdFJ1bm5lcjo6c2VuZFdlYkludGVudFJlc3BvbnNl
KTsKKyAgICBiaW5kTWV0aG9kKCJkZWxpdmVyV2ViSW50ZW50IiwgJlRlc3RSdW5uZXI6OmRlbGl2
ZXJXZWJJbnRlbnQpOworCiAgICAgLy8gUHJvcGVydGllcy4KICAgICBiaW5kUHJvcGVydHkoIndv
cmtlclRocmVhZENvdW50IiwgJlRlc3RSdW5uZXI6OndvcmtlclRocmVhZENvdW50KTsKICAgICBi
aW5kUHJvcGVydHkoImdsb2JhbEZsYWciLCAmbV9nbG9iYWxGbGFnKTsKQEAgLTg1MSw2ICs4NzMs
NDggQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRUb3VjaERyYWdEcm9wRW5hYmxlZChjb25zdCBDcHBB
cmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmEKICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0K
IAordm9pZCBUZXN0UnVubmVyOjpzZW5kV2ViSW50ZW50UmVzcG9uc2UoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICB2ODo6SGFuZGxl
U2NvcGUgc2NvcGU7CisgICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBjdHggPSBtX3dlYlZpZXct
Pm1haW5GcmFtZSgpLT5tYWluV29ybGRTY3JpcHRDb250ZXh0KCk7CisgICAgcmVzdWx0LT5zZXQo
bV93ZWJWaWV3LT5tYWluRnJhbWUoKS0+c2VsZWN0aW9uQXNNYXJrdXAoKS51dGY4KCkpOworICAg
IHY4OjpDb250ZXh0OjpTY29wZSBjc2NvcGUoY3R4KTsKKworICAgIFdlYkludGVudFJlcXVlc3Qq
IHJlcXVlc3QgPSBtX2RlbGVnYXRlLT5jdXJyZW50V2ViSW50ZW50UmVxdWVzdCgpOworICAgIGlm
IChyZXF1ZXN0LT5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGFyZ3VtZW50
cy5zaXplKCkgPT0gMSkgeworICAgICAgICBXZWJDU3RyaW5nIHJlcGx5ID0gY3BwVmFyaWFudFRv
V2ViU3RyaW5nKGFyZ3VtZW50c1swXSkudXRmOCgpOworICAgICAgICB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gdjh2YWx1ZSA9IHY4OjpTdHJpbmc6Ok5ldyhyZXBseS5kYXRhKCksIHJlcGx5Lmxlbmd0
aCgpKTsKKyAgICAgICAgcmVxdWVzdC0+cG9zdFJlc3VsdChXZWJTZXJpYWxpemVkU2NyaXB0VmFs
dWU6OnNlcmlhbGl6ZSh2OHZhbHVlKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IHY4dmFsdWUgPSB2ODo6U3RyaW5nOjpOZXcoIkVSUk9SIik7CisgICAgICAg
IHJlcXVlc3QtPnBvc3RGYWlsdXJlKFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6c2VyaWFsaXpl
KHY4dmFsdWUpKTsKKyAgICB9CisgICAgcmVzdWx0LT5zZXROdWxsKCk7Cit9CisKK3ZvaWQgVGVz
dFJ1bm5lcjo6ZGVsaXZlcldlYkludGVudChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50
cywgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpIDwgIDMp
CisgICAgICAgIHJldHVybjsKKworICAgIHY4OjpIYW5kbGVTY29wZSBzY29wZTsKKyAgICB2ODo6
TG9jYWw8djg6OkNvbnRleHQ+IGN0eCA9IG1fd2ViVmlldy0+bWFpbkZyYW1lKCktPm1haW5Xb3Js
ZFNjcmlwdENvbnRleHQoKTsKKyAgICByZXN1bHQtPnNldChtX3dlYlZpZXctPm1haW5GcmFtZSgp
LT5zZWxlY3Rpb25Bc01hcmt1cCgpLnV0ZjgoKSk7CisgICAgdjg6OkNvbnRleHQ6OlNjb3BlIGNz
Y29wZShjdHgpOworCisgICAgV2ViU3RyaW5nIGFjdGlvbiA9IGNwcFZhcmlhbnRUb1dlYlN0cmlu
Zyhhcmd1bWVudHNbMF0pOworICAgIFdlYlN0cmluZyB0eXBlID0gY3BwVmFyaWFudFRvV2ViU3Ry
aW5nKGFyZ3VtZW50c1sxXSk7CisgICAgV2ViQ1N0cmluZyBkYXRhID0gY3BwVmFyaWFudFRvV2Vi
U3RyaW5nKGFyZ3VtZW50c1syXSkudXRmOCgpOworICAgIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSBzZXJpYWxpemVkRGF0YSA9IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6c2VyaWFsaXplKHY4
OjpTdHJpbmc6Ok5ldyhkYXRhLmRhdGEoKSwgZGF0YS5sZW5ndGgoKSkpOworCisgICAgV2ViSW50
ZW50IGludGVudCA9IFdlYkludGVudDo6Y3JlYXRlKGFjdGlvbiwgdHlwZSwgc2VyaWFsaXplZERh
dGEudG9TdHJpbmcoKSwgV2ViVmVjdG9yPFdlYlN0cmluZz4oKSwgV2ViVmVjdG9yPFdlYlN0cmlu
Zz4oKSk7CisKKyAgICBtX3dlYlZpZXctPm1haW5GcmFtZSgpLT5kZWxpdmVySW50ZW50KGludGVu
dCwgMCwgbV9pbnRlbnRDbGllbnQuZ2V0KCkpOworfQorCiB2b2lkIFRlc3RSdW5uZXI6OmR1bXBF
ZGl0aW5nQ2FsbGJhY2tzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3Vs
dCkKIHsKICAgICBtX2R1bXBFZGl0aW5nQ2FsbGJhY2tzID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIu
aAppbmRleCAzYzM1MGFmMGY5NzFjNjEzZDUzMmU3NTUzYWVkMmU1YWZiYTBiNjViLi43ZDhhMmVh
OGJhMDIwNGYyMjY1YTZlZGRlYTE3Y2QxNDZiNTZmNDhiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCkBA
IC0zMyw2ICszMyw3IEBACiAjZGVmaW5lIFRlc3RSdW5uZXJfaAogCiAjaW5jbHVkZSAiQ3BwQm91
bmRDbGFzcy5oIgorI2luY2x1ZGUgIldlYkRlbGl2ZXJlZEludGVudENsaWVudC5oIgogI2luY2x1
ZGUgIldlYlRlc3RSdW5uZXIuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJVUkwuaCIKIApAQCAt
MTg2LDYgKzE4NywxNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZHVtcEVkaXRpbmdDYWxsYmFja3Mo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCiAgICAgLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vCisgICAgLy8gTWV0aG9kcyBpbnRlcmFjdGluZyB3aXRoIHRoZSBXZWJUZXN0UHJveHkK
KworICAgIC8vIEV4cGVjdHMgb25lIHN0cmluZyBhcmd1bWVudCBmb3Igc2VuZGluZyBzdWNjZXNz
ZnVsIHJlc3VsdCwgemVybworICAgIC8vIGFyZ3VtZW50cyBmb3Igc2VuZGluZyBhIGZhaWx1cmUg
cmVzdWx0LgorICAgIHZvaWQgc2VuZFdlYkludGVudFJlc3BvbnNlKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYsIENwcFZhcmlhbnQqKTsKKworICAgIC8vIENhdXNlIHRoZSB3ZWIgaW50ZW50IHRvIGJl
IGRlbGl2ZXJlZCB0byB0aGlzIGNvbnRleHQuCisgICAgdm9pZCBkZWxpdmVyV2ViSW50ZW50KGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKworICAgIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwogICAgIC8vIFByb3BlcnRpZXMKICAgICB2b2lkIHdvcmtlclRocmVhZENvdW50KENwcFZh
cmlhbnQqKTsKIApAQCAtMjIzLDYgKzIzNCw5IEBAIHByaXZhdGU6CiAKICAgICBXZWJUZXN0RGVs
ZWdhdGUqIG1fZGVsZWdhdGU7CiAgICAgV2ViS2l0OjpXZWJWaWV3KiBtX3dlYlZpZXc7CisKKyAg
ICAvLyBNb2NrIG9iamVjdCBmb3IgdGVzdGluZyBkZWxpdmVyaW5nIHdlYiBpbnRlbnRzLgorICAg
IE93blB0cjxXZWJLaXQ6OldlYkRlbGl2ZXJlZEludGVudENsaWVudD4gbV9pbnRlbnRDbGllbnQ7
CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcAppbmRleCAwZTc5NDA2Y2E0OGY5YjAy
YmM4MWYzNGMyNDUwM2Q2NmEwOTNhMWRhLi4zMDJkZTA5NzJiNTRiYjJiZmUwYmE4NGUxNzdmMjhm
YzgwZmE4M2VhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAKQEAgLTM2LDYgKzM2LDkgQEAK
ICNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCiAjaW5jbHVkZSAiV2ViRWxlbWVu
dC5oIgogI2luY2x1ZGUgIldlYkV2ZW50U2VuZGVyLmgiCisjaW5jbHVkZSAiV2ViSW50ZW50Lmgi
CisjaW5jbHVkZSAiV2ViSW50ZW50UmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYkludGVudFNlcnZp
Y2VJbmZvLmgiCiAjaW5jbHVkZSAiV2ViTm9kZS5oIgogI2luY2x1ZGUgIldlYlJhbmdlLmgiCiAj
aW5jbHVkZSAiV2ViVGVzdERlbGVnYXRlLmgiCkBAIC0zOTIsNCArMzk1LDM1IEBAIHZvaWQgV2Vi
VGVzdFByb3h5QmFzZTo6ZGlkRW5kRWRpdGluZygpCiAgICAgICAgIG1fZGVsZWdhdGUtPnByaW50
TWVzc2FnZSgiRURJVElORyBERUxFR0FURTogd2ViVmlld0RpZEVuZEVkaXRpbmc6V2ViVmlld0Rp
ZEVuZEVkaXRpbmdOb3RpZmljYXRpb25cbiIpOwogfQogCit2b2lkIFdlYlRlc3RQcm94eUJhc2U6
OnJlZ2lzdGVySW50ZW50U2VydmljZShXZWJGcmFtZSosIGNvbnN0IFdlYkludGVudFNlcnZpY2VJ
bmZvJiBzZXJ2aWNlKQoreworICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZShzdHJpbmcoIlJl
Z2lzdGVyZWQgV2ViIEludGVudCBTZXJ2aWNlOiBhY3Rpb249IikgKyBzZXJ2aWNlLmFjdGlvbigp
LnV0ZjgoKS5kYXRhKCkgKyAiIHR5cGU9IiArIHNlcnZpY2UudHlwZSgpLnV0ZjgoKS5kYXRhKCkg
KyAiIHRpdGxlPSIgKyBzZXJ2aWNlLnRpdGxlKCkudXRmOCgpLmRhdGEoKSArICIgdXJsPSIgKyBz
ZXJ2aWNlLnVybCgpLnNwZWMoKS5kYXRhKCkgKyAiIGRpc3Bvc2l0aW9uPSIgKyBzZXJ2aWNlLmRp
c3Bvc2l0aW9uKCkudXRmOCgpLmRhdGEoKSArICJcbiIpOworfQorCit2b2lkIFdlYlRlc3RQcm94
eUJhc2U6OmRpc3BhdGNoSW50ZW50KFdlYkZyYW1lKiBzb3VyY2UsIGNvbnN0IFdlYkludGVudFJl
cXVlc3QmIHJlcXVlc3QpCit7CisgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKHN0cmluZygi
UmVjZWl2ZWQgV2ViIEludGVudDogYWN0aW9uPSIpICsgcmVxdWVzdC5pbnRlbnQoKS5hY3Rpb24o
KS51dGY4KCkuZGF0YSgpICsgIiB0eXBlPSIgKyByZXF1ZXN0LmludGVudCgpLnR5cGUoKS51dGY4
KCkuZGF0YSgpICsgIlxuIik7CisgICAgV2ViTWVzc2FnZVBvcnRDaGFubmVsQXJyYXkqIHBvcnRz
ID0gcmVxdWVzdC5pbnRlbnQoKS5tZXNzYWdlUG9ydENoYW5uZWxzUmVsZWFzZSgpOworICAgIG1f
ZGVsZWdhdGUtPnNldEN1cnJlbnRXZWJJbnRlbnRSZXF1ZXN0KHJlcXVlc3QpOworICAgIGlmIChw
b3J0cykgeworICAgICAgICBjaGFyIGRhdGFbMTAwXTsKKyAgICAgICAgc25wcmludGYoZGF0YSwg
c2l6ZW9mKGRhdGEpLCAiSGF2ZSAlZCBwb3J0c1xuIiwgc3RhdGljX2Nhc3Q8aW50Pihwb3J0cy0+
c2l6ZSgpKSk7CisgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZShkYXRhKTsKKyAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwb3J0cy0+c2l6ZSgpOyArK2kpCisgICAgICAgICAg
ICAoKnBvcnRzKVtpXS0+ZGVzdHJveSgpOworICAgICAgICBkZWxldGUgcG9ydHM7CisgICAgfQor
CisgICAgaWYgKCFyZXF1ZXN0LmludGVudCgpLnNlcnZpY2UoKS5pc0VtcHR5KCkpCisgICAgICAg
IG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZShzdHJpbmcoIkV4cGxpY2l0IGludGVudCBzZXJ2aWNl
OiAiKSArIHJlcXVlc3QuaW50ZW50KCkuc2VydmljZSgpLnNwZWMoKS5kYXRhKCkgKyAiXG4iKTsK
KworICAgIFdlYlZlY3RvcjxXZWJTdHJpbmc+IGV4dHJhcyA9IHJlcXVlc3QuaW50ZW50KCkuZXh0
cmFzTmFtZXMoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGV4dHJhcy5zaXplKCk7ICsr
aSkKKyAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKHN0cmluZygiRXh0cmFzWyIpICsg
ZXh0cmFzW2ldLnV0ZjgoKS5kYXRhKCkgKyAiXSA9ICIgKyByZXF1ZXN0LmludGVudCgpLmV4dHJh
c1ZhbHVlKGV4dHJhc1tpXSkudXRmOCgpLmRhdGEoKSArICJcbiIpOworCisgICAgV2ViVmVjdG9y
PFdlYlVSTD4gc3VnZ2VzdGlvbnMgPSByZXF1ZXN0LmludGVudCgpLnN1Z2dlc3Rpb25zKCk7Cisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzdWdnZXN0aW9ucy5zaXplKCk7ICsraSkKKyAgICAg
ICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKHN0cmluZygiSGF2ZSBzdWdnZXN0aW9uICIpICsg
c3VnZ2VzdGlvbnNbaV0uc3BlYygpLmRhdGEoKSArICJcbiIpOworfQorCiB9CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKaW5kZXggZGM4NzkxYzBlYjM5
NzI1NTIwY2FlMDJiMjE3OTVmYmY3NjNlYjliZC4uN2I0M2ZlZWJlZDc1Y2Q4ZWIyN2M5ZDYyNjEy
NWMyNmNhOTc5NDg5YyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViVmlld0hvc3QuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZp
ZXdIb3N0LmNwcApAQCAtNTAsOCArNTAsNiBAQAogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5j
bHVkZSAiV2ViR2VvbG9jYXRpb25DbGllbnRNb2NrLmgiCiAjaW5jbHVkZSAiV2ViSGlzdG9yeUl0
ZW0uaCIKLSNpbmNsdWRlICJXZWJJbnRlbnQuaCIKLSNpbmNsdWRlICJXZWJJbnRlbnRTZXJ2aWNl
SW5mby5oIgogI2luY2x1ZGUgIldlYktpdC5oIgogI2luY2x1ZGUgIldlYk5vZGUuaCIKICNpbmNs
dWRlICJXZWJQbHVnaW5QYXJhbXMuaCIKQEAgLTExODMsNTAgKzExODEsNiBAQCBib29sIFdlYlZp
ZXdIb3N0Ojp3aWxsQ2hlY2tBbmREaXNwYXRjaE1lc3NhZ2VFdmVudChXZWJGcmFtZSogc291cmNl
RnJhbWUsIFdlYkZyYQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBXZWJWaWV3SG9zdDo6
cmVnaXN0ZXJJbnRlbnRTZXJ2aWNlKFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6Oldl
YkludGVudFNlcnZpY2VJbmZvJiBzZXJ2aWNlKQotewotICAgIHByaW50ZigiUmVnaXN0ZXJlZCBX
ZWIgSW50ZW50IFNlcnZpY2U6IGFjdGlvbj0lcyB0eXBlPSVzIHRpdGxlPSVzIHVybD0lcyBkaXNw
b3NpdGlvbj0lc1xuIiwKLSAgICAgICAgICAgc2VydmljZS5hY3Rpb24oKS51dGY4KCkuZGF0YSgp
LCBzZXJ2aWNlLnR5cGUoKS51dGY4KCkuZGF0YSgpLCBzZXJ2aWNlLnRpdGxlKCkudXRmOCgpLmRh
dGEoKSwgc2VydmljZS51cmwoKS5zcGVjKCkuZGF0YSgpLCBzZXJ2aWNlLmRpc3Bvc2l0aW9uKCku
dXRmOCgpLmRhdGEoKSk7Ci19Ci0KLXZvaWQgV2ViVmlld0hvc3Q6OmRpc3BhdGNoSW50ZW50KFdl
YkZyYW1lKiBzb3VyY2UsIGNvbnN0IFdlYkludGVudFJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAg
cHJpbnRmKCJSZWNlaXZlZCBXZWIgSW50ZW50OiBhY3Rpb249JXMgdHlwZT0lc1xuIiwKLSAgICAg
ICAgICAgcmVxdWVzdC5pbnRlbnQoKS5hY3Rpb24oKS51dGY4KCkuZGF0YSgpLAotICAgICAgICAg
ICByZXF1ZXN0LmludGVudCgpLnR5cGUoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBXZWJNZXNzYWdl
UG9ydENoYW5uZWxBcnJheSogcG9ydHMgPSByZXF1ZXN0LmludGVudCgpLm1lc3NhZ2VQb3J0Q2hh
bm5lbHNSZWxlYXNlKCk7Ci0gICAgbV9jdXJyZW50UmVxdWVzdCA9IHJlcXVlc3Q7Ci0gICAgaWYg
KHBvcnRzKSB7Ci0gICAgICAgIHByaW50ZigiSGF2ZSAlZCBwb3J0c1xuIiwgc3RhdGljX2Nhc3Q8
aW50Pihwb3J0cy0+c2l6ZSgpKSk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcG9y
dHMtPnNpemUoKTsgKytpKQotICAgICAgICAgICAgKCpwb3J0cylbaV0tPmRlc3Ryb3koKTsKLSAg
ICAgICAgZGVsZXRlIHBvcnRzOwotICAgIH0KLQotICAgIGlmICghcmVxdWVzdC5pbnRlbnQoKS5z
ZXJ2aWNlKCkuaXNFbXB0eSgpKQotICAgICAgICBwcmludGYoIkV4cGxpY2l0IGludGVudCBzZXJ2
aWNlOiAlc1xuIiwgcmVxdWVzdC5pbnRlbnQoKS5zZXJ2aWNlKCkuc3BlYygpLmRhdGEoKSk7Ci0K
LSAgICBXZWJWZWN0b3I8V2ViU3RyaW5nPiBleHRyYXMgPSByZXF1ZXN0LmludGVudCgpLmV4dHJh
c05hbWVzKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBleHRyYXMuc2l6ZSgpOyArK2kp
IHsKLSAgICAgICAgcHJpbnRmKCJFeHRyYXNbJXNdID0gJXNcbiIsIGV4dHJhc1tpXS51dGY4KCku
ZGF0YSgpLAotICAgICAgICAgICAgICAgcmVxdWVzdC5pbnRlbnQoKS5leHRyYXNWYWx1ZShleHRy
YXNbaV0pLnV0ZjgoKS5kYXRhKCkpOwotICAgIH0KLQotICAgIFdlYlZlY3RvcjxXZWJVUkw+IHN1
Z2dlc3Rpb25zID0gcmVxdWVzdC5pbnRlbnQoKS5zdWdnZXN0aW9ucygpOwotICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgc3VnZ2VzdGlvbnMuc2l6ZSgpOyArK2kpCi0gICAgICAgIHByaW50Zigi
SGF2ZSBzdWdnZXN0aW9uICVzXG4iLCBzdWdnZXN0aW9uc1tpXS5zcGVjKCkuZGF0YSgpKTsKLX0K
LQotdm9pZCBXZWJWaWV3SG9zdDo6ZGVsaXZlcmVkSW50ZW50UmVzdWx0KFdlYkZyYW1lKiBmcmFt
ZSwgaW50IGlkLCBjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmIGRhdGEpCi17Ci0gICAg
cHJpbnRmKCJXZWIgaW50ZW50IHN1Y2Nlc3MgZm9yIGlkICVkXG4iLCBpZCk7Ci19Ci0KLXZvaWQg
V2ViVmlld0hvc3Q6OmRlbGl2ZXJlZEludGVudEZhaWx1cmUoV2ViRnJhbWUqIGZyYW1lLCBpbnQg
aWQsIGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgZGF0YSkKLXsKLSAgICBwcmludGYo
IldlYiBpbnRlbnQgZmFpbHVyZSBmb3IgaWQgJWRcbiIsIGlkKTsKLX0KLQogLy8gV2ViVGVzdERl
bGVnYXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogCiBXZWJDb250ZXh0TWVudURhdGEqIFdlYlZpZXdIb3N0OjpsYXN0Q29udGV4
dE1lbnVEYXRhKCkgY29uc3QKQEAgLTEzMTEsNiArMTI2NSwxNiBAQCB2b2lkIFdlYlZpZXdIb3N0
OjphcHBseVByZWZlcmVuY2VzKCkKICAgICBtX3NoZWxsLT5hcHBseVByZWZlcmVuY2VzKCk7CiB9
CiAKK3ZvaWQgV2ViVmlld0hvc3Q6OnNldEN1cnJlbnRXZWJJbnRlbnRSZXF1ZXN0KGNvbnN0IFdl
YkludGVudFJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgbV9jdXJyZW50UmVxdWVzdCA9IHJlcXVl
c3Q7Cit9CisKK1dlYkludGVudFJlcXVlc3QqIFdlYlZpZXdIb3N0OjpjdXJyZW50V2ViSW50ZW50
UmVxdWVzdCgpCit7CisgICAgcmV0dXJuICZtX2N1cnJlbnRSZXF1ZXN0OworfQorCiAvLyBQdWJs
aWMgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAKIFdlYlZpZXdIb3N0OjpXZWJWaWV3SG9zdChUZXN0U2hlbGwqIHNo
ZWxsKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hv
c3QuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKaW5kZXgg
YTRkNDhkMTRmNjFiYjFiNzc1YzRjMzdjMjAzZjMzZmFjMjMyYTYyMy4uNzY5MmU5OTE2ZjIwNDdm
MzI4NTQ5ODJiYzQ5ZTk4NTRmMzQwNjQ3YiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9XZWJWaWV3SG9zdC5oCkBAIC02Miw3ICs2Miw2IEBAIGNsYXNzIFdlYkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50TW9jazsKIGNsYXNzIFdlYkdlb2xvY2F0aW9uQ2xpZW50OwogY2xhc3MgV2Vi
R2VvbG9jYXRpb25DbGllbnRNb2NrOwogY2xhc3MgV2ViR2VvbG9jYXRpb25TZXJ2aWNlTW9jazsK
LWNsYXNzIFdlYkludGVudFNlcnZpY2VJbmZvOwogY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlwdFZh
bHVlOwogY2xhc3MgV2ViU2hhcmVkV29ya2VyQ2xpZW50OwogY2xhc3MgV2ViU3BlZWNoSW5wdXRD
b250cm9sbGVyOwpAQCAtMTQ3LDYgKzE0Niw4IEBAIGNsYXNzIFdlYlZpZXdIb3N0IDogcHVibGlj
IFdlYktpdDo6V2ViVmlld0NsaWVudCwgcHVibGljIFdlYktpdDo6V2ViRnJhbWVDbGllbnQsCiAg
ICAgdmlydHVhbCBXZWJLaXQ6OldlYlVSTCByZXdyaXRlTGF5b3V0VGVzdHNVUkwoY29uc3Qgc3Rk
OjpzdHJpbmcmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFdlYlRlc3RSdW5uZXI6OldlYlByZWZl
cmVuY2VzKiBwcmVmZXJlbmNlcygpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhcHBseVBy
ZWZlcmVuY2VzKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldEN1cnJlbnRXZWJJbnRl
bnRSZXF1ZXN0KGNvbnN0IFdlYktpdDo6V2ViSW50ZW50UmVxdWVzdCYpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgV2ViS2l0OjpXZWJJbnRlbnRSZXF1ZXN0KiBjdXJyZW50V2ViSW50ZW50UmVxdWVz
dCgpIE9WRVJSSURFOwogCiAgICAgLy8gTmF2aWdhdGlvbkhvc3QKICAgICB2aXJ0dWFsIGJvb2wg
bmF2aWdhdGUoY29uc3QgVGVzdE5hdmlnYXRpb25FbnRyeSYsIGJvb2wgcmVsb2FkKTsKQEAgLTI3
NSwxMCArMjc2LDYgQEAgY2xhc3MgV2ViVmlld0hvc3QgOiBwdWJsaWMgV2ViS2l0OjpXZWJWaWV3
Q2xpZW50LCBwdWJsaWMgV2ViS2l0OjpXZWJGcmFtZUNsaWVudCwKICAgICB2aXJ0dWFsIGJvb2wg
d2lsbENoZWNrQW5kRGlzcGF0Y2hNZXNzYWdlRXZlbnQoCiAgICAgICAgIFdlYktpdDo6V2ViRnJh
bWUqIHNvdXJjZUZyYW1lLCBXZWJLaXQ6OldlYkZyYW1lKiB0YXJnZXRGcmFtZSwgCiAgICAgICAg
IFdlYktpdDo6V2ViU2VjdXJpdHlPcmlnaW4gdGFyZ2V0LCBXZWJLaXQ6OldlYkRPTU1lc3NhZ2VF
dmVudCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVySW50ZW50U2VydmljZShXZWJLaXQ6Oldl
YkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJJbnRlbnRTZXJ2aWNlSW5mbyYpOwotICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaEludGVudChXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpX
ZWJJbnRlbnRSZXF1ZXN0Jik7Ci0gICAgdmlydHVhbCB2b2lkIGRlbGl2ZXJlZEludGVudFJlc3Vs
dChXZWJLaXQ6OldlYkZyYW1lKiwgaW50LCBjb25zdCBXZWJLaXQ6OldlYlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSYpOwotICAgIHZpcnR1YWwgdm9pZCBkZWxpdmVyZWRJbnRlbnRGYWlsdXJlKFdlYktp
dDo6V2ViRnJhbWUqLCBpbnQsIGNvbnN0IFdlYktpdDo6V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVl
Jik7CiAKICAgICBXZWJLaXQ6OldlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50TW9jayogZGV2aWNl
T3JpZW50YXRpb25DbGllbnRNb2NrKCk7CiAgICAgCkBAIC0yOTIsOSArMjg5LDYgQEAgY2xhc3Mg
V2ViVmlld0hvc3QgOiBwdWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2xpZW50LCBwdWJsaWMgV2ViS2l0
OjpXZWJGcmFtZUNsaWVudCwKICAgICAvLyBQZW5kaW5nIHRhc2sgbGlzdCwgTm90ZSB0YWh0IHRo
ZSBtZXRob2QgaXMgcmVmZXJyZWQgZnJvbSBXZWJNZXRob2RUYXNrIGNsYXNzLgogICAgIFdlYlRl
c3RSdW5uZXI6OldlYlRhc2tMaXN0KiB0YXNrTGlzdCgpIHsgcmV0dXJuICZtX3Rhc2tMaXN0OyB9
CiAKLSAgICAvLyBUaGUgY3VycmVudCB3ZWIgaW50ZW50cyByZXF1ZXN0LgotICAgIFdlYktpdDo6
V2ViSW50ZW50UmVxdWVzdCogY3VycmVudEludGVudFJlcXVlc3QoKSB7IHJldHVybiAmbV9jdXJy
ZW50UmVxdWVzdDsgfQotCiBwcml2YXRlOgogCiAgICAgY2xhc3MgSG9zdE1ldGhvZFRhc2sgOiBw
dWJsaWMgV2ViVGVzdFJ1bm5lcjo6V2ViTWV0aG9kVGFzazxXZWJWaWV3SG9zdD4gewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>