<?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>213206</bug_id>
          
          <creation_ts>2020-06-15 12:39:20 -0700</creation_ts>
          <short_desc>Provide alternatively-named SPI for user style sheets and scripts</short_desc>
          <delta_ts>2020-06-15 14:18:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>213092</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>beidson</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1662765</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-06-15 12:39:20 -0700</bug_when>
    <thetext>Provide alternatively-named SPI for user style sheets and scripts</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662766</commentid>
    <comment_count>1</comment_count>
      <attachid>401924</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-06-15 12:44:13 -0700</bug_when>
    <thetext>Created attachment 401924
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662785</commentid>
    <comment_count>2</comment_count>
      <attachid>401928</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-06-15 13:17:36 -0700</bug_when>
    <thetext>Created attachment 401928
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662811</commentid>
    <comment_count>3</comment_count>
      <attachid>401928</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-06-15 14:07:27 -0700</bug_when>
    <thetext>Comment on attachment 401928
Patch

Rubber-stamped</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662817</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-15 14:17:06 -0700</bug_when>
    <thetext>Committed r263060: &lt;https://trac.webkit.org/changeset/263060&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 401928.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662818</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-15 14:18:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/64378809&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401924</attachid>
            <date>2020-06-15 12:44:13 -0700</date>
            <delta_ts>2020-06-15 13:17:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213206-20200615124412.patch</filename>
            <type>text/plain</type>
            <size>73364</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjMwNDIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDIwLTA2LTE1ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvdmlkZSBhbHRl
cm5hdGl2ZWx5LW5hbWVkIFNQSSBmb3IgdXNlciBzdHlsZSBzaGVldHMgYW5kIHNjcmlwdHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzIwNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Qtb25seSBT
UEkgd2FzIGp1c3QgcmVuYW1lZC4KKyAgICAgICAgU1BJIHVzZWQgYnkgb3RoZXIgcHJvamVjdHMg
d2FzIGRlcHJlY2F0ZWQgd2l0aCBhIHJlcGxhY2VtZW50IHNvIHdlIGNhbiByZW1vdmUgdGhlIG9s
ZCBuYW1lcyBzb29uLgorCisgICAgICAgIF9XS1VzZXJDb250ZW50V29ybGQvV0tDb250ZW50V29y
bGQgd2FzIHRpZWQgdXAgaW4gdGhpcywgYW5kIHJhdGhlciB0aGFuIHByb3ZpZGUgcmVwbGFjZW1l
bnQgU1BJIHdpdGggZGVwcmVjYXRlZCBfV0tVc2VyQ29udGVudFdvcmxkLAorICAgICAgICB0aGlz
IHdpbGwgbW92ZSBzb21lIFNQSSBmcm9tIF9XS1VzZXJDb250ZW50V29ybGQgdG8gV0tDb250ZW50
V29ybGQgdG9vLiAgVGhlIG1vc3QgaGVhdnkgdXNlciBvZiBfV0tVc2VyQ29udGVudFdvcmxkIGlz
IFRlc3RXZWJLaXRBUEkgYW5kIHdlJ2xsIHJlbW92ZSBpdCBzb29uLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRTZXRGb250QWxs
b3dMaXN0KToKKyAgICAgICAgKFdLQ29udGV4dFNldEZvbnRXaGl0ZWxpc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5tbToKKyAgICAgICAg
KC1bV0tVc2VyQ29udGVudENvbnRyb2xsZXIgX3JlbW92ZUFsbFVzZXJTY3JpcHRzQXNzb2NpYXRl
ZFdpdGhDb250ZW50V29ybGQ6XSk6CisgICAgICAgICgtW1dLVXNlckNvbnRlbnRDb250cm9sbGVy
IF9yZW1vdmVBbGxVc2VyU3R5bGVTaGVldHNBc3NvY2lhdGVkV2l0aENvbnRlbnRXb3JsZDpdKToK
KyAgICAgICAgKC1bV0tVc2VyQ29udGVudENvbnRyb2xsZXIgX2FkZFNjcmlwdE1lc3NhZ2VIYW5k
bGVyOm5hbWU6Y29udGVudFdvcmxkOl0pOgorICAgICAgICAoLVtXS1VzZXJDb250ZW50Q29udHJv
bGxlciBfcmVtb3ZlQWxsVXNlclNjcmlwdHNBc3NvY2lhdGVkV2l0aFVzZXJDb250ZW50V29ybGQ6
XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVXNlckNvbnRlbnRDb250cm9sbGVyIF9yZW1vdmVB
bGxVc2VyU3R5bGVTaGVldHNBc3NvY2lhdGVkV2l0aFVzZXJDb250ZW50V29ybGQ6XSk6IERlbGV0
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxl
clByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdC5t
bToKKyAgICAgICAgKC1bV0tVc2VyU2NyaXB0IF9pbml0V2l0aFNvdXJjZTppbmplY3Rpb25UaW1l
OmZvck1haW5GcmFtZU9ubHk6aW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6ZXhjbHVkZU1hdGNo
UGF0dGVyblN0cmluZ3M6YXNzb2NpYXRlZFVSTDpjb250ZW50V29ybGQ6ZGVmZXJSdW5uaW5nVW50
aWxOb3RpZmljYXRpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJT
Y3JpcHRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyU3R5
bGVTaGVldC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlclN0eWxlU2hl
ZXQubW06CisgICAgICAgICgtW19XS1VzZXJTdHlsZVNoZWV0IGluaXRXaXRoU291cmNlOmZvcldL
V2ViVmlldzpmb3JNYWluRnJhbWVPbmx5OmluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOmV4Y2x1
ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOmJhc2VVUkw6bGV2ZWw6Y29udGVudFdvcmxkOl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjpzZXRGb250QWxsb3dMaXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Bvb2w6OnNldEZvbnRXaGl0ZWxpc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oOgorCiAyMDIwLTA2LTE1ICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6
IExlYWwgIDx2amFxdWV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgU3VwcHJlc3MgY29tcGlsZXIg
d2FybmluZ3MKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAJKHJldmlzaW9uIDI2MzA0MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA3NCw3ICsyMDc0LDcgQEAgdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6c2V0TWVtb3J5Q2FjaGVEaXNhYgogICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhN
ZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0TWVtb3J5Q2FjaGVEaXNhYmxlZChkaXNhYmxlZCkpOwog
fQogCi12b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRGb250V2hpdGVsaXN0KEFQSTo6QXJyYXkqIGFy
cmF5KQordm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0Rm9udEFsbG93TGlzdChBUEk6OkFycmF5KiBh
cnJheSkKIHsKICAgICBtX2ZvbnRXaGl0ZWxpc3QuY2xlYXIoKTsKICAgICBpZiAoYXJyYXkpIHsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkocmV2aXNpb24g
MjYzMDQyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkod29y
a2luZyBjb3B5KQpAQCAtNDQwLDcgKzQ0MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUhp
ZGRlblBhZ2VUaHJvdHRsaW5nQXV0b0luY3JlYXNlTGltaXQoKTsKIAogICAgIHZvaWQgc2V0TWVt
b3J5Q2FjaGVEaXNhYmxlZChib29sKTsKLSAgICB2b2lkIHNldEZvbnRXaGl0ZWxpc3QoQVBJOjpB
cnJheSopOworICAgIHZvaWQgc2V0Rm9udEFsbG93TGlzdChBUEk6OkFycmF5Kik7CiAKICAgICBV
c2VyT2JzZXJ2YWJsZVBhZ2VDb3VudGVyOjpUb2tlbiB1c2VyT2JzZXJ2YWJsZVBhZ2VDb3VudCgp
CiAgICAgewpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQu
Y3BwCShyZXZpc2lvbiAyNjMwNDIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MDEsOSArNjAxLDkgQEAgdm9pZCBXS0Nv
bnRleHRTZXRNZW1vcnlDYWNoZURpc2FibGVkKFdLQwogICAgIFdlYktpdDo6dG9JbXBsKGNvbnRl
eHRSZWYpLT5zZXRNZW1vcnlDYWNoZURpc2FibGVkKGRpc2FibGVkKTsKIH0KIAotdm9pZCBXS0Nv
bnRleHRTZXRGb250V2hpdGVsaXN0KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS0FycmF5UmVm
IGFycmF5UmVmKQordm9pZCBXS0NvbnRleHRTZXRGb250QWxsb3dMaXN0KFdLQ29udGV4dFJlZiBj
b250ZXh0UmVmLCBXS0FycmF5UmVmIGFycmF5UmVmKQogewotICAgIFdlYktpdDo6dG9JbXBsKGNv
bnRleHRSZWYpLT5zZXRGb250V2hpdGVsaXN0KFdlYktpdDo6dG9JbXBsKGFycmF5UmVmKSk7Cisg
ICAgV2ViS2l0Ojp0b0ltcGwoY29udGV4dFJlZiktPnNldEZvbnRBbGxvd0xpc3QoV2ViS2l0Ojp0
b0ltcGwoYXJyYXlSZWYpKTsKIH0KIAogdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVOZXR3b3JrUHJv
Y2VzcyhXS0NvbnRleHRSZWYgY29udGV4dCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgJKHJldmlzaW9uIDI2MzA0MikKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAkod29ya2luZyBj
b3B5KQpAQCAtMTAwLDcgKzEwMCw3IEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldEludmFs
aWRNZXNzYWcKICAgICAKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldE1lbW9yeUNhY2hlRGlz
YWJsZWQoV0tDb250ZXh0UmVmLCBib29sIGRpc2FibGVkKTsKIAotV0tfRVhQT1JUIHZvaWQgV0tD
b250ZXh0U2V0Rm9udFdoaXRlbGlzdChXS0NvbnRleHRSZWYsIFdLQXJyYXlSZWYpOworV0tfRVhQ
T1JUIHZvaWQgV0tDb250ZXh0U2V0Rm9udEFsbG93TGlzdChXS0NvbnRleHRSZWYsIFdLQXJyYXlS
ZWYpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRQcmVjb25uZWN0VG9TZXJ2ZXIoV0tDb250
ZXh0UmVmIGNvbnRleHQsIFdLVVJMUmVmIHNlcnZlclVSTCkgV0tfQ19BUElfREVQUkVDQVRFRDsK
IApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRD
b250cm9sbGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5tbQkocmV2aXNpb24gMjYzMDQyKQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0yNTIsMTIgKzI1MiwxMCBAQCAtICh2b2lkKV9yZW1vdmVVc2Vy
U2NyaXB0OihXS1VzZXJTY3JpcHQgCiAgICAgX3VzZXJDb250ZW50Q29udHJvbGxlclByb3h5LT5y
ZW1vdmVVc2VyU2NyaXB0KCp1c2VyU2NyaXB0LT5fdXNlclNjcmlwdCk7CiB9CiAKLUFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCi0tICh2b2lkKV9yZW1vdmVBbGxVc2VyU2NyaXB0
c0Fzc29jaWF0ZWRXaXRoVXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVz
ZXJDb250ZW50V29ybGQKKy0gKHZvaWQpX3JlbW92ZUFsbFVzZXJTY3JpcHRzQXNzb2NpYXRlZFdp
dGhDb250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxkCiB7Ci0gICAgX3Vz
ZXJDb250ZW50Q29udHJvbGxlclByb3h5LT5yZW1vdmVBbGxVc2VyU2NyaXB0cygqdXNlckNvbnRl
bnRXb3JsZC0+X2NvbnRlbnRXb3JsZC0+X2NvbnRlbnRXb3JsZCk7CisgICAgX3VzZXJDb250ZW50
Q29udHJvbGxlclByb3h5LT5yZW1vdmVBbGxVc2VyU2NyaXB0cygqY29udGVudFdvcmxkLT5fY29u
dGVudFdvcmxkKTsKIH0KLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAtICh2
b2lkKV9hZGRVc2VyU2NyaXB0SW1tZWRpYXRlbHk6KFdLVXNlclNjcmlwdCAqKXVzZXJTY3JpcHQK
IHsKQEAgLTMwNSwxMiArMzAzLDEyIEBAIC0gKHZvaWQpX3JlbW92ZUFsbFVzZXJTdHlsZVNoZWV0
cwogICAgIF91c2VyQ29udGVudENvbnRyb2xsZXJQcm94eS0+cmVtb3ZlQWxsVXNlclN0eWxlU2hl
ZXRzKCk7CiB9CiAKLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCi0tICh2b2lk
KV9yZW1vdmVBbGxVc2VyU3R5bGVTaGVldHNBc3NvY2lhdGVkV2l0aFVzZXJDb250ZW50V29ybGQ6
KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkCistICh2b2lkKV9yZW1vdmVB
bGxVc2VyU3R5bGVTaGVldHNBc3NvY2lhdGVkV2l0aENvbnRlbnRXb3JsZDooV0tDb250ZW50V29y
bGQgKiljb250ZW50V29ybGQKIHsKLSAgICBfdXNlckNvbnRlbnRDb250cm9sbGVyUHJveHktPnJl
bW92ZUFsbFVzZXJTdHlsZVNoZWV0cygqdXNlckNvbnRlbnRXb3JsZC0+X2NvbnRlbnRXb3JsZC0+
X2NvbnRlbnRXb3JsZCk7CisgICAgX3VzZXJDb250ZW50Q29udHJvbGxlclByb3h5LT5yZW1vdmVB
bGxVc2VyU3R5bGVTaGVldHMoKmNvbnRlbnRXb3JsZC0+X2NvbnRlbnRXb3JsZCk7CiB9CiAKK0FM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAtICh2b2lkKV9hZGRTY3JpcHRNZXNz
YWdlSGFuZGxlcjooaWQgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+KXNjcmlwdE1lc3NhZ2VIYW5k
bGVyIG5hbWU6KE5TU3RyaW5nICopbmFtZSB1c2VyQ29udGVudFdvcmxkOihfV0tVc2VyQ29udGVu
dFdvcmxkICopdXNlckNvbnRlbnRXb3JsZAogewogICAgIGF1dG8gaGFuZGxlciA9IFdlYktpdDo6
V2ViU2NyaXB0TWVzc2FnZUhhbmRsZXI6OmNyZWF0ZShtYWtlVW5pcXVlPFNjcmlwdE1lc3NhZ2VI
YW5kbGVyRGVsZWdhdGU+KHNlbGYsIHNjcmlwdE1lc3NhZ2VIYW5kbGVyLCBuYW1lKSwgbmFtZSwg
KnVzZXJDb250ZW50V29ybGQtPl9jb250ZW50V29ybGQtPl9jb250ZW50V29ybGQpOwpAQCAtMzE4
LDYgKzMxNiwxMSBAQCAtICh2b2lkKV9hZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjooaWQgPFdLCiAg
ICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3Jt
YXQ6QCJBdHRlbXB0IHRvIGFkZCBzY3JpcHQgbWVzc2FnZSBoYW5kbGVyIHdpdGggbmFtZSAnJUAn
IHdoZW4gb25lIGFscmVhZHkgZXhpc3RzLiIsIG5hbWVdOwogfQogCistICh2b2lkKV9hZGRTY3Jp
cHRNZXNzYWdlSGFuZGxlcjooaWQgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+KXNjcmlwdE1lc3Nh
Z2VIYW5kbGVyIG5hbWU6KE5TU3RyaW5nICopbmFtZSBjb250ZW50V29ybGQ6KFdLQ29udGVudFdv
cmxkICopY29udGVudFdvcmxkCit7CisgICAgW3NlbGYgX2FkZFNjcmlwdE1lc3NhZ2VIYW5kbGVy
OnNjcmlwdE1lc3NhZ2VIYW5kbGVyIG5hbWU6bmFtZSB1c2VyQ29udGVudFdvcmxkOmNvbnRlbnRX
b3JsZC5fdXNlckNvbnRlbnRXb3JsZF07Cit9CisKIC0gKHZvaWQpX3JlbW92ZVNjcmlwdE1lc3Nh
Z2VIYW5kbGVyRm9yTmFtZTooTlNTdHJpbmcgKiluYW1lIHVzZXJDb250ZW50V29ybGQ6KF9XS1Vz
ZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkCiB7CiAgICAgX3VzZXJDb250ZW50Q29u
dHJvbGxlclByb3h5LT5yZW1vdmVVc2VyTWVzc2FnZUhhbmRsZXJGb3JOYW1lKG5hbWUsICp1c2Vy
Q29udGVudFdvcmxkLT5fY29udGVudFdvcmxkLT5fY29udGVudFdvcmxkKTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZh
dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
c2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmgJKHJldmlzaW9uIDI2MzA0MikKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZh
dGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogQGludGVyZmFjZSBXS1VzZXJD
b250ZW50Q29udHJvbGxlciAoV0tQcml2YXRlKQogCiAtICh2b2lkKV9yZW1vdmVVc2VyU2NyaXB0
OihXS1VzZXJTY3JpcHQgKil1c2VyU2NyaXB0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIp
LCBpb3MoMTAuMCkpOwotLSAodm9pZClfcmVtb3ZlQWxsVXNlclNjcmlwdHNBc3NvY2lhdGVkV2l0
aFVzZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworLSAodm9pZClfcmVt
b3ZlQWxsVXNlclNjcmlwdHNBc3NvY2lhdGVkV2l0aENvbnRlbnRXb3JsZDooV0tDb250ZW50V29y
bGQgKiljb250ZW50V29ybGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKIAogLSAodm9pZClfYWRkVXNlclNjcmlwdEltbWVkaWF0ZWx5OihXS1Vz
ZXJTY3JpcHQgKil1c2VyU2NyaXB0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3Mo
MTIuMCkpOwogCkBAIC00Niw5ICs0NiwxMCBAQAogLSAodm9pZClfYWRkVXNlclN0eWxlU2hlZXQ6
KF9XS1VzZXJTdHlsZVNoZWV0ICopdXNlclN0eWxlU2hlZXQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMiksIGlvcygxMC4wKSk7CiAtICh2b2lkKV9yZW1vdmVVc2VyU3R5bGVTaGVldDooX1dL
VXNlclN0eWxlU2hlZXQgKil1c2VyU3R5bGVTaGVldCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEyKSwgaW9zKDEwLjApKTsKIC0gKHZvaWQpX3JlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKLS0gKHZvaWQpX3JlbW92ZUFs
bFVzZXJTdHlsZVNoZWV0c0Fzc29jaWF0ZWRXaXRoVXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNv
bnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MiksIGlvcygxMC4wKSk7CistICh2b2lkKV9yZW1vdmVBbGxVc2VyU3R5bGVTaGVldHNBc3NvY2lh
dGVkV2l0aENvbnRlbnRXb3JsZDooV0tDb250ZW50V29ybGQgKiljb250ZW50V29ybGQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAotLSAodm9p
ZClfYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6KGlkIDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPilz
Y3JpcHRNZXNzYWdlSGFuZGxlciBuYW1lOihOU1N0cmluZyAqKW5hbWUgdXNlckNvbnRlbnRXb3Js
ZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQ7CistICh2b2lkKV9hZGRT
Y3JpcHRNZXNzYWdlSGFuZGxlcjooaWQgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+KXNjcmlwdE1l
c3NhZ2VIYW5kbGVyIG5hbWU6KE5TU3RyaW5nICopbmFtZSB1c2VyQ29udGVudFdvcmxkOihfV0tV
c2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZCBXS19BUElfREVQUkVDQVRFRF9XSVRI
X1JFUExBQ0VNRU5UKCJfYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bmFtZTpjb250ZW50V29ybGQ6
IiwgbWFjb3MoMTAuMTEsIFdLX01BQ19UQkEpLCBpb3MoOS4wLCBXS19JT1NfVEJBKSk7CistICh2
b2lkKV9hZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjooaWQgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+
KXNjcmlwdE1lc3NhZ2VIYW5kbGVyIG5hbWU6KE5TU3RyaW5nICopbmFtZSBjb250ZW50V29ybGQ6
KFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxkOwogLSAodm9pZClfcmVtb3ZlU2NyaXB0TWVz
c2FnZUhhbmRsZXJGb3JOYW1lOihOU1N0cmluZyAqKW5hbWUgdXNlckNvbnRlbnRXb3JsZDooX1dL
VXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQ7CiAtICh2b2lkKV9yZW1vdmVBbGxT
Y3JpcHRNZXNzYWdlSGFuZGxlcnNBc3NvY2lhdGVkV2l0aFVzZXJDb250ZW50V29ybGQ6KF9XS1Vz
ZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0Lm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQubW0JKHJldmlzaW9uIDI2
MzA0MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTE0MSw3ICsxNDEsNyBAQCAtIChpbnN0YW5jZXR5cGUpX2lu
aXRXaXRoU291cmNlOihOU1N0cmluCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAg
ICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVy
PEFQSTo6VXNlclNjcmlwdD4oc2VsZiwgV2ViQ29yZTo6VXNlclNjcmlwdCB7IHNvdXJjZSwgYXNz
b2NpYXRlZFVSTCwgbWFrZVZlY3RvcjxTdHJpbmc+KGluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdz
KSwgbWFrZVZlY3RvcjxTdHJpbmc+KGV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzKSwgQVBJOjp0
b1dlYkNvcmVVc2VyU2NyaXB0SW5qZWN0aW9uVGltZShpbmplY3Rpb25UaW1lKSwgZm9yTWFpbkZy
YW1lT25seSA/IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluVG9w
RnJhbWVPbmx5IDogV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5B
bGxGcmFtZXMsIGRlZmVyUnVubmluZ1VudGlsTm90aWZpY2F0aW9uID8gV2ViQ29yZTo6V2FpdEZv
ck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGluZzo6WWVzIDogV2ViQ29yZTo6V2FpdEZvck5vdGlm
aWNhdGlvbkJlZm9yZUluamVjdGluZzo6Tm8gfSwgKmNvbnRlbnRXb3JsZC0+X2NvbnRlbnRXb3Js
ZCk7CisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OlVzZXJTY3JpcHQ+
KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQgeyBzb3VyY2UsIGFzc29jaWF0ZWRVUkwsIG1ha2VW
ZWN0b3I8U3RyaW5nPihpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyksIG1ha2VWZWN0b3I8U3Ry
aW5nPihleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyksIEFQSTo6dG9XZWJDb3JlVXNlclNjcmlw
dEluamVjdGlvblRpbWUoaW5qZWN0aW9uVGltZSksIGZvck1haW5GcmFtZU9ubHkgPyBXZWJDb3Jl
OjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25seSA6IFdlYkNv
cmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzLCBkZWZlclJ1
bm5pbmdVbnRpbE5vdGlmaWNhdGlvbiA/IFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZv
cmVJbmplY3Rpbmc6OlllcyA6IFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmpl
Y3Rpbmc6Ok5vIH0sIGNvbnRlbnRXb3JsZCA/ICpjb250ZW50V29ybGQtPl9jb250ZW50V29ybGQg
OiBBUEk6OkNvbnRlbnRXb3JsZDo6cGFnZUNvbnRlbnRXb3JsZCgpKTsKIAogICAgIHJldHVybiBz
ZWxmOwogfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNj
cmlwdFByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVc2VyU2NyaXB0UHJpdmF0ZS5oCShyZXZpc2lvbiAyNjMwNDIpCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0UHJpdmF0ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIC0gKGlu
c3RhbmNldHlwZSlfaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGluamVjdGlvblRp
bWU6KFdLVXNlclNjcmlwdEluamVjdGlvblRpbWUpaW5qZWN0aW9uVGltZSBmb3JNYWluRnJhbWVP
bmx5OihCT09MKWZvck1haW5GcmFtZU9ubHkgbGVnYWN5V2hpdGVsaXN0OihOU0FycmF5PE5TU3Ry
aW5nICo+ICopbGVnYWN5V2hpdGVsaXN0IGxlZ2FjeUJsYWNrbGlzdDooTlNBcnJheTxOU1N0cmlu
ZyAqPiAqKWxlZ2FjeUJsYWNrbGlzdCBhc3NvY2lhdGVkVVJMOihOU1VSTCAqKWFzc29jaWF0ZWRV
UkwgY29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZCBkZWZlclJ1bm5p
bmdVbnRpbE5vdGlmaWNhdGlvbjooQk9PTClkZWZlclJ1bm5pbmdVbnRpbE5vdGlmaWNhdGlvbiBX
S19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfaW5pdFdpdGhTb3VyY2U6aW5qZWN0
aW9uVGltZTpmb3JNYWluRnJhbWVPbmx5OmluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOmV4Y2x1
ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOmFzc29jaWF0ZWRVUkw6Y29udGVudFdvcmxkOmRlZmVyUnVu
bmluZ1VudGlsTm90aWZpY2F0aW9uOiIsIG1hY29zKFdLX01BQ19UQkEsIFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSwgV0tfSU9TX1RCQSkpOwogCi0tIChpbnN0YW5jZXR5cGUpX2luaXRXaXRo
U291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBpbmplY3Rpb25UaW1lOihXS1VzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lKWluamVjdGlvblRpbWUgZm9yTWFpbkZyYW1lT25seTooQk9PTClmb3JNYWluRnJh
bWVPbmx5IGluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOihOU0FycmF5PE5TU3RyaW5nICo+ICop
aW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3MgZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6KE5T
QXJyYXk8TlNTdHJpbmcgKj4gKilleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyBhc3NvY2lhdGVk
VVJMOihOU1VSTCAqKWFzc29jaWF0ZWRVUkwgY29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAq
KWNvbnRlbnRXb3JsZCBkZWZlclJ1bm5pbmdVbnRpbE5vdGlmaWNhdGlvbjooQk9PTClkZWZlclJ1
bm5pbmdVbnRpbE5vdGlmaWNhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFNvdXJjZTooTlNT
dHJpbmcgKilzb3VyY2UgaW5qZWN0aW9uVGltZTooV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSlp
bmplY3Rpb25UaW1lIGZvck1haW5GcmFtZU9ubHk6KEJPT0wpZm9yTWFpbkZyYW1lT25seSBpbmNs
dWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczoobnVsbGFibGUgTlNBcnJheTxOU1N0cmluZyAqPiAqKWlu
Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzIGV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOihudWxs
YWJsZSBOU0FycmF5PE5TU3RyaW5nICo+ICopZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3MgYXNz
b2NpYXRlZFVSTDoobnVsbGFibGUgTlNVUkwgKilhc3NvY2lhdGVkVVJMIGNvbnRlbnRXb3JsZDoo
bnVsbGFibGUgV0tDb250ZW50V29ybGQgKiljb250ZW50V29ybGQgZGVmZXJSdW5uaW5nVW50aWxO
b3RpZmljYXRpb246KEJPT0wpZGVmZXJSdW5uaW5nVW50aWxOb3RpZmljYXRpb24gV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tVc2VyQ29udGVudFdvcmxkICpfdXNlckNvbnRlbnRX
b3JsZCBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfY29udGVudFdvcmxkIiwg
bWFjb3MoMTAuMTIsIFdLX01BQ19UQkEpLCBpb3MoMTAuMCwgV0tfSU9TX1RCQSkpOwogQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS0NvbnRlbnRXb3JsZCAqX2NvbnRlbnRXb3JsZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwpJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJTdHlsZVNoZWV0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJT
dHlsZVNoZWV0LmgJKHJldmlzaW9uIDI2MzA0MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tVc2VyU3R5bGVTaGVldC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCwxMyAr
NDgsMTYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLgogLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoU291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBmb3JNYWluRnJhbWVP
bmx5OihCT09MKWZvck1haW5GcmFtZU9ubHk7CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNl
IGZvcldLV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBmb3JNYWluRnJhbWVPbmx5OihCT09M
KWZvck1haW5GcmFtZU9ubHkgbGV2ZWw6KF9XS1VzZXJTdHlsZUxldmVsKWxldmVsIHVzZXJDb250
ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGZvcldLV2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBmb3JNYWluRnJhbWVPbmx5OihCT09MKWZvck1haW5GcmFtZU9ubHkg
YmFzZVVSTDooTlNVUkwgKiliYXNlVVJMIGxldmVsOihfV0tVc2VyU3R5bGVMZXZlbClsZXZlbCB1
c2VyQ29udGVudFdvcmxkOihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAo
aW5zdGFuY2V0eXBlKWluaXRXaXRoU291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBmb3JNYWluRnJh
bWVPbmx5OihCT09MKWZvck1haW5GcmFtZU9ubHkgbGVnYWN5V2hpdGVsaXN0OihOU0FycmF5PE5T
U3RyaW5nICo+ICopbGVnYWN5V2hpdGVsaXN0IGxlZ2FjeUJsYWNrbGlzdDooTlNBcnJheTxOU1N0
cmluZyAqPiAqKWxlZ2FjeUJsYWNrbGlzdCB1c2VyQ29udGVudFdvcmxkOihfV0tVc2VyQ29udGVu
dFdvcmxkICopdXNlckNvbnRlbnRXb3JsZDsKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFNvdXJj
ZTooTlNTdHJpbmcgKilzb3VyY2UgZm9yTWFpbkZyYW1lT25seTooQk9PTClmb3JNYWluRnJhbWVP
bmx5IGxlZ2FjeVdoaXRlbGlzdDooTlNBcnJheTxOU1N0cmluZyAqPiAqKWxlZ2FjeVdoaXRlbGlz
dCBsZWdhY3lCbGFja2xpc3Q6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilsZWdhY3lCbGFja2xpc3Qg
YmFzZVVSTDooTlNVUkwgKiliYXNlVVJMIHVzZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50
V29ybGQgKil1c2VyQ29udGVudFdvcmxkOwotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoU291cmNl
OihOU1N0cmluZyAqKXNvdXJjZSBmb3JNYWluRnJhbWVPbmx5OihCT09MKWZvck1haW5GcmFtZU9u
bHkgbGVnYWN5V2hpdGVsaXN0OihOU0FycmF5PE5TU3RyaW5nICo+ICopbGVnYWN5V2hpdGVsaXN0
IGxlZ2FjeUJsYWNrbGlzdDooTlNBcnJheTxOU1N0cmluZyAqPiAqKWxlZ2FjeUJsYWNrbGlzdCBi
YXNlVVJMOihOU1VSTCAqKWJhc2VVUkwgbGV2ZWw6KF9XS1VzZXJTdHlsZUxldmVsKWxldmVsIHVz
ZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGZvcldLV2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBmb3JNYWluRnJhbWVPbmx5OihCT09MKWZvck1haW5GcmFt
ZU9ubHkgbGV2ZWw6KF9XS1VzZXJTdHlsZUxldmVsKWxldmVsIHVzZXJDb250ZW50V29ybGQ6KF9X
S1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkIFdLX0FQSV9ERVBSRUNBVEVEX1dJ
VEhfUkVQTEFDRU1FTlQoIl9pbml0V2l0aFNvdXJjZTpmb3JXS1dlYlZpZXc6Zm9yTWFpbkZyYW1l
T25seTppbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5n
czpiYXNlVVJMOmxldmVsOmNvbnRlbnRXb3JsZDoiLCBtYWNvcyhXS19NQUNfVEJBLCBXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEsIFdLX0lPU19UQkEpKTsKKy0gKGluc3RhbmNldHlwZSlpbml0
V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgZm9yV0tXZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGZvck1haW5GcmFtZU9ubHk6KEJPT0wpZm9yTWFpbkZyYW1lT25seSBiYXNlVVJMOihO
U1VSTCAqKWJhc2VVUkwgbGV2ZWw6KF9XS1VzZXJTdHlsZUxldmVsKWxldmVsIHVzZXJDb250ZW50
V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkIFdLX0FQSV9ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9pbml0V2l0aFNvdXJjZTpmb3JXS1dlYlZpZXc6Zm9y
TWFpbkZyYW1lT25seTppbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpleGNsdWRlTWF0Y2hQYXR0
ZXJuU3RyaW5nczpiYXNlVVJMOmxldmVsOmNvbnRlbnRXb3JsZDoiLCBtYWNvcyhXS19NQUNfVEJB
LCBXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEsIFdLX0lPU19UQkEpKTsKKy0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgZm9yTWFpbkZyYW1lT25seToo
Qk9PTClmb3JNYWluRnJhbWVPbmx5IGxlZ2FjeVdoaXRlbGlzdDooTlNBcnJheTxOU1N0cmluZyAq
PiAqKWxlZ2FjeVdoaXRlbGlzdCBsZWdhY3lCbGFja2xpc3Q6KE5TQXJyYXk8TlNTdHJpbmcgKj4g
KilsZWdhY3lCbGFja2xpc3QgdXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3JsZCAq
KXVzZXJDb250ZW50V29ybGQgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX2lu
aXRXaXRoU291cmNlOmZvcldLV2ViVmlldzpmb3JNYWluRnJhbWVPbmx5OmluY2x1ZGVNYXRjaFBh
dHRlcm5TdHJpbmdzOmV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOmJhc2VVUkw6bGV2ZWw6Y29u
dGVudFdvcmxkOiIsIG1hY29zKDEwLjEyLCBXS19NQUNfVEJBKSwgaW9zKDEwLjAsIFdLX0lPU19U
QkEpKTsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2Ug
Zm9yTWFpbkZyYW1lT25seTooQk9PTClmb3JNYWluRnJhbWVPbmx5IGxlZ2FjeVdoaXRlbGlzdDoo
TlNBcnJheTxOU1N0cmluZyAqPiAqKWxlZ2FjeVdoaXRlbGlzdCBsZWdhY3lCbGFja2xpc3Q6KE5T
QXJyYXk8TlNTdHJpbmcgKj4gKilsZWdhY3lCbGFja2xpc3QgYmFzZVVSTDooTlNVUkwgKiliYXNl
VVJMIHVzZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdv
cmxkIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9pbml0V2l0aFNvdXJjZTpm
b3JXS1dlYlZpZXc6Zm9yTWFpbkZyYW1lT25seTppbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpl
eGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpiYXNlVVJMOmxldmVsOmNvbnRlbnRXb3JsZDoiLCBt
YWNvcygxMC4xMiwgV0tfTUFDX1RCQSksIGlvcygxMC4wLCBXS19JT1NfVEJBKSk7CistIChpbnN0
YW5jZXR5cGUpaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGZvck1haW5GcmFtZU9u
bHk6KEJPT0wpZm9yTWFpbkZyYW1lT25seSBsZWdhY3lXaGl0ZWxpc3Q6KE5TQXJyYXk8TlNTdHJp
bmcgKj4gKilsZWdhY3lXaGl0ZWxpc3QgbGVnYWN5QmxhY2tsaXN0OihOU0FycmF5PE5TU3RyaW5n
ICo+ICopbGVnYWN5QmxhY2tsaXN0IGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTCBsZXZlbDooX1dL
VXNlclN0eWxlTGV2ZWwpbGV2ZWwgdXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3Js
ZCAqKXVzZXJDb250ZW50V29ybGQgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgi
X2luaXRXaXRoU291cmNlOmZvcldLV2ViVmlldzpmb3JNYWluRnJhbWVPbmx5OmluY2x1ZGVNYXRj
aFBhdHRlcm5TdHJpbmdzOmV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOmJhc2VVUkw6bGV2ZWw6
Y29udGVudFdvcmxkOiIsIG1hY29zKFdLX01BQ19UQkEsIFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSwgV0tfSU9TX1RCQSkpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCisvLyBf
V0tVc2VyU3R5bGVVc2VyTGV2ZWwgd2FzIHRoZSBkZWZhdWx0CistIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGZvcldLV2ViVmlldzoobnVsbGFibGUgV0tX
ZWJWaWV3ICopd2ViVmlldyBmb3JNYWluRnJhbWVPbmx5OihCT09MKWZvck1haW5GcmFtZU9ubHkg
aW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6KG51bGxhYmxlIE5TQXJyYXk8TlNTdHJpbmcgKj4g
KilpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyBleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczoo
bnVsbGFibGUgTlNBcnJheTxOU1N0cmluZyAqPiAqKWV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdz
IGJhc2VVUkw6KG51bGxhYmxlIE5TVVJMICopYmFzZVVSTCBsZXZlbDooX1dLVXNlclN0eWxlTGV2
ZWwpbGV2ZWwgY29udGVudFdvcmxkOihudWxsYWJsZSBXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRX
b3JsZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworCiBAZW5kCiAKIE5TX0FTU1VNRV9OT05OVUxMX0VORApJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJTdHlsZVNoZWV0Lm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyU3R5bGVTaGVldC5tbQkocmV2
aXNpb24gMjYzMDQyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Vz
ZXJTdHlsZVNoZWV0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsNiArMTE3LDE3IEBAIC0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aFNvdXJjZTooTlNTdHJpbmcKIH0KIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTb3VyY2U6KE5TU3Ry
aW5nICopc291cmNlIGZvcldLV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBmb3JNYWluRnJh
bWVPbmx5OihCT09MKWZvck1haW5GcmFtZU9ubHkgaW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6
KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyBleGNsdWRl
TWF0Y2hQYXR0ZXJuU3RyaW5nczooTlNBcnJheTxOU1N0cmluZyAqPiAqKWV4Y2x1ZGVNYXRjaFBh
dHRlcm5TdHJpbmdzIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTCBsZXZlbDooX1dLVXNlclN0eWxl
TGV2ZWwpbGV2ZWwgY29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZAor
eworCisgICAgV2ViS2l0OjpJbml0aWFsaXplV2ViS2l0MigpOworCisgICAgQVBJOjpPYmplY3Q6
OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OlVzZXJTdHlsZVNoZWV0PihzZWxmLCBXZWJDb3JlOjpV
c2VyU3R5bGVTaGVldCB7IHNvdXJjZSwgYmFzZVVSTCwgbWFrZVZlY3RvcjxTdHJpbmc+KGluY2x1
ZGVNYXRjaFBhdHRlcm5TdHJpbmdzKSwgbWFrZVZlY3RvcjxTdHJpbmc+KGV4Y2x1ZGVNYXRjaFBh
dHRlcm5TdHJpbmdzKSwgZm9yTWFpbkZyYW1lT25seSA/IFdlYkNvcmU6OlVzZXJDb250ZW50SW5q
ZWN0ZWRGcmFtZXM6OkluamVjdEluVG9wRnJhbWVPbmx5IDogV2ViQ29yZTo6VXNlckNvbnRlbnRJ
bmplY3RlZEZyYW1lczo6SW5qZWN0SW5BbGxGcmFtZXMsIEFQSTo6dG9XZWJDb3JlVXNlclN0eWxl
TGV2ZWwobGV2ZWwpLCB3ZWJWaWV3ID8gT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+
KFt3ZWJWaWV3IF9wYWdlXS0+d2ViUGFnZUlEKCkpIDogV1RGOjpudWxsb3B0IH0sIGNvbnRlbnRX
b3JsZCA/ICpjb250ZW50V29ybGQtPl9jb250ZW50V29ybGQgOiBBUEk6OkNvbnRlbnRXb3JsZDo6
cGFnZUNvbnRlbnRXb3JsZCgpKTsKKworICAgIHJldHVybiBzZWxmOworfQorCisKIC0gKHZvaWQp
ZGVhbGxvYwogewogICAgIF91c2VyU3R5bGVTaGVldC0+flVzZXJTdHlsZVNoZWV0KCk7CkluZGV4
OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjMwNDIpCisrKyBTb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBA
QAorMjAyMC0wNi0xNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgorCisgICAgICAgIFByb3ZpZGUgYWx0ZXJuYXRpdmVseS1uYW1lZCBTUEkgZm9yIHVzZXIgc3R5
bGUgc2hlZXRzIGFuZCBzY3JpcHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTMyMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKCtbV2ViVmlldyBf
YWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnlXaXRoU291cmNlT3JpZ2luOmRlc3RpbmF0aW9u
UHJvdG9jb2w6ZGVzdGluYXRpb25Ib3N0OmFsbG93RGVzdGluYXRpb25TdWJkb21haW5zOl0pOgor
ICAgICAgICAoK1tXZWJWaWV3IF9yZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeVdpdGhT
b3VyY2VPcmlnaW46ZGVzdGluYXRpb25Qcm90b2NvbDpkZXN0aW5hdGlvbkhvc3Q6YWxsb3dEZXN0
aW5hdGlvblN1YmRvbWFpbnM6XSk6CisgICAgICAgICgrW1dlYlZpZXcgX3Jlc2V0T3JpZ2luQWNj
ZXNzQWxsb3dMaXN0c10pOgorICAgICAgICAoK1tXZWJWaWV3IF9hZGRVc2VyU2NyaXB0VG9Hcm91
cDp3b3JsZDpzb3VyY2U6dXJsOndoaXRlbGlzdDpibGFja2xpc3Q6aW5qZWN0aW9uVGltZTppbmpl
Y3RlZEZyYW1lczpdKToKKyAgICAgICAgKCtbV2ViVmlldyBfYWRkVXNlclNjcmlwdFRvR3JvdXA6
d29ybGQ6c291cmNlOnVybDppbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpleGNsdWRlTWF0Y2hQ
YXR0ZXJuU3RyaW5nczppbmplY3Rpb25UaW1lOmluamVjdGVkRnJhbWVzOl0pOgorICAgICAgICAo
K1tXZWJWaWV3IF9hZGRVc2VyU3R5bGVTaGVldFRvR3JvdXA6d29ybGQ6c291cmNlOnVybDp3aGl0
ZWxpc3Q6YmxhY2tsaXN0OmluamVjdGVkRnJhbWVzOl0pOgorICAgICAgICAoK1tXZWJWaWV3IF9h
ZGRVc2VyU3R5bGVTaGVldFRvR3JvdXA6d29ybGQ6c291cmNlOnVybDppbmNsdWRlTWF0Y2hQYXR0
ZXJuU3RyaW5nczpleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczppbmplY3RlZEZyYW1lczpdKToK
KyAgICAgICAgKCtbV2ViVmlldyBfc2V0Rm9udEFsbG93TGlzdDpdKToKKyAgICAgICAgKCtbV2Vi
VmlldyBfYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlXaXRoU291cmNlT3JpZ2luOmRlc3Rp
bmF0aW9uUHJvdG9jb2w6ZGVzdGluYXRpb25Ib3N0OmFsbG93RGVzdGluYXRpb25TdWJkb21haW5z
Ol0pOiBEZWxldGVkLgorICAgICAgICAoK1tXZWJWaWV3IF9yZW1vdmVPcmlnaW5BY2Nlc3NXaGl0
ZWxpc3RFbnRyeVdpdGhTb3VyY2VPcmlnaW46ZGVzdGluYXRpb25Qcm90b2NvbDpkZXN0aW5hdGlv
bkhvc3Q6YWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnM6XSk6IERlbGV0ZWQuCisgICAgICAgICgr
W1dlYlZpZXcgX3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0c10pOiBEZWxldGVkLgorICAgICAg
ICAoK1tXZWJWaWV3IF9zZXRGb250V2hpdGVsaXN0Ol0pOiBEZWxldGVkLgorICAgICAgICAqIFdl
YlZpZXcvV2ViVmlld1ByaXZhdGUuaDoKKwogMjAyMC0wNi0xMSAgU2FtIFdlaW5pZyAgPHdlaW5p
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgRG9jdW1lbnQuY3VycmVudFNjcmlwdCBkb2VzIG5vdCB3
b3JrIGZvciBTVkdTY3JpcHRFbGVtZW50cwpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQkocmV2aXNpb24gMjYzMDQyKQorKysgU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00NzIzLDE3ICs0
NzIzLDE3IEBAIC0gKE5TUGFzdGVib2FyZCAqKV9pbnNlcnRpb25QYXN0ZWJvYXJkCiB9CiAjZW5k
aWYKIAotKyAodm9pZClfYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlXaXRoU291cmNlT3Jp
Z2luOihOU1N0cmluZyAqKXNvdXJjZU9yaWdpbiBkZXN0aW5hdGlvblByb3RvY29sOihOU1N0cmlu
ZyAqKWRlc3RpbmF0aW9uUHJvdG9jb2wgZGVzdGluYXRpb25Ib3N0OihOU1N0cmluZyAqKWRlc3Rp
bmF0aW9uSG9zdCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczooQk9PTClhbGxvd0Rlc3RpbmF0
aW9uU3ViZG9tYWlucworKyAodm9pZClfYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnlXaXRo
U291cmNlT3JpZ2luOihOU1N0cmluZyAqKXNvdXJjZU9yaWdpbiBkZXN0aW5hdGlvblByb3RvY29s
OihOU1N0cmluZyAqKWRlc3RpbmF0aW9uUHJvdG9jb2wgZGVzdGluYXRpb25Ib3N0OihOU1N0cmlu
ZyAqKWRlc3RpbmF0aW9uSG9zdCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczooQk9PTClhbGxv
d0Rlc3RpbmF0aW9uU3ViZG9tYWlucwogewogICAgIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5Ojph
ZGRPcmlnaW5BY2Nlc3NBbGxvd2xpc3RFbnRyeShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlRnJvbVN0cmluZyhzb3VyY2VPcmlnaW4pLmdldCgpLCBkZXN0aW5hdGlvblByb3RvY29sLCBk
ZXN0aW5hdGlvbkhvc3QsIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKIH0KIAotKyAodm9p
ZClfcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlXaXRoU291cmNlT3JpZ2luOihOU1N0
cmluZyAqKXNvdXJjZU9yaWdpbiBkZXN0aW5hdGlvblByb3RvY29sOihOU1N0cmluZyAqKWRlc3Rp
bmF0aW9uUHJvdG9jb2wgZGVzdGluYXRpb25Ib3N0OihOU1N0cmluZyAqKWRlc3RpbmF0aW9uSG9z
dCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczooQk9PTClhbGxvd0Rlc3RpbmF0aW9uU3ViZG9t
YWlucworKyAodm9pZClfcmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnlXaXRoU291cmNl
T3JpZ2luOihOU1N0cmluZyAqKXNvdXJjZU9yaWdpbiBkZXN0aW5hdGlvblByb3RvY29sOihOU1N0
cmluZyAqKWRlc3RpbmF0aW9uUHJvdG9jb2wgZGVzdGluYXRpb25Ib3N0OihOU1N0cmluZyAqKWRl
c3RpbmF0aW9uSG9zdCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczooQk9PTClhbGxvd0Rlc3Rp
bmF0aW9uU3ViZG9tYWlucwogewogICAgIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5OjpyZW1vdmVP
cmlnaW5BY2Nlc3NBbGxvd2xpc3RFbnRyeShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
RnJvbVN0cmluZyhzb3VyY2VPcmlnaW4pLmdldCgpLCBkZXN0aW5hdGlvblByb3RvY29sLCBkZXN0
aW5hdGlvbkhvc3QsIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKIH0KIAotKyAodm9pZClf
cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzCisrICh2b2lkKV9yZXNldE9yaWdpbkFjY2Vzc0Fs
bG93TGlzdHMKIHsKICAgICBXZWJDb3JlOjpTZWN1cml0eVBvbGljeTo6cmVzZXRPcmlnaW5BY2Nl
c3NBbGxvd2xpc3RzKCk7CiB9CkBAIC00Nzg2LDYgKzQ3ODYsMTEgQEAgKyAodm9pZClfYWRkVXNl
clNjcmlwdFRvR3JvdXA6KE5TU3RyaW5nIAogICAgICAgICAgICAgICAgIGluamVjdGlvblRpbWU6
KFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKWluamVjdGlvblRpbWUKICAgICAgICAgICAgICAg
IGluamVjdGVkRnJhbWVzOihXZWJVc2VyQ29udGVudEluamVjdGVkRnJhbWVzKWluamVjdGVkRnJh
bWVzCiB7CisgICAgW1dlYlZpZXcgX2FkZFVzZXJTY3JpcHRUb0dyb3VwOmdyb3VwTmFtZSB3b3Js
ZDp3b3JsZCBzb3VyY2U6c291cmNlIHVybDp1cmwgaW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6
d2hpdGVsaXN0IGV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOmJsYWNrbGlzdCBpbmplY3Rpb25U
aW1lOmluamVjdGlvblRpbWUgaW5qZWN0ZWRGcmFtZXM6aW5qZWN0ZWRGcmFtZXNdOworfQorCisr
ICh2b2lkKV9hZGRVc2VyU2NyaXB0VG9Hcm91cDooTlNTdHJpbmcgKilncm91cE5hbWUgd29ybGQ6
KFdlYlNjcmlwdFdvcmxkICopd29ybGQgc291cmNlOihOU1N0cmluZyAqKXNvdXJjZSB1cmw6KE5T
VVJMICopdXJsIGluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOihOU0FycmF5ICopaW5jbHVkZU1h
dGNoUGF0dGVyblN0cmluZ3MgZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6KE5TQXJyYXkgKill
eGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyBpbmplY3Rpb25UaW1lOihXZWJVc2VyU2NyaXB0SW5q
ZWN0aW9uVGltZSlpbmplY3Rpb25UaW1lIGluamVjdGVkRnJhbWVzOihXZWJVc2VyQ29udGVudElu
amVjdGVkRnJhbWVzKWluamVjdGVkRnJhbWVzCit7CiAgICAgU3RyaW5nIGdyb3VwKGdyb3VwTmFt
ZSk7CiAgICAgaWYgKGdyb3VwLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDc5NSw3
ICs0ODAwLDcgQEAgKyAodm9pZClfYWRkVXNlclNjcmlwdFRvR3JvdXA6KE5TU3RyaW5nIAogICAg
IGlmICghd29ybGQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gdXNlclNjcmlwdCA9IG1h
a2VVbmlxdWU8V2ViQ29yZTo6VXNlclNjcmlwdD4oc291cmNlLCB1cmwsIG1ha2VWZWN0b3I8U3Ry
aW5nPih3aGl0ZWxpc3QpLCBtYWtlVmVjdG9yPFN0cmluZz4oYmxhY2tsaXN0KSwgaW5qZWN0aW9u
VGltZSA9PSBXZWJJbmplY3RBdERvY3VtZW50U3RhcnQgPyBXZWJDb3JlOjpVc2VyU2NyaXB0SW5q
ZWN0aW9uVGltZTo6RG9jdW1lbnRTdGFydCA6IFdlYkNvcmU6OlVzZXJTY3JpcHRJbmplY3Rpb25U
aW1lOjpEb2N1bWVudEVuZCwgaW5qZWN0ZWRGcmFtZXMgPT0gV2ViSW5qZWN0SW5BbGxGcmFtZXMg
PyBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcyA6
IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluVG9wRnJhbWVPbmx5
LCBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyk7CisgICAg
YXV0byB1c2VyU2NyaXB0ID0gbWFrZVVuaXF1ZTxXZWJDb3JlOjpVc2VyU2NyaXB0Pihzb3VyY2Us
IHVybCwgbWFrZVZlY3RvcjxTdHJpbmc+KGluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzKSwgbWFr
ZVZlY3RvcjxTdHJpbmc+KGV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzKSwgaW5qZWN0aW9uVGlt
ZSA9PSBXZWJJbmplY3RBdERvY3VtZW50U3RhcnQgPyBXZWJDb3JlOjpVc2VyU2NyaXB0SW5qZWN0
aW9uVGltZTo6RG9jdW1lbnRTdGFydCA6IFdlYkNvcmU6OlVzZXJTY3JpcHRJbmplY3Rpb25UaW1l
OjpEb2N1bWVudEVuZCwgaW5qZWN0ZWRGcmFtZXMgPT0gV2ViSW5qZWN0SW5BbGxGcmFtZXMgPyBX
ZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcyA6IFdl
YkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluVG9wRnJhbWVPbmx5LCBX
ZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyk7CiAgICAgdmll
d0dyb3VwLT51c2VyQ29udGVudENvbnRyb2xsZXIoKS5hZGRVc2VyU2NyaXB0KCpjb3JlKHdvcmxk
KSwgV1RGTW92ZSh1c2VyU2NyaXB0KSk7CiB9CiAKQEAgLTQ4MDksNiArNDgxNCwxMSBAQCArICh2
b2lkKV9hZGRVc2VyU3R5bGVTaGVldFRvR3JvdXA6KE5TU3RyCiAgICAgICAgICAgICAgICAgICAg
ICAgICB3aGl0ZWxpc3Q6KE5TQXJyYXkgKil3aGl0ZWxpc3QgYmxhY2tsaXN0OihOU0FycmF5ICop
YmxhY2tsaXN0CiAgICAgICAgICAgICAgICAgICAgaW5qZWN0ZWRGcmFtZXM6KFdlYlVzZXJDb250
ZW50SW5qZWN0ZWRGcmFtZXMpaW5qZWN0ZWRGcmFtZXMKIHsKKyAgICBbV2ViVmlldyBfYWRkVXNl
clN0eWxlU2hlZXRUb0dyb3VwOmdyb3VwTmFtZSB3b3JsZDp3b3JsZCBzb3VyY2U6c291cmNlIHVy
bDp1cmwgaW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6d2hpdGVsaXN0IGV4Y2x1ZGVNYXRjaFBh
dHRlcm5TdHJpbmdzOmJsYWNrbGlzdCBpbmplY3RlZEZyYW1lczppbmplY3RlZEZyYW1lc107Cit9
CisKKysgKHZvaWQpX2FkZFVzZXJTdHlsZVNoZWV0VG9Hcm91cDooTlNTdHJpbmcgKilncm91cE5h
bWUgd29ybGQ6KFdlYlNjcmlwdFdvcmxkICopd29ybGQgc291cmNlOihOU1N0cmluZyAqKXNvdXJj
ZSB1cmw6KE5TVVJMICopdXJsIGluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOihOU0FycmF5ICop
aW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3MgZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6KE5T
QXJyYXkgKilleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyBpbmplY3RlZEZyYW1lczooV2ViVXNl
ckNvbnRlbnRJbmplY3RlZEZyYW1lcylpbmplY3RlZEZyYW1lcworewogICAgIFN0cmluZyBncm91
cChncm91cE5hbWUpOwogICAgIGlmIChncm91cC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsK
QEAgLTQ4MTgsNyArNDgyOCw3IEBAICsgKHZvaWQpX2FkZFVzZXJTdHlsZVNoZWV0VG9Hcm91cDoo
TlNTdHIKICAgICBpZiAoIXdvcmxkKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHN0eWxl
U2hlZXQgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0Pihzb3VyY2UsIHVybCwg
bWFrZVZlY3RvcjxTdHJpbmc+KHdoaXRlbGlzdCksIG1ha2VWZWN0b3I8U3RyaW5nPihibGFja2xp
c3QpLCBpbmplY3RlZEZyYW1lcyA9PSBXZWJJbmplY3RJbkFsbEZyYW1lcyA/IFdlYkNvcmU6OlVz
ZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzIDogV2ViQ29yZTo6VXNl
ckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFtZU9ubHksIFdlYkNvcmU6OlVz
ZXJTdHlsZVVzZXJMZXZlbCk7CisgICAgYXV0byBzdHlsZVNoZWV0ID0gbWFrZVVuaXF1ZTxXZWJD
b3JlOjpVc2VyU3R5bGVTaGVldD4oc291cmNlLCB1cmwsIG1ha2VWZWN0b3I8U3RyaW5nPihpbmNs
dWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyksIG1ha2VWZWN0b3I8U3RyaW5nPihleGNsdWRlTWF0Y2hQ
YXR0ZXJuU3RyaW5ncyksIGluamVjdGVkRnJhbWVzID09IFdlYkluamVjdEluQWxsRnJhbWVzID8g
V2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5BbGxGcmFtZXMgOiBX
ZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25seSwg
V2ViQ29yZTo6VXNlclN0eWxlVXNlckxldmVsKTsKICAgICB2aWV3R3JvdXAtPnVzZXJDb250ZW50
Q29udHJvbGxlcigpLmFkZFVzZXJTdHlsZVNoZWV0KCpjb3JlKHdvcmxkKSwgV1RGTW92ZShzdHls
ZVNoZWV0KSwgV2ViQ29yZTo6SW5qZWN0SW5FeGlzdGluZ0RvY3VtZW50cyk7CiB9CiAKQEAgLTEw
MjQ3LDEyICsxMDI1NywxMiBAQCAtICh1aW50NjRfdClfbm90aWZpY2F0aW9uSURGb3JUZXN0aW5n
OihKCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJWaWV3IChXZWJWaWV3Rm9udFNlbGVjdGlvbikKIAot
KyAodm9pZClfc2V0Rm9udFdoaXRlbGlzdDooTlNBcnJheSAqKXdoaXRlbGlzdAorKyAodm9pZClf
c2V0Rm9udEFsbG93TGlzdDooTlNBcnJheSAqKWFsbG93TGlzdAogewogI2lmICFQTEFURk9STShN
QUMpCi0gICAgVU5VU0VEX1BBUkFNKHdoaXRlbGlzdCk7CisgICAgVU5VU0VEX1BBUkFNKGFsbG93
TGlzdCk7CiAjZWxzZQotICAgIFdlYkNvcmU6OkZvbnRDYWNoZTo6c2V0Rm9udEFsbG93bGlzdCht
YWtlVmVjdG9yPFN0cmluZz4od2hpdGVsaXN0KSk7CisgICAgV2ViQ29yZTo6Rm9udENhY2hlOjpz
ZXRGb250QWxsb3dsaXN0KG1ha2VWZWN0b3I8U3RyaW5nPihhbGxvd0xpc3QpKTsKICNlbmRpZgog
fQogCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
UHJpdmF0ZS5oCShyZXZpc2lvbiAyNjMwNDIpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc5NywxOCArNzk3LDIy
IEBAIENvdWxkIGJlIHdvcnRoIGFkZGluZyB0byB0aGUgQVBJLgogLy8gLSBkZXN0aW5hdGlvblBy
b3RvY29sOiBUaGUgcHJvdG9jb2wgdG8gZ3JhbnQgYWNjZXNzIHRvLgogLy8gLSBkZXN0aW5hdGlv
bkhvc3Q6IFRoZSBob3N0IHRvIGdyYW50IGFjY2VzcyB0by4KIC8vIC0gYWxsb3dEZXN0aW5hdGlv
blN1YmRvbWFpbnM6IElmIGhvc3QgaXMgYSBkb21haW4sIHNldHRpbmcgdGhpcyB0byBZRVMgd2ls
bCB3aGl0ZWxpc3QgaG9zdCBhbmQgYWxsIGl0cyBzdWJkb21haW5zLCByZWN1cnNpdmVseS4KLSsg
KHZvaWQpX2FkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5V2l0aFNvdXJjZU9yaWdpbjooTlNT
dHJpbmcgKilzb3VyY2VPcmlnaW4gZGVzdGluYXRpb25Qcm90b2NvbDooTlNTdHJpbmcgKilkZXN0
aW5hdGlvblByb3RvY29sIGRlc3RpbmF0aW9uSG9zdDooTlNTdHJpbmcgKilkZXN0aW5hdGlvbkhv
c3QgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnM6KEJPT0wpYWxsb3dEZXN0aW5hdGlvblN1YmRv
bWFpbnM7Ci0rICh2b2lkKV9yZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeVdpdGhTb3Vy
Y2VPcmlnaW46KE5TU3RyaW5nICopc291cmNlT3JpZ2luIGRlc3RpbmF0aW9uUHJvdG9jb2w6KE5T
U3RyaW5nICopZGVzdGluYXRpb25Qcm90b2NvbCBkZXN0aW5hdGlvbkhvc3Q6KE5TU3RyaW5nICop
ZGVzdGluYXRpb25Ib3N0IGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zOihCT09MKWFsbG93RGVz
dGluYXRpb25TdWJkb21haW5zOworKyAodm9pZClfYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50
cnlXaXRoU291cmNlT3JpZ2luOihOU1N0cmluZyAqKXNvdXJjZU9yaWdpbiBkZXN0aW5hdGlvblBy
b3RvY29sOihOU1N0cmluZyAqKWRlc3RpbmF0aW9uUHJvdG9jb2wgZGVzdGluYXRpb25Ib3N0OihO
U1N0cmluZyAqKWRlc3RpbmF0aW9uSG9zdCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczooQk9P
TClhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczsKKysgKHZvaWQpX3JlbW92ZU9yaWdpbkFjY2Vz
c0FsbG93TGlzdEVudHJ5V2l0aFNvdXJjZU9yaWdpbjooTlNTdHJpbmcgKilzb3VyY2VPcmlnaW4g
ZGVzdGluYXRpb25Qcm90b2NvbDooTlNTdHJpbmcgKilkZXN0aW5hdGlvblByb3RvY29sIGRlc3Rp
bmF0aW9uSG9zdDooTlNTdHJpbmcgKilkZXN0aW5hdGlvbkhvc3QgYWxsb3dEZXN0aW5hdGlvblN1
YmRvbWFpbnM6KEJPT0wpYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnM7CiAKLS8vIFJlbW92ZXMg
YWxsIHdoaXRlIGxpc3QgZW50cmllcyBjcmVhdGVkIHdpdGggX2FkZE9yaWdpbkFjY2Vzc1doaXRl
bGlzdEVudHJ5V2l0aFNvdXJjZU9yaWdpbi4KLSsgKHZvaWQpX3Jlc2V0T3JpZ2luQWNjZXNzV2hp
dGVsaXN0czsKKy8vIFJlbW92ZXMgYWxsIHdoaXRlIGxpc3QgZW50cmllcyBjcmVhdGVkIHdpdGgg
X2FkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5V2l0aFNvdXJjZU9yaWdpbi4KKysgKHZvaWQp
X3Jlc2V0T3JpZ2luQWNjZXNzQWxsb3dMaXN0czsKIAogLy8gRklYTUU6IFRoZSBmb2xsb3dpbmcg
dHdvIG1ldGhvZHMgYXJlIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgdGhlIG92ZXJsb2FkcyBiZWxv
dyB0aGF0IHRha2UgdGhlIFdlYlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgYXJndW1lbnQuIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTgwMC4KLSsgKHZvaWQpX2Fk
ZFVzZXJTY3JpcHRUb0dyb3VwOihOU1N0cmluZyAqKWdyb3VwTmFtZSB3b3JsZDooV2ViU2NyaXB0
V29ybGQgKil3b3JsZCBzb3VyY2U6KE5TU3RyaW5nICopc291cmNlIHVybDooTlNVUkwgKil1cmwg
d2hpdGVsaXN0OihOU0FycmF5ICopd2hpdGVsaXN0IGJsYWNrbGlzdDooTlNBcnJheSAqKWJsYWNr
bGlzdCBpbmplY3Rpb25UaW1lOihXZWJVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSlpbmplY3Rpb25U
aW1lOwotKyAodm9pZClfYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwOihOU1N0cmluZyAqKWdyb3Vw
TmFtZSB3b3JsZDooV2ViU2NyaXB0V29ybGQgKil3b3JsZCBzb3VyY2U6KE5TU3RyaW5nICopc291
cmNlIHVybDooTlNVUkwgKil1cmwgd2hpdGVsaXN0OihOU0FycmF5ICopd2hpdGVsaXN0IGJsYWNr
bGlzdDooTlNBcnJheSAqKWJsYWNrbGlzdDsKKysgKHZvaWQpX2FkZFVzZXJTY3JpcHRUb0dyb3Vw
OihOU1N0cmluZyAqKWdyb3VwTmFtZSB3b3JsZDooV2ViU2NyaXB0V29ybGQgKil3b3JsZCBzb3Vy
Y2U6KE5TU3RyaW5nICopc291cmNlIHVybDooTlNVUkwgKil1cmwgd2hpdGVsaXN0OihOU0FycmF5
ICopd2hpdGVsaXN0IGJsYWNrbGlzdDooTlNBcnJheSAqKWJsYWNrbGlzdCBpbmplY3Rpb25UaW1l
OihXZWJVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSlpbmplY3Rpb25UaW1lIF9fYXR0cmlidXRlX18o
KGRlcHJlY2F0ZWQoInVzZSBfYWRkVXNlclNjcmlwdFRvR3JvdXA6d29ybGQ6c291cmNlOnVybDpp
bmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczppbmpl
Y3Rpb25UaW1lOmluamVjdGVkRnJhbWVzOiIpKSk7CisrICh2b2lkKV9hZGRVc2VyU3R5bGVTaGVl
dFRvR3JvdXA6KE5TU3RyaW5nICopZ3JvdXBOYW1lIHdvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdv
cmxkIHNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgdXJsOihOU1VSTCAqKXVybCB3aGl0ZWxpc3Q6
KE5TQXJyYXkgKil3aGl0ZWxpc3QgYmxhY2tsaXN0OihOU0FycmF5ICopYmxhY2tsaXN0IF9fYXR0
cmlidXRlX18oKGRlcHJlY2F0ZWQoInVzZSBfYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwOndvcmxk
OnNvdXJjZTp1cmw6aW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6ZXhjbHVkZU1hdGNoUGF0dGVy
blN0cmluZ3M6aW5qZWN0ZWRGcmFtZXM6IikpKTsKKworKyAodm9pZClfYWRkVXNlclNjcmlwdFRv
R3JvdXA6KE5TU3RyaW5nICopZ3JvdXBOYW1lIHdvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdvcmxk
IHNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgdXJsOihOU1VSTCAqKXVybCB3aGl0ZWxpc3Q6KE5T
QXJyYXkgKil3aGl0ZWxpc3QgYmxhY2tsaXN0OihOU0FycmF5ICopYmxhY2tsaXN0IGluamVjdGlv
blRpbWU6KFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKWluamVjdGlvblRpbWUgaW5qZWN0ZWRG
cmFtZXM6KFdlYlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMpaW5qZWN0ZWRGcmFtZXMgX19hdHRy
aWJ1dGVfXygoZGVwcmVjYXRlZCgidXNlIF9hZGRVc2VyU2NyaXB0VG9Hcm91cDp3b3JsZDpzb3Vy
Y2U6dXJsOmluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOmV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJp
bmdzOmluamVjdGlvblRpbWU6aW5qZWN0ZWRGcmFtZXM6IikpKTsKKysgKHZvaWQpX2FkZFVzZXJT
dHlsZVNoZWV0VG9Hcm91cDooTlNTdHJpbmcgKilncm91cE5hbWUgd29ybGQ6KFdlYlNjcmlwdFdv
cmxkICopd29ybGQgc291cmNlOihOU1N0cmluZyAqKXNvdXJjZSB1cmw6KE5TVVJMICopdXJsIHdo
aXRlbGlzdDooTlNBcnJheSAqKXdoaXRlbGlzdCBibGFja2xpc3Q6KE5TQXJyYXkgKilibGFja2xp
c3QgaW5qZWN0ZWRGcmFtZXM6KFdlYlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMpaW5qZWN0ZWRG
cmFtZXMgX19hdHRyaWJ1dGVfXygoZGVwcmVjYXRlZCgidXNlIF9hZGRVc2VyU3R5bGVTaGVldFRv
R3JvdXA6d29ybGQ6c291cmNlOnVybDppbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpleGNsdWRl
TWF0Y2hQYXR0ZXJuU3RyaW5nczppbmplY3RlZEZyYW1lczoiKSkpOworCisrICh2b2lkKV9hZGRV
c2VyU2NyaXB0VG9Hcm91cDooTlNTdHJpbmcgKilncm91cE5hbWUgd29ybGQ6KFdlYlNjcmlwdFdv
cmxkICopd29ybGQgc291cmNlOihOU1N0cmluZyAqKXNvdXJjZSB1cmw6KE5TVVJMICopdXJsIGlu
Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOihOU0FycmF5ICopaW5jbHVkZU1hdGNoUGF0dGVyblN0
cmluZ3MgZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6KE5TQXJyYXkgKilleGNsdWRlTWF0Y2hQ
YXR0ZXJuU3RyaW5ncyBpbmplY3Rpb25UaW1lOihXZWJVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSlp
bmplY3Rpb25UaW1lIGluamVjdGVkRnJhbWVzOihXZWJVc2VyQ29udGVudEluamVjdGVkRnJhbWVz
KWluamVjdGVkRnJhbWVzOworKyAodm9pZClfYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwOihOU1N0
cmluZyAqKWdyb3VwTmFtZSB3b3JsZDooV2ViU2NyaXB0V29ybGQgKil3b3JsZCBzb3VyY2U6KE5T
U3RyaW5nICopc291cmNlIHVybDooTlNVUkwgKil1cmwgaW5jbHVkZU1hdGNoUGF0dGVyblN0cmlu
Z3M6KE5TQXJyYXkgKilpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyBleGNsdWRlTWF0Y2hQYXR0
ZXJuU3RyaW5nczooTlNBcnJheSAqKWV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzIGluamVjdGVk
RnJhbWVzOihXZWJVc2VyQ29udGVudEluamVjdGVkRnJhbWVzKWluamVjdGVkRnJhbWVzOwogCi0r
ICh2b2lkKV9hZGRVc2VyU2NyaXB0VG9Hcm91cDooTlNTdHJpbmcgKilncm91cE5hbWUgd29ybGQ6
KFdlYlNjcmlwdFdvcmxkICopd29ybGQgc291cmNlOihOU1N0cmluZyAqKXNvdXJjZSB1cmw6KE5T
VVJMICopdXJsIHdoaXRlbGlzdDooTlNBcnJheSAqKXdoaXRlbGlzdCBibGFja2xpc3Q6KE5TQXJy
YXkgKilibGFja2xpc3QgaW5qZWN0aW9uVGltZTooV2ViVXNlclNjcmlwdEluamVjdGlvblRpbWUp
aW5qZWN0aW9uVGltZSBpbmplY3RlZEZyYW1lczooV2ViVXNlckNvbnRlbnRJbmplY3RlZEZyYW1l
cylpbmplY3RlZEZyYW1lczsKLSsgKHZvaWQpX2FkZFVzZXJTdHlsZVNoZWV0VG9Hcm91cDooTlNT
dHJpbmcgKilncm91cE5hbWUgd29ybGQ6KFdlYlNjcmlwdFdvcmxkICopd29ybGQgc291cmNlOihO
U1N0cmluZyAqKXNvdXJjZSB1cmw6KE5TVVJMICopdXJsIHdoaXRlbGlzdDooTlNBcnJheSAqKXdo
aXRlbGlzdCBibGFja2xpc3Q6KE5TQXJyYXkgKilibGFja2xpc3QgaW5qZWN0ZWRGcmFtZXM6KFdl
YlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMpaW5qZWN0ZWRGcmFtZXM7CiArICh2b2lkKV9yZW1v
dmVVc2VyU2NyaXB0RnJvbUdyb3VwOihOU1N0cmluZyAqKWdyb3VwTmFtZSB3b3JsZDooV2ViU2Ny
aXB0V29ybGQgKil3b3JsZCB1cmw6KE5TVVJMICopdXJsOwogKyAodm9pZClfcmVtb3ZlVXNlclN0
eWxlU2hlZXRGcm9tR3JvdXA6KE5TU3RyaW5nICopZ3JvdXBOYW1lIHdvcmxkOihXZWJTY3JpcHRX
b3JsZCAqKXdvcmxkIHVybDooTlNVUkwgKil1cmw7CiArICh2b2lkKV9yZW1vdmVVc2VyU2NyaXB0
c0Zyb21Hcm91cDooTlNTdHJpbmcgKilncm91cE5hbWUgd29ybGQ6KFdlYlNjcmlwdFdvcmxkICop
d29ybGQ7CkBAIC0xMDUwLDcgKzEwNTQsNyBAQCBAaW50ZXJmYWNlIFdlYlZpZXcgKFdlYlZpZXdO
b3RpZmljYXRpb24pCiBAZW5kCiAKIEBpbnRlcmZhY2UgV2ViVmlldyAoV2ViVmlld0ZvbnRTZWxl
Y3Rpb24pCi0rICh2b2lkKV9zZXRGb250V2hpdGVsaXN0OihOU0FycmF5ICopd2hpdGVsaXN0Owor
KyAodm9pZClfc2V0Rm9udEFsbG93TGlzdDooTlNBcnJheSAqKWFsbG93TGlzdDsKIEBlbmQKIAog
I2lmIFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MzA1MykKKysrIFRvb2xzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA2LTE1ICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvdmlkZSBhbHRlcm5h
dGl2ZWx5LW5hbWVkIFNQSSBmb3IgdXNlciBzdHlsZSBzaGVldHMgYW5kIHNjcmlwdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzIwNgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAoZm9udEFsbG93TGlzdCk6CisgICAg
ICAgIChjcmVhdGVXZWJWaWV3QW5kT2Zmc2NyZWVuV2luZG93KToKKyAgICAgICAgKHJlc2V0V2Vi
Vmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAgIChmb250V2hpdGVs
aXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1h
Yy5tbToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5
KToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5
KToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmFkZFVzZXJTY3JpcHQpOgorICAgICAgICAoVGVzdFJ1
bm5lcjo6YWRkVXNlclN0eWxlU2hlZXQpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvVXNlckNvbnRlbnRDb250cm9sbGVyLm1tOgorICAgICAgICAoVEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyQ29udGVudFdvcmxk
Lm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVz
dENvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXVFI6OmdlbmVyYXRlRm9udEFsbG93TGlzdCk6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemVDb250ZXh0
KToKKyAgICAgICAgKFdUUjo6Z2VuZXJhdGVXaGl0ZWxpc3QpOiBEZWxldGVkLgorCiAyMDIwLTA2
LTE1ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNp
Z25hbCBoYW5kbGVycyBzaG91bGQgaGF2ZSBhIHR3byBwaGFzZSBpbnN0YWxsYXRpb24uCkluZGV4
OiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCShyZXZpc2lvbiAy
NjMwNDIpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0JKHdv
cmtpbmcgY29weSkKQEAgLTQ0Niw3ICs0NDYsNyBAQCBzdGF0aWMgTlNTZXQgKmFsbG93ZWRGb250
RmFtaWx5U2V0KCkKICAgICByZXR1cm4gZm9udEZhbWlseVNldDsKIH0KIAotc3RhdGljIE5TQXJy
YXkgKmZvbnRXaGl0ZWxpc3QoKQorc3RhdGljIE5TQXJyYXkgKmZvbnRBbGxvd0xpc3QoKQogewog
ICAgIHN0YXRpYyBOU0FycmF5ICphdmFpbGFibGVGb250czsKICAgICBpZiAoYXZhaWxhYmxlRm9u
dHMpCkBAIC03MzUsNyArNzM1LDcgQEAgV2ViVmlldyAqY3JlYXRlV2ViVmlld0FuZE9mZnNjcmVl
bldpbmRvdwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIFt3ZWJWaWV3IHNldFdpbmRvd09jY2x1
c2lvbkRldGVjdGlvbkVuYWJsZWQ6Tk9dOwotICAgIFtXZWJWaWV3IF9zZXRGb250V2hpdGVsaXN0
OmZvbnRXaGl0ZWxpc3QoKV07CisgICAgW1dlYlZpZXcgX3NldEZvbnRBbGxvd0xpc3Q6Zm9udEFs
bG93TGlzdCgpXTsKICNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0xOTQz
LDcgKzE5NDMsNyBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0CiAK
ICAgICBbV2ViVmlldyBfc2V0VXNlc1Rlc3RNb2RlRm9jdXNSaW5nQ29sb3I6WUVTXTsKICNlbmRp
ZgotICAgIFtXZWJWaWV3IF9yZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHNdOworICAgIFtXZWJW
aWV3IF9yZXNldE9yaWdpbkFjY2Vzc0FsbG93TGlzdHNdOwogCiAgICAgW1tNb2NrR2VvbG9jYXRp
b25Qcm92aWRlciBzaGFyZWRdIHN0b3BUaW1lcl07CiAgICAgW1tNb2NrV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXIgc2hhcmVkXSByZXNldF07CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
VGVzdFJ1bm5lck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
VGVzdFJ1bm5lck1hYy5tbQkocmV2aXNpb24gMjYzMDQyKQorKysgVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTc2MCw3ICs3NjAsNyBA
QCB2b2lkIFRlc3RSdW5uZXI6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzCiAgICAgTlNTdHJpbmcg
KmRlc3RpbmF0aW9uUHJvdG9jb2xOUyA9IChfX2JyaWRnZSBOU1N0cmluZyAqKXByb3RvY29sQ0Yu
Z2V0KCk7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBob3N0Q0YgPSBhZG9wdENGKEpTU3Ry
aW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRlc3RpbmF0aW9uSG9zdCkpOwog
ICAgIE5TU3RyaW5nICpkZXN0aW5hdGlvbkhvc3ROUyA9IChfX2JyaWRnZSBOU1N0cmluZyAqKWhv
c3RDRi5nZXQoKTsKLSAgICBbV2ViVmlldyBfYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlX
aXRoU291cmNlT3JpZ2luOnNvdXJjZU9yaWdpbk5TIGRlc3RpbmF0aW9uUHJvdG9jb2w6ZGVzdGlu
YXRpb25Qcm90b2NvbE5TIGRlc3RpbmF0aW9uSG9zdDpkZXN0aW5hdGlvbkhvc3ROUyBhbGxvd0Rl
c3RpbmF0aW9uU3ViZG9tYWluczphbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluc107CisgICAgW1dl
YlZpZXcgX2FkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5V2l0aFNvdXJjZU9yaWdpbjpzb3Vy
Y2VPcmlnaW5OUyBkZXN0aW5hdGlvblByb3RvY29sOmRlc3RpbmF0aW9uUHJvdG9jb2xOUyBkZXN0
aW5hdGlvbkhvc3Q6ZGVzdGluYXRpb25Ib3N0TlMgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnM6
YWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnNdOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnJlbW92
ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNT
dHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0
LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQpAQCAtNzcxLDcgKzc3MSw3IEBAIHZv
aWQgVGVzdFJ1bm5lcjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGUKICAgICBOU1N0cmluZyAqZGVz
dGluYXRpb25Qcm90b2NvbE5TID0gKF9fYnJpZGdlIE5TU3RyaW5nICopcHJvdG9jb2xDRi5nZXQo
KTsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGhvc3RDRiA9IGFkb3B0Q0YoSlNTdHJpbmdD
b3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGVzdGluYXRpb25Ib3N0KSk7CiAgICAg
TlNTdHJpbmcgKmRlc3RpbmF0aW9uSG9zdE5TID0gKF9fYnJpZGdlIE5TU3RyaW5nICopaG9zdENG
LmdldCgpOwotICAgIFtXZWJWaWV3IF9yZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeVdp
dGhTb3VyY2VPcmlnaW46c291cmNlT3JpZ2luTlMgZGVzdGluYXRpb25Qcm90b2NvbDpkZXN0aW5h
dGlvblByb3RvY29sTlMgZGVzdGluYXRpb25Ib3N0OmRlc3RpbmF0aW9uSG9zdE5TIGFsbG93RGVz
dGluYXRpb25TdWJkb21haW5zOmFsbG93RGVzdGluYXRpb25TdWJkb21haW5zXTsKKyAgICBbV2Vi
VmlldyBfcmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnlXaXRoU291cmNlT3JpZ2luOnNv
dXJjZU9yaWdpbk5TIGRlc3RpbmF0aW9uUHJvdG9jb2w6ZGVzdGluYXRpb25Qcm90b2NvbE5TIGRl
c3RpbmF0aW9uSG9zdDpkZXN0aW5hdGlvbkhvc3ROUyBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlu
czphbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluc107CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6c2V0
U2Nyb2xsYmFyUG9saWN5KEpTU3RyaW5nUmVmIG9yaWVudGF0aW9uLCBKU1N0cmluZ1JlZiBwb2xp
Y3kpCkBAIC03ODMsMTQgKzc4MywxNCBAQCB2b2lkIFRlc3RSdW5uZXI6OmFkZFVzZXJTY3JpcHQo
SlNTdHJpbmdSCiB7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzb3VyY2VDRiA9IGFkb3B0
Q0YoSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc291cmNlKSk7CiAg
ICAgTlNTdHJpbmcgKnNvdXJjZU5TID0gKF9fYnJpZGdlIE5TU3RyaW5nICopc291cmNlQ0YuZ2V0
KCk7Ci0gICAgW1dlYlZpZXcgX2FkZFVzZXJTY3JpcHRUb0dyb3VwOkAib3JnLndlYmtpdC5EdW1w
UmVuZGVyVHJlZSIgd29ybGQ6W1dlYlNjcmlwdFdvcmxkIHdvcmxkXSBzb3VyY2U6c291cmNlTlMg
dXJsOm5pbCB3aGl0ZWxpc3Q6bmlsIGJsYWNrbGlzdDpuaWwgaW5qZWN0aW9uVGltZToocnVuQXRT
dGFydCA/IFdlYkluamVjdEF0RG9jdW1lbnRTdGFydCA6IFdlYkluamVjdEF0RG9jdW1lbnRFbmQp
IGluamVjdGVkRnJhbWVzOihhbGxGcmFtZXMgPyBXZWJJbmplY3RJbkFsbEZyYW1lcyA6IFdlYklu
amVjdEluVG9wRnJhbWVPbmx5KV07CisgICAgW1dlYlZpZXcgX2FkZFVzZXJTY3JpcHRUb0dyb3Vw
OkAib3JnLndlYmtpdC5EdW1wUmVuZGVyVHJlZSIgd29ybGQ6W1dlYlNjcmlwdFdvcmxkIHdvcmxk
XSBzb3VyY2U6c291cmNlTlMgdXJsOm5pbCBpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpuaWwg
ZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6bmlsIGluamVjdGlvblRpbWU6KHJ1bkF0U3RhcnQg
PyBXZWJJbmplY3RBdERvY3VtZW50U3RhcnQgOiBXZWJJbmplY3RBdERvY3VtZW50RW5kKSBpbmpl
Y3RlZEZyYW1lczooYWxsRnJhbWVzID8gV2ViSW5qZWN0SW5BbGxGcmFtZXMgOiBXZWJJbmplY3RJ
blRvcEZyYW1lT25seSldOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OmFkZFVzZXJTdHlsZVNoZWV0
KEpTU3RyaW5nUmVmIHNvdXJjZSwgYm9vbCBhbGxGcmFtZXMpCiB7CiAgICAgUmV0YWluUHRyPENG
U3RyaW5nUmVmPiBzb3VyY2VDRiA9IGFkb3B0Q0YoSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgc291cmNlKSk7CiAgICAgTlNTdHJpbmcgKnNvdXJjZU5TID0gKF9fYnJp
ZGdlIE5TU3RyaW5nICopc291cmNlQ0YuZ2V0KCk7Ci0gICAgW1dlYlZpZXcgX2FkZFVzZXJTdHls
ZVNoZWV0VG9Hcm91cDpAIm9yZy53ZWJraXQuRHVtcFJlbmRlclRyZWUiIHdvcmxkOltXZWJTY3Jp
cHRXb3JsZCB3b3JsZF0gc291cmNlOnNvdXJjZU5TIHVybDpuaWwgd2hpdGVsaXN0Om5pbCBibGFj
a2xpc3Q6bmlsIGluamVjdGVkRnJhbWVzOihhbGxGcmFtZXMgPyBXZWJJbmplY3RJbkFsbEZyYW1l
cyA6IFdlYkluamVjdEluVG9wRnJhbWVPbmx5KV07CisgICAgW1dlYlZpZXcgX2FkZFVzZXJTdHls
ZVNoZWV0VG9Hcm91cDpAIm9yZy53ZWJraXQuRHVtcFJlbmRlclRyZWUiIHdvcmxkOltXZWJTY3Jp
cHRXb3JsZCB3b3JsZF0gc291cmNlOnNvdXJjZU5TIHVybDpuaWwgaW5jbHVkZU1hdGNoUGF0dGVy
blN0cmluZ3M6bmlsIGV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOm5pbCBpbmplY3RlZEZyYW1l
czooYWxsRnJhbWVzID8gV2ViSW5qZWN0SW5BbGxGcmFtZXMgOiBXZWJJbmplY3RJblRvcEZyYW1l
T25seSldOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQo
Ym9vbCBlbmFibGVkKQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Vc2VyQ29udGVudENvbnRyb2xsZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyQ29udGVudENvbnRyb2xsZXIubW0JKHJldmlzaW9u
IDI2MzA0MikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlckNv
bnRlbnRDb250cm9sbGVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsMTMgKzEwNCwxMyBAQCBU
RVNUKFdLVXNlckNvbnRlbnRDb250cm9sbGVyLCBTY3JpcHRNZXNzCiAgICAgc2NyaXB0TWVzc2Fn
ZXMuY2xlYXIoKTsKICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKIAotICAgIFJl
dGFpblB0cjxfV0tVc2VyQ29udGVudFdvcmxkPiB3b3JsZCA9IFtfV0tVc2VyQ29udGVudFdvcmxk
IHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsKKyAgICBSZXRhaW5QdHI8V0tDb250ZW50V29y
bGQ+IHdvcmxkID0gW1dLQ29udGVudFdvcmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsK
IAogICAgIFJldGFpblB0cjxTY3JpcHRNZXNzYWdlSGFuZGxlcj4gaGFuZGxlciA9IGFkb3B0TlMo
W1tTY3JpcHRNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwotICAgIFJldGFpblB0cjxXS1Vz
ZXJTY3JpcHQ+IHVzZXJTY3JpcHQgPSBhZG9wdE5TKFtbV0tVc2VyU2NyaXB0IGFsbG9jXSBfaW5p
dFdpdGhTb3VyY2U6QCJ3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5w
b3N0TWVzc2FnZSgnSGVsbG8nKSIgaW5qZWN0aW9uVGltZTpXS1VzZXJTY3JpcHRJbmplY3Rpb25U
aW1lQXREb2N1bWVudFN0YXJ0IGZvck1haW5GcmFtZU9ubHk6Tk8gbGVnYWN5V2hpdGVsaXN0OkBb
XSBsZWdhY3lCbGFja2xpc3Q6QFtdIHVzZXJDb250ZW50V29ybGQ6d29ybGQuZ2V0KCldKTsKKyAg
ICBSZXRhaW5QdHI8V0tVc2VyU2NyaXB0PiB1c2VyU2NyaXB0ID0gYWRvcHROUyhbW1dLVXNlclNj
cmlwdCBhbGxvY10gX2luaXRXaXRoU291cmNlOkAid2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ0hlbGxvJykiIGluamVjdGlvblRpbWU6V0tVc2Vy
U2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRTdGFydCBmb3JNYWluRnJhbWVPbmx5Ok5PIGlu
Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOkBbXSBleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpA
W10gYXNzb2NpYXRlZFVSTDpuaWwgY29udGVudFdvcmxkOndvcmxkLmdldCgpIGRlZmVyUnVubmlu
Z1VudGlsTm90aWZpY2F0aW9uOk5PXSk7CiAKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmln
dXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9u
IGFsbG9jXSBpbml0XSk7Ci0gICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxl
cl0gX2FkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RIYW5k
bGVyIiB1c2VyQ29udGVudFdvcmxkOndvcmxkLmdldCgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24g
dXNlckNvbnRlbnRDb250cm9sbGVyXSBfYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlci5n
ZXQoKSBuYW1lOkAidGVzdEhhbmRsZXIiIGNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV07CiAgICAg
W1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkVXNlclNjcmlwdDp1c2Vy
U2NyaXB0LmdldCgpXTsKIAogICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9w
dE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAw
LCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwpAQCAtMzc2LDcgKzM3
Niw3IEBAIFRFU1QoV0tVc2VyQ29udGVudENvbnRyb2xsZXIsIEFkZFVzZXJTdHkKIHsKICAgICBS
ZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAKLSAgICBSZXRhaW5QdHI8
X1dLVXNlclN0eWxlU2hlZXQ+IHN0eWxlU2hlZXQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hl
ZXQgYWxsb2NdIGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2UgZm9yTWFpbkZyYW1lT25s
eTpZRVNdKTsKKyAgICBSZXRhaW5QdHI8X1dLVXNlclN0eWxlU2hlZXQ+IHN0eWxlU2hlZXQgPSBh
ZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hlZXQgYWxsb2NdIGluaXRXaXRoU291cmNlOnN0eWxlU2hl
ZXRTb3VyY2UgZm9yV0tXZWJWaWV3Om5pbCBmb3JNYWluRnJhbWVPbmx5OllFUyBpbmNsdWRlTWF0
Y2hQYXR0ZXJuU3RyaW5nczpuaWwgZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6bmlsIGJhc2VV
Ukw6bmlsIGxldmVsOl9XS1VzZXJTdHlsZVVzZXJMZXZlbCBjb250ZW50V29ybGQ6bmlsXSk7CiAg
ICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gX2FkZFVzZXJTdHlsZVNo
ZWV0OnN0eWxlU2hlZXQuZ2V0KCldOwogCiAgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmll
dyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CkBAIC0z
ODksOCArMzg5LDggQEAgVEVTVChXS1VzZXJDb250ZW50Q29udHJvbGxlciwgQWRkVXNlclN0eQog
CiBURVNUKFdLVXNlckNvbnRlbnRDb250cm9sbGVyLCBOb25DYW5vbmljYWxpemVkVVJMKQogewot
ICAgIFJldGFpblB0cjxfV0tVc2VyQ29udGVudFdvcmxkPiB3b3JsZCA9IFtfV0tVc2VyQ29udGVu
dFdvcmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsKLSAgICBSZXRhaW5QdHI8X1dLVXNl
clN0eWxlU2hlZXQ+IHN0eWxlU2hlZXQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hlZXQgYWxs
b2NdIGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2UgZm9yTWFpbkZyYW1lT25seTpOTyBs
ZWdhY3lXaGl0ZWxpc3Q6QFtdIGxlZ2FjeUJsYWNrbGlzdDpAW10gYmFzZVVSTDpbW05TVVJMIGFs
bG9jXSBpbml0V2l0aFN0cmluZzpAImh0dHA6Ly9DYW1lbENhc2UvIl0gdXNlckNvbnRlbnRXb3Js
ZDp3b3JsZC5nZXQoKV0pOworICAgIFJldGFpblB0cjxXS0NvbnRlbnRXb3JsZD4gd29ybGQgPSBb
V0tDb250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRlc3RXb3JsZCJdOworICAgIFJldGFpblB0
cjxfV0tVc2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldCA9IGFkb3B0TlMoW1tfV0tVc2VyU3R5bGVT
aGVldCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6c3R5bGVTaGVldFNvdXJjZSBmb3JXS1dlYlZpZXc6
bmlsIGZvck1haW5GcmFtZU9ubHk6Tk8gaW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGV4
Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOkBbXSBiYXNlVVJMOltbW05TVVJMIGFsbG9jXSBpbml0
V2l0aFN0cmluZzpAImh0dHA6Ly9DYW1lbENhc2UvIl0gYXV0b3JlbGVhc2VdIGxldmVsOl9XS1Vz
ZXJTdHlsZVVzZXJMZXZlbCBjb250ZW50V29ybGQ6d29ybGQuZ2V0KCldKTsKIH0KIAogVEVTVChX
S1VzZXJDb250ZW50Q29udHJvbGxlciwgQWRkVXNlclN0eWxlU2hlZXRBZnRlckNyZWF0aW5nVmll
dykKQEAgLTQ2NCwxMCArNDY0LDEwIEBAIFRFU1QoV0tVc2VyQ29udGVudENvbnRyb2xsZXIsIFVz
ZXJTdHlsZVMKIHsKICAgICBSZXRhaW5QdHI8V0tVc2VyQ29udGVudENvbnRyb2xsZXI+IHVzZXJD
b250ZW50Q29udHJvbGxlciA9IGFkb3B0TlMoW1tXS1VzZXJDb250ZW50Q29udHJvbGxlciBhbGxv
Y10gaW5pdF0pOwogCi0gICAgUmV0YWluUHRyPF9XS1VzZXJDb250ZW50V29ybGQ+IHdvcmxkID0g
W19XS1VzZXJDb250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRlc3RXb3JsZCJdOworICAgIFJl
dGFpblB0cjxXS0NvbnRlbnRXb3JsZD4gd29ybGQgPSBbV0tDb250ZW50V29ybGQgd29ybGRXaXRo
TmFtZTpAIlRlc3RXb3JsZCJdOwogCiAgICAgUmV0YWluUHRyPF9XS1VzZXJTdHlsZVNoZWV0PiBz
dHlsZVNoZWV0ID0gYWRvcHROUyhbW19XS1VzZXJTdHlsZVNoZWV0IGFsbG9jXSBpbml0V2l0aFNv
dXJjZTpzdHlsZVNoZWV0U291cmNlIGZvck1haW5GcmFtZU9ubHk6Tk9dKTsKLSAgICBSZXRhaW5Q
dHI8X1dLVXNlclN0eWxlU2hlZXQ+IHN0eWxlU2hlZXRBc3NvY2lhdGVkV2l0aFdvcmxkID0gYWRv
cHROUyhbW19XS1VzZXJTdHlsZVNoZWV0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpzdHlsZVNoZWV0
U291cmNlIGZvck1haW5GcmFtZU9ubHk6Tk8gbGVnYWN5V2hpdGVsaXN0OkBbXSBsZWdhY3lCbGFj
a2xpc3Q6QFtdIHVzZXJDb250ZW50V29ybGQ6d29ybGQuZ2V0KCldKTsKKyAgICBSZXRhaW5QdHI8
X1dLVXNlclN0eWxlU2hlZXQ+IHN0eWxlU2hlZXRBc3NvY2lhdGVkV2l0aFdvcmxkID0gYWRvcHRO
UyhbW19XS1VzZXJTdHlsZVNoZWV0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpzdHlsZVNoZWV0U291
cmNlIGZvcldLV2ViVmlldzpuaWwgZm9yTWFpbkZyYW1lT25seTpOTyBpbmNsdWRlTWF0Y2hQYXR0
ZXJuU3RyaW5nczpAW10gZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGJhc2VVUkw6bmls
IGxldmVsOl9XS1VzZXJTdHlsZVVzZXJMZXZlbCBjb250ZW50V29ybGQ6d29ybGQuZ2V0KCldKTsK
ICAgICAKICAgICBbdXNlckNvbnRlbnRDb250cm9sbGVyIF9hZGRVc2VyU3R5bGVTaGVldDpzdHls
ZVNoZWV0LmdldCgpXTsKICAgICBbdXNlckNvbnRlbnRDb250cm9sbGVyIF9hZGRVc2VyU3R5bGVT
aGVldDpzdHlsZVNoZWV0QXNzb2NpYXRlZFdpdGhXb3JsZC5nZXQoKV07CkBAIC00ODUsMTEgKzQ4
NSwxMSBAQCBURVNUKFdLVXNlckNvbnRlbnRDb250cm9sbGVyLCBVc2VyU3R5bGVTCiB7CiAgICAg
UmV0YWluUHRyPFdLVXNlckNvbnRlbnRDb250cm9sbGVyPiB1c2VyQ29udGVudENvbnRyb2xsZXIg
PSBhZG9wdE5TKFtbV0tVc2VyQ29udGVudENvbnRyb2xsZXIgYWxsb2NdIGluaXRdKTsKIAotICAg
IFJldGFpblB0cjxfV0tVc2VyQ29udGVudFdvcmxkPiB3b3JsZCA9IFtfV0tVc2VyQ29udGVudFdv
cmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsKKyAgICBSZXRhaW5QdHI8V0tDb250ZW50
V29ybGQ+IHdvcmxkID0gW1dLQ29udGVudFdvcmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQi
XTsKIAogICAgIFJldGFpblB0cjxfV0tVc2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldCA9IGFkb3B0
TlMoW1tfV0tVc2VyU3R5bGVTaGVldCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6c3R5bGVTaGVldFNv
dXJjZSBmb3JNYWluRnJhbWVPbmx5Ok5PXSk7Ci0gICAgUmV0YWluUHRyPF9XS1VzZXJTdHlsZVNo
ZWV0PiBzdHlsZVNoZWV0QXNzb2NpYXRlZFdpdGhXb3JsZCA9IGFkb3B0TlMoW1tfV0tVc2VyU3R5
bGVTaGVldCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6c3R5bGVTaGVldFNvdXJjZSBmb3JNYWluRnJh
bWVPbmx5Ok5PIGxlZ2FjeVdoaXRlbGlzdDpAW10gbGVnYWN5QmxhY2tsaXN0OkBbXSB1c2VyQ29u
dGVudFdvcmxkOndvcmxkLmdldCgpXSk7Ci0gICAgUmV0YWluUHRyPF9XS1VzZXJTdHlsZVNoZWV0
PiBzdHlsZVNoZWV0QXNzb2NpYXRlZFdpdGhXb3JsZDIgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxl
U2hlZXQgYWxsb2NdIGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2UgZm9yTWFpbkZyYW1l
T25seTpOTyBsZWdhY3lXaGl0ZWxpc3Q6QFtdIGxlZ2FjeUJsYWNrbGlzdDpAW10gdXNlckNvbnRl
bnRXb3JsZDp3b3JsZC5nZXQoKV0pOworICAgIFJldGFpblB0cjxfV0tVc2VyU3R5bGVTaGVldD4g
c3R5bGVTaGVldEFzc29jaWF0ZWRXaXRoV29ybGQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hl
ZXQgYWxsb2NdIGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2UgZm9yV0tXZWJWaWV3Om5p
bCBmb3JNYWluRnJhbWVPbmx5Ok5PIGluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOkBbXSBleGNs
dWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpAW10gYmFzZVVSTDpuaWwgbGV2ZWw6X1dLVXNlclN0eWxl
VXNlckxldmVsIGNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOworICAgIFJldGFpblB0cjxfV0tV
c2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldEFzc29jaWF0ZWRXaXRoV29ybGQyID0gYWRvcHROUyhb
W19XS1VzZXJTdHlsZVNoZWV0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpzdHlsZVNoZWV0U291cmNl
IGZvcldLV2ViVmlldzpuaWwgZm9yTWFpbkZyYW1lT25seTpOTyBpbmNsdWRlTWF0Y2hQYXR0ZXJu
U3RyaW5nczpAW10gZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGJhc2VVUkw6bmlsIGxl
dmVsOl9XS1VzZXJTdHlsZVVzZXJMZXZlbCBjb250ZW50V29ybGQ6d29ybGQuZ2V0KCldKTsKICAg
ICAKICAgICBbdXNlckNvbnRlbnRDb250cm9sbGVyIF9hZGRVc2VyU3R5bGVTaGVldDpzdHlsZVNo
ZWV0LmdldCgpXTsKICAgICBbdXNlckNvbnRlbnRDb250cm9sbGVyIF9hZGRVc2VyU3R5bGVTaGVl
dDpzdHlsZVNoZWV0QXNzb2NpYXRlZFdpdGhXb3JsZC5nZXQoKV07CkBAIC01MDAsNyArNTAwLDcg
QEAgVEVTVChXS1VzZXJDb250ZW50Q29udHJvbGxlciwgVXNlclN0eWxlUwogICAgIEVYUEVDVF9F
UShzdHlsZVNoZWV0QXNzb2NpYXRlZFdpdGhXb3JsZC5nZXQoKSwgW3VzZXJDb250ZW50Q29udHJv
bGxlciBfdXNlclN0eWxlU2hlZXRzXVsxXSk7CiAgICAgRVhQRUNUX0VRKHN0eWxlU2hlZXRBc3Nv
Y2lhdGVkV2l0aFdvcmxkMi5nZXQoKSwgW3VzZXJDb250ZW50Q29udHJvbGxlciBfdXNlclN0eWxl
U2hlZXRzXVsyXSk7CiAKLSAgICBbdXNlckNvbnRlbnRDb250cm9sbGVyIF9yZW1vdmVBbGxVc2Vy
U3R5bGVTaGVldHNBc3NvY2lhdGVkV2l0aFVzZXJDb250ZW50V29ybGQ6d29ybGQuZ2V0KCldOwor
ICAgIFt1c2VyQ29udGVudENvbnRyb2xsZXIgX3JlbW92ZUFsbFVzZXJTdHlsZVNoZWV0c0Fzc29j
aWF0ZWRXaXRoQ29udGVudFdvcmxkOndvcmxkLmdldCgpXTsKIAogICAgIEVYUEVDVF9FUSgxdSwg
W3VzZXJDb250ZW50Q29udHJvbGxlciBfdXNlclN0eWxlU2hlZXRzXS5jb3VudCk7CiAgICAgRVhQ
RUNUX0VRKHN0eWxlU2hlZXQuZ2V0KCksIFt1c2VyQ29udGVudENvbnRyb2xsZXIgX3VzZXJTdHls
ZVNoZWV0c11bMF0pOwpAQCAtNTEwLDExICs1MTAsMTEgQEAgVEVTVChXS1VzZXJDb250ZW50Q29u
dHJvbGxlciwgVXNlclN0eWxlUwogewogICAgIFJldGFpblB0cjxXS1VzZXJDb250ZW50Q29udHJv
bGxlcj4gdXNlckNvbnRlbnRDb250cm9sbGVyID0gYWRvcHROUyhbW1dLVXNlckNvbnRlbnRDb250
cm9sbGVyIGFsbG9jXSBpbml0XSk7CiAKLSAgICBSZXRhaW5QdHI8X1dLVXNlckNvbnRlbnRXb3Js
ZD4gd29ybGQgPSBbX1dLVXNlckNvbnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1lOkAiVGVzdFdvcmxk
Il07CisgICAgUmV0YWluUHRyPFdLQ29udGVudFdvcmxkPiB3b3JsZCA9IFtXS0NvbnRlbnRXb3Js
ZCB3b3JsZFdpdGhOYW1lOkAiVGVzdFdvcmxkIl07CiAKICAgICBSZXRhaW5QdHI8X1dLVXNlclN0
eWxlU2hlZXQ+IHN0eWxlU2hlZXQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hlZXQgYWxsb2Nd
IGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2UgZm9yTWFpbkZyYW1lT25seTpOT10pOwot
ICAgIFJldGFpblB0cjxfV0tVc2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldEFzc29jaWF0ZWRXaXRo
V29ybGQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hlZXQgYWxsb2NdIGluaXRXaXRoU291cmNl
OnN0eWxlU2hlZXRTb3VyY2UgZm9yTWFpbkZyYW1lT25seTpOTyBsZWdhY3lXaGl0ZWxpc3Q6QFtd
IGxlZ2FjeUJsYWNrbGlzdDpAW10gdXNlckNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOwotICAg
IFJldGFpblB0cjxfV0tVc2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldEFzc29jaWF0ZWRXaXRoV29y
bGQyID0gYWRvcHROUyhbW19XS1VzZXJTdHlsZVNoZWV0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpz
dHlsZVNoZWV0U291cmNlIGZvck1haW5GcmFtZU9ubHk6Tk8gbGVnYWN5V2hpdGVsaXN0OkBbXSBs
ZWdhY3lCbGFja2xpc3Q6QFtdIHVzZXJDb250ZW50V29ybGQ6d29ybGQuZ2V0KCldKTsKKyAgICBS
ZXRhaW5QdHI8X1dLVXNlclN0eWxlU2hlZXQ+IHN0eWxlU2hlZXRBc3NvY2lhdGVkV2l0aFdvcmxk
ID0gYWRvcHROUyhbW19XS1VzZXJTdHlsZVNoZWV0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpzdHls
ZVNoZWV0U291cmNlIGZvcldLV2ViVmlldzpuaWwgZm9yTWFpbkZyYW1lT25seTpOTyBpbmNsdWRl
TWF0Y2hQYXR0ZXJuU3RyaW5nczpAW10gZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGJh
c2VVUkw6bmlsIGxldmVsOl9XS1VzZXJTdHlsZVVzZXJMZXZlbCBjb250ZW50V29ybGQ6d29ybGQu
Z2V0KCldKTsKKyAgICBSZXRhaW5QdHI8X1dLVXNlclN0eWxlU2hlZXQ+IHN0eWxlU2hlZXRBc3Nv
Y2lhdGVkV2l0aFdvcmxkMiA9IGFkb3B0TlMoW1tfV0tVc2VyU3R5bGVTaGVldCBhbGxvY10gaW5p
dFdpdGhTb3VyY2U6c3R5bGVTaGVldFNvdXJjZSBmb3JXS1dlYlZpZXc6bmlsIGZvck1haW5GcmFt
ZU9ubHk6Tk8gaW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGV4Y2x1ZGVNYXRjaFBhdHRl
cm5TdHJpbmdzOkBbXSBiYXNlVVJMOm5pbCBsZXZlbDpfV0tVc2VyU3R5bGVVc2VyTGV2ZWwgY29u
dGVudFdvcmxkOndvcmxkLmdldCgpXSk7CiAgICAgCiAgICAgW3VzZXJDb250ZW50Q29udHJvbGxl
ciBfYWRkVXNlclN0eWxlU2hlZXQ6c3R5bGVTaGVldC5nZXQoKV07CiAgICAgW3VzZXJDb250ZW50
Q29udHJvbGxlciBfYWRkVXNlclN0eWxlU2hlZXQ6c3R5bGVTaGVldEFzc29jaWF0ZWRXaXRoV29y
bGQuZ2V0KCldOwpAQCAtNTI1LDcgKzUyNSw3IEBAIFRFU1QoV0tVc2VyQ29udGVudENvbnRyb2xs
ZXIsIFVzZXJTdHlsZVMKICAgICBFWFBFQ1RfRVEoc3R5bGVTaGVldEFzc29jaWF0ZWRXaXRoV29y
bGQuZ2V0KCksIFt1c2VyQ29udGVudENvbnRyb2xsZXIgX3VzZXJTdHlsZVNoZWV0c11bMV0pOwog
ICAgIEVYUEVDVF9FUShzdHlsZVNoZWV0QXNzb2NpYXRlZFdpdGhXb3JsZDIuZ2V0KCksIFt1c2Vy
Q29udGVudENvbnRyb2xsZXIgX3VzZXJTdHlsZVNoZWV0c11bMl0pOwogCi0gICAgW3VzZXJDb250
ZW50Q29udHJvbGxlciBfcmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzQXNzb2NpYXRlZFdpdGhVc2Vy
Q29udGVudFdvcmxkOltfV0tVc2VyQ29udGVudFdvcmxkIG5vcm1hbFdvcmxkXV07CisgICAgW3Vz
ZXJDb250ZW50Q29udHJvbGxlciBfcmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzQXNzb2NpYXRlZFdp
dGhDb250ZW50V29ybGQ6W1dLQ29udGVudFdvcmxkIHBhZ2VXb3JsZF1dOwogCiAgICAgRVhQRUNU
X0VRKDJ1LCBbdXNlckNvbnRlbnRDb250cm9sbGVyIF91c2VyU3R5bGVTaGVldHNdLmNvdW50KTsK
ICAgICBFWFBFQ1RfRVEoc3R5bGVTaGVldEFzc29jaWF0ZWRXaXRoV29ybGQuZ2V0KCksIFt1c2Vy
Q29udGVudENvbnRyb2xsZXIgX3VzZXJTdHlsZVNoZWV0c11bMF0pOwpAQCAtNTQ2LDggKzU0Niw4
IEBAIFRFU1QoV0tVc2VyQ29udGVudENvbnRyb2xsZXIsIFVzZXJTdHlsZVMKICAgICBleHBlY3RT
Y3JpcHRFdmFsdWF0ZXNUb0NvbG9yKHRhcmdldFdlYlZpZXcuZ2V0KCksIGJhY2tncm91bmRDb2xv
clNjcmlwdCwgcmVkSW5SR0IpOwogICAgIGV4cGVjdFNjcmlwdEV2YWx1YXRlc1RvQ29sb3Iob3Ro
ZXJXZWJWaWV3LmdldCgpLCBiYWNrZ3JvdW5kQ29sb3JTY3JpcHQsIHJlZEluUkdCKTsKIAotICAg
IFJldGFpblB0cjxfV0tVc2VyQ29udGVudFdvcmxkPiB3b3JsZCA9IFtfV0tVc2VyQ29udGVudFdv
cmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsKLSAgICBSZXRhaW5QdHI8X1dLVXNlclN0
eWxlU2hlZXQ+IHN0eWxlU2hlZXQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hlZXQgYWxsb2Nd
IGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2UgZm9yV0tXZWJWaWV3OnRhcmdldFdlYlZp
ZXcuZ2V0KCkgZm9yTWFpbkZyYW1lT25seTpZRVMgbGV2ZWw6X1dLVXNlclN0eWxlQXV0aG9yTGV2
ZWwgdXNlckNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOworICAgIFJldGFpblB0cjxXS0NvbnRl
bnRXb3JsZD4gd29ybGQgPSBbV0tDb250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRlc3RXb3Js
ZCJdOworICAgIGF1dG8gc3R5bGVTaGVldCA9IGFkb3B0TlMoW1tfV0tVc2VyU3R5bGVTaGVldCBh
bGxvY10gaW5pdFdpdGhTb3VyY2U6c3R5bGVTaGVldFNvdXJjZSBmb3JXS1dlYlZpZXc6dGFyZ2V0
V2ViVmlldy5nZXQoKSBmb3JNYWluRnJhbWVPbmx5OllFUyBpbmNsdWRlTWF0Y2hQYXR0ZXJuU3Ry
aW5nczpuaWwgZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6bmlsIGJhc2VVUkw6bmlsIGxldmVs
Ol9XS1VzZXJTdHlsZUF1dGhvckxldmVsIGNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOwogICAg
IFtbdGFyZ2V0V2ViVmlldyBjb25maWd1cmF0aW9uXS51c2VyQ29udGVudENvbnRyb2xsZXIgX2Fk
ZFVzZXJTdHlsZVNoZWV0OnN0eWxlU2hlZXQuZ2V0KCldOwogCiAgICAgZXhwZWN0U2NyaXB0RXZh
bHVhdGVzVG9Db2xvcih0YXJnZXRXZWJWaWV3LmdldCgpLCBiYWNrZ3JvdW5kQ29sb3JTY3JpcHQs
IGdyZWVuSW5SR0IpOwpAQCAtNTU5LDggKzU1OSw4IEBAIFRFU1QoV0tVc2VyQ29udGVudENvbnRy
b2xsZXIsIFVzZXJTdHlsZVMKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB0YXJnZXRXZWJWaWV3
ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAs
IDAsIDgwMCwgNjAwKV0pOwogICAgIFt0YXJnZXRXZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGJv
ZHkgc3R5bGU9J2JhY2tncm91bmQtY29sb3I6IHJlZDsnPjwvYm9keT4iIGJhc2VVUkw6bmlsXTsK
IAotICAgIFJldGFpblB0cjxfV0tVc2VyQ29udGVudFdvcmxkPiB3b3JsZCA9IFtfV0tVc2VyQ29u
dGVudFdvcmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsKLSAgICBSZXRhaW5QdHI8X1dL
VXNlclN0eWxlU2hlZXQ+IHN0eWxlU2hlZXQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hlZXQg
YWxsb2NdIGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2UgZm9yV0tXZWJWaWV3OnRhcmdl
dFdlYlZpZXcuZ2V0KCkgZm9yTWFpbkZyYW1lT25seTpZRVMgbGV2ZWw6X1dLVXNlclN0eWxlQXV0
aG9yTGV2ZWwgdXNlckNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOworICAgIFJldGFpblB0cjxX
S0NvbnRlbnRXb3JsZD4gd29ybGQgPSBbV0tDb250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRl
c3RXb3JsZCJdOworICAgIFJldGFpblB0cjxfV0tVc2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldCA9
IGFkb3B0TlMoW1tfV0tVc2VyU3R5bGVTaGVldCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6c3R5bGVT
aGVldFNvdXJjZSBmb3JXS1dlYlZpZXc6dGFyZ2V0V2ViVmlldy5nZXQoKSBmb3JNYWluRnJhbWVP
bmx5OllFUyBpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpuaWwgZXhjbHVkZU1hdGNoUGF0dGVy
blN0cmluZ3M6bmlsIGJhc2VVUkw6bmlsIGxldmVsOl9XS1VzZXJTdHlsZUF1dGhvckxldmVsIGNv
bnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOwogICAgIFtbdGFyZ2V0V2ViVmlldyBjb25maWd1cmF0
aW9uXS51c2VyQ29udGVudENvbnRyb2xsZXIgX2FkZFVzZXJTdHlsZVNoZWV0OnN0eWxlU2hlZXQu
Z2V0KCldOwogCiAgICAgW3RhcmdldFdlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmln
YXRpb25dOwpAQCAtNTczLDggKzU3Myw4IEBAIFRFU1QoV0tVc2VyQ29udGVudENvbnRyb2xsZXIs
IFVzZXJTdHlsZVMKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB0YXJnZXRXZWJWaWV3ID0gYWRv
cHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgw
MCwgNjAwKV0pOwogICAgIFt0YXJnZXRXZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGJvZHkgc3R5
bGU9J2JhY2tncm91bmQtY29sb3I6IHJlZDsnPjwvYm9keT4iIGJhc2VVUkw6bmlsXTsKIAotICAg
IFJldGFpblB0cjxfV0tVc2VyQ29udGVudFdvcmxkPiB3b3JsZCA9IFtfV0tVc2VyQ29udGVudFdv
cmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsKLSAgICBSZXRhaW5QdHI8X1dLVXNlclN0
eWxlU2hlZXQ+IHN0eWxlU2hlZXQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hlZXQgYWxsb2Nd
IGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2UgZm9yV0tXZWJWaWV3OnRhcmdldFdlYlZp
ZXcuZ2V0KCkgZm9yTWFpbkZyYW1lT25seTpZRVMgbGV2ZWw6X1dLVXNlclN0eWxlQXV0aG9yTGV2
ZWwgdXNlckNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOworICAgIFJldGFpblB0cjxXS0NvbnRl
bnRXb3JsZD4gd29ybGQgPSBbV0tDb250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRlc3RXb3Js
ZCJdOworICAgIFJldGFpblB0cjxfV0tVc2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldCA9IGFkb3B0
TlMoW1tfV0tVc2VyU3R5bGVTaGVldCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6c3R5bGVTaGVldFNv
dXJjZSBmb3JXS1dlYlZpZXc6dGFyZ2V0V2ViVmlldy5nZXQoKSBmb3JNYWluRnJhbWVPbmx5OllF
UyBpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpuaWwgZXhjbHVkZU1hdGNoUGF0dGVyblN0cmlu
Z3M6bmlsIGJhc2VVUkw6bmlsIGxldmVsOl9XS1VzZXJTdHlsZUF1dGhvckxldmVsIGNvbnRlbnRX
b3JsZDp3b3JsZC5nZXQoKV0pOwogICAgIFtbdGFyZ2V0V2ViVmlldyBjb25maWd1cmF0aW9uXS51
c2VyQ29udGVudENvbnRyb2xsZXIgX2FkZFVzZXJTdHlsZVNoZWV0OnN0eWxlU2hlZXQuZ2V0KCld
OwogICAgIFtbdGFyZ2V0V2ViVmlldyBjb25maWd1cmF0aW9uXS51c2VyQ29udGVudENvbnRyb2xs
ZXIgX3JlbW92ZVVzZXJTdHlsZVNoZWV0OnN0eWxlU2hlZXQuZ2V0KCldOwogCkBAIC01OTksOCAr
NTk5LDggQEAgVEVTVChXS1VzZXJDb250ZW50Q29udHJvbGxlciwgVXNlclN0eWxlUwogICAgIGV4
cGVjdFNjcmlwdEV2YWx1YXRlc1RvQ29sb3IodGFyZ2V0V2ViVmlldy5nZXQoKSwgYmFja2dyb3Vu
ZENvbG9yU2NyaXB0LCByZWRJblJHQik7CiAgICAgZXhwZWN0U2NyaXB0RXZhbHVhdGVzVG9Db2xv
cihvdGhlcldlYlZpZXcuZ2V0KCksIGJhY2tncm91bmRDb2xvclNjcmlwdCwgcmVkSW5SR0IpOwog
Ci0gICAgUmV0YWluUHRyPF9XS1VzZXJDb250ZW50V29ybGQ+IHdvcmxkID0gW19XS1VzZXJDb250
ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRlc3RXb3JsZCJdOwotICAgIFJldGFpblB0cjxfV0tV
c2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldCA9IGFkb3B0TlMoW1tfV0tVc2VyU3R5bGVTaGVldCBh
bGxvY10gaW5pdFdpdGhTb3VyY2U6c3R5bGVTaGVldFNvdXJjZSBmb3JXS1dlYlZpZXc6dGFyZ2V0
V2ViVmlldy5nZXQoKSBmb3JNYWluRnJhbWVPbmx5OllFUyBsZXZlbDpfV0tVc2VyU3R5bGVBdXRo
b3JMZXZlbCB1c2VyQ29udGVudFdvcmxkOndvcmxkLmdldCgpXSk7CisgICAgUmV0YWluUHRyPFdL
Q29udGVudFdvcmxkPiB3b3JsZCA9IFtXS0NvbnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1lOkAiVGVz
dFdvcmxkIl07CisgICAgUmV0YWluUHRyPF9XS1VzZXJTdHlsZVNoZWV0PiBzdHlsZVNoZWV0ID0g
YWRvcHROUyhbW19XS1VzZXJTdHlsZVNoZWV0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpzdHlsZVNo
ZWV0U291cmNlIGZvcldLV2ViVmlldzp0YXJnZXRXZWJWaWV3LmdldCgpIGZvck1haW5GcmFtZU9u
bHk6WUVTIGluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOm5pbCBleGNsdWRlTWF0Y2hQYXR0ZXJu
U3RyaW5nczpuaWwgYmFzZVVSTDpuaWwgbGV2ZWw6X1dLVXNlclN0eWxlQXV0aG9yTGV2ZWwgY29u
dGVudFdvcmxkOndvcmxkLmdldCgpXSk7CiAgICAgW1t0YXJnZXRXZWJWaWV3IGNvbmZpZ3VyYXRp
b25dLnVzZXJDb250ZW50Q29udHJvbGxlciBfYWRkVXNlclN0eWxlU2hlZXQ6c3R5bGVTaGVldC5n
ZXQoKV07CiAKICAgICBleHBlY3RTY3JpcHRFdmFsdWF0ZXNUb0NvbG9yKHRhcmdldFdlYlZpZXcu
Z2V0KCksIGJhY2tncm91bmRDb2xvclNjcmlwdCwgZ3JlZW5JblJHQik7CkBAIC02MTYsOCArNjE2
LDggQEAgVEVTVChXS1VzZXJDb250ZW50Q29udHJvbGxlciwgVXNlclN0eWxlUwogCiAgICAgZXhw
ZWN0U2NyaXB0RXZhbHVhdGVzVG9Db2xvcih3ZWJWaWV3LmdldCgpLCBiYWNrZ3JvdW5kQ29sb3JT
Y3JpcHQsIHJlZEluUkdCKTsKIAotICAgIFJldGFpblB0cjxfV0tVc2VyQ29udGVudFdvcmxkPiB3
b3JsZCA9IFtfV0tVc2VyQ29udGVudFdvcmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsK
LSAgICBSZXRhaW5QdHI8X1dLVXNlclN0eWxlU2hlZXQ+IHN0eWxlU2hlZXQgPSBhZG9wdE5TKFtb
X1dLVXNlclN0eWxlU2hlZXQgYWxsb2NdIGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2Ug
Zm9yV0tXZWJWaWV3OndlYlZpZXcuZ2V0KCkgZm9yTWFpbkZyYW1lT25seTpZRVMgbGV2ZWw6X1dL
VXNlclN0eWxlQXV0aG9yTGV2ZWwgdXNlckNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOworICAg
IFJldGFpblB0cjxXS0NvbnRlbnRXb3JsZD4gd29ybGQgPSBbV0tDb250ZW50V29ybGQgd29ybGRX
aXRoTmFtZTpAIlRlc3RXb3JsZCJdOworICAgIFJldGFpblB0cjxfV0tVc2VyU3R5bGVTaGVldD4g
c3R5bGVTaGVldCA9IGFkb3B0TlMoW1tfV0tVc2VyU3R5bGVTaGVldCBhbGxvY10gaW5pdFdpdGhT
b3VyY2U6c3R5bGVTaGVldFNvdXJjZSBmb3JXS1dlYlZpZXc6d2ViVmlldy5nZXQoKSBmb3JNYWlu
RnJhbWVPbmx5OllFUyBpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpuaWwgZXhjbHVkZU1hdGNo
UGF0dGVyblN0cmluZ3M6bmlsIGJhc2VVUkw6bmlsIGxldmVsOl9XS1VzZXJTdHlsZUF1dGhvckxl
dmVsIGNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOwogICAgIFtbd2ViVmlldyBjb25maWd1cmF0
aW9uXS51c2VyQ29udGVudENvbnRyb2xsZXIgX2FkZFVzZXJTdHlsZVNoZWV0OnN0eWxlU2hlZXQu
Z2V0KCldOwogCiAgICAgZXhwZWN0U2NyaXB0RXZhbHVhdGVzVG9Db2xvcih3ZWJWaWV3LmdldCgp
LCBiYWNrZ3JvdW5kQ29sb3JTY3JpcHQsIGdyZWVuSW5SR0IpOwpAQCAtNjM2LDggKzYzNiw4IEBA
IFRFU1QoV0tVc2VyQ29udGVudENvbnRyb2xsZXIsIFVzZXJTdHlsZVMKIAogICAgIGV4cGVjdFNj
cmlwdEV2YWx1YXRlc1RvQ29sb3Iod2ViVmlldy5nZXQoKSwgYmFja2dyb3VuZENvbG9yU2NyaXB0
LCByZWRJblJHQik7CiAKLSAgICBSZXRhaW5QdHI8X1dLVXNlckNvbnRlbnRXb3JsZD4gd29ybGQg
PSBbX1dLVXNlckNvbnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1lOkAiVGVzdFdvcmxkIl07Ci0gICAg
UmV0YWluUHRyPF9XS1VzZXJTdHlsZVNoZWV0PiBzdHlsZVNoZWV0ID0gYWRvcHROUyhbW19XS1Vz
ZXJTdHlsZVNoZWV0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpzdHlsZVNoZWV0U291cmNlIGZvcldL
V2ViVmlldzp3ZWJWaWV3LmdldCgpIGZvck1haW5GcmFtZU9ubHk6WUVTIGxldmVsOl9XS1VzZXJT
dHlsZUF1dGhvckxldmVsIHVzZXJDb250ZW50V29ybGQ6d29ybGQuZ2V0KCldKTsKKyAgICBSZXRh
aW5QdHI8V0tDb250ZW50V29ybGQ+IHdvcmxkID0gW1dLQ29udGVudFdvcmxkIHdvcmxkV2l0aE5h
bWU6QCJUZXN0V29ybGQiXTsKKyAgICBSZXRhaW5QdHI8X1dLVXNlclN0eWxlU2hlZXQ+IHN0eWxl
U2hlZXQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hlZXQgYWxsb2NdIGluaXRXaXRoU291cmNl
OnN0eWxlU2hlZXRTb3VyY2UgZm9yV0tXZWJWaWV3OndlYlZpZXcuZ2V0KCkgZm9yTWFpbkZyYW1l
T25seTpZRVMgaW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6bmlsIGV4Y2x1ZGVNYXRjaFBhdHRl
cm5TdHJpbmdzOm5pbCBiYXNlVVJMOm5pbCBsZXZlbDpfV0tVc2VyU3R5bGVBdXRob3JMZXZlbCBj
b250ZW50V29ybGQ6d29ybGQuZ2V0KCldKTsKICAgICBbW3dlYlZpZXcgY29uZmlndXJhdGlvbl0u
dXNlckNvbnRlbnRDb250cm9sbGVyIF9hZGRVc2VyU3R5bGVTaGVldDpzdHlsZVNoZWV0LmdldCgp
XTsKIAogICAgIGV4cGVjdFNjcmlwdEV2YWx1YXRlc1RvQ29sb3Iod2ViVmlldy5nZXQoKSwgYmFj
a2dyb3VuZENvbG9yU2NyaXB0LCBncmVlbkluUkdCKTsKQEAgLTY2MCw4ICs2NjAsOCBAQCBURVNU
KFdLVXNlckNvbnRlbnRDb250cm9sbGVyLCBVc2VyU3R5bGVTCiAKICAgICBleHBlY3RTY3JpcHRF
dmFsdWF0ZXNUb0NvbG9yKHdlYlZpZXcuZ2V0KCksIGJhY2tncm91bmRDb2xvclNjcmlwdCwgcmVk
SW5SR0IpOwogCi0gICAgUmV0YWluUHRyPF9XS1VzZXJDb250ZW50V29ybGQ+IHdvcmxkID0gW19X
S1VzZXJDb250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRlc3RXb3JsZCJdOwotICAgIFJldGFp
blB0cjxfV0tVc2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldCA9IGFkb3B0TlMoW1tfV0tVc2VyU3R5
bGVTaGVldCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6c3R5bGVTaGVldFNvdXJjZSBmb3JXS1dlYlZp
ZXc6d2ViVmlldy5nZXQoKSBmb3JNYWluRnJhbWVPbmx5OllFUyBsZXZlbDpfV0tVc2VyU3R5bGVB
dXRob3JMZXZlbCB1c2VyQ29udGVudFdvcmxkOndvcmxkLmdldCgpXSk7CisgICAgUmV0YWluUHRy
PFdLQ29udGVudFdvcmxkPiB3b3JsZCA9IFtXS0NvbnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1lOkAi
VGVzdFdvcmxkIl07CisgICAgUmV0YWluUHRyPF9XS1VzZXJTdHlsZVNoZWV0PiBzdHlsZVNoZWV0
ID0gYWRvcHROUyhbW19XS1VzZXJTdHlsZVNoZWV0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpzdHls
ZVNoZWV0U291cmNlIGZvcldLV2ViVmlldzp3ZWJWaWV3LmdldCgpIGZvck1haW5GcmFtZU9ubHk6
WUVTIGluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOm5pbCBleGNsdWRlTWF0Y2hQYXR0ZXJuU3Ry
aW5nczpuaWwgYmFzZVVSTDpuaWwgbGV2ZWw6X1dLVXNlclN0eWxlQXV0aG9yTGV2ZWwgY29udGVu
dFdvcmxkOndvcmxkLmdldCgpXSk7CiAgICAgW1t3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLnVzZXJD
b250ZW50Q29udHJvbGxlciBfYWRkVXNlclN0eWxlU2hlZXQ6c3R5bGVTaGVldC5nZXQoKV07CiAK
ICAgICBleHBlY3RTY3JpcHRFdmFsdWF0ZXNUb0NvbG9yKHdlYlZpZXcuZ2V0KCksIGJhY2tncm91
bmRDb2xvclNjcmlwdCwgZ3JlZW5JblJHQik7CkBAIC02OTYsOCArNjk2LDggQEAgVEVTVChXS1Vz
ZXJDb250ZW50Q29udHJvbGxlciwgVXNlclN0eWxlUwogCiAgICAgZXhwZWN0U2NyaXB0RXZhbHVh
dGVzVG9Db2xvcih3ZWJWaWV3LmdldCgpLCBiYWNrZ3JvdW5kQ29sb3JTY3JpcHQsIHJlZEluUkdC
KTsKIAotICAgIFJldGFpblB0cjxfV0tVc2VyQ29udGVudFdvcmxkPiB3b3JsZCA9IFtfV0tVc2Vy
Q29udGVudFdvcmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsKLSAgICBSZXRhaW5QdHI8
X1dLVXNlclN0eWxlU2hlZXQ+IHN0eWxlU2hlZXQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hl
ZXQgYWxsb2NdIGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2UgZm9yV0tXZWJWaWV3Ondl
YlZpZXcuZ2V0KCkgZm9yTWFpbkZyYW1lT25seTpZRVMgbGV2ZWw6X1dLVXNlclN0eWxlQXV0aG9y
TGV2ZWwgdXNlckNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOworICAgIFJldGFpblB0cjxXS0Nv
bnRlbnRXb3JsZD4gd29ybGQgPSBbV0tDb250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRlc3RX
b3JsZCJdOworICAgIFJldGFpblB0cjxfV0tVc2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldCA9IGFk
b3B0TlMoW1tfV0tVc2VyU3R5bGVTaGVldCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6c3R5bGVTaGVl
dFNvdXJjZSBmb3JXS1dlYlZpZXc6d2ViVmlldy5nZXQoKSBmb3JNYWluRnJhbWVPbmx5OllFUyBp
bmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpuaWwgZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6
bmlsIGJhc2VVUkw6bmlsIGxldmVsOl9XS1VzZXJTdHlsZUF1dGhvckxldmVsIGNvbnRlbnRXb3Js
ZDp3b3JsZC5nZXQoKV0pOwogICAgIFtbd2ViVmlldyBjb25maWd1cmF0aW9uXS51c2VyQ29udGVu
dENvbnRyb2xsZXIgX2FkZFVzZXJTdHlsZVNoZWV0OnN0eWxlU2hlZXQuZ2V0KCldOwogCiAgICAg
ZXhwZWN0U2NyaXB0RXZhbHVhdGVzVG9Db2xvcih3ZWJWaWV3LmdldCgpLCBiYWNrZ3JvdW5kQ29s
b3JTY3JpcHQsIGdyZWVuSW5SR0IpOwpAQCAtNzI0LDEwICs3MjQsMTEgQEAgVEVTVChXS1VzZXJD
b250ZW50Q29udHJvbGxlciwgVXNlclN0eWxlUwogCiBURVNUKFdLVXNlckNvbnRlbnRDb250cm9s
bGVyLCBVc2VyU3R5bGVTaGVldFNwZWNpZmljaXR5TGV2ZWxVc2VyKQogewotICAgIFJldGFpblB0
cjxfV0tVc2VyQ29udGVudFdvcmxkPiB3b3JsZCA9IFtfV0tVc2VyQ29udGVudFdvcmxkIHdvcmxk
V2l0aE5hbWU6QCJUZXN0V29ybGQiXTsKKyAgICBSZXRhaW5QdHI8V0tDb250ZW50V29ybGQ+IHdv
cmxkID0gW1dLQ29udGVudFdvcmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsKIAogICAg
IFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBSZXRhaW5QdHI8
X1dLVXNlclN0eWxlU2hlZXQ+IHN0eWxlU2hlZXQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hl
ZXQgYWxsb2NdIGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2VGb3JTcGVjaWZpY2l0eUxl
dmVsVGVzdHMgZm9yTWFpbkZyYW1lT25seTpZRVMgbGVnYWN5V2hpdGVsaXN0OkBbXSBsZWdhY3lC
bGFja2xpc3Q6QFtdIGJhc2VVUkw6W1tOU1VSTCBhbGxvY10gaW5pdFdpdGhTdHJpbmc6QCJodHRw
Oi8vZXhhbXBsZS5jb20vIl0gbGV2ZWw6X1dLVXNlclN0eWxlVXNlckxldmVsIHVzZXJDb250ZW50
V29ybGQ6d29ybGQuZ2V0KCldKTsKKyAgICAKKyAgICBSZXRhaW5QdHI8X1dLVXNlclN0eWxlU2hl
ZXQ+IHN0eWxlU2hlZXQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hlZXQgYWxsb2NdIGluaXRX
aXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2VGb3JTcGVjaWZpY2l0eUxldmVsVGVzdHMgZm9yV0tX
ZWJWaWV3Om5pbCBmb3JNYWluRnJhbWVPbmx5OllFUyBpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5n
czpAW10gZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGJhc2VVUkw6W1tOU1VSTCBhbGxv
Y10gaW5pdFdpdGhTdHJpbmc6QCJodHRwOi8vZXhhbXBsZS5jb20vIl0gbGV2ZWw6X1dLVXNlclN0
eWxlVXNlckxldmVsIGNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOwogICAgIFtbY29uZmlndXJh
dGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIF9hZGRVc2VyU3R5bGVTaGVldDpzdHlsZVNoZWV0
LmdldCgpXTsKIAogICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtb
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDAp
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwpAQCAtNzQwLDEwICs3NDEsMTAg
QEAgVEVTVChXS1VzZXJDb250ZW50Q29udHJvbGxlciwgVXNlclN0eWxlUwogCiBURVNUKFdLVXNl
ckNvbnRlbnRDb250cm9sbGVyLCBVc2VyU3R5bGVTaGVldFNwZWNpZmljaXR5TGV2ZWxBdXRob3Ip
CiB7Ci0gICAgUmV0YWluUHRyPF9XS1VzZXJDb250ZW50V29ybGQ+IHdvcmxkID0gW19XS1VzZXJD
b250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRlc3RXb3JsZCJdOworICAgIFJldGFpblB0cjxX
S0NvbnRlbnRXb3JsZD4gd29ybGQgPSBbV0tDb250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRl
c3RXb3JsZCJdOwogCiAgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvbmZp
Z3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0p
OwotICAgIFJldGFpblB0cjxfV0tVc2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldCA9IGFkb3B0TlMo
W1tfV0tVc2VyU3R5bGVTaGVldCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6c3R5bGVTaGVldFNvdXJj
ZUZvclNwZWNpZmljaXR5TGV2ZWxUZXN0cyBmb3JNYWluRnJhbWVPbmx5OllFUyBsZWdhY3lXaGl0
ZWxpc3Q6QFtdIGxlZ2FjeUJsYWNrbGlzdDpAW10gYmFzZVVSTDpbW05TVVJMIGFsbG9jXSBpbml0
V2l0aFN0cmluZzpAImh0dHA6Ly9leGFtcGxlLmNvbS8iXSBsZXZlbDpfV0tVc2VyU3R5bGVBdXRo
b3JMZXZlbCB1c2VyQ29udGVudFdvcmxkOndvcmxkLmdldCgpXSk7CisgICAgUmV0YWluUHRyPF9X
S1VzZXJTdHlsZVNoZWV0PiBzdHlsZVNoZWV0ID0gYWRvcHROUyhbW19XS1VzZXJTdHlsZVNoZWV0
IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpzdHlsZVNoZWV0U291cmNlRm9yU3BlY2lmaWNpdHlMZXZl
bFRlc3RzIGZvcldLV2ViVmlldzpuaWwgZm9yTWFpbkZyYW1lT25seTpZRVMgaW5jbHVkZU1hdGNo
UGF0dGVyblN0cmluZ3M6QFtdIGV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOkBbXSBiYXNlVVJM
OltbTlNVUkwgYWxsb2NdIGluaXRXaXRoU3RyaW5nOkAiaHR0cDovL2V4YW1wbGUuY29tLyJdIGxl
dmVsOl9XS1VzZXJTdHlsZUF1dGhvckxldmVsIGNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOwog
ICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIF9hZGRVc2VyU3R5bGVT
aGVldDpzdHlsZVNoZWV0LmdldCgpXTsKIAogICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZp
ZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwpAQCAt
NzcyLDExICs3NzMsMTEgQEAgVEVTVChXS1VzZXJDb250ZW50Q29udHJvbGxlciwgVXNlclNjcmlw
dAogewogICAgIFJldGFpblB0cjxXS1VzZXJDb250ZW50Q29udHJvbGxlcj4gdXNlckNvbnRlbnRD
b250cm9sbGVyID0gYWRvcHROUyhbW1dLVXNlckNvbnRlbnRDb250cm9sbGVyIGFsbG9jXSBpbml0
XSk7CiAKLSAgICBSZXRhaW5QdHI8X1dLVXNlckNvbnRlbnRXb3JsZD4gd29ybGQgPSBbX1dLVXNl
ckNvbnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1lOkAiVGVzdFdvcmxkIl07CisgICAgUmV0YWluUHRy
PFdLQ29udGVudFdvcmxkPiB3b3JsZCA9IFtXS0NvbnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1lOkAi
VGVzdFdvcmxkIl07CiAKICAgICBSZXRhaW5QdHI8V0tVc2VyU2NyaXB0PiB1c2VyU2NyaXB0ID0g
YWRvcHROUyhbW1dLVXNlclNjcmlwdCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6QCIiIGluamVjdGlv
blRpbWU6V0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRTdGFydCBmb3JNYWluRnJh
bWVPbmx5Ok5PXSk7Ci0gICAgUmV0YWluUHRyPFdLVXNlclNjcmlwdD4gdXNlclNjcmlwdEFzc29j
aWF0ZWRXaXRoV29ybGQgPSBhZG9wdE5TKFtbV0tVc2VyU2NyaXB0IGFsbG9jXSBfaW5pdFdpdGhT
b3VyY2U6QCIiIGluamVjdGlvblRpbWU6V0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1l
bnRTdGFydCBmb3JNYWluRnJhbWVPbmx5Ok5PIGxlZ2FjeVdoaXRlbGlzdDpAW10gbGVnYWN5Qmxh
Y2tsaXN0OkBbXSB1c2VyQ29udGVudFdvcmxkOndvcmxkLmdldCgpXSk7Ci0gICAgCisgICAgYXV0
byB1c2VyU2NyaXB0QXNzb2NpYXRlZFdpdGhXb3JsZCA9IGFkb3B0TlMoW1tXS1VzZXJTY3JpcHQg
YWxsb2NdIF9pbml0V2l0aFNvdXJjZTpAIiIgaW5qZWN0aW9uVGltZTpXS1VzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lQXREb2N1bWVudFN0YXJ0IGZvck1haW5GcmFtZU9ubHk6Tk8gaW5jbHVkZU1hdGNo
UGF0dGVyblN0cmluZ3M6QFtdIGV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOkBbXSBhc3NvY2lh
dGVkVVJMOm5pbCBjb250ZW50V29ybGQ6d29ybGQuZ2V0KCkgZGVmZXJSdW5uaW5nVW50aWxOb3Rp
ZmljYXRpb246Tk9dKTsKKwogICAgIFt1c2VyQ29udGVudENvbnRyb2xsZXIgYWRkVXNlclNjcmlw
dDp1c2VyU2NyaXB0LmdldCgpXTsKICAgICBbdXNlckNvbnRlbnRDb250cm9sbGVyIGFkZFVzZXJT
Y3JpcHQ6dXNlclNjcmlwdEFzc29jaWF0ZWRXaXRoV29ybGQuZ2V0KCldOwogICAgIApAQCAtNzkz
LDExICs3OTQsMTEgQEAgVEVTVChXS1VzZXJDb250ZW50Q29udHJvbGxlciwgVXNlclNjcmlwdAog
ewogICAgIFJldGFpblB0cjxXS1VzZXJDb250ZW50Q29udHJvbGxlcj4gdXNlckNvbnRlbnRDb250
cm9sbGVyID0gYWRvcHROUyhbW1dLVXNlckNvbnRlbnRDb250cm9sbGVyIGFsbG9jXSBpbml0XSk7
CiAKLSAgICBSZXRhaW5QdHI8X1dLVXNlckNvbnRlbnRXb3JsZD4gd29ybGQgPSBbX1dLVXNlckNv
bnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1lOkAiVGVzdFdvcmxkIl07CisgICAgUmV0YWluUHRyPFdL
Q29udGVudFdvcmxkPiB3b3JsZCA9IFtXS0NvbnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1lOkAiVGVz
dFdvcmxkIl07CiAKICAgICBSZXRhaW5QdHI8V0tVc2VyU2NyaXB0PiB1c2VyU2NyaXB0ID0gYWRv
cHROUyhbW1dLVXNlclNjcmlwdCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6QCIiIGluamVjdGlvblRp
bWU6V0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRTdGFydCBmb3JNYWluRnJhbWVP
bmx5Ok5PXSk7Ci0gICAgUmV0YWluUHRyPFdLVXNlclNjcmlwdD4gdXNlclNjcmlwdEFzc29jaWF0
ZWRXaXRoV29ybGQgPSBhZG9wdE5TKFtbV0tVc2VyU2NyaXB0IGFsbG9jXSBfaW5pdFdpdGhTb3Vy
Y2U6QCIiIGluamVjdGlvblRpbWU6V0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRT
dGFydCBmb3JNYWluRnJhbWVPbmx5Ok5PIGxlZ2FjeVdoaXRlbGlzdDpAW10gbGVnYWN5QmxhY2ts
aXN0OkBbXSB1c2VyQ29udGVudFdvcmxkOndvcmxkLmdldCgpXSk7Ci0gICAgUmV0YWluUHRyPFdL
VXNlclNjcmlwdD4gdXNlclNjcmlwdEFzc29jaWF0ZWRXaXRoV29ybGQyID0gYWRvcHROUyhbW1dL
VXNlclNjcmlwdCBhbGxvY10gX2luaXRXaXRoU291cmNlOkAiIiBpbmplY3Rpb25UaW1lOldLVXNl
clNjcmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50U3RhcnQgZm9yTWFpbkZyYW1lT25seTpOTyBs
ZWdhY3lXaGl0ZWxpc3Q6QFtdIGxlZ2FjeUJsYWNrbGlzdDpAW10gdXNlckNvbnRlbnRXb3JsZDp3
b3JsZC5nZXQoKV0pOworICAgIFJldGFpblB0cjxXS1VzZXJTY3JpcHQ+IHVzZXJTY3JpcHRBc3Nv
Y2lhdGVkV2l0aFdvcmxkID0gYWRvcHROUyhbW1dLVXNlclNjcmlwdCBhbGxvY10gX2luaXRXaXRo
U291cmNlOkAiIiBpbmplY3Rpb25UaW1lOldLVXNlclNjcmlwdEluamVjdGlvblRpbWVBdERvY3Vt
ZW50U3RhcnQgZm9yTWFpbkZyYW1lT25seTpOTyBpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpA
W10gZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGFzc29jaWF0ZWRVUkw6bmlsIGNvbnRl
bnRXb3JsZDp3b3JsZC5nZXQoKSBkZWZlclJ1bm5pbmdVbnRpbE5vdGlmaWNhdGlvbjpOT10pOwor
ICAgIFJldGFpblB0cjxXS1VzZXJTY3JpcHQ+IHVzZXJTY3JpcHRBc3NvY2lhdGVkV2l0aFdvcmxk
MiA9IGFkb3B0TlMoW1tXS1VzZXJTY3JpcHQgYWxsb2NdIF9pbml0V2l0aFNvdXJjZTpAIiIgaW5q
ZWN0aW9uVGltZTpXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lQXREb2N1bWVudFN0YXJ0IGZvck1h
aW5GcmFtZU9ubHk6Tk8gaW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGV4Y2x1ZGVNYXRj
aFBhdHRlcm5TdHJpbmdzOkBbXSBhc3NvY2lhdGVkVVJMOm5pbCBjb250ZW50V29ybGQ6d29ybGQu
Z2V0KCkgZGVmZXJSdW5uaW5nVW50aWxOb3RpZmljYXRpb246Tk9dKTsKICAgICAKICAgICBbdXNl
ckNvbnRlbnRDb250cm9sbGVyIGFkZFVzZXJTY3JpcHQ6dXNlclNjcmlwdC5nZXQoKV07CiAgICAg
W3VzZXJDb250ZW50Q29udHJvbGxlciBhZGRVc2VyU2NyaXB0OnVzZXJTY3JpcHRBc3NvY2lhdGVk
V2l0aFdvcmxkLmdldCgpXTsKQEAgLTgwOCw3ICs4MDksNyBAQCBURVNUKFdLVXNlckNvbnRlbnRD
b250cm9sbGVyLCBVc2VyU2NyaXB0CiAgICAgRVhQRUNUX0VRKHVzZXJTY3JpcHRBc3NvY2lhdGVk
V2l0aFdvcmxkLmdldCgpLCBbdXNlckNvbnRlbnRDb250cm9sbGVyIHVzZXJTY3JpcHRzXVsxXSk7
CiAgICAgRVhQRUNUX0VRKHVzZXJTY3JpcHRBc3NvY2lhdGVkV2l0aFdvcmxkMi5nZXQoKSwgW3Vz
ZXJDb250ZW50Q29udHJvbGxlciB1c2VyU2NyaXB0c11bMl0pOwogCi0gICAgW3VzZXJDb250ZW50
Q29udHJvbGxlciBfcmVtb3ZlQWxsVXNlclNjcmlwdHNBc3NvY2lhdGVkV2l0aFVzZXJDb250ZW50
V29ybGQ6d29ybGQuZ2V0KCldOworICAgIFt1c2VyQ29udGVudENvbnRyb2xsZXIgX3JlbW92ZUFs
bFVzZXJTY3JpcHRzQXNzb2NpYXRlZFdpdGhDb250ZW50V29ybGQ6d29ybGQuZ2V0KCldOwogCiAg
ICAgRVhQRUNUX0VRKDF1LCBbdXNlckNvbnRlbnRDb250cm9sbGVyIHVzZXJTY3JpcHRzXS5jb3Vu
dCk7CiAgICAgRVhQRUNUX0VRKHVzZXJTY3JpcHQuZ2V0KCksIFt1c2VyQ29udGVudENvbnRyb2xs
ZXIgdXNlclNjcmlwdHNdWzBdKTsKQEAgLTgxOCwxMSArODE5LDExIEBAIFRFU1QoV0tVc2VyQ29u
dGVudENvbnRyb2xsZXIsIFVzZXJTY3JpcHQKIHsKICAgICBSZXRhaW5QdHI8V0tVc2VyQ29udGVu
dENvbnRyb2xsZXI+IHVzZXJDb250ZW50Q29udHJvbGxlciA9IGFkb3B0TlMoW1tXS1VzZXJDb250
ZW50Q29udHJvbGxlciBhbGxvY10gaW5pdF0pOwogCi0gICAgUmV0YWluUHRyPF9XS1VzZXJDb250
ZW50V29ybGQ+IHdvcmxkID0gW19XS1VzZXJDb250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRl
c3RXb3JsZCJdOworICAgIFJldGFpblB0cjxXS0NvbnRlbnRXb3JsZD4gd29ybGQgPSBbV0tDb250
ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRlc3RXb3JsZCJdOwogCiAgICAgUmV0YWluUHRyPFdL
VXNlclNjcmlwdD4gdXNlclNjcmlwdCA9IGFkb3B0TlMoW1tXS1VzZXJTY3JpcHQgYWxsb2NdIGlu
aXRXaXRoU291cmNlOkAiIiBpbmplY3Rpb25UaW1lOldLVXNlclNjcmlwdEluamVjdGlvblRpbWVB
dERvY3VtZW50U3RhcnQgZm9yTWFpbkZyYW1lT25seTpOT10pOwotICAgIFJldGFpblB0cjxXS1Vz
ZXJTY3JpcHQ+IHVzZXJTY3JpcHRBc3NvY2lhdGVkV2l0aFdvcmxkID0gYWRvcHROUyhbW1dLVXNl
clNjcmlwdCBhbGxvY10gX2luaXRXaXRoU291cmNlOkAiIiBpbmplY3Rpb25UaW1lOldLVXNlclNj
cmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50U3RhcnQgZm9yTWFpbkZyYW1lT25seTpOTyBsZWdh
Y3lXaGl0ZWxpc3Q6QFtdIGxlZ2FjeUJsYWNrbGlzdDpAW10gdXNlckNvbnRlbnRXb3JsZDp3b3Js
ZC5nZXQoKV0pOwotICAgIFJldGFpblB0cjxXS1VzZXJTY3JpcHQ+IHVzZXJTY3JpcHRBc3NvY2lh
dGVkV2l0aFdvcmxkMiA9IGFkb3B0TlMoW1tXS1VzZXJTY3JpcHQgYWxsb2NdIF9pbml0V2l0aFNv
dXJjZTpAIiIgaW5qZWN0aW9uVGltZTpXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lQXREb2N1bWVu
dFN0YXJ0IGZvck1haW5GcmFtZU9ubHk6Tk8gbGVnYWN5V2hpdGVsaXN0OkBbXSBsZWdhY3lCbGFj
a2xpc3Q6QFtdIHVzZXJDb250ZW50V29ybGQ6d29ybGQuZ2V0KCldKTsKKyAgICBSZXRhaW5QdHI8
V0tVc2VyU2NyaXB0PiB1c2VyU2NyaXB0QXNzb2NpYXRlZFdpdGhXb3JsZCA9IGFkb3B0TlMoW1tX
S1VzZXJTY3JpcHQgYWxsb2NdIF9pbml0V2l0aFNvdXJjZTpAIiIgaW5qZWN0aW9uVGltZTpXS1Vz
ZXJTY3JpcHRJbmplY3Rpb25UaW1lQXREb2N1bWVudFN0YXJ0IGZvck1haW5GcmFtZU9ubHk6Tk8g
aW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdz
OkBbXSBhc3NvY2lhdGVkVVJMOm5pbCBjb250ZW50V29ybGQ6d29ybGQuZ2V0KCkgZGVmZXJSdW5u
aW5nVW50aWxOb3RpZmljYXRpb246Tk9dKTsKKyAgICBSZXRhaW5QdHI8V0tVc2VyU2NyaXB0PiB1
c2VyU2NyaXB0QXNzb2NpYXRlZFdpdGhXb3JsZDIgPSBhZG9wdE5TKFtbV0tVc2VyU2NyaXB0IGFs
bG9jXSBfaW5pdFdpdGhTb3VyY2U6QCIiIGluamVjdGlvblRpbWU6V0tVc2VyU2NyaXB0SW5qZWN0
aW9uVGltZUF0RG9jdW1lbnRTdGFydCBmb3JNYWluRnJhbWVPbmx5Ok5PIGluY2x1ZGVNYXRjaFBh
dHRlcm5TdHJpbmdzOkBbXSBleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpAW10gYXNzb2NpYXRl
ZFVSTDpuaWwgY29udGVudFdvcmxkOndvcmxkLmdldCgpIGRlZmVyUnVubmluZ1VudGlsTm90aWZp
Y2F0aW9uOk5PXSk7CiAgICAgCiAgICAgW3VzZXJDb250ZW50Q29udHJvbGxlciBhZGRVc2VyU2Ny
aXB0OnVzZXJTY3JpcHQuZ2V0KCldOwogICAgIFt1c2VyQ29udGVudENvbnRyb2xsZXIgYWRkVXNl
clNjcmlwdDp1c2VyU2NyaXB0QXNzb2NpYXRlZFdpdGhXb3JsZC5nZXQoKV07CkBAIC04MzMsNyAr
ODM0LDcgQEAgVEVTVChXS1VzZXJDb250ZW50Q29udHJvbGxlciwgVXNlclNjcmlwdAogICAgIEVY
UEVDVF9FUSh1c2VyU2NyaXB0QXNzb2NpYXRlZFdpdGhXb3JsZC5nZXQoKSwgW3VzZXJDb250ZW50
Q29udHJvbGxlciB1c2VyU2NyaXB0c11bMV0pOwogICAgIEVYUEVDVF9FUSh1c2VyU2NyaXB0QXNz
b2NpYXRlZFdpdGhXb3JsZDIuZ2V0KCksIFt1c2VyQ29udGVudENvbnRyb2xsZXIgdXNlclNjcmlw
dHNdWzJdKTsKIAotICAgIFt1c2VyQ29udGVudENvbnRyb2xsZXIgX3JlbW92ZUFsbFVzZXJTY3Jp
cHRzQXNzb2NpYXRlZFdpdGhVc2VyQ29udGVudFdvcmxkOltfV0tVc2VyQ29udGVudFdvcmxkIG5v
cm1hbFdvcmxkXV07CisgICAgW3VzZXJDb250ZW50Q29udHJvbGxlciBfcmVtb3ZlQWxsVXNlclNj
cmlwdHNBc3NvY2lhdGVkV2l0aENvbnRlbnRXb3JsZDpbV0tDb250ZW50V29ybGQgcGFnZVdvcmxk
XV07CiAKICAgICBFWFBFQ1RfRVEoMnUsIFt1c2VyQ29udGVudENvbnRyb2xsZXIgdXNlclNjcmlw
dHNdLmNvdW50KTsKICAgICBFWFBFQ1RfRVEodXNlclNjcmlwdEFzc29jaWF0ZWRXaXRoV29ybGQu
Z2V0KCksIFt1c2VyQ29udGVudENvbnRyb2xsZXIgdXNlclNjcmlwdHNdWzBdKTsKQEAgLTg5MSw3
ICs4OTIsNyBAQCBURVNUKFdLVXNlckNvbnRlbnRDb250cm9sbGVyLCBJbmplY3RVc2VyCiAKIFRF
U1QoV0tVc2VyQ29udGVudENvbnRyb2xsZXIsIFVzZXJTY3JpcHROb3RpZmljYXRpb24pCiB7Ci0g
ICAgV0tVc2VyU2NyaXB0ICp3YWl0c0Zvck5vdGlmaWNhdGlvbiA9IFtbW1dLVXNlclNjcmlwdCBh
bGxvY10gX2luaXRXaXRoU291cmNlOkAiYWxlcnQoJ3dhaXRlZCBmb3Igbm90aWZpY2F0aW9uJyki
IGluamVjdGlvblRpbWU6V0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRTdGFydCBm
b3JNYWluRnJhbWVPbmx5OllFUyBsZWdhY3lXaGl0ZWxpc3Q6QFtdIGxlZ2FjeUJsYWNrbGlzdDpA
W10gYXNzb2NpYXRlZFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Q6Ly8vc2NyaXB0Il0g
Y29udGVudFdvcmxkOltXS0NvbnRlbnRXb3JsZCBkZWZhdWx0Q2xpZW50V29ybGRdIGRlZmVyUnVu
bmluZ1VudGlsTm90aWZpY2F0aW9uOllFU10gYXV0b3JlbGVhc2VdOworICAgIFdLVXNlclNjcmlw
dCAqd2FpdHNGb3JOb3RpZmljYXRpb24gPSBbW1tXS1VzZXJTY3JpcHQgYWxsb2NdIF9pbml0V2l0
aFNvdXJjZTpAImFsZXJ0KCd3YWl0ZWQgZm9yIG5vdGlmaWNhdGlvbicpIiBpbmplY3Rpb25UaW1l
OldLVXNlclNjcmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50U3RhcnQgZm9yTWFpbkZyYW1lT25s
eTpZRVMgaW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGV4Y2x1ZGVNYXRjaFBhdHRlcm5T
dHJpbmdzOkBbXSBhc3NvY2lhdGVkVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdDovLy9z
Y3JpcHQiXSBjb250ZW50V29ybGQ6W1dLQ29udGVudFdvcmxkIGRlZmF1bHRDbGllbnRXb3JsZF0g
ZGVmZXJSdW5uaW5nVW50aWxOb3RpZmljYXRpb246WUVTXSBhdXRvcmVsZWFzZV07CiAgICAgV0tV
c2VyU2NyaXB0ICpkb2N1bWVudEVuZCA9IFtbW1dLVXNlclNjcmlwdCBhbGxvY10gaW5pdFdpdGhT
b3VyY2U6QCJhbGVydCgnZG9jdW1lbnQgcGFyc2luZyBlbmRlZCcpIiBpbmplY3Rpb25UaW1lOldL
VXNlclNjcmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50RW5kIGZvck1haW5GcmFtZU9ubHk6WUVT
XSBhdXRvcmVsZWFzZV07CiAKICAgICBUZXN0V0tXZWJWaWV3ICp3ZWJWaWV3MSA9IFtbVGVzdFdL
V2ViVmlldyBuZXddIGF1dG9yZWxlYXNlXTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvVXNlckNvbnRlbnRXb3JsZC5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJDb250ZW50V29ybGQubW0JKHJldmlz
aW9uIDI2MzA0MikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNl
ckNvbnRlbnRXb3JsZC5tbQkod29ya2luZyBjb3B5KQpAQCAtNzksMTEgKzc5LDExIEBAIFRFU1Qo
Q29udGVudFdvcmxkLCBOb3JtYWxXb3JsZFVzZXJTY3JpcHQKIAogVEVTVChDb250ZW50V29ybGQs
IElzb2xhdGVkV29ybGQpCiB7Ci0gICAgUmV0YWluUHRyPF9XS1VzZXJDb250ZW50V29ybGQ+IGlz
b2xhdGVkV29ybGQgPSBbX1dLVXNlckNvbnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1lOkAiVGVzdFdv
cmxkIl07CisgICAgUmV0YWluUHRyPFdLQ29udGVudFdvcmxkPiBpc29sYXRlZFdvcmxkID0gW1dL
Q29udGVudFdvcmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsKICAgICBFWFBFQ1RfV0tf
U1RSRVEoW2lzb2xhdGVkV29ybGQgbmFtZV0sIEAiVGVzdFdvcmxkIik7CiAKLSAgICBSZXRhaW5Q
dHI8V0tVc2VyU2NyaXB0PiB1c2VyU2NyaXB0ID0gYWRvcHROUyhbW1dLVXNlclNjcmlwdCBhbGxv
Y10gX2luaXRXaXRoU291cmNlOkAiIiBpbmplY3Rpb25UaW1lOldLVXNlclNjcmlwdEluamVjdGlv
blRpbWVBdERvY3VtZW50U3RhcnQgZm9yTWFpbkZyYW1lT25seTpZRVMgbGVnYWN5V2hpdGVsaXN0
OkBbXSBsZWdhY3lCbGFja2xpc3Q6QFtdIHVzZXJDb250ZW50V29ybGQ6aXNvbGF0ZWRXb3JsZC5n
ZXQoKV0pOwotICAgIEVYUEVDVF9ORShbdXNlclNjcmlwdCBfdXNlckNvbnRlbnRXb3JsZF0sIGlz
b2xhdGVkV29ybGQuZ2V0KCkpOworICAgIFJldGFpblB0cjxXS1VzZXJTY3JpcHQ+IHVzZXJTY3Jp
cHQgPSBhZG9wdE5TKFtbV0tVc2VyU2NyaXB0IGFsbG9jXSBfaW5pdFdpdGhTb3VyY2U6QCIiIGlu
amVjdGlvblRpbWU6V0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRTdGFydCBmb3JN
YWluRnJhbWVPbmx5OllFUyBpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpAW10gZXhjbHVkZU1h
dGNoUGF0dGVyblN0cmluZ3M6QFtdIGFzc29jaWF0ZWRVUkw6bmlsIGNvbnRlbnRXb3JsZDppc29s
YXRlZFdvcmxkLmdldCgpIGRlZmVyUnVubmluZ1VudGlsTm90aWZpY2F0aW9uOk5PXSk7CisgICAg
RVhQRUNUX05FKFt1c2VyU2NyaXB0IF9jb250ZW50V29ybGRdLCBpc29sYXRlZFdvcmxkLmdldCgp
KTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoW3VzZXJTY3JpcHQgX3VzZXJDb250ZW50V29ybGRdLm5h
bWUsIFtpc29sYXRlZFdvcmxkIG5hbWVdKTsKIH0KIApAQCAtOTEsOCArOTEsOCBAQCBURVNUKENv
bnRlbnRXb3JsZCwgSXNvbGF0ZWRXb3JsZFVzZXJTY3JpCiB7CiAgICAgUmV0YWluUHRyPFdLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogCi0gICAgUmV0YWluUHRyPF9XS1VzZXJDb250ZW50
V29ybGQ+IGlzb2xhdGVkV29ybGQgPSBbX1dLVXNlckNvbnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1l
OkAiVGVzdFdvcmxkIl07Ci0gICAgUmV0YWluUHRyPFdLVXNlclNjcmlwdD4gdXNlclNjcmlwdCA9
IGFkb3B0TlMoW1tXS1VzZXJTY3JpcHQgYWxsb2NdIF9pbml0V2l0aFNvdXJjZTpAIndpbmRvdy5z
ZXRGcm9tVXNlclNjcmlwdCA9IHRydWU7IiBpbmplY3Rpb25UaW1lOldLVXNlclNjcmlwdEluamVj
dGlvblRpbWVBdERvY3VtZW50U3RhcnQgZm9yTWFpbkZyYW1lT25seTpZRVMgbGVnYWN5V2hpdGVs
aXN0OkBbXSBsZWdhY3lCbGFja2xpc3Q6QFtdIHVzZXJDb250ZW50V29ybGQ6aXNvbGF0ZWRXb3Js
ZC5nZXQoKV0pOworICAgIFJldGFpblB0cjxXS0NvbnRlbnRXb3JsZD4gaXNvbGF0ZWRXb3JsZCA9
IFtXS0NvbnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1lOkAiVGVzdFdvcmxkIl07CisgICAgUmV0YWlu
UHRyPFdLVXNlclNjcmlwdD4gdXNlclNjcmlwdCA9IGFkb3B0TlMoW1tXS1VzZXJTY3JpcHQgYWxs
b2NdIF9pbml0V2l0aFNvdXJjZTpAIndpbmRvdy5zZXRGcm9tVXNlclNjcmlwdCA9IHRydWU7IiBp
bmplY3Rpb25UaW1lOldLVXNlclNjcmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50U3RhcnQgZm9y
TWFpbkZyYW1lT25seTpZRVMgaW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGV4Y2x1ZGVN
YXRjaFBhdHRlcm5TdHJpbmdzOkBbXSBhc3NvY2lhdGVkVVJMOm5pbCBjb250ZW50V29ybGQ6aXNv
bGF0ZWRXb3JsZC5nZXQoKSBkZWZlclJ1bm5pbmdVbnRpbE5vdGlmaWNhdGlvbjpOT10pOwogICAg
IFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFVzZXJTY3JpcHQ6dXNl
clNjcmlwdC5nZXQoKV07CiAKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRv
cHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgw
MCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKQEAgLTE1Miw4ICsx
NTIsOCBAQCBURVNUKFVzZXJDb250ZW50V29ybGQsIElzb2xhdGVkV29ybGRQbHVnCiAKICAgICBS
ZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IHJldGFpblB0
cihbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVn
SW5DbGFzc05hbWU6dGVzdFBsdWdJbkNsYXNzTmFtZV0pOwogICAgIAotICAgIFJldGFpblB0cjxf
V0tVc2VyQ29udGVudFdvcmxkPiBpc29sYXRlZFdvcmxkID0gW19XS1VzZXJDb250ZW50V29ybGQg
d29ybGRXaXRoTmFtZTpAIlRlc3RXb3JsZCJdOwotICAgIFJldGFpblB0cjxXS1VzZXJTY3JpcHQ+
IHVzZXJTY3JpcHQgPSBhZG9wdE5TKFtbV0tVc2VyU2NyaXB0IGFsbG9jXSBfaW5pdFdpdGhTb3Vy
Y2U6QCJ3aW5kb3cuc2V0RnJvbVVzZXJTY3JpcHQgPSB0cnVlOyIgaW5qZWN0aW9uVGltZTpXS1Vz
ZXJTY3JpcHRJbmplY3Rpb25UaW1lQXREb2N1bWVudFN0YXJ0IGZvck1haW5GcmFtZU9ubHk6WUVT
IGxlZ2FjeVdoaXRlbGlzdDpAW10gbGVnYWN5QmxhY2tsaXN0OkBbXSB1c2VyQ29udGVudFdvcmxk
Omlzb2xhdGVkV29ybGQuZ2V0KCldKTsKKyAgICBSZXRhaW5QdHI8V0tDb250ZW50V29ybGQ+IGlz
b2xhdGVkV29ybGQgPSBbV0tDb250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRlc3RXb3JsZCJd
OworICAgIFJldGFpblB0cjxXS1VzZXJTY3JpcHQ+IHVzZXJTY3JpcHQgPSBhZG9wdE5TKFtbV0tV
c2VyU2NyaXB0IGFsbG9jXSBfaW5pdFdpdGhTb3VyY2U6QCJ3aW5kb3cuc2V0RnJvbVVzZXJTY3Jp
cHQgPSB0cnVlOyIgaW5qZWN0aW9uVGltZTpXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lQXREb2N1
bWVudFN0YXJ0IGZvck1haW5GcmFtZU9ubHk6WUVTIGluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdz
OkBbXSBleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpAW10gYXNzb2NpYXRlZFVSTDpuaWwgY29u
dGVudFdvcmxkOmlzb2xhdGVkV29ybGQuZ2V0KCkgZGVmZXJSdW5uaW5nVW50aWxOb3RpZmljYXRp
b246Tk9dKTsKICAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRV
c2VyU2NyaXB0OnVzZXJTY3JpcHQuZ2V0KCldOwogICAgIFJldGFpblB0cjxUZXN0VVJMU2NoZW1l
SGFuZGxlcj4gc2NoZW1lSGFuZGxlciA9IGFkb3B0TlMoW1tUZXN0VVJMU2NoZW1lSGFuZGxlciBh
bGxvY10gaW5pdF0pOwogICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6c2No
ZW1lSGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJ0ZXN0c2NoZW1lIl07CkluZGV4OiBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQkocmV2aXNp
b24gMjYzMDQyKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRyb2xsZXJN
YWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMxNyw3ICszMTcsNyBAQCBzdGF0aWMgTlNTZXQgKnN5
c3RlbUhpZGRlbkZvbnRGYW1pbHlTZXQoCiAgICAgcmV0dXJuIGZvbnRGYW1pbHlTZXQ7CiB9CiAK
LXN0YXRpYyBXS1JldGFpblB0cjxXS0FycmF5UmVmPiBnZW5lcmF0ZVdoaXRlbGlzdCgpCitzdGF0
aWMgV0tSZXRhaW5QdHI8V0tBcnJheVJlZj4gZ2VuZXJhdGVGb250QWxsb3dMaXN0KCkKIHsKICAg
ICBXS1JldGFpblB0cjxXS011dGFibGVBcnJheVJlZj4gcmVzdWx0ID0gYWRvcHRXSyhXS011dGFi
bGVBcnJheUNyZWF0ZSgpKTsKICAgICBmb3IgKE5TU3RyaW5nICpmb250RmFtaWx5IGluIGFsbG93
ZWRGb250RmFtaWx5U2V0KCkpIHsKQEAgLTM0OCw3ICszNDgsNyBAQCB2b2lkIFRlc3RDb250cm9s
bGVyOjpwbGF0Zm9ybUluaXRpYWxpemVDCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkaXNrUGF0aDpuaWxdKTsKICAgICBbTlNVUkxDYWNoZSBzZXRTaGFyZWRVUkxD
YWNoZTpzaGFyZWRDYWNoZS5nZXQoKV07CiAKLSAgICBXS0NvbnRleHRTZXRGb250V2hpdGVsaXN0
KG1fY29udGV4dC5nZXQoKSwgZ2VuZXJhdGVXaGl0ZWxpc3QoKS5nZXQoKSk7CisgICAgV0tDb250
ZXh0U2V0Rm9udEFsbG93TGlzdChtX2NvbnRleHQuZ2V0KCksIGdlbmVyYXRlRm9udEFsbG93TGlz
dCgpLmdldCgpKTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0SGlkZGVuKGJvb2wgaGlk
ZGVuKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401928</attachid>
            <date>2020-06-15 13:17:36 -0700</date>
            <delta_ts>2020-06-15 14:17:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213206-20200615131735.patch</filename>
            <type>text/plain</type>
            <size>73364</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjMwNDIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDIwLTA2LTE1ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvdmlkZSBhbHRl
cm5hdGl2ZWx5LW5hbWVkIFNQSSBmb3IgdXNlciBzdHlsZSBzaGVldHMgYW5kIHNjcmlwdHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzIwNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Qtb25seSBT
UEkgd2FzIGp1c3QgcmVuYW1lZC4KKyAgICAgICAgU1BJIHVzZWQgYnkgb3RoZXIgcHJvamVjdHMg
d2FzIGRlcHJlY2F0ZWQgd2l0aCBhIHJlcGxhY2VtZW50IHNvIHdlIGNhbiByZW1vdmUgdGhlIG9s
ZCBuYW1lcyBzb29uLgorCisgICAgICAgIF9XS1VzZXJDb250ZW50V29ybGQvV0tDb250ZW50V29y
bGQgd2FzIHRpZWQgdXAgaW4gdGhpcywgYW5kIHJhdGhlciB0aGFuIHByb3ZpZGUgcmVwbGFjZW1l
bnQgU1BJIHdpdGggZGVwcmVjYXRlZCBfV0tVc2VyQ29udGVudFdvcmxkLAorICAgICAgICB0aGlz
IHdpbGwgbW92ZSBzb21lIFNQSSBmcm9tIF9XS1VzZXJDb250ZW50V29ybGQgdG8gV0tDb250ZW50
V29ybGQgdG9vLiAgVGhlIG1vc3QgaGVhdnkgdXNlciBvZiBfV0tVc2VyQ29udGVudFdvcmxkIGlz
IFRlc3RXZWJLaXRBUEkgYW5kIHdlJ2xsIHJlbW92ZSBpdCBzb29uLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRTZXRGb250QWxs
b3dMaXN0KToKKyAgICAgICAgKFdLQ29udGV4dFNldEZvbnRXaGl0ZWxpc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5tbToKKyAgICAgICAg
KC1bV0tVc2VyQ29udGVudENvbnRyb2xsZXIgX3JlbW92ZUFsbFVzZXJTY3JpcHRzQXNzb2NpYXRl
ZFdpdGhDb250ZW50V29ybGQ6XSk6CisgICAgICAgICgtW1dLVXNlckNvbnRlbnRDb250cm9sbGVy
IF9yZW1vdmVBbGxVc2VyU3R5bGVTaGVldHNBc3NvY2lhdGVkV2l0aENvbnRlbnRXb3JsZDpdKToK
KyAgICAgICAgKC1bV0tVc2VyQ29udGVudENvbnRyb2xsZXIgX2FkZFNjcmlwdE1lc3NhZ2VIYW5k
bGVyOm5hbWU6Y29udGVudFdvcmxkOl0pOgorICAgICAgICAoLVtXS1VzZXJDb250ZW50Q29udHJv
bGxlciBfcmVtb3ZlQWxsVXNlclNjcmlwdHNBc3NvY2lhdGVkV2l0aFVzZXJDb250ZW50V29ybGQ6
XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVXNlckNvbnRlbnRDb250cm9sbGVyIF9yZW1vdmVB
bGxVc2VyU3R5bGVTaGVldHNBc3NvY2lhdGVkV2l0aFVzZXJDb250ZW50V29ybGQ6XSk6IERlbGV0
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxl
clByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNjcmlwdC5t
bToKKyAgICAgICAgKC1bV0tVc2VyU2NyaXB0IF9pbml0V2l0aFNvdXJjZTppbmplY3Rpb25UaW1l
OmZvck1haW5GcmFtZU9ubHk6aW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6ZXhjbHVkZU1hdGNo
UGF0dGVyblN0cmluZ3M6YXNzb2NpYXRlZFVSTDpjb250ZW50V29ybGQ6ZGVmZXJSdW5uaW5nVW50
aWxOb3RpZmljYXRpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJT
Y3JpcHRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyU3R5
bGVTaGVldC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlclN0eWxlU2hl
ZXQubW06CisgICAgICAgICgtW19XS1VzZXJTdHlsZVNoZWV0IGluaXRXaXRoU291cmNlOmZvcldL
V2ViVmlldzpmb3JNYWluRnJhbWVPbmx5OmluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOmV4Y2x1
ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOmJhc2VVUkw6bGV2ZWw6Y29udGVudFdvcmxkOl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjpzZXRGb250QWxsb3dMaXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Bvb2w6OnNldEZvbnRXaGl0ZWxpc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oOgorCiAyMDIwLTA2LTE1ICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6
IExlYWwgIDx2amFxdWV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgU3VwcHJlc3MgY29tcGlsZXIg
d2FybmluZ3MKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAJKHJldmlzaW9uIDI2MzA0MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA3NCw3ICsyMDc0LDcgQEAgdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6c2V0TWVtb3J5Q2FjaGVEaXNhYgogICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhN
ZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0TWVtb3J5Q2FjaGVEaXNhYmxlZChkaXNhYmxlZCkpOwog
fQogCi12b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRGb250V2hpdGVsaXN0KEFQSTo6QXJyYXkqIGFy
cmF5KQordm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0Rm9udEFsbG93TGlzdChBUEk6OkFycmF5KiBh
cnJheSkKIHsKICAgICBtX2ZvbnRXaGl0ZWxpc3QuY2xlYXIoKTsKICAgICBpZiAoYXJyYXkpIHsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkocmV2aXNpb24g
MjYzMDQyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAkod29y
a2luZyBjb3B5KQpAQCAtNDQwLDcgKzQ0MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUhp
ZGRlblBhZ2VUaHJvdHRsaW5nQXV0b0luY3JlYXNlTGltaXQoKTsKIAogICAgIHZvaWQgc2V0TWVt
b3J5Q2FjaGVEaXNhYmxlZChib29sKTsKLSAgICB2b2lkIHNldEZvbnRXaGl0ZWxpc3QoQVBJOjpB
cnJheSopOworICAgIHZvaWQgc2V0Rm9udEFsbG93TGlzdChBUEk6OkFycmF5Kik7CiAKICAgICBV
c2VyT2JzZXJ2YWJsZVBhZ2VDb3VudGVyOjpUb2tlbiB1c2VyT2JzZXJ2YWJsZVBhZ2VDb3VudCgp
CiAgICAgewpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQu
Y3BwCShyZXZpc2lvbiAyNjMwNDIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MDEsOSArNjAxLDkgQEAgdm9pZCBXS0Nv
bnRleHRTZXRNZW1vcnlDYWNoZURpc2FibGVkKFdLQwogICAgIFdlYktpdDo6dG9JbXBsKGNvbnRl
eHRSZWYpLT5zZXRNZW1vcnlDYWNoZURpc2FibGVkKGRpc2FibGVkKTsKIH0KIAotdm9pZCBXS0Nv
bnRleHRTZXRGb250V2hpdGVsaXN0KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS0FycmF5UmVm
IGFycmF5UmVmKQordm9pZCBXS0NvbnRleHRTZXRGb250QWxsb3dMaXN0KFdLQ29udGV4dFJlZiBj
b250ZXh0UmVmLCBXS0FycmF5UmVmIGFycmF5UmVmKQogewotICAgIFdlYktpdDo6dG9JbXBsKGNv
bnRleHRSZWYpLT5zZXRGb250V2hpdGVsaXN0KFdlYktpdDo6dG9JbXBsKGFycmF5UmVmKSk7Cisg
ICAgV2ViS2l0Ojp0b0ltcGwoY29udGV4dFJlZiktPnNldEZvbnRBbGxvd0xpc3QoV2ViS2l0Ojp0
b0ltcGwoYXJyYXlSZWYpKTsKIH0KIAogdm9pZCBXS0NvbnRleHRUZXJtaW5hdGVOZXR3b3JrUHJv
Y2VzcyhXS0NvbnRleHRSZWYgY29udGV4dCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgJKHJldmlzaW9uIDI2MzA0MikKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAkod29ya2luZyBj
b3B5KQpAQCAtMTAwLDcgKzEwMCw3IEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldEludmFs
aWRNZXNzYWcKICAgICAKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldE1lbW9yeUNhY2hlRGlz
YWJsZWQoV0tDb250ZXh0UmVmLCBib29sIGRpc2FibGVkKTsKIAotV0tfRVhQT1JUIHZvaWQgV0tD
b250ZXh0U2V0Rm9udFdoaXRlbGlzdChXS0NvbnRleHRSZWYsIFdLQXJyYXlSZWYpOworV0tfRVhQ
T1JUIHZvaWQgV0tDb250ZXh0U2V0Rm9udEFsbG93TGlzdChXS0NvbnRleHRSZWYsIFdLQXJyYXlS
ZWYpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRQcmVjb25uZWN0VG9TZXJ2ZXIoV0tDb250
ZXh0UmVmIGNvbnRleHQsIFdLVVJMUmVmIHNlcnZlclVSTCkgV0tfQ19BUElfREVQUkVDQVRFRDsK
IApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRD
b250cm9sbGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5tbQkocmV2aXNpb24gMjYzMDQyKQorKysgU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0yNTIsMTIgKzI1MiwxMCBAQCAtICh2b2lkKV9yZW1vdmVVc2Vy
U2NyaXB0OihXS1VzZXJTY3JpcHQgCiAgICAgX3VzZXJDb250ZW50Q29udHJvbGxlclByb3h5LT5y
ZW1vdmVVc2VyU2NyaXB0KCp1c2VyU2NyaXB0LT5fdXNlclNjcmlwdCk7CiB9CiAKLUFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCi0tICh2b2lkKV9yZW1vdmVBbGxVc2VyU2NyaXB0
c0Fzc29jaWF0ZWRXaXRoVXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVz
ZXJDb250ZW50V29ybGQKKy0gKHZvaWQpX3JlbW92ZUFsbFVzZXJTY3JpcHRzQXNzb2NpYXRlZFdp
dGhDb250ZW50V29ybGQ6KFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxkCiB7Ci0gICAgX3Vz
ZXJDb250ZW50Q29udHJvbGxlclByb3h5LT5yZW1vdmVBbGxVc2VyU2NyaXB0cygqdXNlckNvbnRl
bnRXb3JsZC0+X2NvbnRlbnRXb3JsZC0+X2NvbnRlbnRXb3JsZCk7CisgICAgX3VzZXJDb250ZW50
Q29udHJvbGxlclByb3h5LT5yZW1vdmVBbGxVc2VyU2NyaXB0cygqY29udGVudFdvcmxkLT5fY29u
dGVudFdvcmxkKTsKIH0KLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAtICh2
b2lkKV9hZGRVc2VyU2NyaXB0SW1tZWRpYXRlbHk6KFdLVXNlclNjcmlwdCAqKXVzZXJTY3JpcHQK
IHsKQEAgLTMwNSwxMiArMzAzLDEyIEBAIC0gKHZvaWQpX3JlbW92ZUFsbFVzZXJTdHlsZVNoZWV0
cwogICAgIF91c2VyQ29udGVudENvbnRyb2xsZXJQcm94eS0+cmVtb3ZlQWxsVXNlclN0eWxlU2hl
ZXRzKCk7CiB9CiAKLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCi0tICh2b2lk
KV9yZW1vdmVBbGxVc2VyU3R5bGVTaGVldHNBc3NvY2lhdGVkV2l0aFVzZXJDb250ZW50V29ybGQ6
KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkCistICh2b2lkKV9yZW1vdmVB
bGxVc2VyU3R5bGVTaGVldHNBc3NvY2lhdGVkV2l0aENvbnRlbnRXb3JsZDooV0tDb250ZW50V29y
bGQgKiljb250ZW50V29ybGQKIHsKLSAgICBfdXNlckNvbnRlbnRDb250cm9sbGVyUHJveHktPnJl
bW92ZUFsbFVzZXJTdHlsZVNoZWV0cygqdXNlckNvbnRlbnRXb3JsZC0+X2NvbnRlbnRXb3JsZC0+
X2NvbnRlbnRXb3JsZCk7CisgICAgX3VzZXJDb250ZW50Q29udHJvbGxlclByb3h5LT5yZW1vdmVB
bGxVc2VyU3R5bGVTaGVldHMoKmNvbnRlbnRXb3JsZC0+X2NvbnRlbnRXb3JsZCk7CiB9CiAKK0FM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAtICh2b2lkKV9hZGRTY3JpcHRNZXNz
YWdlSGFuZGxlcjooaWQgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+KXNjcmlwdE1lc3NhZ2VIYW5k
bGVyIG5hbWU6KE5TU3RyaW5nICopbmFtZSB1c2VyQ29udGVudFdvcmxkOihfV0tVc2VyQ29udGVu
dFdvcmxkICopdXNlckNvbnRlbnRXb3JsZAogewogICAgIGF1dG8gaGFuZGxlciA9IFdlYktpdDo6
V2ViU2NyaXB0TWVzc2FnZUhhbmRsZXI6OmNyZWF0ZShtYWtlVW5pcXVlPFNjcmlwdE1lc3NhZ2VI
YW5kbGVyRGVsZWdhdGU+KHNlbGYsIHNjcmlwdE1lc3NhZ2VIYW5kbGVyLCBuYW1lKSwgbmFtZSwg
KnVzZXJDb250ZW50V29ybGQtPl9jb250ZW50V29ybGQtPl9jb250ZW50V29ybGQpOwpAQCAtMzE4
LDYgKzMxNiwxMSBAQCAtICh2b2lkKV9hZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjooaWQgPFdLCiAg
ICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3Jt
YXQ6QCJBdHRlbXB0IHRvIGFkZCBzY3JpcHQgbWVzc2FnZSBoYW5kbGVyIHdpdGggbmFtZSAnJUAn
IHdoZW4gb25lIGFscmVhZHkgZXhpc3RzLiIsIG5hbWVdOwogfQogCistICh2b2lkKV9hZGRTY3Jp
cHRNZXNzYWdlSGFuZGxlcjooaWQgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+KXNjcmlwdE1lc3Nh
Z2VIYW5kbGVyIG5hbWU6KE5TU3RyaW5nICopbmFtZSBjb250ZW50V29ybGQ6KFdLQ29udGVudFdv
cmxkICopY29udGVudFdvcmxkCit7CisgICAgW3NlbGYgX2FkZFNjcmlwdE1lc3NhZ2VIYW5kbGVy
OnNjcmlwdE1lc3NhZ2VIYW5kbGVyIG5hbWU6bmFtZSB1c2VyQ29udGVudFdvcmxkOmNvbnRlbnRX
b3JsZC5fdXNlckNvbnRlbnRXb3JsZF07Cit9CisKIC0gKHZvaWQpX3JlbW92ZVNjcmlwdE1lc3Nh
Z2VIYW5kbGVyRm9yTmFtZTooTlNTdHJpbmcgKiluYW1lIHVzZXJDb250ZW50V29ybGQ6KF9XS1Vz
ZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkCiB7CiAgICAgX3VzZXJDb250ZW50Q29u
dHJvbGxlclByb3h5LT5yZW1vdmVVc2VyTWVzc2FnZUhhbmRsZXJGb3JOYW1lKG5hbWUsICp1c2Vy
Q29udGVudFdvcmxkLT5fY29udGVudFdvcmxkLT5fY29udGVudFdvcmxkKTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZh
dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
c2VyQ29udGVudENvbnRyb2xsZXJQcml2YXRlLmgJKHJldmlzaW9uIDI2MzA0MikKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZh
dGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogQGludGVyZmFjZSBXS1VzZXJD
b250ZW50Q29udHJvbGxlciAoV0tQcml2YXRlKQogCiAtICh2b2lkKV9yZW1vdmVVc2VyU2NyaXB0
OihXS1VzZXJTY3JpcHQgKil1c2VyU2NyaXB0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIp
LCBpb3MoMTAuMCkpOwotLSAodm9pZClfcmVtb3ZlQWxsVXNlclNjcmlwdHNBc3NvY2lhdGVkV2l0
aFVzZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxk
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpLCBpb3MoMTAuMCkpOworLSAodm9pZClfcmVt
b3ZlQWxsVXNlclNjcmlwdHNBc3NvY2lhdGVkV2l0aENvbnRlbnRXb3JsZDooV0tDb250ZW50V29y
bGQgKiljb250ZW50V29ybGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKIAogLSAodm9pZClfYWRkVXNlclNjcmlwdEltbWVkaWF0ZWx5OihXS1Vz
ZXJTY3JpcHQgKil1c2VyU2NyaXB0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTQpLCBpb3Mo
MTIuMCkpOwogCkBAIC00Niw5ICs0NiwxMCBAQAogLSAodm9pZClfYWRkVXNlclN0eWxlU2hlZXQ6
KF9XS1VzZXJTdHlsZVNoZWV0ICopdXNlclN0eWxlU2hlZXQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMiksIGlvcygxMC4wKSk7CiAtICh2b2lkKV9yZW1vdmVVc2VyU3R5bGVTaGVldDooX1dL
VXNlclN0eWxlU2hlZXQgKil1c2VyU3R5bGVTaGVldCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEyKSwgaW9zKDEwLjApKTsKIC0gKHZvaWQpX3JlbW92ZUFsbFVzZXJTdHlsZVNoZWV0cyBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsKLS0gKHZvaWQpX3JlbW92ZUFs
bFVzZXJTdHlsZVNoZWV0c0Fzc29jaWF0ZWRXaXRoVXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNv
bnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MiksIGlvcygxMC4wKSk7CistICh2b2lkKV9yZW1vdmVBbGxVc2VyU3R5bGVTaGVldHNBc3NvY2lh
dGVkV2l0aENvbnRlbnRXb3JsZDooV0tDb250ZW50V29ybGQgKiljb250ZW50V29ybGQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAotLSAodm9p
ZClfYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6KGlkIDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPilz
Y3JpcHRNZXNzYWdlSGFuZGxlciBuYW1lOihOU1N0cmluZyAqKW5hbWUgdXNlckNvbnRlbnRXb3Js
ZDooX1dLVXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQ7CistICh2b2lkKV9hZGRT
Y3JpcHRNZXNzYWdlSGFuZGxlcjooaWQgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+KXNjcmlwdE1l
c3NhZ2VIYW5kbGVyIG5hbWU6KE5TU3RyaW5nICopbmFtZSB1c2VyQ29udGVudFdvcmxkOihfV0tV
c2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZCBXS19BUElfREVQUkVDQVRFRF9XSVRI
X1JFUExBQ0VNRU5UKCJfYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bmFtZTpjb250ZW50V29ybGQ6
IiwgbWFjb3MoMTAuMTEsIFdLX01BQ19UQkEpLCBpb3MoOS4wLCBXS19JT1NfVEJBKSk7CistICh2
b2lkKV9hZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjooaWQgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+
KXNjcmlwdE1lc3NhZ2VIYW5kbGVyIG5hbWU6KE5TU3RyaW5nICopbmFtZSBjb250ZW50V29ybGQ6
KFdLQ29udGVudFdvcmxkICopY29udGVudFdvcmxkOwogLSAodm9pZClfcmVtb3ZlU2NyaXB0TWVz
c2FnZUhhbmRsZXJGb3JOYW1lOihOU1N0cmluZyAqKW5hbWUgdXNlckNvbnRlbnRXb3JsZDooX1dL
VXNlckNvbnRlbnRXb3JsZCAqKXVzZXJDb250ZW50V29ybGQ7CiAtICh2b2lkKV9yZW1vdmVBbGxT
Y3JpcHRNZXNzYWdlSGFuZGxlcnNBc3NvY2lhdGVkV2l0aFVzZXJDb250ZW50V29ybGQ6KF9XS1Vz
ZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0Lm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQubW0JKHJldmlzaW9uIDI2
MzA0MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJTY3JpcHQu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTE0MSw3ICsxNDEsNyBAQCAtIChpbnN0YW5jZXR5cGUpX2lu
aXRXaXRoU291cmNlOihOU1N0cmluCiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAg
ICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBBUEk6Ok9iamVjdDo6Y29uc3RydWN0SW5XcmFwcGVy
PEFQSTo6VXNlclNjcmlwdD4oc2VsZiwgV2ViQ29yZTo6VXNlclNjcmlwdCB7IHNvdXJjZSwgYXNz
b2NpYXRlZFVSTCwgbWFrZVZlY3RvcjxTdHJpbmc+KGluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdz
KSwgbWFrZVZlY3RvcjxTdHJpbmc+KGV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzKSwgQVBJOjp0
b1dlYkNvcmVVc2VyU2NyaXB0SW5qZWN0aW9uVGltZShpbmplY3Rpb25UaW1lKSwgZm9yTWFpbkZy
YW1lT25seSA/IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluVG9w
RnJhbWVPbmx5IDogV2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5B
bGxGcmFtZXMsIGRlZmVyUnVubmluZ1VudGlsTm90aWZpY2F0aW9uID8gV2ViQ29yZTo6V2FpdEZv
ck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGluZzo6WWVzIDogV2ViQ29yZTo6V2FpdEZvck5vdGlm
aWNhdGlvbkJlZm9yZUluamVjdGluZzo6Tm8gfSwgKmNvbnRlbnRXb3JsZC0+X2NvbnRlbnRXb3Js
ZCk7CisgICAgQVBJOjpPYmplY3Q6OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OlVzZXJTY3JpcHQ+
KHNlbGYsIFdlYkNvcmU6OlVzZXJTY3JpcHQgeyBzb3VyY2UsIGFzc29jaWF0ZWRVUkwsIG1ha2VW
ZWN0b3I8U3RyaW5nPihpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyksIG1ha2VWZWN0b3I8U3Ry
aW5nPihleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyksIEFQSTo6dG9XZWJDb3JlVXNlclNjcmlw
dEluamVjdGlvblRpbWUoaW5qZWN0aW9uVGltZSksIGZvck1haW5GcmFtZU9ubHkgPyBXZWJDb3Jl
OjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25seSA6IFdlYkNv
cmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzLCBkZWZlclJ1
bm5pbmdVbnRpbE5vdGlmaWNhdGlvbiA/IFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZv
cmVJbmplY3Rpbmc6OlllcyA6IFdlYkNvcmU6OldhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmpl
Y3Rpbmc6Ok5vIH0sIGNvbnRlbnRXb3JsZCA/ICpjb250ZW50V29ybGQtPl9jb250ZW50V29ybGQg
OiBBUEk6OkNvbnRlbnRXb3JsZDo6cGFnZUNvbnRlbnRXb3JsZCgpKTsKIAogICAgIHJldHVybiBz
ZWxmOwogfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlclNj
cmlwdFByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVc2VyU2NyaXB0UHJpdmF0ZS5oCShyZXZpc2lvbiAyNjMwNDIpCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyU2NyaXB0UHJpdmF0ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKIC0gKGlu
c3RhbmNldHlwZSlfaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGluamVjdGlvblRp
bWU6KFdLVXNlclNjcmlwdEluamVjdGlvblRpbWUpaW5qZWN0aW9uVGltZSBmb3JNYWluRnJhbWVP
bmx5OihCT09MKWZvck1haW5GcmFtZU9ubHkgbGVnYWN5V2hpdGVsaXN0OihOU0FycmF5PE5TU3Ry
aW5nICo+ICopbGVnYWN5V2hpdGVsaXN0IGxlZ2FjeUJsYWNrbGlzdDooTlNBcnJheTxOU1N0cmlu
ZyAqPiAqKWxlZ2FjeUJsYWNrbGlzdCBhc3NvY2lhdGVkVVJMOihOU1VSTCAqKWFzc29jaWF0ZWRV
UkwgY29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZCBkZWZlclJ1bm5p
bmdVbnRpbE5vdGlmaWNhdGlvbjooQk9PTClkZWZlclJ1bm5pbmdVbnRpbE5vdGlmaWNhdGlvbiBX
S19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfaW5pdFdpdGhTb3VyY2U6aW5qZWN0
aW9uVGltZTpmb3JNYWluRnJhbWVPbmx5OmluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOmV4Y2x1
ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOmFzc29jaWF0ZWRVUkw6Y29udGVudFdvcmxkOmRlZmVyUnVu
bmluZ1VudGlsTm90aWZpY2F0aW9uOiIsIG1hY29zKFdLX01BQ19UQkEsIFdLX01BQ19UQkEpLCBp
b3MoV0tfSU9TX1RCQSwgV0tfSU9TX1RCQSkpOwogCi0tIChpbnN0YW5jZXR5cGUpX2luaXRXaXRo
U291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBpbmplY3Rpb25UaW1lOihXS1VzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lKWluamVjdGlvblRpbWUgZm9yTWFpbkZyYW1lT25seTooQk9PTClmb3JNYWluRnJh
bWVPbmx5IGluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOihOU0FycmF5PE5TU3RyaW5nICo+ICop
aW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3MgZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6KE5T
QXJyYXk8TlNTdHJpbmcgKj4gKilleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyBhc3NvY2lhdGVk
VVJMOihOU1VSTCAqKWFzc29jaWF0ZWRVUkwgY29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAq
KWNvbnRlbnRXb3JsZCBkZWZlclJ1bm5pbmdVbnRpbE5vdGlmaWNhdGlvbjooQk9PTClkZWZlclJ1
bm5pbmdVbnRpbE5vdGlmaWNhdGlvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aFNvdXJjZTooTlNT
dHJpbmcgKilzb3VyY2UgaW5qZWN0aW9uVGltZTooV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSlp
bmplY3Rpb25UaW1lIGZvck1haW5GcmFtZU9ubHk6KEJPT0wpZm9yTWFpbkZyYW1lT25seSBpbmNs
dWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczoobnVsbGFibGUgTlNBcnJheTxOU1N0cmluZyAqPiAqKWlu
Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzIGV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOihudWxs
YWJsZSBOU0FycmF5PE5TU3RyaW5nICo+ICopZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3MgYXNz
b2NpYXRlZFVSTDoobnVsbGFibGUgTlNVUkwgKilhc3NvY2lhdGVkVVJMIGNvbnRlbnRXb3JsZDoo
bnVsbGFibGUgV0tDb250ZW50V29ybGQgKiljb250ZW50V29ybGQgZGVmZXJSdW5uaW5nVW50aWxO
b3RpZmljYXRpb246KEJPT0wpZGVmZXJSdW5uaW5nVW50aWxOb3RpZmljYXRpb24gV0tfQVBJX0FW
QUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tVc2VyQ29udGVudFdvcmxkICpfdXNlckNvbnRlbnRX
b3JsZCBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJfY29udGVudFdvcmxkIiwg
bWFjb3MoMTAuMTIsIFdLX01BQ19UQkEpLCBpb3MoMTAuMCwgV0tfSU9TX1RCQSkpOwogQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS0NvbnRlbnRXb3JsZCAqX2NvbnRlbnRXb3JsZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwpJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJTdHlsZVNoZWV0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJT
dHlsZVNoZWV0LmgJKHJldmlzaW9uIDI2MzA0MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tVc2VyU3R5bGVTaGVldC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCwxMyAr
NDgsMTYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLgogLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoU291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBmb3JNYWluRnJhbWVP
bmx5OihCT09MKWZvck1haW5GcmFtZU9ubHk7CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVz
aAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJh
dGlvbnMiCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNl
IGZvcldLV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBmb3JNYWluRnJhbWVPbmx5OihCT09M
KWZvck1haW5GcmFtZU9ubHkgbGV2ZWw6KF9XS1VzZXJTdHlsZUxldmVsKWxldmVsIHVzZXJDb250
ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGZvcldLV2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBmb3JNYWluRnJhbWVPbmx5OihCT09MKWZvck1haW5GcmFtZU9ubHkg
YmFzZVVSTDooTlNVUkwgKiliYXNlVVJMIGxldmVsOihfV0tVc2VyU3R5bGVMZXZlbClsZXZlbCB1
c2VyQ29udGVudFdvcmxkOihfV0tVc2VyQ29udGVudFdvcmxkICopdXNlckNvbnRlbnRXb3JsZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwotLSAo
aW5zdGFuY2V0eXBlKWluaXRXaXRoU291cmNlOihOU1N0cmluZyAqKXNvdXJjZSBmb3JNYWluRnJh
bWVPbmx5OihCT09MKWZvck1haW5GcmFtZU9ubHkgbGVnYWN5V2hpdGVsaXN0OihOU0FycmF5PE5T
U3RyaW5nICo+ICopbGVnYWN5V2hpdGVsaXN0IGxlZ2FjeUJsYWNrbGlzdDooTlNBcnJheTxOU1N0
cmluZyAqPiAqKWxlZ2FjeUJsYWNrbGlzdCB1c2VyQ29udGVudFdvcmxkOihfV0tVc2VyQ29udGVu
dFdvcmxkICopdXNlckNvbnRlbnRXb3JsZDsKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFNvdXJj
ZTooTlNTdHJpbmcgKilzb3VyY2UgZm9yTWFpbkZyYW1lT25seTooQk9PTClmb3JNYWluRnJhbWVP
bmx5IGxlZ2FjeVdoaXRlbGlzdDooTlNBcnJheTxOU1N0cmluZyAqPiAqKWxlZ2FjeVdoaXRlbGlz
dCBsZWdhY3lCbGFja2xpc3Q6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilsZWdhY3lCbGFja2xpc3Qg
YmFzZVVSTDooTlNVUkwgKiliYXNlVVJMIHVzZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50
V29ybGQgKil1c2VyQ29udGVudFdvcmxkOwotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoU291cmNl
OihOU1N0cmluZyAqKXNvdXJjZSBmb3JNYWluRnJhbWVPbmx5OihCT09MKWZvck1haW5GcmFtZU9u
bHkgbGVnYWN5V2hpdGVsaXN0OihOU0FycmF5PE5TU3RyaW5nICo+ICopbGVnYWN5V2hpdGVsaXN0
IGxlZ2FjeUJsYWNrbGlzdDooTlNBcnJheTxOU1N0cmluZyAqPiAqKWxlZ2FjeUJsYWNrbGlzdCBi
YXNlVVJMOihOU1VSTCAqKWJhc2VVUkwgbGV2ZWw6KF9XS1VzZXJTdHlsZUxldmVsKWxldmVsIHVz
ZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGZvcldLV2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBmb3JNYWluRnJhbWVPbmx5OihCT09MKWZvck1haW5GcmFt
ZU9ubHkgbGV2ZWw6KF9XS1VzZXJTdHlsZUxldmVsKWxldmVsIHVzZXJDb250ZW50V29ybGQ6KF9X
S1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkIFdLX0FQSV9ERVBSRUNBVEVEX1dJ
VEhfUkVQTEFDRU1FTlQoIl9pbml0V2l0aFNvdXJjZTpmb3JXS1dlYlZpZXc6Zm9yTWFpbkZyYW1l
T25seTppbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5n
czpiYXNlVVJMOmxldmVsOmNvbnRlbnRXb3JsZDoiLCBtYWNvcyhXS19NQUNfVEJBLCBXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEsIFdLX0lPU19UQkEpKTsKKy0gKGluc3RhbmNldHlwZSlpbml0
V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgZm9yV0tXZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGZvck1haW5GcmFtZU9ubHk6KEJPT0wpZm9yTWFpbkZyYW1lT25seSBiYXNlVVJMOihO
U1VSTCAqKWJhc2VVUkwgbGV2ZWw6KF9XS1VzZXJTdHlsZUxldmVsKWxldmVsIHVzZXJDb250ZW50
V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdvcmxkIFdLX0FQSV9ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9pbml0V2l0aFNvdXJjZTpmb3JXS1dlYlZpZXc6Zm9y
TWFpbkZyYW1lT25seTppbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpleGNsdWRlTWF0Y2hQYXR0
ZXJuU3RyaW5nczpiYXNlVVJMOmxldmVsOmNvbnRlbnRXb3JsZDoiLCBtYWNvcyhXS19NQUNfVEJB
LCBXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEsIFdLX0lPU19UQkEpKTsKKy0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgZm9yTWFpbkZyYW1lT25seToo
Qk9PTClmb3JNYWluRnJhbWVPbmx5IGxlZ2FjeVdoaXRlbGlzdDooTlNBcnJheTxOU1N0cmluZyAq
PiAqKWxlZ2FjeVdoaXRlbGlzdCBsZWdhY3lCbGFja2xpc3Q6KE5TQXJyYXk8TlNTdHJpbmcgKj4g
KilsZWdhY3lCbGFja2xpc3QgdXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3JsZCAq
KXVzZXJDb250ZW50V29ybGQgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgiX2lu
aXRXaXRoU291cmNlOmZvcldLV2ViVmlldzpmb3JNYWluRnJhbWVPbmx5OmluY2x1ZGVNYXRjaFBh
dHRlcm5TdHJpbmdzOmV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOmJhc2VVUkw6bGV2ZWw6Y29u
dGVudFdvcmxkOiIsIG1hY29zKDEwLjEyLCBXS19NQUNfVEJBKSwgaW9zKDEwLjAsIFdLX0lPU19U
QkEpKTsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2Ug
Zm9yTWFpbkZyYW1lT25seTooQk9PTClmb3JNYWluRnJhbWVPbmx5IGxlZ2FjeVdoaXRlbGlzdDoo
TlNBcnJheTxOU1N0cmluZyAqPiAqKWxlZ2FjeVdoaXRlbGlzdCBsZWdhY3lCbGFja2xpc3Q6KE5T
QXJyYXk8TlNTdHJpbmcgKj4gKilsZWdhY3lCbGFja2xpc3QgYmFzZVVSTDooTlNVUkwgKiliYXNl
VVJMIHVzZXJDb250ZW50V29ybGQ6KF9XS1VzZXJDb250ZW50V29ybGQgKil1c2VyQ29udGVudFdv
cmxkIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIl9pbml0V2l0aFNvdXJjZTpm
b3JXS1dlYlZpZXc6Zm9yTWFpbkZyYW1lT25seTppbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpl
eGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpiYXNlVVJMOmxldmVsOmNvbnRlbnRXb3JsZDoiLCBt
YWNvcygxMC4xMiwgV0tfTUFDX1RCQSksIGlvcygxMC4wLCBXS19JT1NfVEJBKSk7CistIChpbnN0
YW5jZXR5cGUpaW5pdFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGZvck1haW5GcmFtZU9u
bHk6KEJPT0wpZm9yTWFpbkZyYW1lT25seSBsZWdhY3lXaGl0ZWxpc3Q6KE5TQXJyYXk8TlNTdHJp
bmcgKj4gKilsZWdhY3lXaGl0ZWxpc3QgbGVnYWN5QmxhY2tsaXN0OihOU0FycmF5PE5TU3RyaW5n
ICo+ICopbGVnYWN5QmxhY2tsaXN0IGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTCBsZXZlbDooX1dL
VXNlclN0eWxlTGV2ZWwpbGV2ZWwgdXNlckNvbnRlbnRXb3JsZDooX1dLVXNlckNvbnRlbnRXb3Js
ZCAqKXVzZXJDb250ZW50V29ybGQgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgi
X2luaXRXaXRoU291cmNlOmZvcldLV2ViVmlldzpmb3JNYWluRnJhbWVPbmx5OmluY2x1ZGVNYXRj
aFBhdHRlcm5TdHJpbmdzOmV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOmJhc2VVUkw6bGV2ZWw6
Y29udGVudFdvcmxkOiIsIG1hY29zKFdLX01BQ19UQkEsIFdLX01BQ19UQkEpLCBpb3MoV0tfSU9T
X1RCQSwgV0tfSU9TX1RCQSkpOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogCisvLyBf
V0tVc2VyU3R5bGVVc2VyTGV2ZWwgd2FzIHRoZSBkZWZhdWx0CistIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhTb3VyY2U6KE5TU3RyaW5nICopc291cmNlIGZvcldLV2ViVmlldzoobnVsbGFibGUgV0tX
ZWJWaWV3ICopd2ViVmlldyBmb3JNYWluRnJhbWVPbmx5OihCT09MKWZvck1haW5GcmFtZU9ubHkg
aW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6KG51bGxhYmxlIE5TQXJyYXk8TlNTdHJpbmcgKj4g
KilpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyBleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczoo
bnVsbGFibGUgTlNBcnJheTxOU1N0cmluZyAqPiAqKWV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdz
IGJhc2VVUkw6KG51bGxhYmxlIE5TVVJMICopYmFzZVVSTCBsZXZlbDooX1dLVXNlclN0eWxlTGV2
ZWwpbGV2ZWwgY29udGVudFdvcmxkOihudWxsYWJsZSBXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRX
b3JsZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworCiBAZW5kCiAKIE5TX0FTU1VNRV9OT05OVUxMX0VORApJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJTdHlsZVNoZWV0Lm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyU3R5bGVTaGVldC5tbQkocmV2
aXNpb24gMjYzMDQyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1Vz
ZXJTdHlsZVNoZWV0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsNiArMTE3LDE3IEBAIC0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aFNvdXJjZTooTlNTdHJpbmcKIH0KIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTb3VyY2U6KE5TU3Ry
aW5nICopc291cmNlIGZvcldLV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBmb3JNYWluRnJh
bWVPbmx5OihCT09MKWZvck1haW5GcmFtZU9ubHkgaW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6
KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyBleGNsdWRl
TWF0Y2hQYXR0ZXJuU3RyaW5nczooTlNBcnJheTxOU1N0cmluZyAqPiAqKWV4Y2x1ZGVNYXRjaFBh
dHRlcm5TdHJpbmdzIGJhc2VVUkw6KE5TVVJMICopYmFzZVVSTCBsZXZlbDooX1dLVXNlclN0eWxl
TGV2ZWwpbGV2ZWwgY29udGVudFdvcmxkOihXS0NvbnRlbnRXb3JsZCAqKWNvbnRlbnRXb3JsZAor
eworCisgICAgV2ViS2l0OjpJbml0aWFsaXplV2ViS2l0MigpOworCisgICAgQVBJOjpPYmplY3Q6
OmNvbnN0cnVjdEluV3JhcHBlcjxBUEk6OlVzZXJTdHlsZVNoZWV0PihzZWxmLCBXZWJDb3JlOjpV
c2VyU3R5bGVTaGVldCB7IHNvdXJjZSwgYmFzZVVSTCwgbWFrZVZlY3RvcjxTdHJpbmc+KGluY2x1
ZGVNYXRjaFBhdHRlcm5TdHJpbmdzKSwgbWFrZVZlY3RvcjxTdHJpbmc+KGV4Y2x1ZGVNYXRjaFBh
dHRlcm5TdHJpbmdzKSwgZm9yTWFpbkZyYW1lT25seSA/IFdlYkNvcmU6OlVzZXJDb250ZW50SW5q
ZWN0ZWRGcmFtZXM6OkluamVjdEluVG9wRnJhbWVPbmx5IDogV2ViQ29yZTo6VXNlckNvbnRlbnRJ
bmplY3RlZEZyYW1lczo6SW5qZWN0SW5BbGxGcmFtZXMsIEFQSTo6dG9XZWJDb3JlVXNlclN0eWxl
TGV2ZWwobGV2ZWwpLCB3ZWJWaWV3ID8gT3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+
KFt3ZWJWaWV3IF9wYWdlXS0+d2ViUGFnZUlEKCkpIDogV1RGOjpudWxsb3B0IH0sIGNvbnRlbnRX
b3JsZCA/ICpjb250ZW50V29ybGQtPl9jb250ZW50V29ybGQgOiBBUEk6OkNvbnRlbnRXb3JsZDo6
cGFnZUNvbnRlbnRXb3JsZCgpKTsKKworICAgIHJldHVybiBzZWxmOworfQorCisKIC0gKHZvaWQp
ZGVhbGxvYwogewogICAgIF91c2VyU3R5bGVTaGVldC0+flVzZXJTdHlsZVNoZWV0KCk7CkluZGV4
OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjMwNDIpCisrKyBTb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBA
QAorMjAyMC0wNi0xNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgorCisgICAgICAgIFByb3ZpZGUgYWx0ZXJuYXRpdmVseS1uYW1lZCBTUEkgZm9yIHVzZXIgc3R5
bGUgc2hlZXRzIGFuZCBzY3JpcHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTMyMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKCtbV2ViVmlldyBf
YWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnlXaXRoU291cmNlT3JpZ2luOmRlc3RpbmF0aW9u
UHJvdG9jb2w6ZGVzdGluYXRpb25Ib3N0OmFsbG93RGVzdGluYXRpb25TdWJkb21haW5zOl0pOgor
ICAgICAgICAoK1tXZWJWaWV3IF9yZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeVdpdGhT
b3VyY2VPcmlnaW46ZGVzdGluYXRpb25Qcm90b2NvbDpkZXN0aW5hdGlvbkhvc3Q6YWxsb3dEZXN0
aW5hdGlvblN1YmRvbWFpbnM6XSk6CisgICAgICAgICgrW1dlYlZpZXcgX3Jlc2V0T3JpZ2luQWNj
ZXNzQWxsb3dMaXN0c10pOgorICAgICAgICAoK1tXZWJWaWV3IF9hZGRVc2VyU2NyaXB0VG9Hcm91
cDp3b3JsZDpzb3VyY2U6dXJsOndoaXRlbGlzdDpibGFja2xpc3Q6aW5qZWN0aW9uVGltZTppbmpl
Y3RlZEZyYW1lczpdKToKKyAgICAgICAgKCtbV2ViVmlldyBfYWRkVXNlclNjcmlwdFRvR3JvdXA6
d29ybGQ6c291cmNlOnVybDppbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpleGNsdWRlTWF0Y2hQ
YXR0ZXJuU3RyaW5nczppbmplY3Rpb25UaW1lOmluamVjdGVkRnJhbWVzOl0pOgorICAgICAgICAo
K1tXZWJWaWV3IF9hZGRVc2VyU3R5bGVTaGVldFRvR3JvdXA6d29ybGQ6c291cmNlOnVybDp3aGl0
ZWxpc3Q6YmxhY2tsaXN0OmluamVjdGVkRnJhbWVzOl0pOgorICAgICAgICAoK1tXZWJWaWV3IF9h
ZGRVc2VyU3R5bGVTaGVldFRvR3JvdXA6d29ybGQ6c291cmNlOnVybDppbmNsdWRlTWF0Y2hQYXR0
ZXJuU3RyaW5nczpleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczppbmplY3RlZEZyYW1lczpdKToK
KyAgICAgICAgKCtbV2ViVmlldyBfc2V0Rm9udEFsbG93TGlzdDpdKToKKyAgICAgICAgKCtbV2Vi
VmlldyBfYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlXaXRoU291cmNlT3JpZ2luOmRlc3Rp
bmF0aW9uUHJvdG9jb2w6ZGVzdGluYXRpb25Ib3N0OmFsbG93RGVzdGluYXRpb25TdWJkb21haW5z
Ol0pOiBEZWxldGVkLgorICAgICAgICAoK1tXZWJWaWV3IF9yZW1vdmVPcmlnaW5BY2Nlc3NXaGl0
ZWxpc3RFbnRyeVdpdGhTb3VyY2VPcmlnaW46ZGVzdGluYXRpb25Qcm90b2NvbDpkZXN0aW5hdGlv
bkhvc3Q6YWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnM6XSk6IERlbGV0ZWQuCisgICAgICAgICgr
W1dlYlZpZXcgX3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0c10pOiBEZWxldGVkLgorICAgICAg
ICAoK1tXZWJWaWV3IF9zZXRGb250V2hpdGVsaXN0Ol0pOiBEZWxldGVkLgorICAgICAgICAqIFdl
YlZpZXcvV2ViVmlld1ByaXZhdGUuaDoKKwogMjAyMC0wNi0xMSAgU2FtIFdlaW5pZyAgPHdlaW5p
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgRG9jdW1lbnQuY3VycmVudFNjcmlwdCBkb2VzIG5vdCB3
b3JrIGZvciBTVkdTY3JpcHRFbGVtZW50cwpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQkocmV2aXNpb24gMjYzMDQyKQorKysgU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00NzIzLDE3ICs0
NzIzLDE3IEBAIC0gKE5TUGFzdGVib2FyZCAqKV9pbnNlcnRpb25QYXN0ZWJvYXJkCiB9CiAjZW5k
aWYKIAotKyAodm9pZClfYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlXaXRoU291cmNlT3Jp
Z2luOihOU1N0cmluZyAqKXNvdXJjZU9yaWdpbiBkZXN0aW5hdGlvblByb3RvY29sOihOU1N0cmlu
ZyAqKWRlc3RpbmF0aW9uUHJvdG9jb2wgZGVzdGluYXRpb25Ib3N0OihOU1N0cmluZyAqKWRlc3Rp
bmF0aW9uSG9zdCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczooQk9PTClhbGxvd0Rlc3RpbmF0
aW9uU3ViZG9tYWlucworKyAodm9pZClfYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnlXaXRo
U291cmNlT3JpZ2luOihOU1N0cmluZyAqKXNvdXJjZU9yaWdpbiBkZXN0aW5hdGlvblByb3RvY29s
OihOU1N0cmluZyAqKWRlc3RpbmF0aW9uUHJvdG9jb2wgZGVzdGluYXRpb25Ib3N0OihOU1N0cmlu
ZyAqKWRlc3RpbmF0aW9uSG9zdCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczooQk9PTClhbGxv
d0Rlc3RpbmF0aW9uU3ViZG9tYWlucwogewogICAgIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5Ojph
ZGRPcmlnaW5BY2Nlc3NBbGxvd2xpc3RFbnRyeShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlRnJvbVN0cmluZyhzb3VyY2VPcmlnaW4pLmdldCgpLCBkZXN0aW5hdGlvblByb3RvY29sLCBk
ZXN0aW5hdGlvbkhvc3QsIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKIH0KIAotKyAodm9p
ZClfcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlXaXRoU291cmNlT3JpZ2luOihOU1N0
cmluZyAqKXNvdXJjZU9yaWdpbiBkZXN0aW5hdGlvblByb3RvY29sOihOU1N0cmluZyAqKWRlc3Rp
bmF0aW9uUHJvdG9jb2wgZGVzdGluYXRpb25Ib3N0OihOU1N0cmluZyAqKWRlc3RpbmF0aW9uSG9z
dCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczooQk9PTClhbGxvd0Rlc3RpbmF0aW9uU3ViZG9t
YWlucworKyAodm9pZClfcmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnlXaXRoU291cmNl
T3JpZ2luOihOU1N0cmluZyAqKXNvdXJjZU9yaWdpbiBkZXN0aW5hdGlvblByb3RvY29sOihOU1N0
cmluZyAqKWRlc3RpbmF0aW9uUHJvdG9jb2wgZGVzdGluYXRpb25Ib3N0OihOU1N0cmluZyAqKWRl
c3RpbmF0aW9uSG9zdCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczooQk9PTClhbGxvd0Rlc3Rp
bmF0aW9uU3ViZG9tYWlucwogewogICAgIFdlYkNvcmU6OlNlY3VyaXR5UG9saWN5OjpyZW1vdmVP
cmlnaW5BY2Nlc3NBbGxvd2xpc3RFbnRyeShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
RnJvbVN0cmluZyhzb3VyY2VPcmlnaW4pLmdldCgpLCBkZXN0aW5hdGlvblByb3RvY29sLCBkZXN0
aW5hdGlvbkhvc3QsIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKIH0KIAotKyAodm9pZClf
cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzCisrICh2b2lkKV9yZXNldE9yaWdpbkFjY2Vzc0Fs
bG93TGlzdHMKIHsKICAgICBXZWJDb3JlOjpTZWN1cml0eVBvbGljeTo6cmVzZXRPcmlnaW5BY2Nl
c3NBbGxvd2xpc3RzKCk7CiB9CkBAIC00Nzg2LDYgKzQ3ODYsMTEgQEAgKyAodm9pZClfYWRkVXNl
clNjcmlwdFRvR3JvdXA6KE5TU3RyaW5nIAogICAgICAgICAgICAgICAgIGluamVjdGlvblRpbWU6
KFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKWluamVjdGlvblRpbWUKICAgICAgICAgICAgICAg
IGluamVjdGVkRnJhbWVzOihXZWJVc2VyQ29udGVudEluamVjdGVkRnJhbWVzKWluamVjdGVkRnJh
bWVzCiB7CisgICAgW1dlYlZpZXcgX2FkZFVzZXJTY3JpcHRUb0dyb3VwOmdyb3VwTmFtZSB3b3Js
ZDp3b3JsZCBzb3VyY2U6c291cmNlIHVybDp1cmwgaW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6
d2hpdGVsaXN0IGV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOmJsYWNrbGlzdCBpbmplY3Rpb25U
aW1lOmluamVjdGlvblRpbWUgaW5qZWN0ZWRGcmFtZXM6aW5qZWN0ZWRGcmFtZXNdOworfQorCisr
ICh2b2lkKV9hZGRVc2VyU2NyaXB0VG9Hcm91cDooTlNTdHJpbmcgKilncm91cE5hbWUgd29ybGQ6
KFdlYlNjcmlwdFdvcmxkICopd29ybGQgc291cmNlOihOU1N0cmluZyAqKXNvdXJjZSB1cmw6KE5T
VVJMICopdXJsIGluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOihOU0FycmF5ICopaW5jbHVkZU1h
dGNoUGF0dGVyblN0cmluZ3MgZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6KE5TQXJyYXkgKill
eGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyBpbmplY3Rpb25UaW1lOihXZWJVc2VyU2NyaXB0SW5q
ZWN0aW9uVGltZSlpbmplY3Rpb25UaW1lIGluamVjdGVkRnJhbWVzOihXZWJVc2VyQ29udGVudElu
amVjdGVkRnJhbWVzKWluamVjdGVkRnJhbWVzCit7CiAgICAgU3RyaW5nIGdyb3VwKGdyb3VwTmFt
ZSk7CiAgICAgaWYgKGdyb3VwLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNDc5NSw3
ICs0ODAwLDcgQEAgKyAodm9pZClfYWRkVXNlclNjcmlwdFRvR3JvdXA6KE5TU3RyaW5nIAogICAg
IGlmICghd29ybGQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8gdXNlclNjcmlwdCA9IG1h
a2VVbmlxdWU8V2ViQ29yZTo6VXNlclNjcmlwdD4oc291cmNlLCB1cmwsIG1ha2VWZWN0b3I8U3Ry
aW5nPih3aGl0ZWxpc3QpLCBtYWtlVmVjdG9yPFN0cmluZz4oYmxhY2tsaXN0KSwgaW5qZWN0aW9u
VGltZSA9PSBXZWJJbmplY3RBdERvY3VtZW50U3RhcnQgPyBXZWJDb3JlOjpVc2VyU2NyaXB0SW5q
ZWN0aW9uVGltZTo6RG9jdW1lbnRTdGFydCA6IFdlYkNvcmU6OlVzZXJTY3JpcHRJbmplY3Rpb25U
aW1lOjpEb2N1bWVudEVuZCwgaW5qZWN0ZWRGcmFtZXMgPT0gV2ViSW5qZWN0SW5BbGxGcmFtZXMg
PyBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcyA6
IFdlYkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluVG9wRnJhbWVPbmx5
LCBXZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyk7CisgICAg
YXV0byB1c2VyU2NyaXB0ID0gbWFrZVVuaXF1ZTxXZWJDb3JlOjpVc2VyU2NyaXB0Pihzb3VyY2Us
IHVybCwgbWFrZVZlY3RvcjxTdHJpbmc+KGluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzKSwgbWFr
ZVZlY3RvcjxTdHJpbmc+KGV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzKSwgaW5qZWN0aW9uVGlt
ZSA9PSBXZWJJbmplY3RBdERvY3VtZW50U3RhcnQgPyBXZWJDb3JlOjpVc2VyU2NyaXB0SW5qZWN0
aW9uVGltZTo6RG9jdW1lbnRTdGFydCA6IFdlYkNvcmU6OlVzZXJTY3JpcHRJbmplY3Rpb25UaW1l
OjpEb2N1bWVudEVuZCwgaW5qZWN0ZWRGcmFtZXMgPT0gV2ViSW5qZWN0SW5BbGxGcmFtZXMgPyBX
ZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcyA6IFdl
YkNvcmU6OlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluVG9wRnJhbWVPbmx5LCBX
ZWJDb3JlOjpXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyk7CiAgICAgdmll
d0dyb3VwLT51c2VyQ29udGVudENvbnRyb2xsZXIoKS5hZGRVc2VyU2NyaXB0KCpjb3JlKHdvcmxk
KSwgV1RGTW92ZSh1c2VyU2NyaXB0KSk7CiB9CiAKQEAgLTQ4MDksNiArNDgxNCwxMSBAQCArICh2
b2lkKV9hZGRVc2VyU3R5bGVTaGVldFRvR3JvdXA6KE5TU3RyCiAgICAgICAgICAgICAgICAgICAg
ICAgICB3aGl0ZWxpc3Q6KE5TQXJyYXkgKil3aGl0ZWxpc3QgYmxhY2tsaXN0OihOU0FycmF5ICop
YmxhY2tsaXN0CiAgICAgICAgICAgICAgICAgICAgaW5qZWN0ZWRGcmFtZXM6KFdlYlVzZXJDb250
ZW50SW5qZWN0ZWRGcmFtZXMpaW5qZWN0ZWRGcmFtZXMKIHsKKyAgICBbV2ViVmlldyBfYWRkVXNl
clN0eWxlU2hlZXRUb0dyb3VwOmdyb3VwTmFtZSB3b3JsZDp3b3JsZCBzb3VyY2U6c291cmNlIHVy
bDp1cmwgaW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6d2hpdGVsaXN0IGV4Y2x1ZGVNYXRjaFBh
dHRlcm5TdHJpbmdzOmJsYWNrbGlzdCBpbmplY3RlZEZyYW1lczppbmplY3RlZEZyYW1lc107Cit9
CisKKysgKHZvaWQpX2FkZFVzZXJTdHlsZVNoZWV0VG9Hcm91cDooTlNTdHJpbmcgKilncm91cE5h
bWUgd29ybGQ6KFdlYlNjcmlwdFdvcmxkICopd29ybGQgc291cmNlOihOU1N0cmluZyAqKXNvdXJj
ZSB1cmw6KE5TVVJMICopdXJsIGluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOihOU0FycmF5ICop
aW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3MgZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6KE5T
QXJyYXkgKilleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyBpbmplY3RlZEZyYW1lczooV2ViVXNl
ckNvbnRlbnRJbmplY3RlZEZyYW1lcylpbmplY3RlZEZyYW1lcworewogICAgIFN0cmluZyBncm91
cChncm91cE5hbWUpOwogICAgIGlmIChncm91cC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsK
QEAgLTQ4MTgsNyArNDgyOCw3IEBAICsgKHZvaWQpX2FkZFVzZXJTdHlsZVNoZWV0VG9Hcm91cDoo
TlNTdHIKICAgICBpZiAoIXdvcmxkKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHN0eWxl
U2hlZXQgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OlVzZXJTdHlsZVNoZWV0Pihzb3VyY2UsIHVybCwg
bWFrZVZlY3RvcjxTdHJpbmc+KHdoaXRlbGlzdCksIG1ha2VWZWN0b3I8U3RyaW5nPihibGFja2xp
c3QpLCBpbmplY3RlZEZyYW1lcyA9PSBXZWJJbmplY3RJbkFsbEZyYW1lcyA/IFdlYkNvcmU6OlVz
ZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzIDogV2ViQ29yZTo6VXNl
ckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFtZU9ubHksIFdlYkNvcmU6OlVz
ZXJTdHlsZVVzZXJMZXZlbCk7CisgICAgYXV0byBzdHlsZVNoZWV0ID0gbWFrZVVuaXF1ZTxXZWJD
b3JlOjpVc2VyU3R5bGVTaGVldD4oc291cmNlLCB1cmwsIG1ha2VWZWN0b3I8U3RyaW5nPihpbmNs
dWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyksIG1ha2VWZWN0b3I8U3RyaW5nPihleGNsdWRlTWF0Y2hQ
YXR0ZXJuU3RyaW5ncyksIGluamVjdGVkRnJhbWVzID09IFdlYkluamVjdEluQWxsRnJhbWVzID8g
V2ViQ29yZTo6VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5BbGxGcmFtZXMgOiBX
ZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJblRvcEZyYW1lT25seSwg
V2ViQ29yZTo6VXNlclN0eWxlVXNlckxldmVsKTsKICAgICB2aWV3R3JvdXAtPnVzZXJDb250ZW50
Q29udHJvbGxlcigpLmFkZFVzZXJTdHlsZVNoZWV0KCpjb3JlKHdvcmxkKSwgV1RGTW92ZShzdHls
ZVNoZWV0KSwgV2ViQ29yZTo6SW5qZWN0SW5FeGlzdGluZ0RvY3VtZW50cyk7CiB9CiAKQEAgLTEw
MjQ3LDEyICsxMDI1NywxMiBAQCAtICh1aW50NjRfdClfbm90aWZpY2F0aW9uSURGb3JUZXN0aW5n
OihKCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJWaWV3IChXZWJWaWV3Rm9udFNlbGVjdGlvbikKIAot
KyAodm9pZClfc2V0Rm9udFdoaXRlbGlzdDooTlNBcnJheSAqKXdoaXRlbGlzdAorKyAodm9pZClf
c2V0Rm9udEFsbG93TGlzdDooTlNBcnJheSAqKWFsbG93TGlzdAogewogI2lmICFQTEFURk9STShN
QUMpCi0gICAgVU5VU0VEX1BBUkFNKHdoaXRlbGlzdCk7CisgICAgVU5VU0VEX1BBUkFNKGFsbG93
TGlzdCk7CiAjZWxzZQotICAgIFdlYkNvcmU6OkZvbnRDYWNoZTo6c2V0Rm9udEFsbG93bGlzdCht
YWtlVmVjdG9yPFN0cmluZz4od2hpdGVsaXN0KSk7CisgICAgV2ViQ29yZTo6Rm9udENhY2hlOjpz
ZXRGb250QWxsb3dsaXN0KG1ha2VWZWN0b3I8U3RyaW5nPihhbGxvd0xpc3QpKTsKICNlbmRpZgog
fQogCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
UHJpdmF0ZS5oCShyZXZpc2lvbiAyNjMwNDIpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc5NywxOCArNzk3LDIy
IEBAIENvdWxkIGJlIHdvcnRoIGFkZGluZyB0byB0aGUgQVBJLgogLy8gLSBkZXN0aW5hdGlvblBy
b3RvY29sOiBUaGUgcHJvdG9jb2wgdG8gZ3JhbnQgYWNjZXNzIHRvLgogLy8gLSBkZXN0aW5hdGlv
bkhvc3Q6IFRoZSBob3N0IHRvIGdyYW50IGFjY2VzcyB0by4KIC8vIC0gYWxsb3dEZXN0aW5hdGlv
blN1YmRvbWFpbnM6IElmIGhvc3QgaXMgYSBkb21haW4sIHNldHRpbmcgdGhpcyB0byBZRVMgd2ls
bCB3aGl0ZWxpc3QgaG9zdCBhbmQgYWxsIGl0cyBzdWJkb21haW5zLCByZWN1cnNpdmVseS4KLSsg
KHZvaWQpX2FkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5V2l0aFNvdXJjZU9yaWdpbjooTlNT
dHJpbmcgKilzb3VyY2VPcmlnaW4gZGVzdGluYXRpb25Qcm90b2NvbDooTlNTdHJpbmcgKilkZXN0
aW5hdGlvblByb3RvY29sIGRlc3RpbmF0aW9uSG9zdDooTlNTdHJpbmcgKilkZXN0aW5hdGlvbkhv
c3QgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnM6KEJPT0wpYWxsb3dEZXN0aW5hdGlvblN1YmRv
bWFpbnM7Ci0rICh2b2lkKV9yZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeVdpdGhTb3Vy
Y2VPcmlnaW46KE5TU3RyaW5nICopc291cmNlT3JpZ2luIGRlc3RpbmF0aW9uUHJvdG9jb2w6KE5T
U3RyaW5nICopZGVzdGluYXRpb25Qcm90b2NvbCBkZXN0aW5hdGlvbkhvc3Q6KE5TU3RyaW5nICop
ZGVzdGluYXRpb25Ib3N0IGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zOihCT09MKWFsbG93RGVz
dGluYXRpb25TdWJkb21haW5zOworKyAodm9pZClfYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50
cnlXaXRoU291cmNlT3JpZ2luOihOU1N0cmluZyAqKXNvdXJjZU9yaWdpbiBkZXN0aW5hdGlvblBy
b3RvY29sOihOU1N0cmluZyAqKWRlc3RpbmF0aW9uUHJvdG9jb2wgZGVzdGluYXRpb25Ib3N0OihO
U1N0cmluZyAqKWRlc3RpbmF0aW9uSG9zdCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczooQk9P
TClhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczsKKysgKHZvaWQpX3JlbW92ZU9yaWdpbkFjY2Vz
c0FsbG93TGlzdEVudHJ5V2l0aFNvdXJjZU9yaWdpbjooTlNTdHJpbmcgKilzb3VyY2VPcmlnaW4g
ZGVzdGluYXRpb25Qcm90b2NvbDooTlNTdHJpbmcgKilkZXN0aW5hdGlvblByb3RvY29sIGRlc3Rp
bmF0aW9uSG9zdDooTlNTdHJpbmcgKilkZXN0aW5hdGlvbkhvc3QgYWxsb3dEZXN0aW5hdGlvblN1
YmRvbWFpbnM6KEJPT0wpYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnM7CiAKLS8vIFJlbW92ZXMg
YWxsIHdoaXRlIGxpc3QgZW50cmllcyBjcmVhdGVkIHdpdGggX2FkZE9yaWdpbkFjY2Vzc1doaXRl
bGlzdEVudHJ5V2l0aFNvdXJjZU9yaWdpbi4KLSsgKHZvaWQpX3Jlc2V0T3JpZ2luQWNjZXNzV2hp
dGVsaXN0czsKKy8vIFJlbW92ZXMgYWxsIHdoaXRlIGxpc3QgZW50cmllcyBjcmVhdGVkIHdpdGgg
X2FkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5V2l0aFNvdXJjZU9yaWdpbi4KKysgKHZvaWQp
X3Jlc2V0T3JpZ2luQWNjZXNzQWxsb3dMaXN0czsKIAogLy8gRklYTUU6IFRoZSBmb2xsb3dpbmcg
dHdvIG1ldGhvZHMgYXJlIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgdGhlIG92ZXJsb2FkcyBiZWxv
dyB0aGF0IHRha2UgdGhlIFdlYlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgYXJndW1lbnQuIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTgwMC4KLSsgKHZvaWQpX2Fk
ZFVzZXJTY3JpcHRUb0dyb3VwOihOU1N0cmluZyAqKWdyb3VwTmFtZSB3b3JsZDooV2ViU2NyaXB0
V29ybGQgKil3b3JsZCBzb3VyY2U6KE5TU3RyaW5nICopc291cmNlIHVybDooTlNVUkwgKil1cmwg
d2hpdGVsaXN0OihOU0FycmF5ICopd2hpdGVsaXN0IGJsYWNrbGlzdDooTlNBcnJheSAqKWJsYWNr
bGlzdCBpbmplY3Rpb25UaW1lOihXZWJVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSlpbmplY3Rpb25U
aW1lOwotKyAodm9pZClfYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwOihOU1N0cmluZyAqKWdyb3Vw
TmFtZSB3b3JsZDooV2ViU2NyaXB0V29ybGQgKil3b3JsZCBzb3VyY2U6KE5TU3RyaW5nICopc291
cmNlIHVybDooTlNVUkwgKil1cmwgd2hpdGVsaXN0OihOU0FycmF5ICopd2hpdGVsaXN0IGJsYWNr
bGlzdDooTlNBcnJheSAqKWJsYWNrbGlzdDsKKysgKHZvaWQpX2FkZFVzZXJTY3JpcHRUb0dyb3Vw
OihOU1N0cmluZyAqKWdyb3VwTmFtZSB3b3JsZDooV2ViU2NyaXB0V29ybGQgKil3b3JsZCBzb3Vy
Y2U6KE5TU3RyaW5nICopc291cmNlIHVybDooTlNVUkwgKil1cmwgd2hpdGVsaXN0OihOU0FycmF5
ICopd2hpdGVsaXN0IGJsYWNrbGlzdDooTlNBcnJheSAqKWJsYWNrbGlzdCBpbmplY3Rpb25UaW1l
OihXZWJVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSlpbmplY3Rpb25UaW1lIF9fYXR0cmlidXRlX18o
KGRlcHJlY2F0ZWQoInVzZSBfYWRkVXNlclNjcmlwdFRvR3JvdXA6d29ybGQ6c291cmNlOnVybDpp
bmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczppbmpl
Y3Rpb25UaW1lOmluamVjdGVkRnJhbWVzOiIpKSk7CisrICh2b2lkKV9hZGRVc2VyU3R5bGVTaGVl
dFRvR3JvdXA6KE5TU3RyaW5nICopZ3JvdXBOYW1lIHdvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdv
cmxkIHNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgdXJsOihOU1VSTCAqKXVybCB3aGl0ZWxpc3Q6
KE5TQXJyYXkgKil3aGl0ZWxpc3QgYmxhY2tsaXN0OihOU0FycmF5ICopYmxhY2tsaXN0IF9fYXR0
cmlidXRlX18oKGRlcHJlY2F0ZWQoInVzZSBfYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwOndvcmxk
OnNvdXJjZTp1cmw6aW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6ZXhjbHVkZU1hdGNoUGF0dGVy
blN0cmluZ3M6aW5qZWN0ZWRGcmFtZXM6IikpKTsKKworKyAodm9pZClfYWRkVXNlclNjcmlwdFRv
R3JvdXA6KE5TU3RyaW5nICopZ3JvdXBOYW1lIHdvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdvcmxk
IHNvdXJjZTooTlNTdHJpbmcgKilzb3VyY2UgdXJsOihOU1VSTCAqKXVybCB3aGl0ZWxpc3Q6KE5T
QXJyYXkgKil3aGl0ZWxpc3QgYmxhY2tsaXN0OihOU0FycmF5ICopYmxhY2tsaXN0IGluamVjdGlv
blRpbWU6KFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKWluamVjdGlvblRpbWUgaW5qZWN0ZWRG
cmFtZXM6KFdlYlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMpaW5qZWN0ZWRGcmFtZXMgX19hdHRy
aWJ1dGVfXygoZGVwcmVjYXRlZCgidXNlIF9hZGRVc2VyU2NyaXB0VG9Hcm91cDp3b3JsZDpzb3Vy
Y2U6dXJsOmluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOmV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJp
bmdzOmluamVjdGlvblRpbWU6aW5qZWN0ZWRGcmFtZXM6IikpKTsKKysgKHZvaWQpX2FkZFVzZXJT
dHlsZVNoZWV0VG9Hcm91cDooTlNTdHJpbmcgKilncm91cE5hbWUgd29ybGQ6KFdlYlNjcmlwdFdv
cmxkICopd29ybGQgc291cmNlOihOU1N0cmluZyAqKXNvdXJjZSB1cmw6KE5TVVJMICopdXJsIHdo
aXRlbGlzdDooTlNBcnJheSAqKXdoaXRlbGlzdCBibGFja2xpc3Q6KE5TQXJyYXkgKilibGFja2xp
c3QgaW5qZWN0ZWRGcmFtZXM6KFdlYlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMpaW5qZWN0ZWRG
cmFtZXMgX19hdHRyaWJ1dGVfXygoZGVwcmVjYXRlZCgidXNlIF9hZGRVc2VyU3R5bGVTaGVldFRv
R3JvdXA6d29ybGQ6c291cmNlOnVybDppbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpleGNsdWRl
TWF0Y2hQYXR0ZXJuU3RyaW5nczppbmplY3RlZEZyYW1lczoiKSkpOworCisrICh2b2lkKV9hZGRV
c2VyU2NyaXB0VG9Hcm91cDooTlNTdHJpbmcgKilncm91cE5hbWUgd29ybGQ6KFdlYlNjcmlwdFdv
cmxkICopd29ybGQgc291cmNlOihOU1N0cmluZyAqKXNvdXJjZSB1cmw6KE5TVVJMICopdXJsIGlu
Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOihOU0FycmF5ICopaW5jbHVkZU1hdGNoUGF0dGVyblN0
cmluZ3MgZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6KE5TQXJyYXkgKilleGNsdWRlTWF0Y2hQ
YXR0ZXJuU3RyaW5ncyBpbmplY3Rpb25UaW1lOihXZWJVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSlp
bmplY3Rpb25UaW1lIGluamVjdGVkRnJhbWVzOihXZWJVc2VyQ29udGVudEluamVjdGVkRnJhbWVz
KWluamVjdGVkRnJhbWVzOworKyAodm9pZClfYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwOihOU1N0
cmluZyAqKWdyb3VwTmFtZSB3b3JsZDooV2ViU2NyaXB0V29ybGQgKil3b3JsZCBzb3VyY2U6KE5T
U3RyaW5nICopc291cmNlIHVybDooTlNVUkwgKil1cmwgaW5jbHVkZU1hdGNoUGF0dGVyblN0cmlu
Z3M6KE5TQXJyYXkgKilpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5ncyBleGNsdWRlTWF0Y2hQYXR0
ZXJuU3RyaW5nczooTlNBcnJheSAqKWV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzIGluamVjdGVk
RnJhbWVzOihXZWJVc2VyQ29udGVudEluamVjdGVkRnJhbWVzKWluamVjdGVkRnJhbWVzOwogCi0r
ICh2b2lkKV9hZGRVc2VyU2NyaXB0VG9Hcm91cDooTlNTdHJpbmcgKilncm91cE5hbWUgd29ybGQ6
KFdlYlNjcmlwdFdvcmxkICopd29ybGQgc291cmNlOihOU1N0cmluZyAqKXNvdXJjZSB1cmw6KE5T
VVJMICopdXJsIHdoaXRlbGlzdDooTlNBcnJheSAqKXdoaXRlbGlzdCBibGFja2xpc3Q6KE5TQXJy
YXkgKilibGFja2xpc3QgaW5qZWN0aW9uVGltZTooV2ViVXNlclNjcmlwdEluamVjdGlvblRpbWUp
aW5qZWN0aW9uVGltZSBpbmplY3RlZEZyYW1lczooV2ViVXNlckNvbnRlbnRJbmplY3RlZEZyYW1l
cylpbmplY3RlZEZyYW1lczsKLSsgKHZvaWQpX2FkZFVzZXJTdHlsZVNoZWV0VG9Hcm91cDooTlNT
dHJpbmcgKilncm91cE5hbWUgd29ybGQ6KFdlYlNjcmlwdFdvcmxkICopd29ybGQgc291cmNlOihO
U1N0cmluZyAqKXNvdXJjZSB1cmw6KE5TVVJMICopdXJsIHdoaXRlbGlzdDooTlNBcnJheSAqKXdo
aXRlbGlzdCBibGFja2xpc3Q6KE5TQXJyYXkgKilibGFja2xpc3QgaW5qZWN0ZWRGcmFtZXM6KFdl
YlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMpaW5qZWN0ZWRGcmFtZXM7CiArICh2b2lkKV9yZW1v
dmVVc2VyU2NyaXB0RnJvbUdyb3VwOihOU1N0cmluZyAqKWdyb3VwTmFtZSB3b3JsZDooV2ViU2Ny
aXB0V29ybGQgKil3b3JsZCB1cmw6KE5TVVJMICopdXJsOwogKyAodm9pZClfcmVtb3ZlVXNlclN0
eWxlU2hlZXRGcm9tR3JvdXA6KE5TU3RyaW5nICopZ3JvdXBOYW1lIHdvcmxkOihXZWJTY3JpcHRX
b3JsZCAqKXdvcmxkIHVybDooTlNVUkwgKil1cmw7CiArICh2b2lkKV9yZW1vdmVVc2VyU2NyaXB0
c0Zyb21Hcm91cDooTlNTdHJpbmcgKilncm91cE5hbWUgd29ybGQ6KFdlYlNjcmlwdFdvcmxkICop
d29ybGQ7CkBAIC0xMDUwLDcgKzEwNTQsNyBAQCBAaW50ZXJmYWNlIFdlYlZpZXcgKFdlYlZpZXdO
b3RpZmljYXRpb24pCiBAZW5kCiAKIEBpbnRlcmZhY2UgV2ViVmlldyAoV2ViVmlld0ZvbnRTZWxl
Y3Rpb24pCi0rICh2b2lkKV9zZXRGb250V2hpdGVsaXN0OihOU0FycmF5ICopd2hpdGVsaXN0Owor
KyAodm9pZClfc2V0Rm9udEFsbG93TGlzdDooTlNBcnJheSAqKWFsbG93TGlzdDsKIEBlbmQKIAog
I2lmIFRBUkdFVF9PU19JUEhPTkUKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2MzA1MykKKysrIFRvb2xzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA2LTE1ICBBbGV4IENocmlzdGVu
c2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUHJvdmlkZSBhbHRlcm5h
dGl2ZWx5LW5hbWVkIFNQSSBmb3IgdXNlciBzdHlsZSBzaGVldHMgYW5kIHNjcmlwdHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzIwNgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAoZm9udEFsbG93TGlzdCk6CisgICAg
ICAgIChjcmVhdGVXZWJWaWV3QW5kT2Zmc2NyZWVuV2luZG93KToKKyAgICAgICAgKHJlc2V0V2Vi
Vmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAgIChmb250V2hpdGVs
aXN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1h
Yy5tbToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5
KToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5
KToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmFkZFVzZXJTY3JpcHQpOgorICAgICAgICAoVGVzdFJ1
bm5lcjo6YWRkVXNlclN0eWxlU2hlZXQpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvVXNlckNvbnRlbnRDb250cm9sbGVyLm1tOgorICAgICAgICAoVEVTVCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyQ29udGVudFdvcmxk
Lm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVz
dENvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXVFI6OmdlbmVyYXRlRm9udEFsbG93TGlzdCk6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemVDb250ZXh0
KToKKyAgICAgICAgKFdUUjo6Z2VuZXJhdGVXaGl0ZWxpc3QpOiBEZWxldGVkLgorCiAyMDIwLTA2
LTE1ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNp
Z25hbCBoYW5kbGVycyBzaG91bGQgaGF2ZSBhIHR3byBwaGFzZSBpbnN0YWxsYXRpb24uCkluZGV4
OiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCShyZXZpc2lvbiAy
NjMwNDIpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0JKHdv
cmtpbmcgY29weSkKQEAgLTQ0Niw3ICs0NDYsNyBAQCBzdGF0aWMgTlNTZXQgKmFsbG93ZWRGb250
RmFtaWx5U2V0KCkKICAgICByZXR1cm4gZm9udEZhbWlseVNldDsKIH0KIAotc3RhdGljIE5TQXJy
YXkgKmZvbnRXaGl0ZWxpc3QoKQorc3RhdGljIE5TQXJyYXkgKmZvbnRBbGxvd0xpc3QoKQogewog
ICAgIHN0YXRpYyBOU0FycmF5ICphdmFpbGFibGVGb250czsKICAgICBpZiAoYXZhaWxhYmxlRm9u
dHMpCkBAIC03MzUsNyArNzM1LDcgQEAgV2ViVmlldyAqY3JlYXRlV2ViVmlld0FuZE9mZnNjcmVl
bldpbmRvdwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIFt3ZWJWaWV3IHNldFdpbmRvd09jY2x1
c2lvbkRldGVjdGlvbkVuYWJsZWQ6Tk9dOwotICAgIFtXZWJWaWV3IF9zZXRGb250V2hpdGVsaXN0
OmZvbnRXaGl0ZWxpc3QoKV07CisgICAgW1dlYlZpZXcgX3NldEZvbnRBbGxvd0xpc3Q6Zm9udEFs
bG93TGlzdCgpXTsKICNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0xOTQz
LDcgKzE5NDMsNyBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0CiAK
ICAgICBbV2ViVmlldyBfc2V0VXNlc1Rlc3RNb2RlRm9jdXNSaW5nQ29sb3I6WUVTXTsKICNlbmRp
ZgotICAgIFtXZWJWaWV3IF9yZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHNdOworICAgIFtXZWJW
aWV3IF9yZXNldE9yaWdpbkFjY2Vzc0FsbG93TGlzdHNdOwogCiAgICAgW1tNb2NrR2VvbG9jYXRp
b25Qcm92aWRlciBzaGFyZWRdIHN0b3BUaW1lcl07CiAgICAgW1tNb2NrV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXIgc2hhcmVkXSByZXNldF07CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
VGVzdFJ1bm5lck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
VGVzdFJ1bm5lck1hYy5tbQkocmV2aXNpb24gMjYzMDQyKQorKysgVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTc2MCw3ICs3NjAsNyBA
QCB2b2lkIFRlc3RSdW5uZXI6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzCiAgICAgTlNTdHJpbmcg
KmRlc3RpbmF0aW9uUHJvdG9jb2xOUyA9IChfX2JyaWRnZSBOU1N0cmluZyAqKXByb3RvY29sQ0Yu
Z2V0KCk7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBob3N0Q0YgPSBhZG9wdENGKEpTU3Ry
aW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRlc3RpbmF0aW9uSG9zdCkpOwog
ICAgIE5TU3RyaW5nICpkZXN0aW5hdGlvbkhvc3ROUyA9IChfX2JyaWRnZSBOU1N0cmluZyAqKWhv
c3RDRi5nZXQoKTsKLSAgICBbV2ViVmlldyBfYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlX
aXRoU291cmNlT3JpZ2luOnNvdXJjZU9yaWdpbk5TIGRlc3RpbmF0aW9uUHJvdG9jb2w6ZGVzdGlu
YXRpb25Qcm90b2NvbE5TIGRlc3RpbmF0aW9uSG9zdDpkZXN0aW5hdGlvbkhvc3ROUyBhbGxvd0Rl
c3RpbmF0aW9uU3ViZG9tYWluczphbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluc107CisgICAgW1dl
YlZpZXcgX2FkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5V2l0aFNvdXJjZU9yaWdpbjpzb3Vy
Y2VPcmlnaW5OUyBkZXN0aW5hdGlvblByb3RvY29sOmRlc3RpbmF0aW9uUHJvdG9jb2xOUyBkZXN0
aW5hdGlvbkhvc3Q6ZGVzdGluYXRpb25Ib3N0TlMgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnM6
YWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnNdOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnJlbW92
ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNT
dHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0
LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQpAQCAtNzcxLDcgKzc3MSw3IEBAIHZv
aWQgVGVzdFJ1bm5lcjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGUKICAgICBOU1N0cmluZyAqZGVz
dGluYXRpb25Qcm90b2NvbE5TID0gKF9fYnJpZGdlIE5TU3RyaW5nICopcHJvdG9jb2xDRi5nZXQo
KTsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGhvc3RDRiA9IGFkb3B0Q0YoSlNTdHJpbmdD
b3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGVzdGluYXRpb25Ib3N0KSk7CiAgICAg
TlNTdHJpbmcgKmRlc3RpbmF0aW9uSG9zdE5TID0gKF9fYnJpZGdlIE5TU3RyaW5nICopaG9zdENG
LmdldCgpOwotICAgIFtXZWJWaWV3IF9yZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeVdp
dGhTb3VyY2VPcmlnaW46c291cmNlT3JpZ2luTlMgZGVzdGluYXRpb25Qcm90b2NvbDpkZXN0aW5h
dGlvblByb3RvY29sTlMgZGVzdGluYXRpb25Ib3N0OmRlc3RpbmF0aW9uSG9zdE5TIGFsbG93RGVz
dGluYXRpb25TdWJkb21haW5zOmFsbG93RGVzdGluYXRpb25TdWJkb21haW5zXTsKKyAgICBbV2Vi
VmlldyBfcmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnlXaXRoU291cmNlT3JpZ2luOnNv
dXJjZU9yaWdpbk5TIGRlc3RpbmF0aW9uUHJvdG9jb2w6ZGVzdGluYXRpb25Qcm90b2NvbE5TIGRl
c3RpbmF0aW9uSG9zdDpkZXN0aW5hdGlvbkhvc3ROUyBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlu
czphbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluc107CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6c2V0
U2Nyb2xsYmFyUG9saWN5KEpTU3RyaW5nUmVmIG9yaWVudGF0aW9uLCBKU1N0cmluZ1JlZiBwb2xp
Y3kpCkBAIC03ODMsMTQgKzc4MywxNCBAQCB2b2lkIFRlc3RSdW5uZXI6OmFkZFVzZXJTY3JpcHQo
SlNTdHJpbmdSCiB7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzb3VyY2VDRiA9IGFkb3B0
Q0YoSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc291cmNlKSk7CiAg
ICAgTlNTdHJpbmcgKnNvdXJjZU5TID0gKF9fYnJpZGdlIE5TU3RyaW5nICopc291cmNlQ0YuZ2V0
KCk7Ci0gICAgW1dlYlZpZXcgX2FkZFVzZXJTY3JpcHRUb0dyb3VwOkAib3JnLndlYmtpdC5EdW1w
UmVuZGVyVHJlZSIgd29ybGQ6W1dlYlNjcmlwdFdvcmxkIHdvcmxkXSBzb3VyY2U6c291cmNlTlMg
dXJsOm5pbCB3aGl0ZWxpc3Q6bmlsIGJsYWNrbGlzdDpuaWwgaW5qZWN0aW9uVGltZToocnVuQXRT
dGFydCA/IFdlYkluamVjdEF0RG9jdW1lbnRTdGFydCA6IFdlYkluamVjdEF0RG9jdW1lbnRFbmQp
IGluamVjdGVkRnJhbWVzOihhbGxGcmFtZXMgPyBXZWJJbmplY3RJbkFsbEZyYW1lcyA6IFdlYklu
amVjdEluVG9wRnJhbWVPbmx5KV07CisgICAgW1dlYlZpZXcgX2FkZFVzZXJTY3JpcHRUb0dyb3Vw
OkAib3JnLndlYmtpdC5EdW1wUmVuZGVyVHJlZSIgd29ybGQ6W1dlYlNjcmlwdFdvcmxkIHdvcmxk
XSBzb3VyY2U6c291cmNlTlMgdXJsOm5pbCBpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpuaWwg
ZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6bmlsIGluamVjdGlvblRpbWU6KHJ1bkF0U3RhcnQg
PyBXZWJJbmplY3RBdERvY3VtZW50U3RhcnQgOiBXZWJJbmplY3RBdERvY3VtZW50RW5kKSBpbmpl
Y3RlZEZyYW1lczooYWxsRnJhbWVzID8gV2ViSW5qZWN0SW5BbGxGcmFtZXMgOiBXZWJJbmplY3RJ
blRvcEZyYW1lT25seSldOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OmFkZFVzZXJTdHlsZVNoZWV0
KEpTU3RyaW5nUmVmIHNvdXJjZSwgYm9vbCBhbGxGcmFtZXMpCiB7CiAgICAgUmV0YWluUHRyPENG
U3RyaW5nUmVmPiBzb3VyY2VDRiA9IGFkb3B0Q0YoSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgc291cmNlKSk7CiAgICAgTlNTdHJpbmcgKnNvdXJjZU5TID0gKF9fYnJp
ZGdlIE5TU3RyaW5nICopc291cmNlQ0YuZ2V0KCk7Ci0gICAgW1dlYlZpZXcgX2FkZFVzZXJTdHls
ZVNoZWV0VG9Hcm91cDpAIm9yZy53ZWJraXQuRHVtcFJlbmRlclRyZWUiIHdvcmxkOltXZWJTY3Jp
cHRXb3JsZCB3b3JsZF0gc291cmNlOnNvdXJjZU5TIHVybDpuaWwgd2hpdGVsaXN0Om5pbCBibGFj
a2xpc3Q6bmlsIGluamVjdGVkRnJhbWVzOihhbGxGcmFtZXMgPyBXZWJJbmplY3RJbkFsbEZyYW1l
cyA6IFdlYkluamVjdEluVG9wRnJhbWVPbmx5KV07CisgICAgW1dlYlZpZXcgX2FkZFVzZXJTdHls
ZVNoZWV0VG9Hcm91cDpAIm9yZy53ZWJraXQuRHVtcFJlbmRlclRyZWUiIHdvcmxkOltXZWJTY3Jp
cHRXb3JsZCB3b3JsZF0gc291cmNlOnNvdXJjZU5TIHVybDpuaWwgaW5jbHVkZU1hdGNoUGF0dGVy
blN0cmluZ3M6bmlsIGV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOm5pbCBpbmplY3RlZEZyYW1l
czooYWxsRnJhbWVzID8gV2ViSW5qZWN0SW5BbGxGcmFtZXMgOiBXZWJJbmplY3RJblRvcEZyYW1l
T25seSldOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQo
Ym9vbCBlbmFibGVkKQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Vc2VyQ29udGVudENvbnRyb2xsZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Vc2VyQ29udGVudENvbnRyb2xsZXIubW0JKHJldmlzaW9u
IDI2MzA0MikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNlckNv
bnRlbnRDb250cm9sbGVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsMTMgKzEwNCwxMyBAQCBU
RVNUKFdLVXNlckNvbnRlbnRDb250cm9sbGVyLCBTY3JpcHRNZXNzCiAgICAgc2NyaXB0TWVzc2Fn
ZXMuY2xlYXIoKTsKICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKIAotICAgIFJl
dGFpblB0cjxfV0tVc2VyQ29udGVudFdvcmxkPiB3b3JsZCA9IFtfV0tVc2VyQ29udGVudFdvcmxk
IHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsKKyAgICBSZXRhaW5QdHI8V0tDb250ZW50V29y
bGQ+IHdvcmxkID0gW1dLQ29udGVudFdvcmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsK
IAogICAgIFJldGFpblB0cjxTY3JpcHRNZXNzYWdlSGFuZGxlcj4gaGFuZGxlciA9IGFkb3B0TlMo
W1tTY3JpcHRNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOwotICAgIFJldGFpblB0cjxXS1Vz
ZXJTY3JpcHQ+IHVzZXJTY3JpcHQgPSBhZG9wdE5TKFtbV0tVc2VyU2NyaXB0IGFsbG9jXSBfaW5p
dFdpdGhTb3VyY2U6QCJ3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5w
b3N0TWVzc2FnZSgnSGVsbG8nKSIgaW5qZWN0aW9uVGltZTpXS1VzZXJTY3JpcHRJbmplY3Rpb25U
aW1lQXREb2N1bWVudFN0YXJ0IGZvck1haW5GcmFtZU9ubHk6Tk8gbGVnYWN5V2hpdGVsaXN0OkBb
XSBsZWdhY3lCbGFja2xpc3Q6QFtdIHVzZXJDb250ZW50V29ybGQ6d29ybGQuZ2V0KCldKTsKKyAg
ICBSZXRhaW5QdHI8V0tVc2VyU2NyaXB0PiB1c2VyU2NyaXB0ID0gYWRvcHROUyhbW1dLVXNlclNj
cmlwdCBhbGxvY10gX2luaXRXaXRoU291cmNlOkAid2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ0hlbGxvJykiIGluamVjdGlvblRpbWU6V0tVc2Vy
U2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRTdGFydCBmb3JNYWluRnJhbWVPbmx5Ok5PIGlu
Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOkBbXSBleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpA
W10gYXNzb2NpYXRlZFVSTDpuaWwgY29udGVudFdvcmxkOndvcmxkLmdldCgpIGRlZmVyUnVubmlu
Z1VudGlsTm90aWZpY2F0aW9uOk5PXSk7CiAKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmln
dXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9u
IGFsbG9jXSBpbml0XSk7Ci0gICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxl
cl0gX2FkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RIYW5k
bGVyIiB1c2VyQ29udGVudFdvcmxkOndvcmxkLmdldCgpXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24g
dXNlckNvbnRlbnRDb250cm9sbGVyXSBfYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlci5n
ZXQoKSBuYW1lOkAidGVzdEhhbmRsZXIiIGNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV07CiAgICAg
W1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkVXNlclNjcmlwdDp1c2Vy
U2NyaXB0LmdldCgpXTsKIAogICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9w
dE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAw
LCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwpAQCAtMzc2LDcgKzM3
Niw3IEBAIFRFU1QoV0tVc2VyQ29udGVudENvbnRyb2xsZXIsIEFkZFVzZXJTdHkKIHsKICAgICBS
ZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAKLSAgICBSZXRhaW5QdHI8
X1dLVXNlclN0eWxlU2hlZXQ+IHN0eWxlU2hlZXQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hl
ZXQgYWxsb2NdIGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2UgZm9yTWFpbkZyYW1lT25s
eTpZRVNdKTsKKyAgICBSZXRhaW5QdHI8X1dLVXNlclN0eWxlU2hlZXQ+IHN0eWxlU2hlZXQgPSBh
ZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hlZXQgYWxsb2NdIGluaXRXaXRoU291cmNlOnN0eWxlU2hl
ZXRTb3VyY2UgZm9yV0tXZWJWaWV3Om5pbCBmb3JNYWluRnJhbWVPbmx5OllFUyBpbmNsdWRlTWF0
Y2hQYXR0ZXJuU3RyaW5nczpuaWwgZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6bmlsIGJhc2VV
Ukw6bmlsIGxldmVsOl9XS1VzZXJTdHlsZVVzZXJMZXZlbCBjb250ZW50V29ybGQ6bmlsXSk7CiAg
ICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gX2FkZFVzZXJTdHlsZVNo
ZWV0OnN0eWxlU2hlZXQuZ2V0KCldOwogCiAgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmll
dyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CkBAIC0z
ODksOCArMzg5LDggQEAgVEVTVChXS1VzZXJDb250ZW50Q29udHJvbGxlciwgQWRkVXNlclN0eQog
CiBURVNUKFdLVXNlckNvbnRlbnRDb250cm9sbGVyLCBOb25DYW5vbmljYWxpemVkVVJMKQogewot
ICAgIFJldGFpblB0cjxfV0tVc2VyQ29udGVudFdvcmxkPiB3b3JsZCA9IFtfV0tVc2VyQ29udGVu
dFdvcmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsKLSAgICBSZXRhaW5QdHI8X1dLVXNl
clN0eWxlU2hlZXQ+IHN0eWxlU2hlZXQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hlZXQgYWxs
b2NdIGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2UgZm9yTWFpbkZyYW1lT25seTpOTyBs
ZWdhY3lXaGl0ZWxpc3Q6QFtdIGxlZ2FjeUJsYWNrbGlzdDpAW10gYmFzZVVSTDpbW05TVVJMIGFs
bG9jXSBpbml0V2l0aFN0cmluZzpAImh0dHA6Ly9DYW1lbENhc2UvIl0gdXNlckNvbnRlbnRXb3Js
ZDp3b3JsZC5nZXQoKV0pOworICAgIFJldGFpblB0cjxXS0NvbnRlbnRXb3JsZD4gd29ybGQgPSBb
V0tDb250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRlc3RXb3JsZCJdOworICAgIFJldGFpblB0
cjxfV0tVc2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldCA9IGFkb3B0TlMoW1tfV0tVc2VyU3R5bGVT
aGVldCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6c3R5bGVTaGVldFNvdXJjZSBmb3JXS1dlYlZpZXc6
bmlsIGZvck1haW5GcmFtZU9ubHk6Tk8gaW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGV4
Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOkBbXSBiYXNlVVJMOltbW05TVVJMIGFsbG9jXSBpbml0
V2l0aFN0cmluZzpAImh0dHA6Ly9DYW1lbENhc2UvIl0gYXV0b3JlbGVhc2VdIGxldmVsOl9XS1Vz
ZXJTdHlsZVVzZXJMZXZlbCBjb250ZW50V29ybGQ6d29ybGQuZ2V0KCldKTsKIH0KIAogVEVTVChX
S1VzZXJDb250ZW50Q29udHJvbGxlciwgQWRkVXNlclN0eWxlU2hlZXRBZnRlckNyZWF0aW5nVmll
dykKQEAgLTQ2NCwxMCArNDY0LDEwIEBAIFRFU1QoV0tVc2VyQ29udGVudENvbnRyb2xsZXIsIFVz
ZXJTdHlsZVMKIHsKICAgICBSZXRhaW5QdHI8V0tVc2VyQ29udGVudENvbnRyb2xsZXI+IHVzZXJD
b250ZW50Q29udHJvbGxlciA9IGFkb3B0TlMoW1tXS1VzZXJDb250ZW50Q29udHJvbGxlciBhbGxv
Y10gaW5pdF0pOwogCi0gICAgUmV0YWluUHRyPF9XS1VzZXJDb250ZW50V29ybGQ+IHdvcmxkID0g
W19XS1VzZXJDb250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRlc3RXb3JsZCJdOworICAgIFJl
dGFpblB0cjxXS0NvbnRlbnRXb3JsZD4gd29ybGQgPSBbV0tDb250ZW50V29ybGQgd29ybGRXaXRo
TmFtZTpAIlRlc3RXb3JsZCJdOwogCiAgICAgUmV0YWluUHRyPF9XS1VzZXJTdHlsZVNoZWV0PiBz
dHlsZVNoZWV0ID0gYWRvcHROUyhbW19XS1VzZXJTdHlsZVNoZWV0IGFsbG9jXSBpbml0V2l0aFNv
dXJjZTpzdHlsZVNoZWV0U291cmNlIGZvck1haW5GcmFtZU9ubHk6Tk9dKTsKLSAgICBSZXRhaW5Q
dHI8X1dLVXNlclN0eWxlU2hlZXQ+IHN0eWxlU2hlZXRBc3NvY2lhdGVkV2l0aFdvcmxkID0gYWRv
cHROUyhbW19XS1VzZXJTdHlsZVNoZWV0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpzdHlsZVNoZWV0
U291cmNlIGZvck1haW5GcmFtZU9ubHk6Tk8gbGVnYWN5V2hpdGVsaXN0OkBbXSBsZWdhY3lCbGFj
a2xpc3Q6QFtdIHVzZXJDb250ZW50V29ybGQ6d29ybGQuZ2V0KCldKTsKKyAgICBSZXRhaW5QdHI8
X1dLVXNlclN0eWxlU2hlZXQ+IHN0eWxlU2hlZXRBc3NvY2lhdGVkV2l0aFdvcmxkID0gYWRvcHRO
UyhbW19XS1VzZXJTdHlsZVNoZWV0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpzdHlsZVNoZWV0U291
cmNlIGZvcldLV2ViVmlldzpuaWwgZm9yTWFpbkZyYW1lT25seTpOTyBpbmNsdWRlTWF0Y2hQYXR0
ZXJuU3RyaW5nczpAW10gZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGJhc2VVUkw6bmls
IGxldmVsOl9XS1VzZXJTdHlsZVVzZXJMZXZlbCBjb250ZW50V29ybGQ6d29ybGQuZ2V0KCldKTsK
ICAgICAKICAgICBbdXNlckNvbnRlbnRDb250cm9sbGVyIF9hZGRVc2VyU3R5bGVTaGVldDpzdHls
ZVNoZWV0LmdldCgpXTsKICAgICBbdXNlckNvbnRlbnRDb250cm9sbGVyIF9hZGRVc2VyU3R5bGVT
aGVldDpzdHlsZVNoZWV0QXNzb2NpYXRlZFdpdGhXb3JsZC5nZXQoKV07CkBAIC00ODUsMTEgKzQ4
NSwxMSBAQCBURVNUKFdLVXNlckNvbnRlbnRDb250cm9sbGVyLCBVc2VyU3R5bGVTCiB7CiAgICAg
UmV0YWluUHRyPFdLVXNlckNvbnRlbnRDb250cm9sbGVyPiB1c2VyQ29udGVudENvbnRyb2xsZXIg
PSBhZG9wdE5TKFtbV0tVc2VyQ29udGVudENvbnRyb2xsZXIgYWxsb2NdIGluaXRdKTsKIAotICAg
IFJldGFpblB0cjxfV0tVc2VyQ29udGVudFdvcmxkPiB3b3JsZCA9IFtfV0tVc2VyQ29udGVudFdv
cmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsKKyAgICBSZXRhaW5QdHI8V0tDb250ZW50
V29ybGQ+IHdvcmxkID0gW1dLQ29udGVudFdvcmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQi
XTsKIAogICAgIFJldGFpblB0cjxfV0tVc2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldCA9IGFkb3B0
TlMoW1tfV0tVc2VyU3R5bGVTaGVldCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6c3R5bGVTaGVldFNv
dXJjZSBmb3JNYWluRnJhbWVPbmx5Ok5PXSk7Ci0gICAgUmV0YWluUHRyPF9XS1VzZXJTdHlsZVNo
ZWV0PiBzdHlsZVNoZWV0QXNzb2NpYXRlZFdpdGhXb3JsZCA9IGFkb3B0TlMoW1tfV0tVc2VyU3R5
bGVTaGVldCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6c3R5bGVTaGVldFNvdXJjZSBmb3JNYWluRnJh
bWVPbmx5Ok5PIGxlZ2FjeVdoaXRlbGlzdDpAW10gbGVnYWN5QmxhY2tsaXN0OkBbXSB1c2VyQ29u
dGVudFdvcmxkOndvcmxkLmdldCgpXSk7Ci0gICAgUmV0YWluUHRyPF9XS1VzZXJTdHlsZVNoZWV0
PiBzdHlsZVNoZWV0QXNzb2NpYXRlZFdpdGhXb3JsZDIgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxl
U2hlZXQgYWxsb2NdIGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2UgZm9yTWFpbkZyYW1l
T25seTpOTyBsZWdhY3lXaGl0ZWxpc3Q6QFtdIGxlZ2FjeUJsYWNrbGlzdDpAW10gdXNlckNvbnRl
bnRXb3JsZDp3b3JsZC5nZXQoKV0pOworICAgIFJldGFpblB0cjxfV0tVc2VyU3R5bGVTaGVldD4g
c3R5bGVTaGVldEFzc29jaWF0ZWRXaXRoV29ybGQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hl
ZXQgYWxsb2NdIGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2UgZm9yV0tXZWJWaWV3Om5p
bCBmb3JNYWluRnJhbWVPbmx5Ok5PIGluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOkBbXSBleGNs
dWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpAW10gYmFzZVVSTDpuaWwgbGV2ZWw6X1dLVXNlclN0eWxl
VXNlckxldmVsIGNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOworICAgIFJldGFpblB0cjxfV0tV
c2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldEFzc29jaWF0ZWRXaXRoV29ybGQyID0gYWRvcHROUyhb
W19XS1VzZXJTdHlsZVNoZWV0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpzdHlsZVNoZWV0U291cmNl
IGZvcldLV2ViVmlldzpuaWwgZm9yTWFpbkZyYW1lT25seTpOTyBpbmNsdWRlTWF0Y2hQYXR0ZXJu
U3RyaW5nczpAW10gZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGJhc2VVUkw6bmlsIGxl
dmVsOl9XS1VzZXJTdHlsZVVzZXJMZXZlbCBjb250ZW50V29ybGQ6d29ybGQuZ2V0KCldKTsKICAg
ICAKICAgICBbdXNlckNvbnRlbnRDb250cm9sbGVyIF9hZGRVc2VyU3R5bGVTaGVldDpzdHlsZVNo
ZWV0LmdldCgpXTsKICAgICBbdXNlckNvbnRlbnRDb250cm9sbGVyIF9hZGRVc2VyU3R5bGVTaGVl
dDpzdHlsZVNoZWV0QXNzb2NpYXRlZFdpdGhXb3JsZC5nZXQoKV07CkBAIC01MDAsNyArNTAwLDcg
QEAgVEVTVChXS1VzZXJDb250ZW50Q29udHJvbGxlciwgVXNlclN0eWxlUwogICAgIEVYUEVDVF9F
UShzdHlsZVNoZWV0QXNzb2NpYXRlZFdpdGhXb3JsZC5nZXQoKSwgW3VzZXJDb250ZW50Q29udHJv
bGxlciBfdXNlclN0eWxlU2hlZXRzXVsxXSk7CiAgICAgRVhQRUNUX0VRKHN0eWxlU2hlZXRBc3Nv
Y2lhdGVkV2l0aFdvcmxkMi5nZXQoKSwgW3VzZXJDb250ZW50Q29udHJvbGxlciBfdXNlclN0eWxl
U2hlZXRzXVsyXSk7CiAKLSAgICBbdXNlckNvbnRlbnRDb250cm9sbGVyIF9yZW1vdmVBbGxVc2Vy
U3R5bGVTaGVldHNBc3NvY2lhdGVkV2l0aFVzZXJDb250ZW50V29ybGQ6d29ybGQuZ2V0KCldOwor
ICAgIFt1c2VyQ29udGVudENvbnRyb2xsZXIgX3JlbW92ZUFsbFVzZXJTdHlsZVNoZWV0c0Fzc29j
aWF0ZWRXaXRoQ29udGVudFdvcmxkOndvcmxkLmdldCgpXTsKIAogICAgIEVYUEVDVF9FUSgxdSwg
W3VzZXJDb250ZW50Q29udHJvbGxlciBfdXNlclN0eWxlU2hlZXRzXS5jb3VudCk7CiAgICAgRVhQ
RUNUX0VRKHN0eWxlU2hlZXQuZ2V0KCksIFt1c2VyQ29udGVudENvbnRyb2xsZXIgX3VzZXJTdHls
ZVNoZWV0c11bMF0pOwpAQCAtNTEwLDExICs1MTAsMTEgQEAgVEVTVChXS1VzZXJDb250ZW50Q29u
dHJvbGxlciwgVXNlclN0eWxlUwogewogICAgIFJldGFpblB0cjxXS1VzZXJDb250ZW50Q29udHJv
bGxlcj4gdXNlckNvbnRlbnRDb250cm9sbGVyID0gYWRvcHROUyhbW1dLVXNlckNvbnRlbnRDb250
cm9sbGVyIGFsbG9jXSBpbml0XSk7CiAKLSAgICBSZXRhaW5QdHI8X1dLVXNlckNvbnRlbnRXb3Js
ZD4gd29ybGQgPSBbX1dLVXNlckNvbnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1lOkAiVGVzdFdvcmxk
Il07CisgICAgUmV0YWluUHRyPFdLQ29udGVudFdvcmxkPiB3b3JsZCA9IFtXS0NvbnRlbnRXb3Js
ZCB3b3JsZFdpdGhOYW1lOkAiVGVzdFdvcmxkIl07CiAKICAgICBSZXRhaW5QdHI8X1dLVXNlclN0
eWxlU2hlZXQ+IHN0eWxlU2hlZXQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hlZXQgYWxsb2Nd
IGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2UgZm9yTWFpbkZyYW1lT25seTpOT10pOwot
ICAgIFJldGFpblB0cjxfV0tVc2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldEFzc29jaWF0ZWRXaXRo
V29ybGQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hlZXQgYWxsb2NdIGluaXRXaXRoU291cmNl
OnN0eWxlU2hlZXRTb3VyY2UgZm9yTWFpbkZyYW1lT25seTpOTyBsZWdhY3lXaGl0ZWxpc3Q6QFtd
IGxlZ2FjeUJsYWNrbGlzdDpAW10gdXNlckNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOwotICAg
IFJldGFpblB0cjxfV0tVc2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldEFzc29jaWF0ZWRXaXRoV29y
bGQyID0gYWRvcHROUyhbW19XS1VzZXJTdHlsZVNoZWV0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpz
dHlsZVNoZWV0U291cmNlIGZvck1haW5GcmFtZU9ubHk6Tk8gbGVnYWN5V2hpdGVsaXN0OkBbXSBs
ZWdhY3lCbGFja2xpc3Q6QFtdIHVzZXJDb250ZW50V29ybGQ6d29ybGQuZ2V0KCldKTsKKyAgICBS
ZXRhaW5QdHI8X1dLVXNlclN0eWxlU2hlZXQ+IHN0eWxlU2hlZXRBc3NvY2lhdGVkV2l0aFdvcmxk
ID0gYWRvcHROUyhbW19XS1VzZXJTdHlsZVNoZWV0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpzdHls
ZVNoZWV0U291cmNlIGZvcldLV2ViVmlldzpuaWwgZm9yTWFpbkZyYW1lT25seTpOTyBpbmNsdWRl
TWF0Y2hQYXR0ZXJuU3RyaW5nczpAW10gZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGJh
c2VVUkw6bmlsIGxldmVsOl9XS1VzZXJTdHlsZVVzZXJMZXZlbCBjb250ZW50V29ybGQ6d29ybGQu
Z2V0KCldKTsKKyAgICBSZXRhaW5QdHI8X1dLVXNlclN0eWxlU2hlZXQ+IHN0eWxlU2hlZXRBc3Nv
Y2lhdGVkV2l0aFdvcmxkMiA9IGFkb3B0TlMoW1tfV0tVc2VyU3R5bGVTaGVldCBhbGxvY10gaW5p
dFdpdGhTb3VyY2U6c3R5bGVTaGVldFNvdXJjZSBmb3JXS1dlYlZpZXc6bmlsIGZvck1haW5GcmFt
ZU9ubHk6Tk8gaW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGV4Y2x1ZGVNYXRjaFBhdHRl
cm5TdHJpbmdzOkBbXSBiYXNlVVJMOm5pbCBsZXZlbDpfV0tVc2VyU3R5bGVVc2VyTGV2ZWwgY29u
dGVudFdvcmxkOndvcmxkLmdldCgpXSk7CiAgICAgCiAgICAgW3VzZXJDb250ZW50Q29udHJvbGxl
ciBfYWRkVXNlclN0eWxlU2hlZXQ6c3R5bGVTaGVldC5nZXQoKV07CiAgICAgW3VzZXJDb250ZW50
Q29udHJvbGxlciBfYWRkVXNlclN0eWxlU2hlZXQ6c3R5bGVTaGVldEFzc29jaWF0ZWRXaXRoV29y
bGQuZ2V0KCldOwpAQCAtNTI1LDcgKzUyNSw3IEBAIFRFU1QoV0tVc2VyQ29udGVudENvbnRyb2xs
ZXIsIFVzZXJTdHlsZVMKICAgICBFWFBFQ1RfRVEoc3R5bGVTaGVldEFzc29jaWF0ZWRXaXRoV29y
bGQuZ2V0KCksIFt1c2VyQ29udGVudENvbnRyb2xsZXIgX3VzZXJTdHlsZVNoZWV0c11bMV0pOwog
ICAgIEVYUEVDVF9FUShzdHlsZVNoZWV0QXNzb2NpYXRlZFdpdGhXb3JsZDIuZ2V0KCksIFt1c2Vy
Q29udGVudENvbnRyb2xsZXIgX3VzZXJTdHlsZVNoZWV0c11bMl0pOwogCi0gICAgW3VzZXJDb250
ZW50Q29udHJvbGxlciBfcmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzQXNzb2NpYXRlZFdpdGhVc2Vy
Q29udGVudFdvcmxkOltfV0tVc2VyQ29udGVudFdvcmxkIG5vcm1hbFdvcmxkXV07CisgICAgW3Vz
ZXJDb250ZW50Q29udHJvbGxlciBfcmVtb3ZlQWxsVXNlclN0eWxlU2hlZXRzQXNzb2NpYXRlZFdp
dGhDb250ZW50V29ybGQ6W1dLQ29udGVudFdvcmxkIHBhZ2VXb3JsZF1dOwogCiAgICAgRVhQRUNU
X0VRKDJ1LCBbdXNlckNvbnRlbnRDb250cm9sbGVyIF91c2VyU3R5bGVTaGVldHNdLmNvdW50KTsK
ICAgICBFWFBFQ1RfRVEoc3R5bGVTaGVldEFzc29jaWF0ZWRXaXRoV29ybGQuZ2V0KCksIFt1c2Vy
Q29udGVudENvbnRyb2xsZXIgX3VzZXJTdHlsZVNoZWV0c11bMF0pOwpAQCAtNTQ2LDggKzU0Niw4
IEBAIFRFU1QoV0tVc2VyQ29udGVudENvbnRyb2xsZXIsIFVzZXJTdHlsZVMKICAgICBleHBlY3RT
Y3JpcHRFdmFsdWF0ZXNUb0NvbG9yKHRhcmdldFdlYlZpZXcuZ2V0KCksIGJhY2tncm91bmRDb2xv
clNjcmlwdCwgcmVkSW5SR0IpOwogICAgIGV4cGVjdFNjcmlwdEV2YWx1YXRlc1RvQ29sb3Iob3Ro
ZXJXZWJWaWV3LmdldCgpLCBiYWNrZ3JvdW5kQ29sb3JTY3JpcHQsIHJlZEluUkdCKTsKIAotICAg
IFJldGFpblB0cjxfV0tVc2VyQ29udGVudFdvcmxkPiB3b3JsZCA9IFtfV0tVc2VyQ29udGVudFdv
cmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsKLSAgICBSZXRhaW5QdHI8X1dLVXNlclN0
eWxlU2hlZXQ+IHN0eWxlU2hlZXQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hlZXQgYWxsb2Nd
IGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2UgZm9yV0tXZWJWaWV3OnRhcmdldFdlYlZp
ZXcuZ2V0KCkgZm9yTWFpbkZyYW1lT25seTpZRVMgbGV2ZWw6X1dLVXNlclN0eWxlQXV0aG9yTGV2
ZWwgdXNlckNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOworICAgIFJldGFpblB0cjxXS0NvbnRl
bnRXb3JsZD4gd29ybGQgPSBbV0tDb250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRlc3RXb3Js
ZCJdOworICAgIGF1dG8gc3R5bGVTaGVldCA9IGFkb3B0TlMoW1tfV0tVc2VyU3R5bGVTaGVldCBh
bGxvY10gaW5pdFdpdGhTb3VyY2U6c3R5bGVTaGVldFNvdXJjZSBmb3JXS1dlYlZpZXc6dGFyZ2V0
V2ViVmlldy5nZXQoKSBmb3JNYWluRnJhbWVPbmx5OllFUyBpbmNsdWRlTWF0Y2hQYXR0ZXJuU3Ry
aW5nczpuaWwgZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6bmlsIGJhc2VVUkw6bmlsIGxldmVs
Ol9XS1VzZXJTdHlsZUF1dGhvckxldmVsIGNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOwogICAg
IFtbdGFyZ2V0V2ViVmlldyBjb25maWd1cmF0aW9uXS51c2VyQ29udGVudENvbnRyb2xsZXIgX2Fk
ZFVzZXJTdHlsZVNoZWV0OnN0eWxlU2hlZXQuZ2V0KCldOwogCiAgICAgZXhwZWN0U2NyaXB0RXZh
bHVhdGVzVG9Db2xvcih0YXJnZXRXZWJWaWV3LmdldCgpLCBiYWNrZ3JvdW5kQ29sb3JTY3JpcHQs
IGdyZWVuSW5SR0IpOwpAQCAtNTU5LDggKzU1OSw4IEBAIFRFU1QoV0tVc2VyQ29udGVudENvbnRy
b2xsZXIsIFVzZXJTdHlsZVMKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB0YXJnZXRXZWJWaWV3
ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAs
IDAsIDgwMCwgNjAwKV0pOwogICAgIFt0YXJnZXRXZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGJv
ZHkgc3R5bGU9J2JhY2tncm91bmQtY29sb3I6IHJlZDsnPjwvYm9keT4iIGJhc2VVUkw6bmlsXTsK
IAotICAgIFJldGFpblB0cjxfV0tVc2VyQ29udGVudFdvcmxkPiB3b3JsZCA9IFtfV0tVc2VyQ29u
dGVudFdvcmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsKLSAgICBSZXRhaW5QdHI8X1dL
VXNlclN0eWxlU2hlZXQ+IHN0eWxlU2hlZXQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hlZXQg
YWxsb2NdIGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2UgZm9yV0tXZWJWaWV3OnRhcmdl
dFdlYlZpZXcuZ2V0KCkgZm9yTWFpbkZyYW1lT25seTpZRVMgbGV2ZWw6X1dLVXNlclN0eWxlQXV0
aG9yTGV2ZWwgdXNlckNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOworICAgIFJldGFpblB0cjxX
S0NvbnRlbnRXb3JsZD4gd29ybGQgPSBbV0tDb250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRl
c3RXb3JsZCJdOworICAgIFJldGFpblB0cjxfV0tVc2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldCA9
IGFkb3B0TlMoW1tfV0tVc2VyU3R5bGVTaGVldCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6c3R5bGVT
aGVldFNvdXJjZSBmb3JXS1dlYlZpZXc6dGFyZ2V0V2ViVmlldy5nZXQoKSBmb3JNYWluRnJhbWVP
bmx5OllFUyBpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpuaWwgZXhjbHVkZU1hdGNoUGF0dGVy
blN0cmluZ3M6bmlsIGJhc2VVUkw6bmlsIGxldmVsOl9XS1VzZXJTdHlsZUF1dGhvckxldmVsIGNv
bnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOwogICAgIFtbdGFyZ2V0V2ViVmlldyBjb25maWd1cmF0
aW9uXS51c2VyQ29udGVudENvbnRyb2xsZXIgX2FkZFVzZXJTdHlsZVNoZWV0OnN0eWxlU2hlZXQu
Z2V0KCldOwogCiAgICAgW3RhcmdldFdlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmln
YXRpb25dOwpAQCAtNTczLDggKzU3Myw4IEBAIFRFU1QoV0tVc2VyQ29udGVudENvbnRyb2xsZXIs
IFVzZXJTdHlsZVMKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB0YXJnZXRXZWJWaWV3ID0gYWRv
cHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgw
MCwgNjAwKV0pOwogICAgIFt0YXJnZXRXZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGJvZHkgc3R5
bGU9J2JhY2tncm91bmQtY29sb3I6IHJlZDsnPjwvYm9keT4iIGJhc2VVUkw6bmlsXTsKIAotICAg
IFJldGFpblB0cjxfV0tVc2VyQ29udGVudFdvcmxkPiB3b3JsZCA9IFtfV0tVc2VyQ29udGVudFdv
cmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsKLSAgICBSZXRhaW5QdHI8X1dLVXNlclN0
eWxlU2hlZXQ+IHN0eWxlU2hlZXQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hlZXQgYWxsb2Nd
IGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2UgZm9yV0tXZWJWaWV3OnRhcmdldFdlYlZp
ZXcuZ2V0KCkgZm9yTWFpbkZyYW1lT25seTpZRVMgbGV2ZWw6X1dLVXNlclN0eWxlQXV0aG9yTGV2
ZWwgdXNlckNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOworICAgIFJldGFpblB0cjxXS0NvbnRl
bnRXb3JsZD4gd29ybGQgPSBbV0tDb250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRlc3RXb3Js
ZCJdOworICAgIFJldGFpblB0cjxfV0tVc2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldCA9IGFkb3B0
TlMoW1tfV0tVc2VyU3R5bGVTaGVldCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6c3R5bGVTaGVldFNv
dXJjZSBmb3JXS1dlYlZpZXc6dGFyZ2V0V2ViVmlldy5nZXQoKSBmb3JNYWluRnJhbWVPbmx5OllF
UyBpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpuaWwgZXhjbHVkZU1hdGNoUGF0dGVyblN0cmlu
Z3M6bmlsIGJhc2VVUkw6bmlsIGxldmVsOl9XS1VzZXJTdHlsZUF1dGhvckxldmVsIGNvbnRlbnRX
b3JsZDp3b3JsZC5nZXQoKV0pOwogICAgIFtbdGFyZ2V0V2ViVmlldyBjb25maWd1cmF0aW9uXS51
c2VyQ29udGVudENvbnRyb2xsZXIgX2FkZFVzZXJTdHlsZVNoZWV0OnN0eWxlU2hlZXQuZ2V0KCld
OwogICAgIFtbdGFyZ2V0V2ViVmlldyBjb25maWd1cmF0aW9uXS51c2VyQ29udGVudENvbnRyb2xs
ZXIgX3JlbW92ZVVzZXJTdHlsZVNoZWV0OnN0eWxlU2hlZXQuZ2V0KCldOwogCkBAIC01OTksOCAr
NTk5LDggQEAgVEVTVChXS1VzZXJDb250ZW50Q29udHJvbGxlciwgVXNlclN0eWxlUwogICAgIGV4
cGVjdFNjcmlwdEV2YWx1YXRlc1RvQ29sb3IodGFyZ2V0V2ViVmlldy5nZXQoKSwgYmFja2dyb3Vu
ZENvbG9yU2NyaXB0LCByZWRJblJHQik7CiAgICAgZXhwZWN0U2NyaXB0RXZhbHVhdGVzVG9Db2xv
cihvdGhlcldlYlZpZXcuZ2V0KCksIGJhY2tncm91bmRDb2xvclNjcmlwdCwgcmVkSW5SR0IpOwog
Ci0gICAgUmV0YWluUHRyPF9XS1VzZXJDb250ZW50V29ybGQ+IHdvcmxkID0gW19XS1VzZXJDb250
ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRlc3RXb3JsZCJdOwotICAgIFJldGFpblB0cjxfV0tV
c2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldCA9IGFkb3B0TlMoW1tfV0tVc2VyU3R5bGVTaGVldCBh
bGxvY10gaW5pdFdpdGhTb3VyY2U6c3R5bGVTaGVldFNvdXJjZSBmb3JXS1dlYlZpZXc6dGFyZ2V0
V2ViVmlldy5nZXQoKSBmb3JNYWluRnJhbWVPbmx5OllFUyBsZXZlbDpfV0tVc2VyU3R5bGVBdXRo
b3JMZXZlbCB1c2VyQ29udGVudFdvcmxkOndvcmxkLmdldCgpXSk7CisgICAgUmV0YWluUHRyPFdL
Q29udGVudFdvcmxkPiB3b3JsZCA9IFtXS0NvbnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1lOkAiVGVz
dFdvcmxkIl07CisgICAgUmV0YWluUHRyPF9XS1VzZXJTdHlsZVNoZWV0PiBzdHlsZVNoZWV0ID0g
YWRvcHROUyhbW19XS1VzZXJTdHlsZVNoZWV0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpzdHlsZVNo
ZWV0U291cmNlIGZvcldLV2ViVmlldzp0YXJnZXRXZWJWaWV3LmdldCgpIGZvck1haW5GcmFtZU9u
bHk6WUVTIGluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOm5pbCBleGNsdWRlTWF0Y2hQYXR0ZXJu
U3RyaW5nczpuaWwgYmFzZVVSTDpuaWwgbGV2ZWw6X1dLVXNlclN0eWxlQXV0aG9yTGV2ZWwgY29u
dGVudFdvcmxkOndvcmxkLmdldCgpXSk7CiAgICAgW1t0YXJnZXRXZWJWaWV3IGNvbmZpZ3VyYXRp
b25dLnVzZXJDb250ZW50Q29udHJvbGxlciBfYWRkVXNlclN0eWxlU2hlZXQ6c3R5bGVTaGVldC5n
ZXQoKV07CiAKICAgICBleHBlY3RTY3JpcHRFdmFsdWF0ZXNUb0NvbG9yKHRhcmdldFdlYlZpZXcu
Z2V0KCksIGJhY2tncm91bmRDb2xvclNjcmlwdCwgZ3JlZW5JblJHQik7CkBAIC02MTYsOCArNjE2
LDggQEAgVEVTVChXS1VzZXJDb250ZW50Q29udHJvbGxlciwgVXNlclN0eWxlUwogCiAgICAgZXhw
ZWN0U2NyaXB0RXZhbHVhdGVzVG9Db2xvcih3ZWJWaWV3LmdldCgpLCBiYWNrZ3JvdW5kQ29sb3JT
Y3JpcHQsIHJlZEluUkdCKTsKIAotICAgIFJldGFpblB0cjxfV0tVc2VyQ29udGVudFdvcmxkPiB3
b3JsZCA9IFtfV0tVc2VyQ29udGVudFdvcmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsK
LSAgICBSZXRhaW5QdHI8X1dLVXNlclN0eWxlU2hlZXQ+IHN0eWxlU2hlZXQgPSBhZG9wdE5TKFtb
X1dLVXNlclN0eWxlU2hlZXQgYWxsb2NdIGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2Ug
Zm9yV0tXZWJWaWV3OndlYlZpZXcuZ2V0KCkgZm9yTWFpbkZyYW1lT25seTpZRVMgbGV2ZWw6X1dL
VXNlclN0eWxlQXV0aG9yTGV2ZWwgdXNlckNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOworICAg
IFJldGFpblB0cjxXS0NvbnRlbnRXb3JsZD4gd29ybGQgPSBbV0tDb250ZW50V29ybGQgd29ybGRX
aXRoTmFtZTpAIlRlc3RXb3JsZCJdOworICAgIFJldGFpblB0cjxfV0tVc2VyU3R5bGVTaGVldD4g
c3R5bGVTaGVldCA9IGFkb3B0TlMoW1tfV0tVc2VyU3R5bGVTaGVldCBhbGxvY10gaW5pdFdpdGhT
b3VyY2U6c3R5bGVTaGVldFNvdXJjZSBmb3JXS1dlYlZpZXc6d2ViVmlldy5nZXQoKSBmb3JNYWlu
RnJhbWVPbmx5OllFUyBpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpuaWwgZXhjbHVkZU1hdGNo
UGF0dGVyblN0cmluZ3M6bmlsIGJhc2VVUkw6bmlsIGxldmVsOl9XS1VzZXJTdHlsZUF1dGhvckxl
dmVsIGNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOwogICAgIFtbd2ViVmlldyBjb25maWd1cmF0
aW9uXS51c2VyQ29udGVudENvbnRyb2xsZXIgX2FkZFVzZXJTdHlsZVNoZWV0OnN0eWxlU2hlZXQu
Z2V0KCldOwogCiAgICAgZXhwZWN0U2NyaXB0RXZhbHVhdGVzVG9Db2xvcih3ZWJWaWV3LmdldCgp
LCBiYWNrZ3JvdW5kQ29sb3JTY3JpcHQsIGdyZWVuSW5SR0IpOwpAQCAtNjM2LDggKzYzNiw4IEBA
IFRFU1QoV0tVc2VyQ29udGVudENvbnRyb2xsZXIsIFVzZXJTdHlsZVMKIAogICAgIGV4cGVjdFNj
cmlwdEV2YWx1YXRlc1RvQ29sb3Iod2ViVmlldy5nZXQoKSwgYmFja2dyb3VuZENvbG9yU2NyaXB0
LCByZWRJblJHQik7CiAKLSAgICBSZXRhaW5QdHI8X1dLVXNlckNvbnRlbnRXb3JsZD4gd29ybGQg
PSBbX1dLVXNlckNvbnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1lOkAiVGVzdFdvcmxkIl07Ci0gICAg
UmV0YWluUHRyPF9XS1VzZXJTdHlsZVNoZWV0PiBzdHlsZVNoZWV0ID0gYWRvcHROUyhbW19XS1Vz
ZXJTdHlsZVNoZWV0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpzdHlsZVNoZWV0U291cmNlIGZvcldL
V2ViVmlldzp3ZWJWaWV3LmdldCgpIGZvck1haW5GcmFtZU9ubHk6WUVTIGxldmVsOl9XS1VzZXJT
dHlsZUF1dGhvckxldmVsIHVzZXJDb250ZW50V29ybGQ6d29ybGQuZ2V0KCldKTsKKyAgICBSZXRh
aW5QdHI8V0tDb250ZW50V29ybGQ+IHdvcmxkID0gW1dLQ29udGVudFdvcmxkIHdvcmxkV2l0aE5h
bWU6QCJUZXN0V29ybGQiXTsKKyAgICBSZXRhaW5QdHI8X1dLVXNlclN0eWxlU2hlZXQ+IHN0eWxl
U2hlZXQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hlZXQgYWxsb2NdIGluaXRXaXRoU291cmNl
OnN0eWxlU2hlZXRTb3VyY2UgZm9yV0tXZWJWaWV3OndlYlZpZXcuZ2V0KCkgZm9yTWFpbkZyYW1l
T25seTpZRVMgaW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6bmlsIGV4Y2x1ZGVNYXRjaFBhdHRl
cm5TdHJpbmdzOm5pbCBiYXNlVVJMOm5pbCBsZXZlbDpfV0tVc2VyU3R5bGVBdXRob3JMZXZlbCBj
b250ZW50V29ybGQ6d29ybGQuZ2V0KCldKTsKICAgICBbW3dlYlZpZXcgY29uZmlndXJhdGlvbl0u
dXNlckNvbnRlbnRDb250cm9sbGVyIF9hZGRVc2VyU3R5bGVTaGVldDpzdHlsZVNoZWV0LmdldCgp
XTsKIAogICAgIGV4cGVjdFNjcmlwdEV2YWx1YXRlc1RvQ29sb3Iod2ViVmlldy5nZXQoKSwgYmFj
a2dyb3VuZENvbG9yU2NyaXB0LCBncmVlbkluUkdCKTsKQEAgLTY2MCw4ICs2NjAsOCBAQCBURVNU
KFdLVXNlckNvbnRlbnRDb250cm9sbGVyLCBVc2VyU3R5bGVTCiAKICAgICBleHBlY3RTY3JpcHRF
dmFsdWF0ZXNUb0NvbG9yKHdlYlZpZXcuZ2V0KCksIGJhY2tncm91bmRDb2xvclNjcmlwdCwgcmVk
SW5SR0IpOwogCi0gICAgUmV0YWluUHRyPF9XS1VzZXJDb250ZW50V29ybGQ+IHdvcmxkID0gW19X
S1VzZXJDb250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRlc3RXb3JsZCJdOwotICAgIFJldGFp
blB0cjxfV0tVc2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldCA9IGFkb3B0TlMoW1tfV0tVc2VyU3R5
bGVTaGVldCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6c3R5bGVTaGVldFNvdXJjZSBmb3JXS1dlYlZp
ZXc6d2ViVmlldy5nZXQoKSBmb3JNYWluRnJhbWVPbmx5OllFUyBsZXZlbDpfV0tVc2VyU3R5bGVB
dXRob3JMZXZlbCB1c2VyQ29udGVudFdvcmxkOndvcmxkLmdldCgpXSk7CisgICAgUmV0YWluUHRy
PFdLQ29udGVudFdvcmxkPiB3b3JsZCA9IFtXS0NvbnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1lOkAi
VGVzdFdvcmxkIl07CisgICAgUmV0YWluUHRyPF9XS1VzZXJTdHlsZVNoZWV0PiBzdHlsZVNoZWV0
ID0gYWRvcHROUyhbW19XS1VzZXJTdHlsZVNoZWV0IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpzdHls
ZVNoZWV0U291cmNlIGZvcldLV2ViVmlldzp3ZWJWaWV3LmdldCgpIGZvck1haW5GcmFtZU9ubHk6
WUVTIGluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOm5pbCBleGNsdWRlTWF0Y2hQYXR0ZXJuU3Ry
aW5nczpuaWwgYmFzZVVSTDpuaWwgbGV2ZWw6X1dLVXNlclN0eWxlQXV0aG9yTGV2ZWwgY29udGVu
dFdvcmxkOndvcmxkLmdldCgpXSk7CiAgICAgW1t3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dLnVzZXJD
b250ZW50Q29udHJvbGxlciBfYWRkVXNlclN0eWxlU2hlZXQ6c3R5bGVTaGVldC5nZXQoKV07CiAK
ICAgICBleHBlY3RTY3JpcHRFdmFsdWF0ZXNUb0NvbG9yKHdlYlZpZXcuZ2V0KCksIGJhY2tncm91
bmRDb2xvclNjcmlwdCwgZ3JlZW5JblJHQik7CkBAIC02OTYsOCArNjk2LDggQEAgVEVTVChXS1Vz
ZXJDb250ZW50Q29udHJvbGxlciwgVXNlclN0eWxlUwogCiAgICAgZXhwZWN0U2NyaXB0RXZhbHVh
dGVzVG9Db2xvcih3ZWJWaWV3LmdldCgpLCBiYWNrZ3JvdW5kQ29sb3JTY3JpcHQsIHJlZEluUkdC
KTsKIAotICAgIFJldGFpblB0cjxfV0tVc2VyQ29udGVudFdvcmxkPiB3b3JsZCA9IFtfV0tVc2Vy
Q29udGVudFdvcmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsKLSAgICBSZXRhaW5QdHI8
X1dLVXNlclN0eWxlU2hlZXQ+IHN0eWxlU2hlZXQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hl
ZXQgYWxsb2NdIGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2UgZm9yV0tXZWJWaWV3Ondl
YlZpZXcuZ2V0KCkgZm9yTWFpbkZyYW1lT25seTpZRVMgbGV2ZWw6X1dLVXNlclN0eWxlQXV0aG9y
TGV2ZWwgdXNlckNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOworICAgIFJldGFpblB0cjxXS0Nv
bnRlbnRXb3JsZD4gd29ybGQgPSBbV0tDb250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRlc3RX
b3JsZCJdOworICAgIFJldGFpblB0cjxfV0tVc2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldCA9IGFk
b3B0TlMoW1tfV0tVc2VyU3R5bGVTaGVldCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6c3R5bGVTaGVl
dFNvdXJjZSBmb3JXS1dlYlZpZXc6d2ViVmlldy5nZXQoKSBmb3JNYWluRnJhbWVPbmx5OllFUyBp
bmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpuaWwgZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6
bmlsIGJhc2VVUkw6bmlsIGxldmVsOl9XS1VzZXJTdHlsZUF1dGhvckxldmVsIGNvbnRlbnRXb3Js
ZDp3b3JsZC5nZXQoKV0pOwogICAgIFtbd2ViVmlldyBjb25maWd1cmF0aW9uXS51c2VyQ29udGVu
dENvbnRyb2xsZXIgX2FkZFVzZXJTdHlsZVNoZWV0OnN0eWxlU2hlZXQuZ2V0KCldOwogCiAgICAg
ZXhwZWN0U2NyaXB0RXZhbHVhdGVzVG9Db2xvcih3ZWJWaWV3LmdldCgpLCBiYWNrZ3JvdW5kQ29s
b3JTY3JpcHQsIGdyZWVuSW5SR0IpOwpAQCAtNzI0LDEwICs3MjQsMTEgQEAgVEVTVChXS1VzZXJD
b250ZW50Q29udHJvbGxlciwgVXNlclN0eWxlUwogCiBURVNUKFdLVXNlckNvbnRlbnRDb250cm9s
bGVyLCBVc2VyU3R5bGVTaGVldFNwZWNpZmljaXR5TGV2ZWxVc2VyKQogewotICAgIFJldGFpblB0
cjxfV0tVc2VyQ29udGVudFdvcmxkPiB3b3JsZCA9IFtfV0tVc2VyQ29udGVudFdvcmxkIHdvcmxk
V2l0aE5hbWU6QCJUZXN0V29ybGQiXTsKKyAgICBSZXRhaW5QdHI8V0tDb250ZW50V29ybGQ+IHdv
cmxkID0gW1dLQ29udGVudFdvcmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsKIAogICAg
IFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKLSAgICBSZXRhaW5QdHI8
X1dLVXNlclN0eWxlU2hlZXQ+IHN0eWxlU2hlZXQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hl
ZXQgYWxsb2NdIGluaXRXaXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2VGb3JTcGVjaWZpY2l0eUxl
dmVsVGVzdHMgZm9yTWFpbkZyYW1lT25seTpZRVMgbGVnYWN5V2hpdGVsaXN0OkBbXSBsZWdhY3lC
bGFja2xpc3Q6QFtdIGJhc2VVUkw6W1tOU1VSTCBhbGxvY10gaW5pdFdpdGhTdHJpbmc6QCJodHRw
Oi8vZXhhbXBsZS5jb20vIl0gbGV2ZWw6X1dLVXNlclN0eWxlVXNlckxldmVsIHVzZXJDb250ZW50
V29ybGQ6d29ybGQuZ2V0KCldKTsKKyAgICAKKyAgICBSZXRhaW5QdHI8X1dLVXNlclN0eWxlU2hl
ZXQ+IHN0eWxlU2hlZXQgPSBhZG9wdE5TKFtbX1dLVXNlclN0eWxlU2hlZXQgYWxsb2NdIGluaXRX
aXRoU291cmNlOnN0eWxlU2hlZXRTb3VyY2VGb3JTcGVjaWZpY2l0eUxldmVsVGVzdHMgZm9yV0tX
ZWJWaWV3Om5pbCBmb3JNYWluRnJhbWVPbmx5OllFUyBpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5n
czpAW10gZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGJhc2VVUkw6W1tOU1VSTCBhbGxv
Y10gaW5pdFdpdGhTdHJpbmc6QCJodHRwOi8vZXhhbXBsZS5jb20vIl0gbGV2ZWw6X1dLVXNlclN0
eWxlVXNlckxldmVsIGNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOwogICAgIFtbY29uZmlndXJh
dGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIF9hZGRVc2VyU3R5bGVTaGVldDpzdHlsZVNoZWV0
LmdldCgpXTsKIAogICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtb
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDAp
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwpAQCAtNzQwLDEwICs3NDEsMTAg
QEAgVEVTVChXS1VzZXJDb250ZW50Q29udHJvbGxlciwgVXNlclN0eWxlUwogCiBURVNUKFdLVXNl
ckNvbnRlbnRDb250cm9sbGVyLCBVc2VyU3R5bGVTaGVldFNwZWNpZmljaXR5TGV2ZWxBdXRob3Ip
CiB7Ci0gICAgUmV0YWluUHRyPF9XS1VzZXJDb250ZW50V29ybGQ+IHdvcmxkID0gW19XS1VzZXJD
b250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRlc3RXb3JsZCJdOworICAgIFJldGFpblB0cjxX
S0NvbnRlbnRXb3JsZD4gd29ybGQgPSBbV0tDb250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRl
c3RXb3JsZCJdOwogCiAgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvbmZp
Z3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0p
OwotICAgIFJldGFpblB0cjxfV0tVc2VyU3R5bGVTaGVldD4gc3R5bGVTaGVldCA9IGFkb3B0TlMo
W1tfV0tVc2VyU3R5bGVTaGVldCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6c3R5bGVTaGVldFNvdXJj
ZUZvclNwZWNpZmljaXR5TGV2ZWxUZXN0cyBmb3JNYWluRnJhbWVPbmx5OllFUyBsZWdhY3lXaGl0
ZWxpc3Q6QFtdIGxlZ2FjeUJsYWNrbGlzdDpAW10gYmFzZVVSTDpbW05TVVJMIGFsbG9jXSBpbml0
V2l0aFN0cmluZzpAImh0dHA6Ly9leGFtcGxlLmNvbS8iXSBsZXZlbDpfV0tVc2VyU3R5bGVBdXRo
b3JMZXZlbCB1c2VyQ29udGVudFdvcmxkOndvcmxkLmdldCgpXSk7CisgICAgUmV0YWluUHRyPF9X
S1VzZXJTdHlsZVNoZWV0PiBzdHlsZVNoZWV0ID0gYWRvcHROUyhbW19XS1VzZXJTdHlsZVNoZWV0
IGFsbG9jXSBpbml0V2l0aFNvdXJjZTpzdHlsZVNoZWV0U291cmNlRm9yU3BlY2lmaWNpdHlMZXZl
bFRlc3RzIGZvcldLV2ViVmlldzpuaWwgZm9yTWFpbkZyYW1lT25seTpZRVMgaW5jbHVkZU1hdGNo
UGF0dGVyblN0cmluZ3M6QFtdIGV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOkBbXSBiYXNlVVJM
OltbTlNVUkwgYWxsb2NdIGluaXRXaXRoU3RyaW5nOkAiaHR0cDovL2V4YW1wbGUuY29tLyJdIGxl
dmVsOl9XS1VzZXJTdHlsZUF1dGhvckxldmVsIGNvbnRlbnRXb3JsZDp3b3JsZC5nZXQoKV0pOwog
ICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIF9hZGRVc2VyU3R5bGVT
aGVldDpzdHlsZVNoZWV0LmdldCgpXTsKIAogICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZp
ZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwpAQCAt
NzcyLDExICs3NzMsMTEgQEAgVEVTVChXS1VzZXJDb250ZW50Q29udHJvbGxlciwgVXNlclNjcmlw
dAogewogICAgIFJldGFpblB0cjxXS1VzZXJDb250ZW50Q29udHJvbGxlcj4gdXNlckNvbnRlbnRD
b250cm9sbGVyID0gYWRvcHROUyhbW1dLVXNlckNvbnRlbnRDb250cm9sbGVyIGFsbG9jXSBpbml0
XSk7CiAKLSAgICBSZXRhaW5QdHI8X1dLVXNlckNvbnRlbnRXb3JsZD4gd29ybGQgPSBbX1dLVXNl
ckNvbnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1lOkAiVGVzdFdvcmxkIl07CisgICAgUmV0YWluUHRy
PFdLQ29udGVudFdvcmxkPiB3b3JsZCA9IFtXS0NvbnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1lOkAi
VGVzdFdvcmxkIl07CiAKICAgICBSZXRhaW5QdHI8V0tVc2VyU2NyaXB0PiB1c2VyU2NyaXB0ID0g
YWRvcHROUyhbW1dLVXNlclNjcmlwdCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6QCIiIGluamVjdGlv
blRpbWU6V0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRTdGFydCBmb3JNYWluRnJh
bWVPbmx5Ok5PXSk7Ci0gICAgUmV0YWluUHRyPFdLVXNlclNjcmlwdD4gdXNlclNjcmlwdEFzc29j
aWF0ZWRXaXRoV29ybGQgPSBhZG9wdE5TKFtbV0tVc2VyU2NyaXB0IGFsbG9jXSBfaW5pdFdpdGhT
b3VyY2U6QCIiIGluamVjdGlvblRpbWU6V0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1l
bnRTdGFydCBmb3JNYWluRnJhbWVPbmx5Ok5PIGxlZ2FjeVdoaXRlbGlzdDpAW10gbGVnYWN5Qmxh
Y2tsaXN0OkBbXSB1c2VyQ29udGVudFdvcmxkOndvcmxkLmdldCgpXSk7Ci0gICAgCisgICAgYXV0
byB1c2VyU2NyaXB0QXNzb2NpYXRlZFdpdGhXb3JsZCA9IGFkb3B0TlMoW1tXS1VzZXJTY3JpcHQg
YWxsb2NdIF9pbml0V2l0aFNvdXJjZTpAIiIgaW5qZWN0aW9uVGltZTpXS1VzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lQXREb2N1bWVudFN0YXJ0IGZvck1haW5GcmFtZU9ubHk6Tk8gaW5jbHVkZU1hdGNo
UGF0dGVyblN0cmluZ3M6QFtdIGV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdzOkBbXSBhc3NvY2lh
dGVkVVJMOm5pbCBjb250ZW50V29ybGQ6d29ybGQuZ2V0KCkgZGVmZXJSdW5uaW5nVW50aWxOb3Rp
ZmljYXRpb246Tk9dKTsKKwogICAgIFt1c2VyQ29udGVudENvbnRyb2xsZXIgYWRkVXNlclNjcmlw
dDp1c2VyU2NyaXB0LmdldCgpXTsKICAgICBbdXNlckNvbnRlbnRDb250cm9sbGVyIGFkZFVzZXJT
Y3JpcHQ6dXNlclNjcmlwdEFzc29jaWF0ZWRXaXRoV29ybGQuZ2V0KCldOwogICAgIApAQCAtNzkz
LDExICs3OTQsMTEgQEAgVEVTVChXS1VzZXJDb250ZW50Q29udHJvbGxlciwgVXNlclNjcmlwdAog
ewogICAgIFJldGFpblB0cjxXS1VzZXJDb250ZW50Q29udHJvbGxlcj4gdXNlckNvbnRlbnRDb250
cm9sbGVyID0gYWRvcHROUyhbW1dLVXNlckNvbnRlbnRDb250cm9sbGVyIGFsbG9jXSBpbml0XSk7
CiAKLSAgICBSZXRhaW5QdHI8X1dLVXNlckNvbnRlbnRXb3JsZD4gd29ybGQgPSBbX1dLVXNlckNv
bnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1lOkAiVGVzdFdvcmxkIl07CisgICAgUmV0YWluUHRyPFdL
Q29udGVudFdvcmxkPiB3b3JsZCA9IFtXS0NvbnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1lOkAiVGVz
dFdvcmxkIl07CiAKICAgICBSZXRhaW5QdHI8V0tVc2VyU2NyaXB0PiB1c2VyU2NyaXB0ID0gYWRv
cHROUyhbW1dLVXNlclNjcmlwdCBhbGxvY10gaW5pdFdpdGhTb3VyY2U6QCIiIGluamVjdGlvblRp
bWU6V0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRTdGFydCBmb3JNYWluRnJhbWVP
bmx5Ok5PXSk7Ci0gICAgUmV0YWluUHRyPFdLVXNlclNjcmlwdD4gdXNlclNjcmlwdEFzc29jaWF0
ZWRXaXRoV29ybGQgPSBhZG9wdE5TKFtbV0tVc2VyU2NyaXB0IGFsbG9jXSBfaW5pdFdpdGhTb3Vy
Y2U6QCIiIGluamVjdGlvblRpbWU6V0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRT
dGFydCBmb3JNYWluRnJhbWVPbmx5Ok5PIGxlZ2FjeVdoaXRlbGlzdDpAW10gbGVnYWN5QmxhY2ts
aXN0OkBbXSB1c2VyQ29udGVudFdvcmxkOndvcmxkLmdldCgpXSk7Ci0gICAgUmV0YWluUHRyPFdL
VXNlclNjcmlwdD4gdXNlclNjcmlwdEFzc29jaWF0ZWRXaXRoV29ybGQyID0gYWRvcHROUyhbW1dL
VXNlclNjcmlwdCBhbGxvY10gX2luaXRXaXRoU291cmNlOkAiIiBpbmplY3Rpb25UaW1lOldLVXNl
clNjcmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50U3RhcnQgZm9yTWFpbkZyYW1lT25seTpOTyBs
ZWdhY3lXaGl0ZWxpc3Q6QFtdIGxlZ2FjeUJsYWNrbGlzdDpAW10gdXNlckNvbnRlbnRXb3JsZDp3
b3JsZC5nZXQoKV0pOworICAgIFJldGFpblB0cjxXS1VzZXJTY3JpcHQ+IHVzZXJTY3JpcHRBc3Nv
Y2lhdGVkV2l0aFdvcmxkID0gYWRvcHROUyhbW1dLVXNlclNjcmlwdCBhbGxvY10gX2luaXRXaXRo
U291cmNlOkAiIiBpbmplY3Rpb25UaW1lOldLVXNlclNjcmlwdEluamVjdGlvblRpbWVBdERvY3Vt
ZW50U3RhcnQgZm9yTWFpbkZyYW1lT25seTpOTyBpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpA
W10gZXhjbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGFzc29jaWF0ZWRVUkw6bmlsIGNvbnRl
bnRXb3JsZDp3b3JsZC5nZXQoKSBkZWZlclJ1bm5pbmdVbnRpbE5vdGlmaWNhdGlvbjpOT10pOwor
ICAgIFJldGFpblB0cjxXS1VzZXJTY3JpcHQ+IHVzZXJTY3JpcHRBc3NvY2lhdGVkV2l0aFdvcmxk
MiA9IGFkb3B0TlMoW1tXS1VzZXJTY3JpcHQgYWxsb2NdIF9pbml0V2l0aFNvdXJjZTpAIiIgaW5q
ZWN0aW9uVGltZTpXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lQXREb2N1bWVudFN0YXJ0IGZvck1h
aW5GcmFtZU9ubHk6Tk8gaW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGV4Y2x1ZGVNYXRj
aFBhdHRlcm5TdHJpbmdzOkBbXSBhc3NvY2lhdGVkVVJMOm5pbCBjb250ZW50V29ybGQ6d29ybGQu
Z2V0KCkgZGVmZXJSdW5uaW5nVW50aWxOb3RpZmljYXRpb246Tk9dKTsKICAgICAKICAgICBbdXNl
ckNvbnRlbnRDb250cm9sbGVyIGFkZFVzZXJTY3JpcHQ6dXNlclNjcmlwdC5nZXQoKV07CiAgICAg
W3VzZXJDb250ZW50Q29udHJvbGxlciBhZGRVc2VyU2NyaXB0OnVzZXJTY3JpcHRBc3NvY2lhdGVk
V2l0aFdvcmxkLmdldCgpXTsKQEAgLTgwOCw3ICs4MDksNyBAQCBURVNUKFdLVXNlckNvbnRlbnRD
b250cm9sbGVyLCBVc2VyU2NyaXB0CiAgICAgRVhQRUNUX0VRKHVzZXJTY3JpcHRBc3NvY2lhdGVk
V2l0aFdvcmxkLmdldCgpLCBbdXNlckNvbnRlbnRDb250cm9sbGVyIHVzZXJTY3JpcHRzXVsxXSk7
CiAgICAgRVhQRUNUX0VRKHVzZXJTY3JpcHRBc3NvY2lhdGVkV2l0aFdvcmxkMi5nZXQoKSwgW3Vz
ZXJDb250ZW50Q29udHJvbGxlciB1c2VyU2NyaXB0c11bMl0pOwogCi0gICAgW3VzZXJDb250ZW50
Q29udHJvbGxlciBfcmVtb3ZlQWxsVXNlclNjcmlwdHNBc3NvY2lhdGVkV2l0aFVzZXJDb250ZW50
V29ybGQ6d29ybGQuZ2V0KCldOworICAgIFt1c2VyQ29udGVudENvbnRyb2xsZXIgX3JlbW92ZUFs
bFVzZXJTY3JpcHRzQXNzb2NpYXRlZFdpdGhDb250ZW50V29ybGQ6d29ybGQuZ2V0KCldOwogCiAg
ICAgRVhQRUNUX0VRKDF1LCBbdXNlckNvbnRlbnRDb250cm9sbGVyIHVzZXJTY3JpcHRzXS5jb3Vu
dCk7CiAgICAgRVhQRUNUX0VRKHVzZXJTY3JpcHQuZ2V0KCksIFt1c2VyQ29udGVudENvbnRyb2xs
ZXIgdXNlclNjcmlwdHNdWzBdKTsKQEAgLTgxOCwxMSArODE5LDExIEBAIFRFU1QoV0tVc2VyQ29u
dGVudENvbnRyb2xsZXIsIFVzZXJTY3JpcHQKIHsKICAgICBSZXRhaW5QdHI8V0tVc2VyQ29udGVu
dENvbnRyb2xsZXI+IHVzZXJDb250ZW50Q29udHJvbGxlciA9IGFkb3B0TlMoW1tXS1VzZXJDb250
ZW50Q29udHJvbGxlciBhbGxvY10gaW5pdF0pOwogCi0gICAgUmV0YWluUHRyPF9XS1VzZXJDb250
ZW50V29ybGQ+IHdvcmxkID0gW19XS1VzZXJDb250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRl
c3RXb3JsZCJdOworICAgIFJldGFpblB0cjxXS0NvbnRlbnRXb3JsZD4gd29ybGQgPSBbV0tDb250
ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRlc3RXb3JsZCJdOwogCiAgICAgUmV0YWluUHRyPFdL
VXNlclNjcmlwdD4gdXNlclNjcmlwdCA9IGFkb3B0TlMoW1tXS1VzZXJTY3JpcHQgYWxsb2NdIGlu
aXRXaXRoU291cmNlOkAiIiBpbmplY3Rpb25UaW1lOldLVXNlclNjcmlwdEluamVjdGlvblRpbWVB
dERvY3VtZW50U3RhcnQgZm9yTWFpbkZyYW1lT25seTpOT10pOwotICAgIFJldGFpblB0cjxXS1Vz
ZXJTY3JpcHQ+IHVzZXJTY3JpcHRBc3NvY2lhdGVkV2l0aFdvcmxkID0gYWRvcHROUyhbW1dLVXNl
clNjcmlwdCBhbGxvY10gX2luaXRXaXRoU291cmNlOkAiIiBpbmplY3Rpb25UaW1lOldLVXNlclNj
cmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50U3RhcnQgZm9yTWFpbkZyYW1lT25seTpOTyBsZWdh
Y3lXaGl0ZWxpc3Q6QFtdIGxlZ2FjeUJsYWNrbGlzdDpAW10gdXNlckNvbnRlbnRXb3JsZDp3b3Js
ZC5nZXQoKV0pOwotICAgIFJldGFpblB0cjxXS1VzZXJTY3JpcHQ+IHVzZXJTY3JpcHRBc3NvY2lh
dGVkV2l0aFdvcmxkMiA9IGFkb3B0TlMoW1tXS1VzZXJTY3JpcHQgYWxsb2NdIF9pbml0V2l0aFNv
dXJjZTpAIiIgaW5qZWN0aW9uVGltZTpXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lQXREb2N1bWVu
dFN0YXJ0IGZvck1haW5GcmFtZU9ubHk6Tk8gbGVnYWN5V2hpdGVsaXN0OkBbXSBsZWdhY3lCbGFj
a2xpc3Q6QFtdIHVzZXJDb250ZW50V29ybGQ6d29ybGQuZ2V0KCldKTsKKyAgICBSZXRhaW5QdHI8
V0tVc2VyU2NyaXB0PiB1c2VyU2NyaXB0QXNzb2NpYXRlZFdpdGhXb3JsZCA9IGFkb3B0TlMoW1tX
S1VzZXJTY3JpcHQgYWxsb2NdIF9pbml0V2l0aFNvdXJjZTpAIiIgaW5qZWN0aW9uVGltZTpXS1Vz
ZXJTY3JpcHRJbmplY3Rpb25UaW1lQXREb2N1bWVudFN0YXJ0IGZvck1haW5GcmFtZU9ubHk6Tk8g
aW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGV4Y2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdz
OkBbXSBhc3NvY2lhdGVkVVJMOm5pbCBjb250ZW50V29ybGQ6d29ybGQuZ2V0KCkgZGVmZXJSdW5u
aW5nVW50aWxOb3RpZmljYXRpb246Tk9dKTsKKyAgICBSZXRhaW5QdHI8V0tVc2VyU2NyaXB0PiB1
c2VyU2NyaXB0QXNzb2NpYXRlZFdpdGhXb3JsZDIgPSBhZG9wdE5TKFtbV0tVc2VyU2NyaXB0IGFs
bG9jXSBfaW5pdFdpdGhTb3VyY2U6QCIiIGluamVjdGlvblRpbWU6V0tVc2VyU2NyaXB0SW5qZWN0
aW9uVGltZUF0RG9jdW1lbnRTdGFydCBmb3JNYWluRnJhbWVPbmx5Ok5PIGluY2x1ZGVNYXRjaFBh
dHRlcm5TdHJpbmdzOkBbXSBleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpAW10gYXNzb2NpYXRl
ZFVSTDpuaWwgY29udGVudFdvcmxkOndvcmxkLmdldCgpIGRlZmVyUnVubmluZ1VudGlsTm90aWZp
Y2F0aW9uOk5PXSk7CiAgICAgCiAgICAgW3VzZXJDb250ZW50Q29udHJvbGxlciBhZGRVc2VyU2Ny
aXB0OnVzZXJTY3JpcHQuZ2V0KCldOwogICAgIFt1c2VyQ29udGVudENvbnRyb2xsZXIgYWRkVXNl
clNjcmlwdDp1c2VyU2NyaXB0QXNzb2NpYXRlZFdpdGhXb3JsZC5nZXQoKV07CkBAIC04MzMsNyAr
ODM0LDcgQEAgVEVTVChXS1VzZXJDb250ZW50Q29udHJvbGxlciwgVXNlclNjcmlwdAogICAgIEVY
UEVDVF9FUSh1c2VyU2NyaXB0QXNzb2NpYXRlZFdpdGhXb3JsZC5nZXQoKSwgW3VzZXJDb250ZW50
Q29udHJvbGxlciB1c2VyU2NyaXB0c11bMV0pOwogICAgIEVYUEVDVF9FUSh1c2VyU2NyaXB0QXNz
b2NpYXRlZFdpdGhXb3JsZDIuZ2V0KCksIFt1c2VyQ29udGVudENvbnRyb2xsZXIgdXNlclNjcmlw
dHNdWzJdKTsKIAotICAgIFt1c2VyQ29udGVudENvbnRyb2xsZXIgX3JlbW92ZUFsbFVzZXJTY3Jp
cHRzQXNzb2NpYXRlZFdpdGhVc2VyQ29udGVudFdvcmxkOltfV0tVc2VyQ29udGVudFdvcmxkIG5v
cm1hbFdvcmxkXV07CisgICAgW3VzZXJDb250ZW50Q29udHJvbGxlciBfcmVtb3ZlQWxsVXNlclNj
cmlwdHNBc3NvY2lhdGVkV2l0aENvbnRlbnRXb3JsZDpbV0tDb250ZW50V29ybGQgcGFnZVdvcmxk
XV07CiAKICAgICBFWFBFQ1RfRVEoMnUsIFt1c2VyQ29udGVudENvbnRyb2xsZXIgdXNlclNjcmlw
dHNdLmNvdW50KTsKICAgICBFWFBFQ1RfRVEodXNlclNjcmlwdEFzc29jaWF0ZWRXaXRoV29ybGQu
Z2V0KCksIFt1c2VyQ29udGVudENvbnRyb2xsZXIgdXNlclNjcmlwdHNdWzBdKTsKQEAgLTg5MSw3
ICs4OTIsNyBAQCBURVNUKFdLVXNlckNvbnRlbnRDb250cm9sbGVyLCBJbmplY3RVc2VyCiAKIFRF
U1QoV0tVc2VyQ29udGVudENvbnRyb2xsZXIsIFVzZXJTY3JpcHROb3RpZmljYXRpb24pCiB7Ci0g
ICAgV0tVc2VyU2NyaXB0ICp3YWl0c0Zvck5vdGlmaWNhdGlvbiA9IFtbW1dLVXNlclNjcmlwdCBh
bGxvY10gX2luaXRXaXRoU291cmNlOkAiYWxlcnQoJ3dhaXRlZCBmb3Igbm90aWZpY2F0aW9uJyki
IGluamVjdGlvblRpbWU6V0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRTdGFydCBm
b3JNYWluRnJhbWVPbmx5OllFUyBsZWdhY3lXaGl0ZWxpc3Q6QFtdIGxlZ2FjeUJsYWNrbGlzdDpA
W10gYXNzb2NpYXRlZFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Q6Ly8vc2NyaXB0Il0g
Y29udGVudFdvcmxkOltXS0NvbnRlbnRXb3JsZCBkZWZhdWx0Q2xpZW50V29ybGRdIGRlZmVyUnVu
bmluZ1VudGlsTm90aWZpY2F0aW9uOllFU10gYXV0b3JlbGVhc2VdOworICAgIFdLVXNlclNjcmlw
dCAqd2FpdHNGb3JOb3RpZmljYXRpb24gPSBbW1tXS1VzZXJTY3JpcHQgYWxsb2NdIF9pbml0V2l0
aFNvdXJjZTpAImFsZXJ0KCd3YWl0ZWQgZm9yIG5vdGlmaWNhdGlvbicpIiBpbmplY3Rpb25UaW1l
OldLVXNlclNjcmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50U3RhcnQgZm9yTWFpbkZyYW1lT25s
eTpZRVMgaW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGV4Y2x1ZGVNYXRjaFBhdHRlcm5T
dHJpbmdzOkBbXSBhc3NvY2lhdGVkVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdDovLy9z
Y3JpcHQiXSBjb250ZW50V29ybGQ6W1dLQ29udGVudFdvcmxkIGRlZmF1bHRDbGllbnRXb3JsZF0g
ZGVmZXJSdW5uaW5nVW50aWxOb3RpZmljYXRpb246WUVTXSBhdXRvcmVsZWFzZV07CiAgICAgV0tV
c2VyU2NyaXB0ICpkb2N1bWVudEVuZCA9IFtbW1dLVXNlclNjcmlwdCBhbGxvY10gaW5pdFdpdGhT
b3VyY2U6QCJhbGVydCgnZG9jdW1lbnQgcGFyc2luZyBlbmRlZCcpIiBpbmplY3Rpb25UaW1lOldL
VXNlclNjcmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50RW5kIGZvck1haW5GcmFtZU9ubHk6WUVT
XSBhdXRvcmVsZWFzZV07CiAKICAgICBUZXN0V0tXZWJWaWV3ICp3ZWJWaWV3MSA9IFtbVGVzdFdL
V2ViVmlldyBuZXddIGF1dG9yZWxlYXNlXTsKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvVXNlckNvbnRlbnRXb3JsZC5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VzZXJDb250ZW50V29ybGQubW0JKHJldmlz
aW9uIDI2MzA0MikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVXNl
ckNvbnRlbnRXb3JsZC5tbQkod29ya2luZyBjb3B5KQpAQCAtNzksMTEgKzc5LDExIEBAIFRFU1Qo
Q29udGVudFdvcmxkLCBOb3JtYWxXb3JsZFVzZXJTY3JpcHQKIAogVEVTVChDb250ZW50V29ybGQs
IElzb2xhdGVkV29ybGQpCiB7Ci0gICAgUmV0YWluUHRyPF9XS1VzZXJDb250ZW50V29ybGQ+IGlz
b2xhdGVkV29ybGQgPSBbX1dLVXNlckNvbnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1lOkAiVGVzdFdv
cmxkIl07CisgICAgUmV0YWluUHRyPFdLQ29udGVudFdvcmxkPiBpc29sYXRlZFdvcmxkID0gW1dL
Q29udGVudFdvcmxkIHdvcmxkV2l0aE5hbWU6QCJUZXN0V29ybGQiXTsKICAgICBFWFBFQ1RfV0tf
U1RSRVEoW2lzb2xhdGVkV29ybGQgbmFtZV0sIEAiVGVzdFdvcmxkIik7CiAKLSAgICBSZXRhaW5Q
dHI8V0tVc2VyU2NyaXB0PiB1c2VyU2NyaXB0ID0gYWRvcHROUyhbW1dLVXNlclNjcmlwdCBhbGxv
Y10gX2luaXRXaXRoU291cmNlOkAiIiBpbmplY3Rpb25UaW1lOldLVXNlclNjcmlwdEluamVjdGlv
blRpbWVBdERvY3VtZW50U3RhcnQgZm9yTWFpbkZyYW1lT25seTpZRVMgbGVnYWN5V2hpdGVsaXN0
OkBbXSBsZWdhY3lCbGFja2xpc3Q6QFtdIHVzZXJDb250ZW50V29ybGQ6aXNvbGF0ZWRXb3JsZC5n
ZXQoKV0pOwotICAgIEVYUEVDVF9ORShbdXNlclNjcmlwdCBfdXNlckNvbnRlbnRXb3JsZF0sIGlz
b2xhdGVkV29ybGQuZ2V0KCkpOworICAgIFJldGFpblB0cjxXS1VzZXJTY3JpcHQ+IHVzZXJTY3Jp
cHQgPSBhZG9wdE5TKFtbV0tVc2VyU2NyaXB0IGFsbG9jXSBfaW5pdFdpdGhTb3VyY2U6QCIiIGlu
amVjdGlvblRpbWU6V0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZUF0RG9jdW1lbnRTdGFydCBmb3JN
YWluRnJhbWVPbmx5OllFUyBpbmNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpAW10gZXhjbHVkZU1h
dGNoUGF0dGVyblN0cmluZ3M6QFtdIGFzc29jaWF0ZWRVUkw6bmlsIGNvbnRlbnRXb3JsZDppc29s
YXRlZFdvcmxkLmdldCgpIGRlZmVyUnVubmluZ1VudGlsTm90aWZpY2F0aW9uOk5PXSk7CisgICAg
RVhQRUNUX0VRKFt1c2VyU2NyaXB0IF9jb250ZW50V29ybGRdLCBpc29sYXRlZFdvcmxkLmdldCgp
KTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoW3VzZXJTY3JpcHQgX3VzZXJDb250ZW50V29ybGRdLm5h
bWUsIFtpc29sYXRlZFdvcmxkIG5hbWVdKTsKIH0KIApAQCAtOTEsOCArOTEsOCBAQCBURVNUKENv
bnRlbnRXb3JsZCwgSXNvbGF0ZWRXb3JsZFVzZXJTY3JpCiB7CiAgICAgUmV0YWluUHRyPFdLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogCi0gICAgUmV0YWluUHRyPF9XS1VzZXJDb250ZW50
V29ybGQ+IGlzb2xhdGVkV29ybGQgPSBbX1dLVXNlckNvbnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1l
OkAiVGVzdFdvcmxkIl07Ci0gICAgUmV0YWluUHRyPFdLVXNlclNjcmlwdD4gdXNlclNjcmlwdCA9
IGFkb3B0TlMoW1tXS1VzZXJTY3JpcHQgYWxsb2NdIF9pbml0V2l0aFNvdXJjZTpAIndpbmRvdy5z
ZXRGcm9tVXNlclNjcmlwdCA9IHRydWU7IiBpbmplY3Rpb25UaW1lOldLVXNlclNjcmlwdEluamVj
dGlvblRpbWVBdERvY3VtZW50U3RhcnQgZm9yTWFpbkZyYW1lT25seTpZRVMgbGVnYWN5V2hpdGVs
aXN0OkBbXSBsZWdhY3lCbGFja2xpc3Q6QFtdIHVzZXJDb250ZW50V29ybGQ6aXNvbGF0ZWRXb3Js
ZC5nZXQoKV0pOworICAgIFJldGFpblB0cjxXS0NvbnRlbnRXb3JsZD4gaXNvbGF0ZWRXb3JsZCA9
IFtXS0NvbnRlbnRXb3JsZCB3b3JsZFdpdGhOYW1lOkAiVGVzdFdvcmxkIl07CisgICAgUmV0YWlu
UHRyPFdLVXNlclNjcmlwdD4gdXNlclNjcmlwdCA9IGFkb3B0TlMoW1tXS1VzZXJTY3JpcHQgYWxs
b2NdIF9pbml0V2l0aFNvdXJjZTpAIndpbmRvdy5zZXRGcm9tVXNlclNjcmlwdCA9IHRydWU7IiBp
bmplY3Rpb25UaW1lOldLVXNlclNjcmlwdEluamVjdGlvblRpbWVBdERvY3VtZW50U3RhcnQgZm9y
TWFpbkZyYW1lT25seTpZRVMgaW5jbHVkZU1hdGNoUGF0dGVyblN0cmluZ3M6QFtdIGV4Y2x1ZGVN
YXRjaFBhdHRlcm5TdHJpbmdzOkBbXSBhc3NvY2lhdGVkVVJMOm5pbCBjb250ZW50V29ybGQ6aXNv
bGF0ZWRXb3JsZC5nZXQoKSBkZWZlclJ1bm5pbmdVbnRpbE5vdGlmaWNhdGlvbjpOT10pOwogICAg
IFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFVzZXJTY3JpcHQ6dXNl
clNjcmlwdC5nZXQoKV07CiAKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRv
cHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgw
MCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKQEAgLTE1Miw4ICsx
NTIsOCBAQCBURVNUKFVzZXJDb250ZW50V29ybGQsIElzb2xhdGVkV29ybGRQbHVnCiAKICAgICBS
ZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IHJldGFpblB0
cihbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVn
SW5DbGFzc05hbWU6dGVzdFBsdWdJbkNsYXNzTmFtZV0pOwogICAgIAotICAgIFJldGFpblB0cjxf
V0tVc2VyQ29udGVudFdvcmxkPiBpc29sYXRlZFdvcmxkID0gW19XS1VzZXJDb250ZW50V29ybGQg
d29ybGRXaXRoTmFtZTpAIlRlc3RXb3JsZCJdOwotICAgIFJldGFpblB0cjxXS1VzZXJTY3JpcHQ+
IHVzZXJTY3JpcHQgPSBhZG9wdE5TKFtbV0tVc2VyU2NyaXB0IGFsbG9jXSBfaW5pdFdpdGhTb3Vy
Y2U6QCJ3aW5kb3cuc2V0RnJvbVVzZXJTY3JpcHQgPSB0cnVlOyIgaW5qZWN0aW9uVGltZTpXS1Vz
ZXJTY3JpcHRJbmplY3Rpb25UaW1lQXREb2N1bWVudFN0YXJ0IGZvck1haW5GcmFtZU9ubHk6WUVT
IGxlZ2FjeVdoaXRlbGlzdDpAW10gbGVnYWN5QmxhY2tsaXN0OkBbXSB1c2VyQ29udGVudFdvcmxk
Omlzb2xhdGVkV29ybGQuZ2V0KCldKTsKKyAgICBSZXRhaW5QdHI8V0tDb250ZW50V29ybGQ+IGlz
b2xhdGVkV29ybGQgPSBbV0tDb250ZW50V29ybGQgd29ybGRXaXRoTmFtZTpAIlRlc3RXb3JsZCJd
OworICAgIFJldGFpblB0cjxXS1VzZXJTY3JpcHQ+IHVzZXJTY3JpcHQgPSBhZG9wdE5TKFtbV0tV
c2VyU2NyaXB0IGFsbG9jXSBfaW5pdFdpdGhTb3VyY2U6QCJ3aW5kb3cuc2V0RnJvbVVzZXJTY3Jp
cHQgPSB0cnVlOyIgaW5qZWN0aW9uVGltZTpXS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lQXREb2N1
bWVudFN0YXJ0IGZvck1haW5GcmFtZU9ubHk6WUVTIGluY2x1ZGVNYXRjaFBhdHRlcm5TdHJpbmdz
OkBbXSBleGNsdWRlTWF0Y2hQYXR0ZXJuU3RyaW5nczpAW10gYXNzb2NpYXRlZFVSTDpuaWwgY29u
dGVudFdvcmxkOmlzb2xhdGVkV29ybGQuZ2V0KCkgZGVmZXJSdW5uaW5nVW50aWxOb3RpZmljYXRp
b246Tk9dKTsKICAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRV
c2VyU2NyaXB0OnVzZXJTY3JpcHQuZ2V0KCldOwogICAgIFJldGFpblB0cjxUZXN0VVJMU2NoZW1l
SGFuZGxlcj4gc2NoZW1lSGFuZGxlciA9IGFkb3B0TlMoW1tUZXN0VVJMU2NoZW1lSGFuZGxlciBh
bGxvY10gaW5pdF0pOwogICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6c2No
ZW1lSGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJ0ZXN0c2NoZW1lIl07CkluZGV4OiBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9UZXN0Q29udHJvbGxlck1hYy5tbQkocmV2aXNp
b24gMjYzMDQyKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVGVzdENvbnRyb2xsZXJN
YWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMxNyw3ICszMTcsNyBAQCBzdGF0aWMgTlNTZXQgKnN5
c3RlbUhpZGRlbkZvbnRGYW1pbHlTZXQoCiAgICAgcmV0dXJuIGZvbnRGYW1pbHlTZXQ7CiB9CiAK
LXN0YXRpYyBXS1JldGFpblB0cjxXS0FycmF5UmVmPiBnZW5lcmF0ZVdoaXRlbGlzdCgpCitzdGF0
aWMgV0tSZXRhaW5QdHI8V0tBcnJheVJlZj4gZ2VuZXJhdGVGb250QWxsb3dMaXN0KCkKIHsKICAg
ICBXS1JldGFpblB0cjxXS011dGFibGVBcnJheVJlZj4gcmVzdWx0ID0gYWRvcHRXSyhXS011dGFi
bGVBcnJheUNyZWF0ZSgpKTsKICAgICBmb3IgKE5TU3RyaW5nICpmb250RmFtaWx5IGluIGFsbG93
ZWRGb250RmFtaWx5U2V0KCkpIHsKQEAgLTM0OCw3ICszNDgsNyBAQCB2b2lkIFRlc3RDb250cm9s
bGVyOjpwbGF0Zm9ybUluaXRpYWxpemVDCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkaXNrUGF0aDpuaWxdKTsKICAgICBbTlNVUkxDYWNoZSBzZXRTaGFyZWRVUkxD
YWNoZTpzaGFyZWRDYWNoZS5nZXQoKV07CiAKLSAgICBXS0NvbnRleHRTZXRGb250V2hpdGVsaXN0
KG1fY29udGV4dC5nZXQoKSwgZ2VuZXJhdGVXaGl0ZWxpc3QoKS5nZXQoKSk7CisgICAgV0tDb250
ZXh0U2V0Rm9udEFsbG93TGlzdChtX2NvbnRleHQuZ2V0KCksIGdlbmVyYXRlRm9udEFsbG93TGlz
dCgpLmdldCgpKTsKIH0KIAogdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0SGlkZGVuKGJvb2wgaGlk
ZGVuKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>