<?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>198895</bug_id>
          
          <creation_ts>2019-06-15 17:07:28 -0700</creation_ts>
          <short_desc>Implement ScrollableArea::scrollOffset()</short_desc>
          <delta_ts>2019-06-16 17:34:19 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1545066</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-06-15 17:07:28 -0700</bug_when>
    <thetext>Implement ScrollableArea::scrollOffset()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545067</commentid>
    <comment_count>1</comment_count>
      <attachid>372204</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-06-15 17:15:12 -0700</bug_when>
    <thetext>Created attachment 372204
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545073</commentid>
    <comment_count>2</comment_count>
      <attachid>372206</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-06-15 18:10:35 -0700</bug_when>
    <thetext>Created attachment 372206
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545087</commentid>
    <comment_count>3</comment_count>
      <attachid>372212</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-06-15 19:57:35 -0700</bug_when>
    <thetext>Created attachment 372212
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545174</commentid>
    <comment_count>4</comment_count>
      <attachid>372212</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-16 17:33:38 -0700</bug_when>
    <thetext>Comment on attachment 372212
Patch

Clearing flags on attachment: 372212

Committed r246488: &lt;https://trac.webkit.org/changeset/246488&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545175</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-16 17:33:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545176</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-06-16 17:34:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/51790431&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372204</attachid>
            <date>2019-06-15 17:15:12 -0700</date>
            <delta_ts>2019-06-15 18:10:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198895-20190615171511.patch</filename>
            <type>text/plain</type>
            <size>25152</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjUxMjE2ZTk3MjU2NzIz
Njk2ZTc5NDcwNjg4YWRkMDgxMTdmNDdmZi4uNWEyNWE5ZmQyYjBjZGRhYTI5NDE0ZTY2M2IwMzBk
MmQ2MGJhNTI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDE5LTA2LTE1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBT
Y3JvbGxhYmxlQXJlYTo6c2Nyb2xsT2Zmc2V0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODg5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBmcm9tIFNjcm9sbGFibGVBcmVhIHRoZSBmb2xs
b3dpbmc6CisgICAgICAgICAgICB2aXJ0dWFsIGludCBzY3JvbGxTaXplKFNjcm9sbGJhck9yaWVu
dGF0aW9uKSBjb25zdCA9IDA7CisgICAgICAgICAgICB2aXJ0dWFsIGludCBzY3JvbGxPZmZzZXQo
U2Nyb2xsYmFyT3JpZW50YXRpb24pIGNvbnN0ID0gMDsKKyAgICAgICAgYW5kIGluc3RlYWQgaW1w
bGVtZW50IFNjcm9sbE9mZnNldCBzY3JvbGxPZmZzZXQoKSBjb25zdC4KKworICAgICAgICBBbHNv
IG1ha2Ugc2Nyb2xsUG9zaXRpb24oKSBwdXJlIHZpcnR1YWwsIGF2b2lkaW5nIHRoZSByZXZlcnNl
IGRlcGVuZGVuY3kgd2hlcmUKKyAgICAgICAgdGhpcyBiYXNlIGNsYXNzIGltcGxlbWVudGF0aW9u
IGdvdCB2YWx1ZXMgZnJvbSBzY3JvbGxiYXJzLgorICAgICAgICAKKyAgICAgICAgc2Nyb2xsU2l6
ZShTY3JvbGxiYXJPcmllbnRhdGlvbikgd2FzIG9ubHkgdXNlZCBieSBTY3JvbGxBbmltYXRvcklP
UyBhbmQgd2UgY2FuCisgICAgICAgIGRvIHRoZSBzYW1lIGNvbXB1dGF0aW9uIHZpYSBtaW4vbWF4
IHNjcm9sbCBwb3NpdGlvbnMuCisgICAgICAgIAorICAgICAgICBSZW5kZXJMaXN0Qm94IGFuZCBQ
b3B1cE1lbnVXaW4gbmVlZCBpbXBsZW1lbnRhdGlvbnMgb2Ygc2Nyb2xsUG9zaXRpb24oKS4KKyAg
ICAgICAgCisgICAgICAgIFJlbW92ZSBzb21lIFBMQVRGT1JNKElPU19GQU1JTFkpICNpZmRlZnMg
ZnJvbSBTY3JvbGxhYmxlQXJlYSBmb3IgY29kZSB0aGF0IGNvbXBpbGVzCisgICAgICAgIG9uIGFs
bCBwbGF0Zm9ybXMuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBs
YXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6b3Zl
cmhhbmdBbW91bnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2Nyb2xs
U2l6ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzY3Jv
bGxPZmZzZXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxhYmxlQXJlYTo6aXNQaW5uZWRWZXJ0aWNhbGx5SW5EaXJlY3Rpb24gY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9mZnNldCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsUG9zaXRpb24gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6CisgICAgICAg
IChXZWJDb3JlOjpvZmZzZXRGb3JPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxhYmxlQXJlYTo6aXNIb3Jpem9udGFsU2Nyb2xsZXJQaW5uZWRUb01pbmltdW1Qb3NpdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6aXNIb3Jpem9udGFsU2Ny
b2xsZXJQaW5uZWRUb01heGltdW1Qb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxhYmxlQXJlYTo6aXNWZXJ0aWNhbFNjcm9sbGVyUGlubmVkVG9NaW5pbXVtUG9zaXRpb24g
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmlzVmVydGljYWxTY3Jv
bGxlclBpbm5lZFRvTWF4aW11bVBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGFibGVBcmVhOjp0aWxlZEJhY2tpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL1Njcm9sbGJhci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXI6OlNjcm9s
bGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXI6Om9mZnNldERpZENoYW5nZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL1Njcm9sbEFuaW1hdG9ySU9TLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0b3JJT1M6OmhhbmRsZVRvdWNoRXZlbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51
V2luOjpzY3JvbGxQb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVX
aW46OnNjcm9sbFNpemUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBN
ZW51V2luOjpzY3JvbGxPZmZzZXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L3dpbi9Qb3B1cE1lbnVXaW4uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFNpemUgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbE9mZnNldCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlz
dEJveDo6c2Nyb2xsUG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlz
dEJveDo6c2Nyb2xsU2l6ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMaXN0Qm94OjpzY3JvbGxPZmZzZXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMaXN0Qm94Lmg6CisKIDIwMTktMDYtMTEgIFRpbW90aHkgSGF0Y2hlciAgPHRp
bW90aHlAYXBwbGUuY29tPgogCiAgICAgICAgIEZsYXNoIHdoZW4gdGFwcGluZyBjb21wb3NlIGJ1
dHRvbiBhZnRlciBzd2l0Y2hpbmcgdG8vZnJvbSBkYXJrIG1vZGUgd2l0aG91dCByZXN0YXJ0aW5n
IE1haWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDhlNDYxZjlkM2U2MWI5MjEzOTY2Yzk3ODg5OWJiMzUxZTE2MjQ4
ZmEuLmNjMzZlOTBjNmZlNTM2MjcxNTE5YTgwOWExZTRkNjRmNmU5MWQ4NmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTktMDYtMTUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxPZmZz
ZXQoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4
ODk1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luLm1tOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46OnNj
cm9sbFNpemUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46OnNj
cm9sbE9mZnNldCBjb25zdCk6IERlbGV0ZWQuCisKIDIwMTktMDYtMTEgIFRpbW90aHkgSGF0Y2hl
ciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAgICAgICAgIEZsYXNoIHdoZW4gdGFwcGluZyBjb21w
b3NlIGJ1dHRvbiBhZnRlciBzd2l0Y2hpbmcgdG8vZnJvbSBkYXJrIG1vZGUgd2l0aG91dCByZXN0
YXJ0aW5nIE1haWwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCAzOTAzMDFmMzc1ODcxYzE1
NDMwNmQ4M2MzYjk4ZTU3ZDNmNDczMjI4Li5iZjk0MDEyZjJmZjJhNWEwYjc4OGVmMzE1OTUwMzg0
MTNkZmQwOGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTE1Myw3ICsxNTMsNyBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllckZv
clBsYXRmb3JtV2lkZ2V0KFBsYXRmb3JtV2lkZ2V0KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNjaGVkdWxlTGF5ZXJGbHVzaEFsbG93aW5nVGhyb3R0bGluZygpOwogCi0gICAgV0VCQ09SRV9F
WFBPUlQgVGlsZWRCYWNraW5nKiB0aWxlZEJhY2tpbmcoKSBjb25zdCBmaW5hbDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZygpIGNvbnN0OwogCiAgICAgU2Ny
b2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFNjcm9s
bGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYUZvclNjcm9sbExheWVySUQodWludDY0X3QpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCA2MWJiNTE4YmNhMWE5
NWVhOTViZjk3OGY4OWZkNDYxMTRlY2I1ZDQwLi5iMTI2YTljMmI3MDZhMTE3MzQ2YzU3NDA3ODUx
ZTM4NTU4MmNjOTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAt
Mzc4LDE5ICszNzgsNiBAQCBTY3JvbGxQb3NpdGlvbiBTY3JvbGxWaWV3Ojpkb2N1bWVudFNjcm9s
bFBvc2l0aW9uUmVsYXRpdmVUb1Njcm9sbGFibGVBcmVhT3JpZ2luKAogICAgIHJldHVybiBzY3Jv
bGxQb3NpdGlvbigpIC0gSW50U2l6ZSgwLCBoZWFkZXJIZWlnaHQoKSk7CiB9CiAKLWludCBTY3Jv
bGxWaWV3OjpzY3JvbGxTaXplKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uKSBjb25z
dAotewotICAgIC8vIElmIG5vIHNjcm9sbGJhcnMgYXJlIHByZXNlbnQsIGl0IGRvZXMgbm90IGlu
ZGljYXRlIGNvbnRlbnQgaXMgbm90IGJlIHNjcm9sbGFibGUuCi0gICAgaWYgKCFtX2hvcml6b250
YWxTY3JvbGxiYXIgJiYgIW1fdmVydGljYWxTY3JvbGxiYXIgJiYgIXByb2hpYml0c1Njcm9sbGlu
ZygpKSB7Ci0gICAgICAgIEludFNpemUgc2Nyb2xsU2l6ZSA9IG1fY29udGVudHNTaXplIC0gdmlz
aWJsZUNvbnRlbnRSZWN0KExlZ2FjeUlPU0RvY3VtZW50VmlzaWJsZVJlY3QpLnNpemUoKTsKLSAg
ICAgICAgc2Nyb2xsU2l6ZS5jbGFtcE5lZ2F0aXZlVG9aZXJvKCk7Ci0gICAgICAgIHJldHVybiBv
cmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyID8gc2Nyb2xsU2l6ZS53aWR0aCgpIDog
c2Nyb2xsU2l6ZS5oZWlnaHQoKTsKLSAgICB9Ci0KLSAgICBTY3JvbGxiYXIqIHNjcm9sbGJhciA9
ICgob3JpZW50YXRpb24gPT0gSG9yaXpvbnRhbFNjcm9sbGJhcikgPyBtX2hvcml6b250YWxTY3Jv
bGxiYXIgOiBtX3ZlcnRpY2FsU2Nyb2xsYmFyKS5nZXQoKTsKLSAgICByZXR1cm4gc2Nyb2xsYmFy
ID8gKHNjcm9sbGJhci0+dG90YWxTaXplKCkgLSBzY3JvbGxiYXItPnZpc2libGVTaXplKCkpIDog
MDsKLX0KLQogdm9pZCBTY3JvbGxWaWV3Ojpub3RpZnlQYWdlVGhhdENvbnRlbnRBcmVhV2lsbFBh
aW50KCkgY29uc3QKIHsKIH0KQEAgLTQ3NCwxOSArNDYxLDYgQEAgdm9pZCBTY3JvbGxWaWV3Ojpj
b21wbGV0ZVVwZGF0ZXNBZnRlclNjcm9sbFRvKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQog
ICAgIHVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTY3JvbGxpbmcoKTsKIH0KIAotaW50IFNj
cm9sbFZpZXc6OnNjcm9sbE9mZnNldChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbikg
Y29uc3QKLXsKLSAgICBTY3JvbGxPZmZzZXQgb2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0
aW9uKHNjcm9sbFBvc2l0aW9uKCkpOwotCi0gICAgaWYgKG9yaWVudGF0aW9uID09IEhvcml6b250
YWxTY3JvbGxiYXIpCi0gICAgICAgIHJldHVybiBvZmZzZXQueCgpOwotCi0gICAgaWYgKG9yaWVu
dGF0aW9uID09IFZlcnRpY2FsU2Nyb2xsYmFyKQotICAgICAgICByZXR1cm4gb2Zmc2V0LnkoKTsK
LQotICAgIHJldHVybiAwOwotfQotCiB2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9u
KGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbikKIHsKICAgICBMT0dfV0lUSF9T
VFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9u
ICIgPDwgc2Nyb2xsUG9zaXRpb24pOwpAQCAtNTI4LDcgKzUwMiw3IEBAIEludFNpemUgU2Nyb2xs
Vmlldzo6b3ZlcmhhbmdBbW91bnQoKSBjb25zdAogICAgIEludFNpemUgc3RyZXRjaDsKIAogICAg
IC8vIEZJWE1FOiB1c2UgbWF4aW11bVNjcm9sbE9mZnNldCgpCi0gICAgU2Nyb2xsT2Zmc2V0IHNj
cm9sbE9mZnNldCA9IHNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihzY3JvbGxQb3NpdGlvbigpKTsK
KyAgICBTY3JvbGxPZmZzZXQgc2Nyb2xsT2Zmc2V0ID0gdGhpcy0+c2Nyb2xsT2Zmc2V0KCk7CiAg
ICAgaWYgKHNjcm9sbE9mZnNldC55KCkgPCAwKQogICAgICAgICBzdHJldGNoLnNldEhlaWdodChz
Y3JvbGxPZmZzZXQueSgpKTsKICAgICBlbHNlIGlmICh0b3RhbENvbnRlbnRzU2l6ZSgpLmhlaWdo
dCgpICYmIHNjcm9sbE9mZnNldC55KCkgPiB0b3RhbENvbnRlbnRzU2l6ZSgpLmhlaWdodCgpIC0g
dmlzaWJsZUhlaWdodCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCmluZGV4IGZm
ODJjMjc2NDRjYTBlMTBkYzU0OGM4OGUxYjVlN2FlYWMxOGZkOTcuLjAzZWI1ZDE3MGE3YjdmZGQx
NWIyMzg5MjA0OTNlNThmNTk1YjUwMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3
LmgKQEAgLTY5LDggKzY5LDYgQEAgcHVibGljOgogICAgIHVzaW5nIFdpZGdldDo6d2Vha1B0ckZh
Y3Rvcnk7CiAKICAgICAvLyBTY3JvbGxhYmxlQXJlYSBmdW5jdGlvbnMuCi0gICAgaW50IHNjcm9s
bFNpemUoU2Nyb2xsYmFyT3JpZW50YXRpb24pIGNvbnN0IGZpbmFsOwotICAgIGludCBzY3JvbGxP
ZmZzZXQoU2Nyb2xsYmFyT3JpZW50YXRpb24pIGNvbnN0IGZpbmFsOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYpIGZpbmFsOwogICAg
IGJvb2wgaXNTY3JvbGxDb3JuZXJWaXNpYmxlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzY3Jv
bGxiYXJTdHlsZUNoYW5nZWQoU2Nyb2xsYmFyU3R5bGUsIGJvb2wgZm9yY2VVcGRhdGUpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4IGE5
OGU1ZGFiNmVmNjBkY2FiMmY5NzcxOWQ1ZjBkOGVjZTVlZjEzMWIuLmM4ODgyZWUyMzA1MDk3MWM5
NDZhNTVhOTdmYWEzN2JmMDllNTEzOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5jcHAKQEAgLTU3Miw3ICs1NzIsNiBAQCB2b2lkIFNjcm9sbGFibGVBcmVhOjpz
ZXJ2aWNlU2Nyb2xsQW5pbWF0aW9ucygpCiAgICAgICAgIHNjcm9sbEFuaW1hdG9yLT5zZXJ2aWNl
U2Nyb2xsQW5pbWF0aW9ucygpOwogfQogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIGJvb2wg
U2Nyb2xsYWJsZUFyZWE6OmlzUGlubmVkSW5Cb3RoRGlyZWN0aW9ucyhjb25zdCBJbnRTaXplJiBz
Y3JvbGxEZWx0YSkgY29uc3QKIHsKICAgICByZXR1cm4gaXNQaW5uZWRIb3Jpem9udGFsbHlJbkRp
cmVjdGlvbihzY3JvbGxEZWx0YS53aWR0aCgpKSAmJiBpc1Bpbm5lZFZlcnRpY2FsbHlJbkRpcmVj
dGlvbihzY3JvbGxEZWx0YS5oZWlnaHQoKSk7CkBAIC01OTUsNyArNTk0LDYgQEAgYm9vbCBTY3Jv
bGxhYmxlQXJlYTo6aXNQaW5uZWRWZXJ0aWNhbGx5SW5EaXJlY3Rpb24oaW50IHZlcnRpY2FsU2Ny
b2xsRGVsdGEpIGNvbnMKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgcmV0dXJuIGZhbHNlOwog
fQotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKIGludCBTY3JvbGxhYmxlQXJlYTo6
aG9yaXpvbnRhbFNjcm9sbGJhckludHJ1c2lvbigpIGNvbnN0CiB7CkBAIC02MTIsMTIgKzYxMCw5
IEBAIEludFNpemUgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbGJhckludHJ1c2lvbigpIGNvbnN0CiAg
ICAgcmV0dXJuIHsgaG9yaXpvbnRhbFNjcm9sbGJhckludHJ1c2lvbigpLCB2ZXJ0aWNhbFNjcm9s
bGJhckludHJ1c2lvbigpIH07CiB9CiAKLVNjcm9sbFBvc2l0aW9uIFNjcm9sbGFibGVBcmVhOjpz
Y3JvbGxQb3NpdGlvbigpIGNvbnN0CitTY3JvbGxPZmZzZXQgU2Nyb2xsYWJsZUFyZWE6OnNjcm9s
bE9mZnNldCgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgcmVsYXRpb25zaGlwIHNlZW1z
IHRvIGJlIGludmVydGVkLiBTY3JvbGxiYXJzIHNob3VsZCBiZSAndmlldycsIG5vdCAnbW9kZWwn
LCBhbmQgc2hvdWxkIGdldCB0aGVpciB2YWx1ZXMgZnJvbSB1cy4KLSAgICBpbnQgeCA9IGhvcml6
b250YWxTY3JvbGxiYXIoKSA/IGhvcml6b250YWxTY3JvbGxiYXIoKS0+dmFsdWUoKSA6IDA7Ci0g
ICAgaW50IHkgPSB2ZXJ0aWNhbFNjcm9sbGJhcigpID8gdmVydGljYWxTY3JvbGxiYXIoKS0+dmFs
dWUoKSA6IDA7Ci0gICAgcmV0dXJuIEludFBvaW50KHgsIHkpOworICAgIHJldHVybiBzY3JvbGxP
ZmZzZXRGcm9tUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24oKSk7CiB9CiAKIFNjcm9sbFBvc2l0aW9u
IFNjcm9sbGFibGVBcmVhOjptaW5pbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggZmRlNjA3ZjM4NjgyZTM5MGI5MTRl
NDg2MTc4MWZmZmExM2VhMjhhZi4uZDc0MzhjMTVjZDUxZDY2NjBjMGY3MzhhYzJlOTdmYWJmNWFi
ZGMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC00OCw2
ICs0OCwxOCBAQCB0eXBlZGVmIEludFBvaW50IFNjcm9sbFBvc2l0aW9uOwogLy8gc2Nyb2xsT2Zm
c2V0KCkgaXMgdGhlIHZhbHVlIHVzZWQgYnkgc2Nyb2xsYmFycyAobWluIGlzIDAsMCksIGFuZCBz
aG91bGQgbmV2ZXIgaGF2ZSBuZWdhdGl2ZSBjb21wb25lbnRzLgogdHlwZWRlZiBJbnRQb2ludCBT
Y3JvbGxPZmZzZXQ7CiAKKworaW5saW5lIGludCBvZmZzZXRGb3JPcmllbnRhdGlvbihTY3JvbGxP
ZmZzZXQgb2Zmc2V0LCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKK3sKKyAgICBz
d2l0Y2ggKG9yaWVudGF0aW9uKSB7CisgICAgY2FzZSBIb3Jpem9udGFsU2Nyb2xsYmFyOiByZXR1
cm4gb2Zmc2V0LngoKTsKKyAgICBjYXNlIFZlcnRpY2FsU2Nyb2xsYmFyOiByZXR1cm4gb2Zmc2V0
LnkoKTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9
CisKKwogY2xhc3MgU2Nyb2xsYWJsZUFyZWEgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U2Nyb2xs
YWJsZUFyZWE+IHsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNjcm9sbChTY3Jv
bGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBtdWx0aXBsaWVyID0gMSk7CkBA
IC0xNTcsOCArMTY5LDYgQEAgcHVibGljOgogICAgIFNjcm9sbEFuaW1hdG9yKiBleGlzdGluZ1Nj
cm9sbEFuaW1hdG9yKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxBbmltYXRvci5nZXQoKTsgfQog
CiAgICAgdmlydHVhbCBib29sIGlzQWN0aXZlKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgaW50
IHNjcm9sbFNpemUoU2Nyb2xsYmFyT3JpZW50YXRpb24pIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFs
IGludCBzY3JvbGxPZmZzZXQoU2Nyb2xsYmFyT3JpZW50YXRpb24pIGNvbnN0ID0gMDsKICAgICBX
RUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVNjcm9sbGJhcihTY3JvbGxiYXIm
LCBjb25zdCBJbnRSZWN0Jik7CiAgICAgdmlydHVhbCBib29sIGlzU2Nyb2xsQ29ybmVyVmlzaWJs
ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIEludFJlY3Qgc2Nyb2xsQ29ybmVyUmVjdCgpIGNv
bnN0ID0gMDsKQEAgLTE5Niw3ICsyMDYsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgSW50UG9pbnQm
IHNjcm9sbE9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsT3JpZ2luOyB9CiAgICAgYm9v
bCBzY3JvbGxPcmlnaW5DaGFuZ2VkKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxPcmlnaW5DaGFu
Z2VkOyB9CiAKLSAgICB2aXJ0dWFsIFNjcm9sbFBvc2l0aW9uIHNjcm9sbFBvc2l0aW9uKCkgY29u
c3Q7CisgICAgdmlydHVhbCBTY3JvbGxQb3NpdGlvbiBzY3JvbGxQb3NpdGlvbigpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIFNjcm9sbFBvc2l0aW9uIG1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNv
bnN0OwogICAgIHZpcnR1YWwgU2Nyb2xsUG9zaXRpb24gbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkg
Y29uc3Q7CiAKQEAgLTIwNSw2ICsyMTUsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBwb3Np
dGlvbi5jb25zdHJhaW5lZEJldHdlZW4obWluaW11bVNjcm9sbFBvc2l0aW9uKCksIG1heGltdW1T
Y3JvbGxQb3NpdGlvbigpKTsKICAgICB9CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBTY3JvbGxPZmZz
ZXQgc2Nyb2xsT2Zmc2V0KCkgY29uc3Q7CisKICAgICBTY3JvbGxPZmZzZXQgbWF4aW11bVNjcm9s
bE9mZnNldCgpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgU2Nyb2xsUG9zaXRpb24gc2Ny
b2xsUG9zaXRpb25Gcm9tT2Zmc2V0KFNjcm9sbE9mZnNldCkgY29uc3Q7CkBAIC0yOTgsMTggKzMx
MCwxNCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNjaGVkdWxlQW5pbWF0aW9uKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIHNlcnZpY2VTY3JvbGxBbmltYXRpb25zKCk7CiAKLSNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGJvb2wgaXNIb3Jpem9udGFsU2Nyb2xsZXJQaW5u
ZWRUb01pbmltdW1Qb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuICFob3Jpem9udGFsU2Nyb2xsYmFy
KCkgfHwgc2Nyb2xsT2Zmc2V0KEhvcml6b250YWxTY3JvbGxiYXIpIDw9IDA7IH0KLSAgICBib29s
IGlzSG9yaXpvbnRhbFNjcm9sbGVyUGlubmVkVG9NYXhpbXVtUG9zaXRpb24oKSBjb25zdCB7IHJl
dHVybiAhaG9yaXpvbnRhbFNjcm9sbGJhcigpIHx8IHNjcm9sbE9mZnNldChIb3Jpem9udGFsU2Ny
b2xsYmFyKSA+PSBtYXhpbXVtU2Nyb2xsT2Zmc2V0KCkueCgpOyB9Ci0gICAgYm9vbCBpc1ZlcnRp
Y2FsU2Nyb2xsZXJQaW5uZWRUb01pbmltdW1Qb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuICF2ZXJ0
aWNhbFNjcm9sbGJhcigpIHx8IHNjcm9sbE9mZnNldChWZXJ0aWNhbFNjcm9sbGJhcikgPD0gMDsg
fQotICAgIGJvb2wgaXNWZXJ0aWNhbFNjcm9sbGVyUGlubmVkVG9NYXhpbXVtUG9zaXRpb24oKSBj
b25zdCB7IHJldHVybiAhdmVydGljYWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxPZmZzZXQoVmVydGlj
YWxTY3JvbGxiYXIpID49IG1heGltdW1TY3JvbGxPZmZzZXQoKS55KCk7IH0KKyAgICBib29sIGlz
SG9yaXpvbnRhbFNjcm9sbGVyUGlubmVkVG9NaW5pbXVtUG9zaXRpb24oKSBjb25zdCB7IHJldHVy
biAhaG9yaXpvbnRhbFNjcm9sbGJhcigpIHx8IHNjcm9sbE9mZnNldCgpLngoKSA8PSAwOyB9Cisg
ICAgYm9vbCBpc0hvcml6b250YWxTY3JvbGxlclBpbm5lZFRvTWF4aW11bVBvc2l0aW9uKCkgY29u
c3QgeyByZXR1cm4gIWhvcml6b250YWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxPZmZzZXQoKS54KCkg
Pj0gbWF4aW11bVNjcm9sbE9mZnNldCgpLngoKTsgfQorICAgIGJvb2wgaXNWZXJ0aWNhbFNjcm9s
bGVyUGlubmVkVG9NaW5pbXVtUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiAhdmVydGljYWxTY3Jv
bGxiYXIoKSB8fCBzY3JvbGxPZmZzZXQoKS55KCkgPD0gMDsgfQorICAgIGJvb2wgaXNWZXJ0aWNh
bFNjcm9sbGVyUGlubmVkVG9NYXhpbXVtUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiAhdmVydGlj
YWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxPZmZzZXQoKS55KCkgPj0gbWF4aW11bVNjcm9sbE9mZnNl
dCgpLnkoKTsgfQogCiAgICAgYm9vbCBpc1Bpbm5lZEluQm90aERpcmVjdGlvbnMoY29uc3QgSW50
U2l6ZSYpIGNvbnN0OyAKICAgICBib29sIGlzUGlubmVkSG9yaXpvbnRhbGx5SW5EaXJlY3Rpb24o
aW50IGhvcml6b250YWxTY3JvbGxEZWx0YSkgY29uc3Q7IAogICAgIGJvb2wgaXNQaW5uZWRWZXJ0
aWNhbGx5SW5EaXJlY3Rpb24oaW50IHZlcnRpY2FsU2Nyb2xsRGVsdGEpIGNvbnN0OwotI2VuZGlm
Ci0KLSAgICB2aXJ0dWFsIFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nKCkgY29uc3QgeyByZXR1
cm4gbnVsbHB0cjsgfQogCiAgICAgLy8gVHJ1ZSBpZiBzY3JvbGxpbmcgaGFwcGVucyBieSBtb3Zp
bmcgY29tcG9zaXRpbmcgbGF5ZXJzLgogICAgIHZpcnR1YWwgYm9vbCB1c2VzQ29tcG9zaXRlZFNj
cm9sbGluZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsYmFyLmNwcAppbmRleCAyNWY4YWYxNmExODVkZWMxZGNmMjI3ZjAwOTUxYzY4ODMyOWM4ZmM4
Li4zOTY5MTU1MGQ5ZmEyZTczOTVjNTUzMDliM2UyNGU3NzMyZWRmYjdiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGJhci5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgU2Nyb2xsYmFyOjpTY3Jv
bGxiYXIoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhLCBTY3JvbGxiYXJPcmllbnRhdGlv
biBvcmllbnQKICAgICBpbnQgdGhpY2tuZXNzID0gdGhlbWUoKS5zY3JvbGxiYXJUaGlja25lc3Mo
Y29udHJvbFNpemUpOwogICAgIFdpZGdldDo6c2V0RnJhbWVSZWN0KEludFJlY3QoMCwgMCwgdGhp
Y2tuZXNzLCB0aGlja25lc3MpKTsKIAotICAgIG1fY3VycmVudFBvcyA9IHN0YXRpY19jYXN0PGZs
b2F0PihtX3Njcm9sbGFibGVBcmVhLnNjcm9sbE9mZnNldChtX29yaWVudGF0aW9uKSk7CisgICAg
bV9jdXJyZW50UG9zID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG9mZnNldEZvck9yaWVudGF0aW9uKG1f
c2Nyb2xsYWJsZUFyZWEuc2Nyb2xsT2Zmc2V0KCksIG1fb3JpZW50YXRpb24pKTsKIH0KIAogU2Ny
b2xsYmFyOjp+U2Nyb2xsYmFyKCkKQEAgLTkxLDcgKzkxLDcgQEAgaW50IFNjcm9sbGJhcjo6b2Nj
dXBpZWRIZWlnaHQoKSBjb25zdAogCiB2b2lkIFNjcm9sbGJhcjo6b2Zmc2V0RGlkQ2hhbmdlKCkK
IHsKLSAgICBmbG9hdCBwb3NpdGlvbiA9IHN0YXRpY19jYXN0PGZsb2F0PihtX3Njcm9sbGFibGVB
cmVhLnNjcm9sbE9mZnNldChtX29yaWVudGF0aW9uKSk7CisgICAgZmxvYXQgcG9zaXRpb24gPSBz
dGF0aWNfY2FzdDxmbG9hdD4ob2Zmc2V0Rm9yT3JpZW50YXRpb24obV9zY3JvbGxhYmxlQXJlYS5z
Y3JvbGxPZmZzZXQoKSwgbV9vcmllbnRhdGlvbikpOwogICAgIGlmIChwb3NpdGlvbiA9PSBtX2N1
cnJlbnRQb3MpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1Njcm9sbEFuaW1hdG9ySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1Njcm9sbEFuaW1hdG9ySU9TLm1tCmluZGV4IDQ5NTc0Njg4YjcxMDQyOTQ2ZjkzYjkw
MGJiZDIyOTg1ODY3YWJlYmUuLjAxZjBhOWJiMjBhMjQ4YjY5OTg4NTY0NzBhZWUzNzRhOThjZmE1
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxBbmltYXRv
cklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvU2Nyb2xsQW5pbWF0b3JJ
T1MubW0KQEAgLTEwMyw4ICsxMDMsOSBAQCBib29sIFNjcm9sbEFuaW1hdG9ySU9TOjpoYW5kbGVU
b3VjaEV2ZW50KGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYgdG91Y2hFdmVudCkKICAgICAgICAg
ZGV0ZXJtaW5lU2Nyb2xsYWJsZUFyZWFGb3JUb3VjaFNlcXVlbmNlKHRvdWNoRGVsdGEpOwogCiAg
ICAgaWYgKCFtX2NvbW1pdHRlZFRvU2Nyb2xsQXhpcykgewotICAgICAgICBib29sIGhvcml6b250
YWxseVNjcm9sbGFibGUgPSBtX3Njcm9sbGFibGVBcmVhLnNjcm9sbFNpemUoSG9yaXpvbnRhbFNj
cm9sbGJhcik7Ci0gICAgICAgIGJvb2wgdmVydGljYWxseVNjcm9sbGFibGUgPSBtX3Njcm9sbGFi
bGVBcmVhLnNjcm9sbFNpemUoVmVydGljYWxTY3JvbGxiYXIpOworICAgICAgICBhdXRvIHNjcm9s
bFNpemUgPSBtX3Njcm9sbGFibGVBcmVhLm1heGltdW1TY3JvbGxQb3NpdGlvbigpIC0gbV9zY3Jv
bGxhYmxlQXJlYS5taW5pbXVtU2Nyb2xsUG9zaXRpb24oKTsKKyAgICAgICAgYm9vbCBob3Jpem9u
dGFsbHlTY3JvbGxhYmxlID0gc2Nyb2xsU2l6ZS53aWR0aCgpOworICAgICAgICBib29sIHZlcnRp
Y2FsbHlTY3JvbGxhYmxlID0gc2Nyb2xsU2l6ZS5oZWlnaHQoKTsKIAogICAgICAgICBpZiAoIWhv
cml6b250YWxseVNjcm9sbGFibGUgJiYgIXZlcnRpY2FsbHlTY3JvbGxhYmxlKQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L1BvcHVwTWVudVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51
V2luLmNwcAppbmRleCA1MjJhMzQwOGViNGE0YjIyM2Y2NzYwN2ZhMTM5MWRmZjBhOWFmNzY2Li45
YzUyY2FkMDZlZTQ0OWU4Njk3Y2E3ZWNmYTFiOWQxZGUzNTE1ZDhjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcApAQCAtNjc5LDE0ICs2NzksOSBAQCB2
b2lkIFBvcHVwTWVudVdpbjo6cGFpbnQoY29uc3QgSW50UmVjdCYgZGFtYWdlUmVjdCwgSERDIGhk
YykKICAgICA6OkJpdEJsdChsb2NhbERDLCBkYW1hZ2VSZWN0LngoKSwgZGFtYWdlUmVjdC55KCks
IGRhbWFnZVJlY3Qud2lkdGgoKSwgZGFtYWdlUmVjdC5oZWlnaHQoKSwgbV9EQy5nZXQoKSwgZGFt
YWdlUmVjdC54KCksIGRhbWFnZVJlY3QueSgpLCBTUkNDT1BZKTsKIH0KIAotaW50IFBvcHVwTWVu
dVdpbjo6c2Nyb2xsU2l6ZShTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbikgY29uc3QK
K1Njcm9sbFBvc2l0aW9uIFBvcHVwTWVudVdpbjo6c2Nyb2xsUG9zaXRpb24oKSBjb25zdAogewot
ICAgIHJldHVybiAoKG9yaWVudGF0aW9uID09IFZlcnRpY2FsU2Nyb2xsYmFyKSAmJiBtX3Njcm9s
bGJhcikgPyAobV9zY3JvbGxiYXItPnRvdGFsU2l6ZSgpIC0gbV9zY3JvbGxiYXItPnZpc2libGVT
aXplKCkpIDogMDsKLX0KLQotaW50IFBvcHVwTWVudVdpbjo6c2Nyb2xsT2Zmc2V0KFNjcm9sbGJh
ck9yaWVudGF0aW9uKSBjb25zdAotewotICAgIHJldHVybiBtX3Njcm9sbE9mZnNldDsKKyAgICBy
ZXR1cm4geyAwLCBtX3Njcm9sbE9mZnNldCB9OwogfQogCiB2b2lkIFBvcHVwTWVudVdpbjo6c2V0
U2Nyb2xsT2Zmc2V0KGNvbnN0IEludFBvaW50JiBvZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vUG9wdXBNZW51V2luLmgKaW5kZXggMzYzYTBhM2FiNWQ1YTRjMjQ0MmU2ZmE0ZjU5
YmI0MDBmMzFjYmZlYy4uMDE2ZDQzYTkyYThiM2ZmNDA2NzczZTcxMWJmMzQxMzc1ODEyZTk2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uaApAQCAtODksOCAr
ODksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0U2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2UoYm9v
bCBiKSB7IG1fc2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2UgPSBiOyB9CiAKICAgICAvLyBTY3JvbGxh
YmxlQXJlYQotICAgIGludCBzY3JvbGxTaXplKFNjcm9sbGJhck9yaWVudGF0aW9uKSBjb25zdCBv
dmVycmlkZTsKLSAgICBpbnQgc2Nyb2xsT2Zmc2V0KFNjcm9sbGJhck9yaWVudGF0aW9uKSBjb25z
dCBvdmVycmlkZTsKKyAgICBTY3JvbGxQb3NpdGlvbiBzY3JvbGxQb3NpdGlvbigpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGNvbnN0IEludFBvaW50Jikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXImLCBjb25zdCBJ
bnRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsQ29ybmVyUmVjdChj
b25zdCBJbnRSZWN0Jikgb3ZlcnJpZGUgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcAppbmRleCBhNmEzMDQ2NmVkMTc0YTY4MzgyYzM0MWM1ODBkMzEzMzMxMjdmZjBh
Li5jMzA4YTdhNDUzZjAyYmM2MDlmZTY2NjEwNGUwYzA3MTE5MGM3NTM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI4OTQsMjggKzI4OTQsMTEgQEAgdm9p
ZCBSZW5kZXJMYXllcjo6cmVzaXplKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZ0LCBjb25z
dCBMYXlvdXRTaXplJiBvbGRPZmYKICAgICAvLyBGSVhNRSAoUmFkYXIgNDExODU2NCk6IFdlIHNo
b3VsZCBhbHNvIGF1dG9zY3JvbGwgdGhlIHdpbmRvdyBhcyBuZWNlc3NhcnkgdG8ga2VlcCB0aGUg
cG9pbnQgdW5kZXIgdGhlIGN1cnNvciBpbiB2aWV3LgogfQogCi1pbnQgUmVuZGVyTGF5ZXI6OnNj
cm9sbFNpemUoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24pIGNvbnN0Ci17Ci0gICAg
U2Nyb2xsYmFyKiBzY3JvbGxiYXIgPSAoKG9yaWVudGF0aW9uID09IEhvcml6b250YWxTY3JvbGxi
YXIpID8gbV9oQmFyIDogbV92QmFyKS5nZXQoKTsKLSAgICByZXR1cm4gc2Nyb2xsYmFyID8gKHNj
cm9sbGJhci0+dG90YWxTaXplKCkgLSBzY3JvbGxiYXItPnZpc2libGVTaXplKCkpIDogMDsKLX0K
LQogdm9pZCBSZW5kZXJMYXllcjo6c2V0U2Nyb2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYg
b2Zmc2V0KQogewogICAgIHNjcm9sbFRvKHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChvZmZzZXQp
KTsKIH0KIAotaW50IFJlbmRlckxheWVyOjpzY3JvbGxPZmZzZXQoU2Nyb2xsYmFyT3JpZW50YXRp
b24gb3JpZW50YXRpb24pIGNvbnN0Ci17Ci0gICAgaWYgKG9yaWVudGF0aW9uID09IEhvcml6b250
YWxTY3JvbGxiYXIpCi0gICAgICAgIHJldHVybiBzY3JvbGxPZmZzZXQoKS54KCk7Ci0KLSAgICBp
ZiAob3JpZW50YXRpb24gPT0gVmVydGljYWxTY3JvbGxiYXIpCi0gICAgICAgIHJldHVybiBzY3Jv
bGxPZmZzZXQoKS55KCk7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQogU2Nyb2xsaW5nTm9kZUlEIFJl
bmRlckxheWVyOjpzY3JvbGxpbmdOb2RlSUQoKSBjb25zdAogewogICAgIGlmICghaXNDb21wb3Np
dGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDVlMDdiYzc3
NWYyMmJlNDgwZmRlMjQyYzU4Yzc4ZGE0NjM3M2EzMmQuLjhjYzg3NTg4YTBjOWQ0ZDBiNWE0YjRh
MDg1MTUyNjZlNjU5YTcwZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5o
CkBAIC00NDIsOCArNDQyLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UG9zdExheW91dFNjcm9s
bFBvc2l0aW9uKE9wdGlvbmFsPFNjcm9sbFBvc2l0aW9uPik7CiAgICAgdm9pZCBhcHBseVBvc3RM
YXlvdXRTY3JvbGxQb3NpdGlvbklmTmVlZGVkKCk7CiAKLSAgICBTY3JvbGxPZmZzZXQgc2Nyb2xs
T2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKG1fc2Nyb2xs
UG9zaXRpb24pOyB9Ci0KICAgICB2b2lkIGF2YWlsYWJsZUNvbnRlbnRTaXplQ2hhbmdlZChBdmFp
bGFibGVTaXplQ2hhbmdlUmVhc29uKSBvdmVycmlkZTsKIAogICAgIC8vICJhYnNvbHV0ZVJlY3Qi
IGlzIGluIHNjYWxlZCBkb2N1bWVudCBjb29yZGluYXRlcy4KQEAgLTEwNzMsOCArMTA3MSw2IEBA
IHByaXZhdGU6CiAKICAgICBib29sIHNob3VsZEJlU2VsZlBhaW50aW5nTGF5ZXIoKSBjb25zdDsK
IAotICAgIGludCBzY3JvbGxPZmZzZXQoU2Nyb2xsYmFyT3JpZW50YXRpb24pIGNvbnN0IG92ZXJy
aWRlOwotICAgIAogICAgIC8vIFNjcm9sbGFibGVBcmVhIGludGVyZmFjZQogICAgIHZvaWQgaW52
YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyJiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRl
OwogICAgIHZvaWQgaW52YWxpZGF0ZVNjcm9sbENvcm5lclJlY3QoY29uc3QgSW50UmVjdCYpIG92
ZXJyaWRlOwpAQCAtMTA4NSw3ICsxMDgxLDYgQEAgcHJpdmF0ZToKICAgICBJbnRSZWN0IGNvbnZl
cnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXImLCBjb25zdCBJ
bnRSZWN0JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgSW50UG9pbnQgY29udmVydEZyb21TY3JvbGxi
YXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciYsIGNvbnN0IEludFBvaW50JikgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgSW50UG9pbnQgY29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Ny
b2xsYmFyKGNvbnN0IFNjcm9sbGJhciYsIGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgaW50IHNjcm9sbFNpemUoU2Nyb2xsYmFyT3JpZW50YXRpb24pIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYpIG92ZXJyaWRl
OwogICAgIFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdOb2RlSUQoKSBjb25zdCBvdmVycmlkZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCmluZGV4IDQ0YzZk
MWY2OTNjOTc3N2IzMDJjY2Y3OGEzYWY0NmY5YzBhZmE5OWUuLjRiNDEyOWZmYmU5MDQ0YzAwZmVi
YzQwZDU2OTRjZmMwNzcyMjUzZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdEJveC5jcHAKQEAgLTY0NSwxNCArNjQ1LDkgQEAgdm9pZCBSZW5kZXJMaXN0Qm94Ojp2YWx1
ZUNoYW5nZWQodW5zaWduZWQgbGlzdEluZGV4KQogICAgIHNlbGVjdEVsZW1lbnQoKS5kaXNwYXRj
aEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKTsKIH0KIAotaW50IFJlbmRlckxpc3RCb3g6OnNjcm9s
bFNpemUoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24pIGNvbnN0CitTY3JvbGxQb3Np
dGlvbiBSZW5kZXJMaXN0Qm94OjpzY3JvbGxQb3NpdGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
ICgob3JpZW50YXRpb24gPT0gVmVydGljYWxTY3JvbGxiYXIpICYmIG1fdkJhcikgPyAobV92QmFy
LT50b3RhbFNpemUoKSAtIG1fdkJhci0+dmlzaWJsZVNpemUoKSkgOiAwOwotfQotCi1pbnQgUmVu
ZGVyTGlzdEJveDo6c2Nyb2xsT2Zmc2V0KFNjcm9sbGJhck9yaWVudGF0aW9uKSBjb25zdAotewot
ICAgIHJldHVybiBtX2luZGV4T2Zmc2V0OworICAgIHJldHVybiB7IDAsIG1faW5kZXhPZmZzZXQg
fTsKIH0KIAogU2Nyb2xsUG9zaXRpb24gUmVuZGVyTGlzdEJveDo6bWluaW11bVNjcm9sbFBvc2l0
aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCmluZGV4
IDNjZDE2OTdlMmE0OGE1M2VhOWQwYTEzMjBhZmM5YTBlMTUwYTQyNmIuLjY1ZDkyMjZiM2EwNTRl
Njk3OGEwMjk2NzRlYTlkZjQ0MDQxZTM3YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RCb3guaApAQCAtMTEyLDExICsxMTIsMTIgQEAgcHJpdmF0ZToKICAgICBib29sIG5v
ZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhp
dFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFj
Y3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBvdmVycmlkZTsKIAogICAgIC8vIFNjcm9s
bGFibGVBcmVhIGludGVyZmFjZS4KLSAgICBpbnQgc2Nyb2xsU2l6ZShTY3JvbGxiYXJPcmllbnRh
dGlvbikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgaW50IHNjcm9sbE9mZnNldChTY3JvbGxiYXJPcmll
bnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRTY3JvbGxPZmZzZXQoY29uc3Qg
U2Nyb2xsT2Zmc2V0Jikgb3ZlcnJpZGU7CisKKyAgICBTY3JvbGxQb3NpdGlvbiBzY3JvbGxQb3Np
dGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIFNjcm9sbFBvc2l0aW9uIG1pbmltdW1TY3JvbGxQ
b3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIFNjcm9sbFBvc2l0aW9uIG1heGltdW1TY3Jv
bGxQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOworCiAgICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xs
YmFyUmVjdChTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCBp
c0FjdGl2ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNTY3JvbGxDb3JuZXJWaXNpYmxl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0gLy8gV2UgZG9uJ3Qgc3VwcG9ydCBy
ZXNpemUgb24gbGlzdCBib3hlcyB5ZXQuIElmIHdlIGRpZCB0aGVzZSB3b3VsZCBoYXZlIHRvIGNo
YW5nZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9Q
REZQbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVn
aW4uaAppbmRleCA2ODYyZTMwNGZlZGI4NWI3ODYzNDcwMGI5ZDZiMzVhNmMzYzIwY2VjLi5kNDE1
MDNiMjBhM2JlOTAyYTNhM2U4YTg0ZjNjM2Q1YWNhMDE5MTIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCkBAIC0yMDIsMTAgKzIwMiw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChXZWJDb3JlOjpT
Y3JvbGxiYXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CiAgICAgdm9pZCBpbnZh
bGlkYXRlU2Nyb2xsQ29ybmVyUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CiAg
ICAgV2ViQ29yZTo6SW50UG9pbnQgbGFzdEtub3duTW91c2VQb3NpdGlvbigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fbGFzdE1vdXNlUG9zaXRpb25JblBsdWdpbkNvb3JkaW5hdGVzOyB9Ci0gICAg
aW50IHNjcm9sbFNpemUoV2ViQ29yZTo6U2Nyb2xsYmFyT3JpZW50YXRpb24pIGNvbnN0IGZpbmFs
OwogICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzU2Nyb2xsQ29y
bmVyVmlzaWJsZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgaW50IHNjcm9s
bE9mZnNldChXZWJDb3JlOjpTY3JvbGxiYXJPcmllbnRhdGlvbikgY29uc3QgZmluYWw7CiAgICAg
V2ViQ29yZTo6U2Nyb2xsUG9zaXRpb24gc2Nyb2xsUG9zaXRpb24oKSBjb25zdCBmaW5hbDsKICAg
ICBXZWJDb3JlOjpTY3JvbGxQb3NpdGlvbiBtaW5pbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdCBm
aW5hbDsKICAgICBXZWJDb3JlOjpTY3JvbGxQb3NpdGlvbiBtYXhpbXVtU2Nyb2xsUG9zaXRpb24o
KSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luLm1tCmluZGV4IDE1ODhiZDBlMWM1MDc5ODgwNGNlMTQxNGZmMDMzMjc1ZjQ1
YzliY2EuLjAzYTFmMDQ2NWMwZTY1YzI2NTIyNTRmMGU0MmQwYWVjNTUyMDk0M2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAt
ODYzLDEyICs4NjMsNiBAQCBJbnRSZWN0IFBERlBsdWdpbjo6c2Nyb2xsYWJsZUFyZWFCb3VuZGlu
Z0JveChib29sKikgY29uc3QKICAgICByZXR1cm4gcGx1Z2luVmlldygpLT5mcmFtZVJlY3QoKTsK
IH0KIAotaW50IFBERlBsdWdpbjo6c2Nyb2xsU2l6ZShTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmll
bnRhdGlvbikgY29uc3QKLXsKLSAgICBTY3JvbGxiYXIqIHNjcm9sbGJhciA9ICgob3JpZW50YXRp
b24gPT0gSG9yaXpvbnRhbFNjcm9sbGJhcikgPyBtX2hvcml6b250YWxTY3JvbGxiYXIgOiBtX3Zl
cnRpY2FsU2Nyb2xsYmFyKS5nZXQoKTsKLSAgICByZXR1cm4gc2Nyb2xsYmFyID8gKHNjcm9sbGJh
ci0+dG90YWxTaXplKCkgLSBzY3JvbGxiYXItPnZpc2libGVTaXplKCkpIDogMDsKLX0KLQogYm9v
bCBQREZQbHVnaW46OmlzQWN0aXZlKCkgY29uc3QKIHsKICAgICBpZiAoRnJhbWUqIGNvcmVGcmFt
ZSA9IG1fZnJhbWUtPmNvcmVGcmFtZSgpKSB7CkBAIC04ODksMTggKzg4Myw2IEBAIGJvb2wgUERG
UGx1Z2luOjpmb3JjZVVwZGF0ZVNjcm9sbGJhcnNPbk1haW5UaHJlYWRGb3JQZXJmb3JtYW5jZVRl
c3RpbmcoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotaW50IFBERlBsdWdpbjo6c2Ny
b2xsT2Zmc2V0KFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uKSBjb25zdAotewotICAg
IGlmIChvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQotICAgICAgICByZXR1cm4g
bV9zY3JvbGxPZmZzZXQud2lkdGgoKTsKLQotICAgIGlmIChvcmllbnRhdGlvbiA9PSBWZXJ0aWNh
bFNjcm9sbGJhcikKLSAgICAgICAgcmV0dXJuIG1fc2Nyb2xsT2Zmc2V0LmhlaWdodCgpOwotCi0g
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIFNjcm9sbFBvc2l0
aW9uIFBERlBsdWdpbjo6c2Nyb2xsUG9zaXRpb24oKSBjb25zdAogewogICAgIHJldHVybiBJbnRQ
b2ludChtX3Njcm9sbE9mZnNldC53aWR0aCgpLCBtX3Njcm9sbE9mZnNldC5oZWlnaHQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0K
aW5kZXggNGU0NzYyYzlkMWI5NzdlM2YxNTFkNWQ5NzFiNzViYjE5OGM4OGFkNy4uNWU1MGUwYmEx
ZWYxMjQ2YzZhZTA4ZjI5ZDkyYTgzMGUwZGI0ZjIzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQpAQCAtMjUzLDEwICsyNTMsOCBA
QCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp1cGRhdGVTY3JvbGxlZEV4cG9zZWRS
ZWN0KCkKICAgICBtX3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0ID0gbV92aWV3RXhwb3NlZFJlY3Q7
CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAobV92aWV3RXhwb3NlZFJlY3Qp
IHsKLSAgICAgICAgU2Nyb2xsT2Zmc2V0IHNjcm9sbE9mZnNldCA9IGZyYW1lVmlldy0+c2Nyb2xs
T2Zmc2V0RnJvbVBvc2l0aW9uKGZyYW1lVmlldy0+c2Nyb2xsUG9zaXRpb24oKSk7Ci0gICAgICAg
IG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QudmFsdWUoKS5tb3ZlQnkoc2Nyb2xsT2Zmc2V0KTsK
LSAgICB9CisgICAgaWYgKG1fdmlld0V4cG9zZWRSZWN0KQorICAgICAgICBtX3Njcm9sbGVkVmll
d0V4cG9zZWRSZWN0LnZhbHVlKCkubW92ZUJ5KGZyYW1lVmlldy0+c2Nyb2xsT2Zmc2V0KCkpOwog
I2VuZGlmCiAKICAgICBmcmFtZVZpZXctPnNldFZpZXdFeHBvc2VkUmVjdChtX3Njcm9sbGVkVmll
d0V4cG9zZWRSZWN0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372206</attachid>
            <date>2019-06-15 18:10:35 -0700</date>
            <delta_ts>2019-06-15 19:57:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198895-20190615181034.patch</filename>
            <type>text/plain</type>
            <size>30249</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjUxMjE2ZTk3MjU2NzIz
Njk2ZTc5NDcwNjg4YWRkMDgxMTdmNDdmZi4uYWY4NGE3M2NlYTVjMDllYWZiYmIwZjE3ODc4Y2Q3
OTU0YTVlNTFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDE5LTA2LTE1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBT
Y3JvbGxhYmxlQXJlYTo6c2Nyb2xsT2Zmc2V0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODg5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBmcm9tIFNjcm9sbGFibGVBcmVhIHRoZSBmb2xs
b3dpbmc6CisgICAgICAgICAgICB2aXJ0dWFsIGludCBzY3JvbGxTaXplKFNjcm9sbGJhck9yaWVu
dGF0aW9uKSBjb25zdCA9IDA7CisgICAgICAgICAgICB2aXJ0dWFsIGludCBzY3JvbGxPZmZzZXQo
U2Nyb2xsYmFyT3JpZW50YXRpb24pIGNvbnN0ID0gMDsKKyAgICAgICAgYW5kIGluc3RlYWQgaW1w
bGVtZW50IFNjcm9sbE9mZnNldCBzY3JvbGxPZmZzZXQoKSBjb25zdC4KKworICAgICAgICBBbHNv
IG1ha2Ugc2Nyb2xsUG9zaXRpb24oKSBwdXJlIHZpcnR1YWwsIGF2b2lkaW5nIHRoZSByZXZlcnNl
IGRlcGVuZGVuY3kgd2hlcmUKKyAgICAgICAgdGhpcyBiYXNlIGNsYXNzIGltcGxlbWVudGF0aW9u
IGdvdCB2YWx1ZXMgZnJvbSBzY3JvbGxiYXJzLgorICAgICAgICAKKyAgICAgICAgc2Nyb2xsU2l6
ZShTY3JvbGxiYXJPcmllbnRhdGlvbikgd2FzIG9ubHkgdXNlZCBieSBTY3JvbGxBbmltYXRvcklP
UyBhbmQgd2UgY2FuCisgICAgICAgIGRvIHRoZSBzYW1lIGNvbXB1dGF0aW9uIHZpYSBtaW4vbWF4
IHNjcm9sbCBwb3NpdGlvbnMuCisgICAgICAgIAorICAgICAgICBSZW5kZXJMaXN0Qm94IGFuZCBQ
b3B1cE1lbnVXaW4gbmVlZCBpbXBsZW1lbnRhdGlvbnMgb2Ygc2Nyb2xsUG9zaXRpb24oKS4KKyAg
ICAgICAgCisgICAgICAgIFJlbW92ZSBzb21lIFBMQVRGT1JNKElPU19GQU1JTFkpICNpZmRlZnMg
ZnJvbSBTY3JvbGxhYmxlQXJlYSBmb3IgY29kZSB0aGF0IGNvbXBpbGVzCisgICAgICAgIG9uIGFs
bCBwbGF0Zm9ybXMuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBs
YXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6b3Zl
cmhhbmdBbW91bnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2Nyb2xs
U2l6ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzY3Jv
bGxPZmZzZXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxhYmxlQXJlYTo6aXNQaW5uZWRWZXJ0aWNhbGx5SW5EaXJlY3Rpb24gY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9mZnNldCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsUG9zaXRpb24gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6CisgICAgICAg
IChXZWJDb3JlOjpvZmZzZXRGb3JPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxhYmxlQXJlYTo6aXNIb3Jpem9udGFsU2Nyb2xsZXJQaW5uZWRUb01pbmltdW1Qb3NpdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6aXNIb3Jpem9udGFsU2Ny
b2xsZXJQaW5uZWRUb01heGltdW1Qb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxhYmxlQXJlYTo6aXNWZXJ0aWNhbFNjcm9sbGVyUGlubmVkVG9NaW5pbXVtUG9zaXRpb24g
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmlzVmVydGljYWxTY3Jv
bGxlclBpbm5lZFRvTWF4aW11bVBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGFibGVBcmVhOjp0aWxlZEJhY2tpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL1Njcm9sbGJhci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXI6OlNjcm9s
bGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXI6Om9mZnNldERpZENoYW5nZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL1Njcm9sbEFuaW1hdG9ySU9TLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0b3JJT1M6OmhhbmRsZVRvdWNoRXZlbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51
V2luOjpzY3JvbGxQb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVX
aW46OnduZFByb2MpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpzY3JvbGxTaXpl
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6c2Nyb2xs
T2Zmc2V0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUG9wdXBNZW51
V2luLmg6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNjcm9sbE9mZnNldCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxTaXplIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxPZmZzZXQgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnNj
cm9sbFBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnNj
cm9sbFNpemUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJv
eDo6c2Nyb2xsT2Zmc2V0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5oOgorCiAyMDE5LTA2LTExICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFw
cGxlLmNvbT4KIAogICAgICAgICBGbGFzaCB3aGVuIHRhcHBpbmcgY29tcG9zZSBidXR0b24gYWZ0
ZXIgc3dpdGNoaW5nIHRvL2Zyb20gZGFyayBtb2RlIHdpdGhvdXQgcmVzdGFydGluZyBNYWlsLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCA4ZTQ2MWY5ZDNlNjFiOTIxMzk2NmM5Nzg4OTliYjM1MWUxNjI0OGZhLi5lOTFl
Mzg2MWU2MjEzZTg3MDlhZjgzNWU5YWU4ZjZhYWNkYjc5ZGM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIyIEBACisyMDE5LTA2LTE1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgorCisgICAgICAgIEltcGxlbWVudCBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsT2Zmc2V0KCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODg5NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNz
L3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBvcHVwTWVu
dVdpbjo6c2Nyb2xsUG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1l
bnVQcm94eVdpbjo6b25LZXlEb3duKTogSnVzdCB1c2UgbV9zY3JvbGxPZmZzZXQuCisgICAgICAg
IChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5V2luOjpzY3JvbGxTaXplIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmg6IFJlbW92
ZSB0aGUgb25lLWF4aXMgc2Nyb2xsT2Zmc2V0KCkKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLm1tOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46OnNjcm9sbFNpemUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46OnNjcm9sbE9mZnNldCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3QpOgorCiAyMDE5
LTA2LTExICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBG
bGFzaCB3aGVuIHRhcHBpbmcgY29tcG9zZSBidXR0b24gYWZ0ZXIgc3dpdGNoaW5nIHRvL2Zyb20g
ZGFyayBtb2RlIHdpdGhvdXQgcmVzdGFydGluZyBNYWlsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgK
aW5kZXggMzkwMzAxZjM3NTg3MWMxNTQzMDZkODNjM2I5OGU1N2QzZjQ3MzIyOC4uYmY5NDAxMmYy
ZmYyYTVhMGI3ODhlZjMxNTk1MDM4NDEzZGZkMDhkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CkBAIC0xNTMsNyArMTUzLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNz
TGF5ZXIqIGdyYXBoaWNzTGF5ZXJGb3JQbGF0Zm9ybVdpZGdldChQbGF0Zm9ybVdpZGdldCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZUxheWVyRmx1c2hBbGxvd2luZ1Rocm90dGxp
bmcoKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nKCkg
Y29uc3QgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgVGlsZWRCYWNraW5nKiB0aWxlZEJhY2tp
bmcoKSBjb25zdDsKIAogICAgIFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdOb2RlSUQoKSBjb25z
dCBvdmVycmlkZTsKICAgICBTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWFGb3JTY3JvbGxM
YXllcklEKHVpbnQ2NF90KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5j
cHAKaW5kZXggNjFiYjUxOGJjYTFhOTVlYTk1YmY5NzhmODlmZDQ2MTE0ZWNiNWQ0MC4uYjEyNmE5
YzJiNzA2YTExNzM0NmM1NzQwNzg1MWUzODU1ODJjYzk2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsVmlldy5jcHAKQEAgLTM3OCwxOSArMzc4LDYgQEAgU2Nyb2xsUG9zaXRpb24gU2Ny
b2xsVmlldzo6ZG9jdW1lbnRTY3JvbGxQb3NpdGlvblJlbGF0aXZlVG9TY3JvbGxhYmxlQXJlYU9y
aWdpbigKICAgICByZXR1cm4gc2Nyb2xsUG9zaXRpb24oKSAtIEludFNpemUoMCwgaGVhZGVySGVp
Z2h0KCkpOwogfQogCi1pbnQgU2Nyb2xsVmlldzo6c2Nyb2xsU2l6ZShTY3JvbGxiYXJPcmllbnRh
dGlvbiBvcmllbnRhdGlvbikgY29uc3QKLXsKLSAgICAvLyBJZiBubyBzY3JvbGxiYXJzIGFyZSBw
cmVzZW50LCBpdCBkb2VzIG5vdCBpbmRpY2F0ZSBjb250ZW50IGlzIG5vdCBiZSBzY3JvbGxhYmxl
LgotICAgIGlmICghbV9ob3Jpem9udGFsU2Nyb2xsYmFyICYmICFtX3ZlcnRpY2FsU2Nyb2xsYmFy
ICYmICFwcm9oaWJpdHNTY3JvbGxpbmcoKSkgewotICAgICAgICBJbnRTaXplIHNjcm9sbFNpemUg
PSBtX2NvbnRlbnRzU2l6ZSAtIHZpc2libGVDb250ZW50UmVjdChMZWdhY3lJT1NEb2N1bWVudFZp
c2libGVSZWN0KS5zaXplKCk7Ci0gICAgICAgIHNjcm9sbFNpemUuY2xhbXBOZWdhdGl2ZVRvWmVy
bygpOwotICAgICAgICByZXR1cm4gb3JpZW50YXRpb24gPT0gSG9yaXpvbnRhbFNjcm9sbGJhciA/
IHNjcm9sbFNpemUud2lkdGgoKSA6IHNjcm9sbFNpemUuaGVpZ2h0KCk7Ci0gICAgfQotCi0gICAg
U2Nyb2xsYmFyKiBzY3JvbGxiYXIgPSAoKG9yaWVudGF0aW9uID09IEhvcml6b250YWxTY3JvbGxi
YXIpID8gbV9ob3Jpem9udGFsU2Nyb2xsYmFyIDogbV92ZXJ0aWNhbFNjcm9sbGJhcikuZ2V0KCk7
Ci0gICAgcmV0dXJuIHNjcm9sbGJhciA/IChzY3JvbGxiYXItPnRvdGFsU2l6ZSgpIC0gc2Nyb2xs
YmFyLT52aXNpYmxlU2l6ZSgpKSA6IDA7Ci19Ci0KIHZvaWQgU2Nyb2xsVmlldzo6bm90aWZ5UGFn
ZVRoYXRDb250ZW50QXJlYVdpbGxQYWludCgpIGNvbnN0CiB7CiB9CkBAIC00NzQsMTkgKzQ2MSw2
IEBAIHZvaWQgU2Nyb2xsVmlldzo6Y29tcGxldGVVcGRhdGVzQWZ0ZXJTY3JvbGxUbyhjb25zdCBJ
bnRTaXplJiBzY3JvbGxEZWx0YSkKICAgICB1cGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyU2Ny
b2xsaW5nKCk7CiB9CiAKLWludCBTY3JvbGxWaWV3OjpzY3JvbGxPZmZzZXQoU2Nyb2xsYmFyT3Jp
ZW50YXRpb24gb3JpZW50YXRpb24pIGNvbnN0Ci17Ci0gICAgU2Nyb2xsT2Zmc2V0IG9mZnNldCA9
IHNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihzY3JvbGxQb3NpdGlvbigpKTsKLQotICAgIGlmIChv
cmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQotICAgICAgICByZXR1cm4gb2Zmc2V0
LngoKTsKLQotICAgIGlmIChvcmllbnRhdGlvbiA9PSBWZXJ0aWNhbFNjcm9sbGJhcikKLSAgICAg
ICAgcmV0dXJuIG9mZnNldC55KCk7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQogdm9pZCBTY3JvbGxW
aWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRp
b24pCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxW
aWV3OjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uKTsKQEAgLTUyOCw3ICs1
MDIsNyBAQCBJbnRTaXplIFNjcm9sbFZpZXc6Om92ZXJoYW5nQW1vdW50KCkgY29uc3QKICAgICBJ
bnRTaXplIHN0cmV0Y2g7CiAKICAgICAvLyBGSVhNRTogdXNlIG1heGltdW1TY3JvbGxPZmZzZXQo
KQotICAgIFNjcm9sbE9mZnNldCBzY3JvbGxPZmZzZXQgPSBzY3JvbGxPZmZzZXRGcm9tUG9zaXRp
b24oc2Nyb2xsUG9zaXRpb24oKSk7CisgICAgU2Nyb2xsT2Zmc2V0IHNjcm9sbE9mZnNldCA9IHRo
aXMtPnNjcm9sbE9mZnNldCgpOwogICAgIGlmIChzY3JvbGxPZmZzZXQueSgpIDwgMCkKICAgICAg
ICAgc3RyZXRjaC5zZXRIZWlnaHQoc2Nyb2xsT2Zmc2V0LnkoKSk7CiAgICAgZWxzZSBpZiAodG90
YWxDb250ZW50c1NpemUoKS5oZWlnaHQoKSAmJiBzY3JvbGxPZmZzZXQueSgpID4gdG90YWxDb250
ZW50c1NpemUoKS5oZWlnaHQoKSAtIHZpc2libGVIZWlnaHQoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbFZpZXcuaAppbmRleCBmZjgyYzI3NjQ0Y2EwZTEwZGM1NDhjODhlMWI1ZTdhZWFjMThm
ZDk3Li4wM2ViNWQxNzBhN2I3ZmRkMTViMjM4OTIwNDkzZTU4ZjU5NWI1MDAwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC02OSw4ICs2OSw2IEBAIHB1YmxpYzoKICAgICB1
c2luZyBXaWRnZXQ6OndlYWtQdHJGYWN0b3J5OwogCiAgICAgLy8gU2Nyb2xsYWJsZUFyZWEgZnVu
Y3Rpb25zLgotICAgIGludCBzY3JvbGxTaXplKFNjcm9sbGJhck9yaWVudGF0aW9uKSBjb25zdCBm
aW5hbDsKLSAgICBpbnQgc2Nyb2xsT2Zmc2V0KFNjcm9sbGJhck9yaWVudGF0aW9uKSBjb25zdCBm
aW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcm9sbE9mZnNldChjb25zdCBTY3Jv
bGxPZmZzZXQmKSBmaW5hbDsKICAgICBib29sIGlzU2Nyb2xsQ29ybmVyVmlzaWJsZSgpIGNvbnN0
IGZpbmFsOwogICAgIHZvaWQgc2Nyb2xsYmFyU3R5bGVDaGFuZ2VkKFNjcm9sbGJhclN0eWxlLCBi
b29sIGZvcmNlVXBkYXRlKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmNwcAppbmRleCBhOThlNWRhYjZlZjYwZGNhYjJmOTc3MTlkNWYwZDhlY2U1ZWYx
MzFiLi5jODg4MmVlMjMwNTA5NzFjOTQ2YTU1YTk3ZmFhMzdiZjA5ZTUxMzk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC01NzIsNyArNTcyLDYgQEAg
dm9pZCBTY3JvbGxhYmxlQXJlYTo6c2VydmljZVNjcm9sbEFuaW1hdGlvbnMoKQogICAgICAgICBz
Y3JvbGxBbmltYXRvci0+c2VydmljZVNjcm9sbEFuaW1hdGlvbnMoKTsKIH0KIAotI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiBib29sIFNjcm9sbGFibGVBcmVhOjppc1Bpbm5lZEluQm90aERpcmVj
dGlvbnMoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlz
UGlubmVkSG9yaXpvbnRhbGx5SW5EaXJlY3Rpb24oc2Nyb2xsRGVsdGEud2lkdGgoKSkgJiYgaXNQ
aW5uZWRWZXJ0aWNhbGx5SW5EaXJlY3Rpb24oc2Nyb2xsRGVsdGEuaGVpZ2h0KCkpOwpAQCAtNTk1
LDcgKzU5NCw2IEBAIGJvb2wgU2Nyb2xsYWJsZUFyZWE6OmlzUGlubmVkVmVydGljYWxseUluRGly
ZWN0aW9uKGludCB2ZXJ0aWNhbFNjcm9sbERlbHRhKSBjb25zCiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIHJldHVybiBmYWxzZTsKIH0KLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQog
CiBpbnQgU2Nyb2xsYWJsZUFyZWE6Omhvcml6b250YWxTY3JvbGxiYXJJbnRydXNpb24oKSBjb25z
dAogewpAQCAtNjEyLDEyICs2MTAsOSBAQCBJbnRTaXplIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxi
YXJJbnRydXNpb24oKSBjb25zdAogICAgIHJldHVybiB7IGhvcml6b250YWxTY3JvbGxiYXJJbnRy
dXNpb24oKSwgdmVydGljYWxTY3JvbGxiYXJJbnRydXNpb24oKSB9OwogfQogCi1TY3JvbGxQb3Np
dGlvbiBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsUG9zaXRpb24oKSBjb25zdAorU2Nyb2xsT2Zmc2V0
IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxPZmZzZXQoKSBjb25zdAogewotICAgIC8vIEZJWE1FOiBU
aGlzIHJlbGF0aW9uc2hpcCBzZWVtcyB0byBiZSBpbnZlcnRlZC4gU2Nyb2xsYmFycyBzaG91bGQg
YmUgJ3ZpZXcnLCBub3QgJ21vZGVsJywgYW5kIHNob3VsZCBnZXQgdGhlaXIgdmFsdWVzIGZyb20g
dXMuCi0gICAgaW50IHggPSBob3Jpem9udGFsU2Nyb2xsYmFyKCkgPyBob3Jpem9udGFsU2Nyb2xs
YmFyKCktPnZhbHVlKCkgOiAwOwotICAgIGludCB5ID0gdmVydGljYWxTY3JvbGxiYXIoKSA/IHZl
cnRpY2FsU2Nyb2xsYmFyKCktPnZhbHVlKCkgOiAwOwotICAgIHJldHVybiBJbnRQb2ludCh4LCB5
KTsKKyAgICByZXR1cm4gc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKCkp
OwogfQogCiBTY3JvbGxQb3NpdGlvbiBTY3JvbGxhYmxlQXJlYTo6bWluaW11bVNjcm9sbFBvc2l0
aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4
IGZkZTYwN2YzODY4MmUzOTBiOTE0ZTQ4NjE3ODFmZmZhMTNlYTI4YWYuLmQ3NDM4YzE1Y2Q1MWQ2
NjYwYzBmNzM4YWMyZTk3ZmFiZjVhYmRjMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsYWJsZUFyZWEuaApAQCAtNDgsNiArNDgsMTggQEAgdHlwZWRlZiBJbnRQb2ludCBTY3JvbGxQ
b3NpdGlvbjsKIC8vIHNjcm9sbE9mZnNldCgpIGlzIHRoZSB2YWx1ZSB1c2VkIGJ5IHNjcm9sbGJh
cnMgKG1pbiBpcyAwLDApLCBhbmQgc2hvdWxkIG5ldmVyIGhhdmUgbmVnYXRpdmUgY29tcG9uZW50
cy4KIHR5cGVkZWYgSW50UG9pbnQgU2Nyb2xsT2Zmc2V0OwogCisKK2lubGluZSBpbnQgb2Zmc2V0
Rm9yT3JpZW50YXRpb24oU2Nyb2xsT2Zmc2V0IG9mZnNldCwgU2Nyb2xsYmFyT3JpZW50YXRpb24g
b3JpZW50YXRpb24pCit7CisgICAgc3dpdGNoIChvcmllbnRhdGlvbikgeworICAgIGNhc2UgSG9y
aXpvbnRhbFNjcm9sbGJhcjogcmV0dXJuIG9mZnNldC54KCk7CisgICAgY2FzZSBWZXJ0aWNhbFNj
cm9sbGJhcjogcmV0dXJuIG9mZnNldC55KCk7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiAwOworfQorCisKIGNsYXNzIFNjcm9sbGFibGVBcmVhIDogcHVibGlj
IENhbk1ha2VXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxv
YXQgbXVsdGlwbGllciA9IDEpOwpAQCAtMTU3LDggKzE2OSw2IEBAIHB1YmxpYzoKICAgICBTY3Jv
bGxBbmltYXRvciogZXhpc3RpbmdTY3JvbGxBbmltYXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Ny
b2xsQW5pbWF0b3IuZ2V0KCk7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0
ID0gMDsKLSAgICB2aXJ0dWFsIGludCBzY3JvbGxTaXplKFNjcm9sbGJhck9yaWVudGF0aW9uKSBj
b25zdCA9IDA7Ci0gICAgdmlydHVhbCBpbnQgc2Nyb2xsT2Zmc2V0KFNjcm9sbGJhck9yaWVudGF0
aW9uKSBjb25zdCA9IDA7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGludmFsaWRh
dGVTY3JvbGxiYXIoU2Nyb2xsYmFyJiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZpcnR1YWwgYm9v
bCBpc1Njcm9sbENvcm5lclZpc2libGUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRSZWN0
IHNjcm9sbENvcm5lclJlY3QoKSBjb25zdCA9IDA7CkBAIC0xOTYsNyArMjA2LDcgQEAgcHVibGlj
OgogICAgIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX3Nj
cm9sbE9yaWdpbjsgfQogICAgIGJvb2wgc2Nyb2xsT3JpZ2luQ2hhbmdlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2Nyb2xsT3JpZ2luQ2hhbmdlZDsgfQogCi0gICAgdmlydHVhbCBTY3JvbGxQb3NpdGlv
biBzY3JvbGxQb3NpdGlvbigpIGNvbnN0OworICAgIHZpcnR1YWwgU2Nyb2xsUG9zaXRpb24gc2Ny
b2xsUG9zaXRpb24oKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBTY3JvbGxQb3NpdGlvbiBtaW5p
bXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdDsKICAgICB2aXJ0dWFsIFNjcm9sbFBvc2l0aW9uIG1h
eGltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0OwogCkBAIC0yMDUsNiArMjE1LDggQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gcG9zaXRpb24uY29uc3RyYWluZWRCZXR3ZWVuKG1pbmltdW1TY3Jv
bGxQb3NpdGlvbigpLCBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSk7CiAgICAgfQogCisgICAgV0VC
Q09SRV9FWFBPUlQgU2Nyb2xsT2Zmc2V0IHNjcm9sbE9mZnNldCgpIGNvbnN0OworCiAgICAgU2Ny
b2xsT2Zmc2V0IG1heGltdW1TY3JvbGxPZmZzZXQoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIFNjcm9sbFBvc2l0aW9uIHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChTY3JvbGxPZmZzZXQp
IGNvbnN0OwpAQCAtMjk4LDE4ICszMTAsMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBz
Y2hlZHVsZUFuaW1hdGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdm9pZCBzZXJ2aWNlU2Ny
b2xsQW5pbWF0aW9ucygpOwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBib29sIGlz
SG9yaXpvbnRhbFNjcm9sbGVyUGlubmVkVG9NaW5pbXVtUG9zaXRpb24oKSBjb25zdCB7IHJldHVy
biAhaG9yaXpvbnRhbFNjcm9sbGJhcigpIHx8IHNjcm9sbE9mZnNldChIb3Jpem9udGFsU2Nyb2xs
YmFyKSA8PSAwOyB9Ci0gICAgYm9vbCBpc0hvcml6b250YWxTY3JvbGxlclBpbm5lZFRvTWF4aW11
bVBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gIWhvcml6b250YWxTY3JvbGxiYXIoKSB8fCBzY3Jv
bGxPZmZzZXQoSG9yaXpvbnRhbFNjcm9sbGJhcikgPj0gbWF4aW11bVNjcm9sbE9mZnNldCgpLngo
KTsgfQotICAgIGJvb2wgaXNWZXJ0aWNhbFNjcm9sbGVyUGlubmVkVG9NaW5pbXVtUG9zaXRpb24o
KSBjb25zdCB7IHJldHVybiAhdmVydGljYWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxPZmZzZXQoVmVy
dGljYWxTY3JvbGxiYXIpIDw9IDA7IH0KLSAgICBib29sIGlzVmVydGljYWxTY3JvbGxlclBpbm5l
ZFRvTWF4aW11bVBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gIXZlcnRpY2FsU2Nyb2xsYmFyKCkg
fHwgc2Nyb2xsT2Zmc2V0KFZlcnRpY2FsU2Nyb2xsYmFyKSA+PSBtYXhpbXVtU2Nyb2xsT2Zmc2V0
KCkueSgpOyB9CisgICAgYm9vbCBpc0hvcml6b250YWxTY3JvbGxlclBpbm5lZFRvTWluaW11bVBv
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gIWhvcml6b250YWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxP
ZmZzZXQoKS54KCkgPD0gMDsgfQorICAgIGJvb2wgaXNIb3Jpem9udGFsU2Nyb2xsZXJQaW5uZWRU
b01heGltdW1Qb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuICFob3Jpem9udGFsU2Nyb2xsYmFyKCkg
fHwgc2Nyb2xsT2Zmc2V0KCkueCgpID49IG1heGltdW1TY3JvbGxPZmZzZXQoKS54KCk7IH0KKyAg
ICBib29sIGlzVmVydGljYWxTY3JvbGxlclBpbm5lZFRvTWluaW11bVBvc2l0aW9uKCkgY29uc3Qg
eyByZXR1cm4gIXZlcnRpY2FsU2Nyb2xsYmFyKCkgfHwgc2Nyb2xsT2Zmc2V0KCkueSgpIDw9IDA7
IH0KKyAgICBib29sIGlzVmVydGljYWxTY3JvbGxlclBpbm5lZFRvTWF4aW11bVBvc2l0aW9uKCkg
Y29uc3QgeyByZXR1cm4gIXZlcnRpY2FsU2Nyb2xsYmFyKCkgfHwgc2Nyb2xsT2Zmc2V0KCkueSgp
ID49IG1heGltdW1TY3JvbGxPZmZzZXQoKS55KCk7IH0KIAogICAgIGJvb2wgaXNQaW5uZWRJbkJv
dGhEaXJlY3Rpb25zKGNvbnN0IEludFNpemUmKSBjb25zdDsgCiAgICAgYm9vbCBpc1Bpbm5lZEhv
cml6b250YWxseUluRGlyZWN0aW9uKGludCBob3Jpem9udGFsU2Nyb2xsRGVsdGEpIGNvbnN0OyAK
ICAgICBib29sIGlzUGlubmVkVmVydGljYWxseUluRGlyZWN0aW9uKGludCB2ZXJ0aWNhbFNjcm9s
bERlbHRhKSBjb25zdDsKLSNlbmRpZgotCi0gICAgdmlydHVhbCBUaWxlZEJhY2tpbmcqIHRpbGVk
QmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KIAogICAgIC8vIFRydWUgaWYgc2Ny
b2xsaW5nIGhhcHBlbnMgYnkgbW92aW5nIGNvbXBvc2l0aW5nIGxheWVycy4KICAgICB2aXJ0dWFs
IGJvb2wgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAKaW5kZXggMjVmOGFmMTZhMTg1ZGVjMWRj
ZjIyN2YwMDk1MWM2ODgzMjljOGZjOC4uMzk2OTE1NTBkOWZhMmU3Mzk1YzU1MzA5YjNlMjRlNzcz
MmVkZmI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCkBAIC02OSw3ICs2
OSw3IEBAIFNjcm9sbGJhcjo6U2Nyb2xsYmFyKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJl
YSwgU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50CiAgICAgaW50IHRoaWNrbmVzcyA9IHRoZW1l
KCkuc2Nyb2xsYmFyVGhpY2tuZXNzKGNvbnRyb2xTaXplKTsKICAgICBXaWRnZXQ6OnNldEZyYW1l
UmVjdChJbnRSZWN0KDAsIDAsIHRoaWNrbmVzcywgdGhpY2tuZXNzKSk7CiAKLSAgICBtX2N1cnJl
bnRQb3MgPSBzdGF0aWNfY2FzdDxmbG9hdD4obV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxPZmZzZXQo
bV9vcmllbnRhdGlvbikpOworICAgIG1fY3VycmVudFBvcyA9IHN0YXRpY19jYXN0PGZsb2F0Pihv
ZmZzZXRGb3JPcmllbnRhdGlvbihtX3Njcm9sbGFibGVBcmVhLnNjcm9sbE9mZnNldCgpLCBtX29y
aWVudGF0aW9uKSk7CiB9CiAKIFNjcm9sbGJhcjo6flNjcm9sbGJhcigpCkBAIC05MSw3ICs5MSw3
IEBAIGludCBTY3JvbGxiYXI6Om9jY3VwaWVkSGVpZ2h0KCkgY29uc3QKIAogdm9pZCBTY3JvbGxi
YXI6Om9mZnNldERpZENoYW5nZSgpCiB7Ci0gICAgZmxvYXQgcG9zaXRpb24gPSBzdGF0aWNfY2Fz
dDxmbG9hdD4obV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxPZmZzZXQobV9vcmllbnRhdGlvbikpOwor
ICAgIGZsb2F0IHBvc2l0aW9uID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG9mZnNldEZvck9yaWVudGF0
aW9uKG1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsT2Zmc2V0KCksIG1fb3JpZW50YXRpb24pKTsKICAg
ICBpZiAocG9zaXRpb24gPT0gbV9jdXJyZW50UG9zKQogICAgICAgICByZXR1cm47CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxBbmltYXRvcklPUy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxBbmltYXRvcklPUy5tbQppbmRleCA0
OTU3NDY4OGI3MTA0Mjk0NmY5M2I5MDBiYmQyMjk4NTg2N2FiZWJlLi4wMWYwYTliYjIwYTI0OGI2
OTk4ODU2NDcwYWVlMzc0YTk4Y2ZhNTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvU2Nyb2xsQW5pbWF0b3JJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1Njcm9sbEFuaW1hdG9ySU9TLm1tCkBAIC0xMDMsOCArMTAzLDkgQEAgYm9vbCBTY3Jv
bGxBbmltYXRvcklPUzo6aGFuZGxlVG91Y2hFdmVudChjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQm
IHRvdWNoRXZlbnQpCiAgICAgICAgIGRldGVybWluZVNjcm9sbGFibGVBcmVhRm9yVG91Y2hTZXF1
ZW5jZSh0b3VjaERlbHRhKTsKIAogICAgIGlmICghbV9jb21taXR0ZWRUb1Njcm9sbEF4aXMpIHsK
LSAgICAgICAgYm9vbCBob3Jpem9udGFsbHlTY3JvbGxhYmxlID0gbV9zY3JvbGxhYmxlQXJlYS5z
Y3JvbGxTaXplKEhvcml6b250YWxTY3JvbGxiYXIpOwotICAgICAgICBib29sIHZlcnRpY2FsbHlT
Y3JvbGxhYmxlID0gbV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxTaXplKFZlcnRpY2FsU2Nyb2xsYmFy
KTsKKyAgICAgICAgYXV0byBzY3JvbGxTaXplID0gbV9zY3JvbGxhYmxlQXJlYS5tYXhpbXVtU2Ny
b2xsUG9zaXRpb24oKSAtIG1fc2Nyb2xsYWJsZUFyZWEubWluaW11bVNjcm9sbFBvc2l0aW9uKCk7
CisgICAgICAgIGJvb2wgaG9yaXpvbnRhbGx5U2Nyb2xsYWJsZSA9IHNjcm9sbFNpemUud2lkdGgo
KTsKKyAgICAgICAgYm9vbCB2ZXJ0aWNhbGx5U2Nyb2xsYWJsZSA9IHNjcm9sbFNpemUuaGVpZ2h0
KCk7CiAKICAgICAgICAgaWYgKCFob3Jpem9udGFsbHlTY3JvbGxhYmxlICYmICF2ZXJ0aWNhbGx5
U2Nyb2xsYWJsZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKaW5kZXggNTIyYTM0MDhlYjRhNGIyMjNmNjc2
MDdmYTEzOTFkZmYwYTlhZjc2Ni4uN2M3YmZkZmIxOGM1YmU2N2UxNzBkYTk2NDNiOWMzZGRlNWMz
MmRmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdp
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAK
QEAgLTY3OSwxNCArNjc5LDkgQEAgdm9pZCBQb3B1cE1lbnVXaW46OnBhaW50KGNvbnN0IEludFJl
Y3QmIGRhbWFnZVJlY3QsIEhEQyBoZGMpCiAgICAgOjpCaXRCbHQobG9jYWxEQywgZGFtYWdlUmVj
dC54KCksIGRhbWFnZVJlY3QueSgpLCBkYW1hZ2VSZWN0LndpZHRoKCksIGRhbWFnZVJlY3QuaGVp
Z2h0KCksIG1fREMuZ2V0KCksIGRhbWFnZVJlY3QueCgpLCBkYW1hZ2VSZWN0LnkoKSwgU1JDQ09Q
WSk7CiB9CiAKLWludCBQb3B1cE1lbnVXaW46OnNjcm9sbFNpemUoU2Nyb2xsYmFyT3JpZW50YXRp
b24gb3JpZW50YXRpb24pIGNvbnN0CitTY3JvbGxQb3NpdGlvbiBQb3B1cE1lbnVXaW46OnNjcm9s
bFBvc2l0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gKChvcmllbnRhdGlvbiA9PSBWZXJ0aWNh
bFNjcm9sbGJhcikgJiYgbV9zY3JvbGxiYXIpID8gKG1fc2Nyb2xsYmFyLT50b3RhbFNpemUoKSAt
IG1fc2Nyb2xsYmFyLT52aXNpYmxlU2l6ZSgpKSA6IDA7Ci19Ci0KLWludCBQb3B1cE1lbnVXaW46
OnNjcm9sbE9mZnNldChTY3JvbGxiYXJPcmllbnRhdGlvbikgY29uc3QKLXsKLSAgICByZXR1cm4g
bV9zY3JvbGxPZmZzZXQ7CisgICAgcmV0dXJuIHsgMCwgbV9zY3JvbGxPZmZzZXQgfTsKIH0KIAog
dm9pZCBQb3B1cE1lbnVXaW46OnNldFNjcm9sbE9mZnNldChjb25zdCBJbnRQb2ludCYgb2Zmc2V0
KQpAQCAtODkyLDkgKzg4Nyw5IEBAIExSRVNVTFQgUG9wdXBNZW51V2luOjp3bmRQcm9jKEhXTkQg
aFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhCiAgICAgICAgICAg
ICAgICAgICAgIGZvY3VzTGFzdCgpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgICAgICBjYXNlIFZLX1BSSU9SOgotICAgICAgICAgICAgICAgICAgICBpZiAoZm9jdXNl
ZEluZGV4KCkgIT0gc2Nyb2xsT2Zmc2V0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZv
Y3VzZWRJbmRleCgpICE9IG1fc2Nyb2xsT2Zmc2V0KSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBTZXQgdGhlIHNlbGVjdGlvbiB0byB0aGUgZmlyc3QgdmlzaWJsZSBpdGVtCi0gICAgICAg
ICAgICAgICAgICAgICAgICBpbnQgZmlyc3RWaXNpYmxlSXRlbSA9IHNjcm9sbE9mZnNldCgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZpcnN0VmlzaWJsZUl0ZW0gPSBtX3Njcm9sbE9m
ZnNldDsKICAgICAgICAgICAgICAgICAgICAgICAgIHVwKGZvY3VzZWRJbmRleCgpIC0gZmlyc3RW
aXNpYmxlSXRlbSk7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBUaGUgZmlyc3QgdmlzaWJsZSBpdGVtIGlzIHNlbGVjdGVkLCBzbyBtb3Zl
IHRoZSBzZWxlY3Rpb24gYmFjayBvbmUgcGFnZQpAQCAtOTAyLDcgKzg5Nyw3IEBAIExSRVNVTFQg
UG9wdXBNZW51V2luOjp3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1Bh
cmFtLCBMUEFSQU0gbFBhCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBWS19ORVhUOiB7Ci0gICAgICAgICAgICAg
ICAgICAgIGludCBsYXN0VmlzaWJsZUl0ZW0gPSBzY3JvbGxPZmZzZXQoKSArIHZpc2libGVJdGVt
cygpIC0gMTsKKyAgICAgICAgICAgICAgICAgICAgaW50IGxhc3RWaXNpYmxlSXRlbSA9IG1fc2Ny
b2xsT2Zmc2V0ICsgdmlzaWJsZUl0ZW1zKCkgLSAxOwogICAgICAgICAgICAgICAgICAgICBpZiAo
Zm9jdXNlZEluZGV4KCkgIT0gbGFzdFZpc2libGVJdGVtKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBTZXQgdGhlIHNlbGVjdGlvbiB0byB0aGUgbGFzdCB2aXNpYmxlIGl0ZW0KICAgICAg
ICAgICAgICAgICAgICAgICAgIGRvd24obGFzdFZpc2libGVJdGVtIC0gZm9jdXNlZEluZGV4KCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oCmluZGV4IDM2M2Ew
YTNhYjVkNWE0YzI0NDJlNmZhNGY1OWJiNDAwZjMxY2JmZWMuLjM1MjliOGYyODc5Mzc3MzdkOGYy
NDMxNmVjZDZjMjlkNGQ3NjExYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9Qb3B1cE1lbnVXaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9w
dXBNZW51V2luLmgKQEAgLTc3LDggKzc3LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFdhc0Ns
aWNrZWQoYm9vbCBiID0gdHJ1ZSkgeyBtX3dhc0NsaWNrZWQgPSBiOyB9CiAgICAgYm9vbCB3YXND
bGlja2VkKCkgY29uc3QgeyByZXR1cm4gbV93YXNDbGlja2VkOyB9CiAKLSAgICBpbnQgc2Nyb2xs
T2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxPZmZzZXQ7IH0KLQogICAgIGJvb2wgc2Ny
b2xsVG9SZXZlYWxTZWxlY3Rpb24oKTsKIAogICAgIHZvaWQgaW5jcmVtZW50V2hlZWxEZWx0YShp
bnQgZGVsdGEpOwpAQCAtODksOCArODcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0U2Nyb2xs
YmFyQ2FwdHVyaW5nTW91c2UoYm9vbCBiKSB7IG1fc2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2UgPSBi
OyB9CiAKICAgICAvLyBTY3JvbGxhYmxlQXJlYQotICAgIGludCBzY3JvbGxTaXplKFNjcm9sbGJh
ck9yaWVudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKLSAgICBpbnQgc2Nyb2xsT2Zmc2V0KFNjcm9s
bGJhck9yaWVudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKKyAgICBTY3JvbGxQb3NpdGlvbiBzY3Jv
bGxQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGNv
bnN0IEludFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVj
dChTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBpbnZhbGlk
YXRlU2Nyb2xsQ29ybmVyUmVjdChjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGUgeyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBhNmEzMDQ2NmVkMTc0YTY4Mzgy
YzM0MWM1ODBkMzEzMzMxMjdmZjBhLi5jMzA4YTdhNDUzZjAyYmM2MDlmZTY2NjEwNGUwYzA3MTE5
MGM3NTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI4
OTQsMjggKzI4OTQsMTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6cmVzaXplKGNvbnN0IFBsYXRmb3Jt
TW91c2VFdmVudCYgZXZ0LCBjb25zdCBMYXlvdXRTaXplJiBvbGRPZmYKICAgICAvLyBGSVhNRSAo
UmFkYXIgNDExODU2NCk6IFdlIHNob3VsZCBhbHNvIGF1dG9zY3JvbGwgdGhlIHdpbmRvdyBhcyBu
ZWNlc3NhcnkgdG8ga2VlcCB0aGUgcG9pbnQgdW5kZXIgdGhlIGN1cnNvciBpbiB2aWV3LgogfQog
Ci1pbnQgUmVuZGVyTGF5ZXI6OnNjcm9sbFNpemUoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50
YXRpb24pIGNvbnN0Ci17Ci0gICAgU2Nyb2xsYmFyKiBzY3JvbGxiYXIgPSAoKG9yaWVudGF0aW9u
ID09IEhvcml6b250YWxTY3JvbGxiYXIpID8gbV9oQmFyIDogbV92QmFyKS5nZXQoKTsKLSAgICBy
ZXR1cm4gc2Nyb2xsYmFyID8gKHNjcm9sbGJhci0+dG90YWxTaXplKCkgLSBzY3JvbGxiYXItPnZp
c2libGVTaXplKCkpIDogMDsKLX0KLQogdm9pZCBSZW5kZXJMYXllcjo6c2V0U2Nyb2xsT2Zmc2V0
KGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0KQogewogICAgIHNjcm9sbFRvKHNjcm9sbFBvc2l0
aW9uRnJvbU9mZnNldChvZmZzZXQpKTsKIH0KIAotaW50IFJlbmRlckxheWVyOjpzY3JvbGxPZmZz
ZXQoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24pIGNvbnN0Ci17Ci0gICAgaWYgKG9y
aWVudGF0aW9uID09IEhvcml6b250YWxTY3JvbGxiYXIpCi0gICAgICAgIHJldHVybiBzY3JvbGxP
ZmZzZXQoKS54KCk7Ci0KLSAgICBpZiAob3JpZW50YXRpb24gPT0gVmVydGljYWxTY3JvbGxiYXIp
Ci0gICAgICAgIHJldHVybiBzY3JvbGxPZmZzZXQoKS55KCk7Ci0KLSAgICByZXR1cm4gMDsKLX0K
LQogU2Nyb2xsaW5nTm9kZUlEIFJlbmRlckxheWVyOjpzY3JvbGxpbmdOb2RlSUQoKSBjb25zdAog
ewogICAgIGlmICghaXNDb21wb3NpdGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oCmluZGV4IDVlMDdiYzc3NWYyMmJlNDgwZmRlMjQyYzU4Yzc4ZGE0NjM3M2EzMmQuLjhj
Yzg3NTg4YTBjOWQ0ZDBiNWE0YjRhMDg1MTUyNjZlNjU5YTcwZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC00NDIsOCArNDQyLDYgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0UG9zdExheW91dFNjcm9sbFBvc2l0aW9uKE9wdGlvbmFsPFNjcm9sbFBvc2l0aW9uPik7
CiAgICAgdm9pZCBhcHBseVBvc3RMYXlvdXRTY3JvbGxQb3NpdGlvbklmTmVlZGVkKCk7CiAKLSAg
ICBTY3JvbGxPZmZzZXQgc2Nyb2xsT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gc2Nyb2xsT2Zmc2V0
RnJvbVBvc2l0aW9uKG1fc2Nyb2xsUG9zaXRpb24pOyB9Ci0KICAgICB2b2lkIGF2YWlsYWJsZUNv
bnRlbnRTaXplQ2hhbmdlZChBdmFpbGFibGVTaXplQ2hhbmdlUmVhc29uKSBvdmVycmlkZTsKIAog
ICAgIC8vICJhYnNvbHV0ZVJlY3QiIGlzIGluIHNjYWxlZCBkb2N1bWVudCBjb29yZGluYXRlcy4K
QEAgLTEwNzMsOCArMTA3MSw2IEBAIHByaXZhdGU6CiAKICAgICBib29sIHNob3VsZEJlU2VsZlBh
aW50aW5nTGF5ZXIoKSBjb25zdDsKIAotICAgIGludCBzY3JvbGxPZmZzZXQoU2Nyb2xsYmFyT3Jp
ZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwotICAgIAogICAgIC8vIFNjcm9sbGFibGVBcmVhIGlu
dGVyZmFjZQogICAgIHZvaWQgaW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyJiwgY29u
c3QgSW50UmVjdCYpIG92ZXJyaWRlOwogICAgIHZvaWQgaW52YWxpZGF0ZVNjcm9sbENvcm5lclJl
Y3QoY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOwpAQCAtMTA4NSw3ICsxMDgxLDYgQEAgcHJpdmF0
ZToKICAgICBJbnRSZWN0IGNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25z
dCBTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgSW50UG9p
bnQgY29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciYs
IGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgSW50UG9pbnQgY29udmVydEZy
b21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYsIGNvbnN0IEludFBv
aW50JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgaW50IHNjcm9sbFNpemUoU2Nyb2xsYmFyT3JpZW50
YXRpb24pIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGNvbnN0IFNj
cm9sbE9mZnNldCYpIG92ZXJyaWRlOwogICAgIFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdOb2Rl
SUQoKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guY3BwCmluZGV4IDQ0YzZkMWY2OTNjOTc3N2IzMDJjY2Y3OGEzYWY0NmY5YzBhZmE5OWUu
LjRiNDEyOWZmYmU5MDQ0YzAwZmViYzQwZDU2OTRjZmMwNzcyMjUzZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTY0NSwxNCArNjQ1LDkgQEAgdm9p
ZCBSZW5kZXJMaXN0Qm94Ojp2YWx1ZUNoYW5nZWQodW5zaWduZWQgbGlzdEluZGV4KQogICAgIHNl
bGVjdEVsZW1lbnQoKS5kaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKTsKIH0KIAotaW50
IFJlbmRlckxpc3RCb3g6OnNjcm9sbFNpemUoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRp
b24pIGNvbnN0CitTY3JvbGxQb3NpdGlvbiBSZW5kZXJMaXN0Qm94OjpzY3JvbGxQb3NpdGlvbigp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuICgob3JpZW50YXRpb24gPT0gVmVydGljYWxTY3JvbGxiYXIp
ICYmIG1fdkJhcikgPyAobV92QmFyLT50b3RhbFNpemUoKSAtIG1fdkJhci0+dmlzaWJsZVNpemUo
KSkgOiAwOwotfQotCi1pbnQgUmVuZGVyTGlzdEJveDo6c2Nyb2xsT2Zmc2V0KFNjcm9sbGJhck9y
aWVudGF0aW9uKSBjb25zdAotewotICAgIHJldHVybiBtX2luZGV4T2Zmc2V0OworICAgIHJldHVy
biB7IDAsIG1faW5kZXhPZmZzZXQgfTsKIH0KIAogU2Nyb2xsUG9zaXRpb24gUmVuZGVyTGlzdEJv
eDo6bWluaW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5oCmluZGV4IDNjZDE2OTdlMmE0OGE1M2VhOWQwYTEzMjBhZmM5YTBlMTUw
YTQyNmIuLjY1ZDkyMjZiM2EwNTRlNjk3OGEwMjk2NzRlYTlkZjQ0MDQxZTM3YmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAtMTEyLDExICsxMTIsMTIgQEAg
cHJpdmF0ZToKICAgICBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0
VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwg
Y29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBvdmVy
cmlkZTsKIAogICAgIC8vIFNjcm9sbGFibGVBcmVhIGludGVyZmFjZS4KLSAgICBpbnQgc2Nyb2xs
U2l6ZShTY3JvbGxiYXJPcmllbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgaW50IHNjcm9s
bE9mZnNldChTY3JvbGxiYXJPcmllbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBz
ZXRTY3JvbGxPZmZzZXQoY29uc3QgU2Nyb2xsT2Zmc2V0Jikgb3ZlcnJpZGU7CisKKyAgICBTY3Jv
bGxQb3NpdGlvbiBzY3JvbGxQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIFNjcm9sbFBv
c2l0aW9uIG1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIFNjcm9s
bFBvc2l0aW9uIG1heGltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOworCiAgICAg
dm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0Jikg
b3ZlcnJpZGU7CiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wg
aXNTY3JvbGxDb3JuZXJWaXNpYmxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0g
Ly8gV2UgZG9uJ3Qgc3VwcG9ydCByZXNpemUgb24gbGlzdCBib3hlcyB5ZXQuIElmIHdlIGRpZCB0
aGVzZSB3b3VsZCBoYXZlIHRvIGNoYW5nZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uY3BwCmluZGV4IDk4MGUwYjdiYjAxMjI3YTMy
M2E2ZDQ1YTk1N2RhOGI5M2JkMjhiNzMuLjU2ZTliZmRlMDZlYTEyMjZlOWM2MzdmOTM4YzUzZjZm
NzEwMTg4MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1
cE1lbnVQcm94eVdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBv
cHVwTWVudVByb3h5V2luLmNwcApAQCAtNDQxLDkgKzQ0MSw5IEBAIHZvaWQgV2ViUG9wdXBNZW51
UHJveHlXaW46OmludmFsaWRhdGVJdGVtKGludCBpbmRleCkKICAgICA6OkludmFsaWRhdGVSZWN0
KG1fcG9wdXAsICZyLCBUUlVFKTsKIH0KIAotaW50IFdlYlBvcHVwTWVudVByb3h5V2luOjpzY3Jv
bGxTaXplKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uKSBjb25zdAorU2Nyb2xsUG9z
aXRpb24gUG9wdXBNZW51V2luOjpzY3JvbGxQb3NpdGlvbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
ICgob3JpZW50YXRpb24gPT0gVmVydGljYWxTY3JvbGxiYXIpICYmIG1fc2Nyb2xsYmFyKSA/ICht
X3Njcm9sbGJhci0+dG90YWxTaXplKCkgLSBtX3Njcm9sbGJhci0+dmlzaWJsZVNpemUoKSkgOiAw
OworICAgIHJldHVybiB7IDAsIG1fc2Nyb2xsT2Zmc2V0IH07CiB9CiAKIHZvaWQgV2ViUG9wdXBN
ZW51UHJveHlXaW46OnNldFNjcm9sbE9mZnNldChjb25zdCBJbnRQb2ludCYgb2Zmc2V0KQpAQCAt
NTU0LDkgKzU1NCw5IEBAIExSRVNVTFQgV2ViUG9wdXBNZW51UHJveHlXaW46Om9uS2V5RG93bihI
V05EIGhXbmQsIFVJTlQgbWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwKICAgICAgICAgZm9jdXNMYXN0
KCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVktfUFJJT1I6Ci0gICAgICAgIGlmIChmb2N1
c2VkSW5kZXgoKSAhPSBzY3JvbGxPZmZzZXQoVmVydGljYWxTY3JvbGxiYXIpKSB7CisgICAgICAg
IGlmIChmb2N1c2VkSW5kZXgoKSAhPSBtX3Njcm9sbE9mZnNldCkgewogICAgICAgICAgICAgLy8g
U2V0IHRoZSBzZWxlY3Rpb24gdG8gdGhlIGZpcnN0IHZpc2libGUgaXRlbQotICAgICAgICAgICAg
aW50IGZpcnN0VmlzaWJsZUl0ZW0gPSBzY3JvbGxPZmZzZXQoVmVydGljYWxTY3JvbGxiYXIpOwor
ICAgICAgICAgICAgaW50IGZpcnN0VmlzaWJsZUl0ZW0gPSBtX3Njcm9sbE9mZnNldDsKICAgICAg
ICAgICAgIHVwKGZvY3VzZWRJbmRleCgpIC0gZmlyc3RWaXNpYmxlSXRlbSk7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICAvLyBUaGUgZmlyc3QgdmlzaWJsZSBpdGVtIGlzIHNlbGVjdGVk
LCBzbyBtb3ZlIHRoZSBzZWxlY3Rpb24gYmFjayBvbmUgcGFnZQpAQCAtNTY0LDcgKzU2NCw3IEBA
IExSRVNVTFQgV2ViUG9wdXBNZW51UHJveHlXaW46Om9uS2V5RG93bihIV05EIGhXbmQsIFVJTlQg
bWVzc2FnZSwgV1BBUkFNIHdQYXJhbSwKICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICBj
YXNlIFZLX05FWFQ6IHsKLSAgICAgICAgaW50IGxhc3RWaXNpYmxlSXRlbSA9IHNjcm9sbE9mZnNl
dChWZXJ0aWNhbFNjcm9sbGJhcikgKyB2aXNpYmxlSXRlbXMoKSAtIDE7CisgICAgICAgIGludCBs
YXN0VmlzaWJsZUl0ZW0gPSBtX3Njcm9sbE9mZnNldCArIHZpc2libGVJdGVtcygpIC0gMTsKICAg
ICAgICAgaWYgKGZvY3VzZWRJbmRleCgpICE9IGxhc3RWaXNpYmxlSXRlbSkgewogICAgICAgICAg
ICAgLy8gU2V0IHRoZSBzZWxlY3Rpb24gdG8gdGhlIGxhc3QgdmlzaWJsZSBpdGVtCiAgICAgICAg
ICAgICBkb3duKGxhc3RWaXNpYmxlSXRlbSAtIGZvY3VzZWRJbmRleCgpKTsKQEAgLTkyMSw3ICs5
MjEsNiBAQCB2b2lkIFdlYlBvcHVwTWVudVByb3h5V2luOjpmb2N1c0xhc3QoKQogICAgIH0KIH0K
IAotCiB2b2lkIFdlYlBvcHVwTWVudVByb3h5V2luOjppbmNyZW1lbnRXaGVlbERlbHRhKGludCBk
ZWx0YSkKIHsKICAgICBtX3doZWVsRGVsdGEgKz0gZGVsdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5oCmluZGV4IDQ2OTRjNDdiYjc5
OTAxYjA2Njg0OWNjYmNiYjQ2NGMzMjdhNGMwODkuLjY0NzM5YjMzNjNmNWJlMWJhZDNmODdlZWYx
M2NkNTEwZjI3MTc0MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9X
ZWJQb3B1cE1lbnVQcm94eVdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9X
ZWJQb3B1cE1lbnVQcm94eVdpbi5oCkBAIC01OCw5ICs1OCw4IEBAIHByaXZhdGU6CiAgICAgV2Vi
Q29yZTo6U2Nyb2xsYmFyKiBzY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGJhci5n
ZXQoKTsgfQogCiAgICAgLy8gU2Nyb2xsYWJsZUFyZWEKLSAgICBpbnQgc2Nyb2xsU2l6ZShXZWJD
b3JlOjpTY3JvbGxiYXJPcmllbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6
U2Nyb2xsUG9zaXRpb24gc2Nyb2xsUG9zaXRpb24oKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lk
IHNldFNjcm9sbE9mZnNldChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIG92ZXJyaWRlOwotICAg
IGludCBzY3JvbGxPZmZzZXQoV2ViQ29yZTo6U2Nyb2xsYmFyT3JpZW50YXRpb24pIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fc2Nyb2xsT2Zmc2V0OyB9CiAKICAgICB2b2lkIGludmFsaWRhdGVT
Y3JvbGxiYXJSZWN0KFdlYkNvcmU6OlNjcm9sbGJhciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KSBvdmVycmlkZTsKICAgICB2b2lkIGludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKSBvdmVycmlkZSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaAppbmRleCA2ODYyZTMwNGZlZGI4NWI3ODYzNDcw
MGI5ZDZiMzVhNmMzYzIwY2VjLi5kNDE1MDNiMjBhM2JlOTAyYTNhM2U4YTg0ZjNjM2Q1YWNhMDE5
MTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbi5oCkBAIC0yMDIsMTAgKzIwMiw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbnZhbGlkYXRl
U2Nyb2xsYmFyUmVjdChXZWJDb3JlOjpTY3JvbGxiYXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JikgZmluYWw7CiAgICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsQ29ybmVyUmVjdChjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JikgZmluYWw7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgbGFzdEtub3duTW91
c2VQb3NpdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbGFzdE1vdXNlUG9zaXRpb25JblBs
dWdpbkNvb3JkaW5hdGVzOyB9Ci0gICAgaW50IHNjcm9sbFNpemUoV2ViQ29yZTo6U2Nyb2xsYmFy
T3JpZW50YXRpb24pIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaXNBY3RpdmUoKSBjb25zdCBmaW5h
bDsKICAgICBib29sIGlzU2Nyb2xsQ29ybmVyVmlzaWJsZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IGZhbHNlOyB9Ci0gICAgaW50IHNjcm9sbE9mZnNldChXZWJDb3JlOjpTY3JvbGxiYXJPcmllbnRh
dGlvbikgY29uc3QgZmluYWw7CiAgICAgV2ViQ29yZTo6U2Nyb2xsUG9zaXRpb24gc2Nyb2xsUG9z
aXRpb24oKSBjb25zdCBmaW5hbDsKICAgICBXZWJDb3JlOjpTY3JvbGxQb3NpdGlvbiBtaW5pbXVt
U2Nyb2xsUG9zaXRpb24oKSBjb25zdCBmaW5hbDsKICAgICBXZWJDb3JlOjpTY3JvbGxQb3NpdGlv
biBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IDE1ODhiZDBlMWM1
MDc5ODgwNGNlMTQxNGZmMDMzMjc1ZjQ1YzliY2EuLjAzYTFmMDQ2NWMwZTY1YzI2NTIyNTRmMGU0
MmQwYWVjNTUyMDk0M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbi5tbQpAQCAtODYzLDEyICs4NjMsNiBAQCBJbnRSZWN0IFBERlBsdWdp
bjo6c2Nyb2xsYWJsZUFyZWFCb3VuZGluZ0JveChib29sKikgY29uc3QKICAgICByZXR1cm4gcGx1
Z2luVmlldygpLT5mcmFtZVJlY3QoKTsKIH0KIAotaW50IFBERlBsdWdpbjo6c2Nyb2xsU2l6ZShT
Y3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbikgY29uc3QKLXsKLSAgICBTY3JvbGxiYXIq
IHNjcm9sbGJhciA9ICgob3JpZW50YXRpb24gPT0gSG9yaXpvbnRhbFNjcm9sbGJhcikgPyBtX2hv
cml6b250YWxTY3JvbGxiYXIgOiBtX3ZlcnRpY2FsU2Nyb2xsYmFyKS5nZXQoKTsKLSAgICByZXR1
cm4gc2Nyb2xsYmFyID8gKHNjcm9sbGJhci0+dG90YWxTaXplKCkgLSBzY3JvbGxiYXItPnZpc2li
bGVTaXplKCkpIDogMDsKLX0KLQogYm9vbCBQREZQbHVnaW46OmlzQWN0aXZlKCkgY29uc3QKIHsK
ICAgICBpZiAoRnJhbWUqIGNvcmVGcmFtZSA9IG1fZnJhbWUtPmNvcmVGcmFtZSgpKSB7CkBAIC04
ODksMTggKzg4Myw2IEBAIGJvb2wgUERGUGx1Z2luOjpmb3JjZVVwZGF0ZVNjcm9sbGJhcnNPbk1h
aW5UaHJlYWRGb3JQZXJmb3JtYW5jZVRlc3RpbmcoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotaW50IFBERlBsdWdpbjo6c2Nyb2xsT2Zmc2V0KFNjcm9sbGJhck9yaWVudGF0aW9uIG9y
aWVudGF0aW9uKSBjb25zdAotewotICAgIGlmIChvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Ny
b2xsYmFyKQotICAgICAgICByZXR1cm4gbV9zY3JvbGxPZmZzZXQud2lkdGgoKTsKLQotICAgIGlm
IChvcmllbnRhdGlvbiA9PSBWZXJ0aWNhbFNjcm9sbGJhcikKLSAgICAgICAgcmV0dXJuIG1fc2Ny
b2xsT2Zmc2V0LmhlaWdodCgpOwotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0
dXJuIDA7Ci19Ci0KIFNjcm9sbFBvc2l0aW9uIFBERlBsdWdpbjo6c2Nyb2xsUG9zaXRpb24oKSBj
b25zdAogewogICAgIHJldHVybiBJbnRQb2ludChtX3Njcm9sbE9mZnNldC53aWR0aCgpLCBtX3Nj
cm9sbE9mZnNldC5oZWlnaHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXggNGU0NzYyYzlkMWI5NzdlM2YxNTFkNWQ5NzFi
NzViYjE5OGM4OGFkNy4uNWU1MGUwYmExZWYxMjQ2YzZhZTA4ZjI5ZDkyYTgzMGUwZGI0ZjIzNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YS5tbQpAQCAtMjUzLDEwICsyNTMsOCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
Ojp1cGRhdGVTY3JvbGxlZEV4cG9zZWRSZWN0KCkKICAgICBtX3Njcm9sbGVkVmlld0V4cG9zZWRS
ZWN0ID0gbV92aWV3RXhwb3NlZFJlY3Q7CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICBpZiAobV92aWV3RXhwb3NlZFJlY3QpIHsKLSAgICAgICAgU2Nyb2xsT2Zmc2V0IHNjcm9sbE9m
ZnNldCA9IGZyYW1lVmlldy0+c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKGZyYW1lVmlldy0+c2Ny
b2xsUG9zaXRpb24oKSk7Ci0gICAgICAgIG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QudmFsdWUo
KS5tb3ZlQnkoc2Nyb2xsT2Zmc2V0KTsKLSAgICB9CisgICAgaWYgKG1fdmlld0V4cG9zZWRSZWN0
KQorICAgICAgICBtX3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0LnZhbHVlKCkubW92ZUJ5KGZyYW1l
Vmlldy0+c2Nyb2xsT2Zmc2V0KCkpOwogI2VuZGlmCiAKICAgICBmcmFtZVZpZXctPnNldFZpZXdF
eHBvc2VkUmVjdChtX3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372212</attachid>
            <date>2019-06-15 19:57:35 -0700</date>
            <delta_ts>2019-06-16 17:33:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198895-20190615195734.patch</filename>
            <type>text/plain</type>
            <size>30257</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjUxMjE2ZTk3MjU2NzIz
Njk2ZTc5NDcwNjg4YWRkMDgxMTdmNDdmZi4uYWY4NGE3M2NlYTVjMDllYWZiYmIwZjE3ODc4Y2Q3
OTU0YTVlNTFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY1IEBACisyMDE5LTA2LTE1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBT
Y3JvbGxhYmxlQXJlYTo6c2Nyb2xsT2Zmc2V0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODg5NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBmcm9tIFNjcm9sbGFibGVBcmVhIHRoZSBmb2xs
b3dpbmc6CisgICAgICAgICAgICB2aXJ0dWFsIGludCBzY3JvbGxTaXplKFNjcm9sbGJhck9yaWVu
dGF0aW9uKSBjb25zdCA9IDA7CisgICAgICAgICAgICB2aXJ0dWFsIGludCBzY3JvbGxPZmZzZXQo
U2Nyb2xsYmFyT3JpZW50YXRpb24pIGNvbnN0ID0gMDsKKyAgICAgICAgYW5kIGluc3RlYWQgaW1w
bGVtZW50IFNjcm9sbE9mZnNldCBzY3JvbGxPZmZzZXQoKSBjb25zdC4KKworICAgICAgICBBbHNv
IG1ha2Ugc2Nyb2xsUG9zaXRpb24oKSBwdXJlIHZpcnR1YWwsIGF2b2lkaW5nIHRoZSByZXZlcnNl
IGRlcGVuZGVuY3kgd2hlcmUKKyAgICAgICAgdGhpcyBiYXNlIGNsYXNzIGltcGxlbWVudGF0aW9u
IGdvdCB2YWx1ZXMgZnJvbSBzY3JvbGxiYXJzLgorICAgICAgICAKKyAgICAgICAgc2Nyb2xsU2l6
ZShTY3JvbGxiYXJPcmllbnRhdGlvbikgd2FzIG9ubHkgdXNlZCBieSBTY3JvbGxBbmltYXRvcklP
UyBhbmQgd2UgY2FuCisgICAgICAgIGRvIHRoZSBzYW1lIGNvbXB1dGF0aW9uIHZpYSBtaW4vbWF4
IHNjcm9sbCBwb3NpdGlvbnMuCisgICAgICAgIAorICAgICAgICBSZW5kZXJMaXN0Qm94IGFuZCBQ
b3B1cE1lbnVXaW4gbmVlZCBpbXBsZW1lbnRhdGlvbnMgb2Ygc2Nyb2xsUG9zaXRpb24oKS4KKyAg
ICAgICAgCisgICAgICAgIFJlbW92ZSBzb21lIFBMQVRGT1JNKElPU19GQU1JTFkpICNpZmRlZnMg
ZnJvbSBTY3JvbGxhYmxlQXJlYSBmb3IgY29kZSB0aGF0IGNvbXBpbGVzCisgICAgICAgIG9uIGFs
bCBwbGF0Zm9ybXMuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBs
YXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6b3Zl
cmhhbmdBbW91bnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2Nyb2xs
U2l6ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzY3Jv
bGxPZmZzZXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxhYmxlQXJlYTo6aXNQaW5uZWRWZXJ0aWNhbGx5SW5EaXJlY3Rpb24gY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9mZnNldCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsUG9zaXRpb24gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6CisgICAgICAg
IChXZWJDb3JlOjpvZmZzZXRGb3JPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxhYmxlQXJlYTo6aXNIb3Jpem9udGFsU2Nyb2xsZXJQaW5uZWRUb01pbmltdW1Qb3NpdGlvbiBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6aXNIb3Jpem9udGFsU2Ny
b2xsZXJQaW5uZWRUb01heGltdW1Qb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxhYmxlQXJlYTo6aXNWZXJ0aWNhbFNjcm9sbGVyUGlubmVkVG9NaW5pbXVtUG9zaXRpb24g
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmlzVmVydGljYWxTY3Jv
bGxlclBpbm5lZFRvTWF4aW11bVBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGFibGVBcmVhOjp0aWxlZEJhY2tpbmcgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL1Njcm9sbGJhci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXI6OlNjcm9s
bGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXI6Om9mZnNldERpZENoYW5nZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL1Njcm9sbEFuaW1hdG9ySU9TLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsQW5pbWF0b3JJT1M6OmhhbmRsZVRvdWNoRXZlbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51
V2luOjpzY3JvbGxQb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVX
aW46OnduZFByb2MpOgorICAgICAgICAoV2ViQ29yZTo6UG9wdXBNZW51V2luOjpzY3JvbGxTaXpl
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBvcHVwTWVudVdpbjo6c2Nyb2xs
T2Zmc2V0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUG9wdXBNZW51
V2luLmg6CisgICAgICAgIChXZWJDb3JlOjpQb3B1cE1lbnVXaW46OnNjcm9sbE9mZnNldCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxTaXplIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxPZmZzZXQgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnNj
cm9sbFBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OnNj
cm9sbFNpemUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJv
eDo6c2Nyb2xsT2Zmc2V0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5oOgorCiAyMDE5LTA2LTExICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFw
cGxlLmNvbT4KIAogICAgICAgICBGbGFzaCB3aGVuIHRhcHBpbmcgY29tcG9zZSBidXR0b24gYWZ0
ZXIgc3dpdGNoaW5nIHRvL2Zyb20gZGFyayBtb2RlIHdpdGhvdXQgcmVzdGFydGluZyBNYWlsLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCA4ZTQ2MWY5ZDNlNjFiOTIxMzk2NmM5Nzg4OTliYjM1MWUxNjI0OGZhLi5lOTFl
Mzg2MWU2MjEzZTg3MDlhZjgzNWU5YWU4ZjZhYWNkYjc5ZGM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIyIEBACisyMDE5LTA2LTE1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgorCisgICAgICAgIEltcGxlbWVudCBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsT2Zmc2V0KCkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODg5NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNz
L3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBvcHVwTWVu
dVdpbjo6c2Nyb2xsUG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1cE1l
bnVQcm94eVdpbjo6b25LZXlEb3duKTogSnVzdCB1c2UgbV9zY3JvbGxPZmZzZXQuCisgICAgICAg
IChXZWJLaXQ6OldlYlBvcHVwTWVudVByb3h5V2luOjpzY3JvbGxTaXplIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmg6IFJlbW92
ZSB0aGUgb25lLWF4aXMgc2Nyb2xsT2Zmc2V0KCkKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdp
bnMvUERGL1BERlBsdWdpbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLm1tOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46OnNjcm9sbFNpemUgY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46OnNjcm9sbE9mZnNldCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3QpOgorCiAyMDE5
LTA2LTExICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBG
bGFzaCB3aGVuIHRhcHBpbmcgY29tcG9zZSBidXR0b24gYWZ0ZXIgc3dpdGNoaW5nIHRvL2Zyb20g
ZGFyayBtb2RlIHdpdGhvdXQgcmVzdGFydGluZyBNYWlsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgK
aW5kZXggMzkwMzAxZjM3NTg3MWMxNTQzMDZkODNjM2I5OGU1N2QzZjQ3MzIyOC4uYmY5NDAxMmYy
ZmYyYTVhMGI3ODhlZjMxNTk1MDM4NDEzZGZkMDhkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CkBAIC0xNTMsNyArMTUzLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNz
TGF5ZXIqIGdyYXBoaWNzTGF5ZXJGb3JQbGF0Zm9ybVdpZGdldChQbGF0Zm9ybVdpZGdldCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZUxheWVyRmx1c2hBbGxvd2luZ1Rocm90dGxp
bmcoKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIFRpbGVkQmFja2luZyogdGlsZWRCYWNraW5nKCkg
Y29uc3QgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgVGlsZWRCYWNraW5nKiB0aWxlZEJhY2tp
bmcoKSBjb25zdDsKIAogICAgIFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdOb2RlSUQoKSBjb25z
dCBvdmVycmlkZTsKICAgICBTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWFGb3JTY3JvbGxM
YXllcklEKHVpbnQ2NF90KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5j
cHAKaW5kZXggNjFiYjUxOGJjYTFhOTVlYTk1YmY5NzhmODlmZDQ2MTE0ZWNiNWQ0MC4uYjEyNmE5
YzJiNzA2YTExNzM0NmM1NzQwNzg1MWUzODU1ODJjYzk2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsVmlldy5jcHAKQEAgLTM3OCwxOSArMzc4LDYgQEAgU2Nyb2xsUG9zaXRpb24gU2Ny
b2xsVmlldzo6ZG9jdW1lbnRTY3JvbGxQb3NpdGlvblJlbGF0aXZlVG9TY3JvbGxhYmxlQXJlYU9y
aWdpbigKICAgICByZXR1cm4gc2Nyb2xsUG9zaXRpb24oKSAtIEludFNpemUoMCwgaGVhZGVySGVp
Z2h0KCkpOwogfQogCi1pbnQgU2Nyb2xsVmlldzo6c2Nyb2xsU2l6ZShTY3JvbGxiYXJPcmllbnRh
dGlvbiBvcmllbnRhdGlvbikgY29uc3QKLXsKLSAgICAvLyBJZiBubyBzY3JvbGxiYXJzIGFyZSBw
cmVzZW50LCBpdCBkb2VzIG5vdCBpbmRpY2F0ZSBjb250ZW50IGlzIG5vdCBiZSBzY3JvbGxhYmxl
LgotICAgIGlmICghbV9ob3Jpem9udGFsU2Nyb2xsYmFyICYmICFtX3ZlcnRpY2FsU2Nyb2xsYmFy
ICYmICFwcm9oaWJpdHNTY3JvbGxpbmcoKSkgewotICAgICAgICBJbnRTaXplIHNjcm9sbFNpemUg
PSBtX2NvbnRlbnRzU2l6ZSAtIHZpc2libGVDb250ZW50UmVjdChMZWdhY3lJT1NEb2N1bWVudFZp
c2libGVSZWN0KS5zaXplKCk7Ci0gICAgICAgIHNjcm9sbFNpemUuY2xhbXBOZWdhdGl2ZVRvWmVy
bygpOwotICAgICAgICByZXR1cm4gb3JpZW50YXRpb24gPT0gSG9yaXpvbnRhbFNjcm9sbGJhciA/
IHNjcm9sbFNpemUud2lkdGgoKSA6IHNjcm9sbFNpemUuaGVpZ2h0KCk7Ci0gICAgfQotCi0gICAg
U2Nyb2xsYmFyKiBzY3JvbGxiYXIgPSAoKG9yaWVudGF0aW9uID09IEhvcml6b250YWxTY3JvbGxi
YXIpID8gbV9ob3Jpem9udGFsU2Nyb2xsYmFyIDogbV92ZXJ0aWNhbFNjcm9sbGJhcikuZ2V0KCk7
Ci0gICAgcmV0dXJuIHNjcm9sbGJhciA/IChzY3JvbGxiYXItPnRvdGFsU2l6ZSgpIC0gc2Nyb2xs
YmFyLT52aXNpYmxlU2l6ZSgpKSA6IDA7Ci19Ci0KIHZvaWQgU2Nyb2xsVmlldzo6bm90aWZ5UGFn
ZVRoYXRDb250ZW50QXJlYVdpbGxQYWludCgpIGNvbnN0CiB7CiB9CkBAIC00NzQsMTkgKzQ2MSw2
IEBAIHZvaWQgU2Nyb2xsVmlldzo6Y29tcGxldGVVcGRhdGVzQWZ0ZXJTY3JvbGxUbyhjb25zdCBJ
bnRTaXplJiBzY3JvbGxEZWx0YSkKICAgICB1cGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyU2Ny
b2xsaW5nKCk7CiB9CiAKLWludCBTY3JvbGxWaWV3OjpzY3JvbGxPZmZzZXQoU2Nyb2xsYmFyT3Jp
ZW50YXRpb24gb3JpZW50YXRpb24pIGNvbnN0Ci17Ci0gICAgU2Nyb2xsT2Zmc2V0IG9mZnNldCA9
IHNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbihzY3JvbGxQb3NpdGlvbigpKTsKLQotICAgIGlmIChv
cmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQotICAgICAgICByZXR1cm4gb2Zmc2V0
LngoKTsKLQotICAgIGlmIChvcmllbnRhdGlvbiA9PSBWZXJ0aWNhbFNjcm9sbGJhcikKLSAgICAg
ICAgcmV0dXJuIG9mZnNldC55KCk7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQogdm9pZCBTY3JvbGxW
aWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRp
b24pCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxW
aWV3OjpzZXRTY3JvbGxQb3NpdGlvbiAiIDw8IHNjcm9sbFBvc2l0aW9uKTsKQEAgLTUyOCw3ICs1
MDIsNyBAQCBJbnRTaXplIFNjcm9sbFZpZXc6Om92ZXJoYW5nQW1vdW50KCkgY29uc3QKICAgICBJ
bnRTaXplIHN0cmV0Y2g7CiAKICAgICAvLyBGSVhNRTogdXNlIG1heGltdW1TY3JvbGxPZmZzZXQo
KQotICAgIFNjcm9sbE9mZnNldCBzY3JvbGxPZmZzZXQgPSBzY3JvbGxPZmZzZXRGcm9tUG9zaXRp
b24oc2Nyb2xsUG9zaXRpb24oKSk7CisgICAgU2Nyb2xsT2Zmc2V0IHNjcm9sbE9mZnNldCA9IHRo
aXMtPnNjcm9sbE9mZnNldCgpOwogICAgIGlmIChzY3JvbGxPZmZzZXQueSgpIDwgMCkKICAgICAg
ICAgc3RyZXRjaC5zZXRIZWlnaHQoc2Nyb2xsT2Zmc2V0LnkoKSk7CiAgICAgZWxzZSBpZiAodG90
YWxDb250ZW50c1NpemUoKS5oZWlnaHQoKSAmJiBzY3JvbGxPZmZzZXQueSgpID4gdG90YWxDb250
ZW50c1NpemUoKS5oZWlnaHQoKSAtIHZpc2libGVIZWlnaHQoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbFZpZXcuaAppbmRleCBmZjgyYzI3NjQ0Y2EwZTEwZGM1NDhjODhlMWI1ZTdhZWFjMThm
ZDk3Li4wM2ViNWQxNzBhN2I3ZmRkMTViMjM4OTIwNDkzZTU4ZjU5NWI1MDAwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC02OSw4ICs2OSw2IEBAIHB1YmxpYzoKICAgICB1
c2luZyBXaWRnZXQ6OndlYWtQdHJGYWN0b3J5OwogCiAgICAgLy8gU2Nyb2xsYWJsZUFyZWEgZnVu
Y3Rpb25zLgotICAgIGludCBzY3JvbGxTaXplKFNjcm9sbGJhck9yaWVudGF0aW9uKSBjb25zdCBm
aW5hbDsKLSAgICBpbnQgc2Nyb2xsT2Zmc2V0KFNjcm9sbGJhck9yaWVudGF0aW9uKSBjb25zdCBm
aW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcm9sbE9mZnNldChjb25zdCBTY3Jv
bGxPZmZzZXQmKSBmaW5hbDsKICAgICBib29sIGlzU2Nyb2xsQ29ybmVyVmlzaWJsZSgpIGNvbnN0
IGZpbmFsOwogICAgIHZvaWQgc2Nyb2xsYmFyU3R5bGVDaGFuZ2VkKFNjcm9sbGJhclN0eWxlLCBi
b29sIGZvcmNlVXBkYXRlKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmNwcAppbmRleCBhOThlNWRhYjZlZjYwZGNhYjJmOTc3MTlkNWYwZDhlY2U1ZWYx
MzFiLi5jODg4MmVlMjMwNTA5NzFjOTQ2YTU1YTk3ZmFhMzdiZjA5ZTUxMzk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC01NzIsNyArNTcyLDYgQEAg
dm9pZCBTY3JvbGxhYmxlQXJlYTo6c2VydmljZVNjcm9sbEFuaW1hdGlvbnMoKQogICAgICAgICBz
Y3JvbGxBbmltYXRvci0+c2VydmljZVNjcm9sbEFuaW1hdGlvbnMoKTsKIH0KIAotI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiBib29sIFNjcm9sbGFibGVBcmVhOjppc1Bpbm5lZEluQm90aERpcmVj
dGlvbnMoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlz
UGlubmVkSG9yaXpvbnRhbGx5SW5EaXJlY3Rpb24oc2Nyb2xsRGVsdGEud2lkdGgoKSkgJiYgaXNQ
aW5uZWRWZXJ0aWNhbGx5SW5EaXJlY3Rpb24oc2Nyb2xsRGVsdGEuaGVpZ2h0KCkpOwpAQCAtNTk1
LDcgKzU5NCw2IEBAIGJvb2wgU2Nyb2xsYWJsZUFyZWE6OmlzUGlubmVkVmVydGljYWxseUluRGly
ZWN0aW9uKGludCB2ZXJ0aWNhbFNjcm9sbERlbHRhKSBjb25zCiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIHJldHVybiBmYWxzZTsKIH0KLSNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQog
CiBpbnQgU2Nyb2xsYWJsZUFyZWE6Omhvcml6b250YWxTY3JvbGxiYXJJbnRydXNpb24oKSBjb25z
dAogewpAQCAtNjEyLDEyICs2MTAsOSBAQCBJbnRTaXplIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxi
YXJJbnRydXNpb24oKSBjb25zdAogICAgIHJldHVybiB7IGhvcml6b250YWxTY3JvbGxiYXJJbnRy
dXNpb24oKSwgdmVydGljYWxTY3JvbGxiYXJJbnRydXNpb24oKSB9OwogfQogCi1TY3JvbGxQb3Np
dGlvbiBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsUG9zaXRpb24oKSBjb25zdAorU2Nyb2xsT2Zmc2V0
IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxPZmZzZXQoKSBjb25zdAogewotICAgIC8vIEZJWE1FOiBU
aGlzIHJlbGF0aW9uc2hpcCBzZWVtcyB0byBiZSBpbnZlcnRlZC4gU2Nyb2xsYmFycyBzaG91bGQg
YmUgJ3ZpZXcnLCBub3QgJ21vZGVsJywgYW5kIHNob3VsZCBnZXQgdGhlaXIgdmFsdWVzIGZyb20g
dXMuCi0gICAgaW50IHggPSBob3Jpem9udGFsU2Nyb2xsYmFyKCkgPyBob3Jpem9udGFsU2Nyb2xs
YmFyKCktPnZhbHVlKCkgOiAwOwotICAgIGludCB5ID0gdmVydGljYWxTY3JvbGxiYXIoKSA/IHZl
cnRpY2FsU2Nyb2xsYmFyKCktPnZhbHVlKCkgOiAwOwotICAgIHJldHVybiBJbnRQb2ludCh4LCB5
KTsKKyAgICByZXR1cm4gc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKCkp
OwogfQogCiBTY3JvbGxQb3NpdGlvbiBTY3JvbGxhYmxlQXJlYTo6bWluaW11bVNjcm9sbFBvc2l0
aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFi
bGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmluZGV4
IGZkZTYwN2YzODY4MmUzOTBiOTE0ZTQ4NjE3ODFmZmZhMTNlYTI4YWYuLmQ3NDM4YzE1Y2Q1MWQ2
NjYwYzBmNzM4YWMyZTk3ZmFiZjVhYmRjMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsYWJsZUFyZWEuaApAQCAtNDgsNiArNDgsMTggQEAgdHlwZWRlZiBJbnRQb2ludCBTY3JvbGxQ
b3NpdGlvbjsKIC8vIHNjcm9sbE9mZnNldCgpIGlzIHRoZSB2YWx1ZSB1c2VkIGJ5IHNjcm9sbGJh
cnMgKG1pbiBpcyAwLDApLCBhbmQgc2hvdWxkIG5ldmVyIGhhdmUgbmVnYXRpdmUgY29tcG9uZW50
cy4KIHR5cGVkZWYgSW50UG9pbnQgU2Nyb2xsT2Zmc2V0OwogCisKK2lubGluZSBpbnQgb2Zmc2V0
Rm9yT3JpZW50YXRpb24oU2Nyb2xsT2Zmc2V0IG9mZnNldCwgU2Nyb2xsYmFyT3JpZW50YXRpb24g
b3JpZW50YXRpb24pCit7CisgICAgc3dpdGNoIChvcmllbnRhdGlvbikgeworICAgIGNhc2UgSG9y
aXpvbnRhbFNjcm9sbGJhcjogcmV0dXJuIG9mZnNldC54KCk7CisgICAgY2FzZSBWZXJ0aWNhbFNj
cm9sbGJhcjogcmV0dXJuIG9mZnNldC55KCk7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiAwOworfQorCisKIGNsYXNzIFNjcm9sbGFibGVBcmVhIDogcHVibGlj
IENhbk1ha2VXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxv
YXQgbXVsdGlwbGllciA9IDEpOwpAQCAtMTU3LDggKzE2OSw2IEBAIHB1YmxpYzoKICAgICBTY3Jv
bGxBbmltYXRvciogZXhpc3RpbmdTY3JvbGxBbmltYXRvcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Ny
b2xsQW5pbWF0b3IuZ2V0KCk7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0
ID0gMDsKLSAgICB2aXJ0dWFsIGludCBzY3JvbGxTaXplKFNjcm9sbGJhck9yaWVudGF0aW9uKSBj
b25zdCA9IDA7Ci0gICAgdmlydHVhbCBpbnQgc2Nyb2xsT2Zmc2V0KFNjcm9sbGJhck9yaWVudGF0
aW9uKSBjb25zdCA9IDA7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGludmFsaWRh
dGVTY3JvbGxiYXIoU2Nyb2xsYmFyJiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZpcnR1YWwgYm9v
bCBpc1Njcm9sbENvcm5lclZpc2libGUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRSZWN0
IHNjcm9sbENvcm5lclJlY3QoKSBjb25zdCA9IDA7CkBAIC0xOTYsNyArMjA2LDcgQEAgcHVibGlj
OgogICAgIGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX3Nj
cm9sbE9yaWdpbjsgfQogICAgIGJvb2wgc2Nyb2xsT3JpZ2luQ2hhbmdlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2Nyb2xsT3JpZ2luQ2hhbmdlZDsgfQogCi0gICAgdmlydHVhbCBTY3JvbGxQb3NpdGlv
biBzY3JvbGxQb3NpdGlvbigpIGNvbnN0OworICAgIHZpcnR1YWwgU2Nyb2xsUG9zaXRpb24gc2Ny
b2xsUG9zaXRpb24oKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBTY3JvbGxQb3NpdGlvbiBtaW5p
bXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdDsKICAgICB2aXJ0dWFsIFNjcm9sbFBvc2l0aW9uIG1h
eGltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0OwogCkBAIC0yMDUsNiArMjE1LDggQEAgcHVibGlj
OgogICAgICAgICByZXR1cm4gcG9zaXRpb24uY29uc3RyYWluZWRCZXR3ZWVuKG1pbmltdW1TY3Jv
bGxQb3NpdGlvbigpLCBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSk7CiAgICAgfQogCisgICAgV0VC
Q09SRV9FWFBPUlQgU2Nyb2xsT2Zmc2V0IHNjcm9sbE9mZnNldCgpIGNvbnN0OworCiAgICAgU2Ny
b2xsT2Zmc2V0IG1heGltdW1TY3JvbGxPZmZzZXQoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIFNjcm9sbFBvc2l0aW9uIHNjcm9sbFBvc2l0aW9uRnJvbU9mZnNldChTY3JvbGxPZmZzZXQp
IGNvbnN0OwpAQCAtMjk4LDE4ICszMTAsMTQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBz
Y2hlZHVsZUFuaW1hdGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdm9pZCBzZXJ2aWNlU2Ny
b2xsQW5pbWF0aW9ucygpOwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBib29sIGlz
SG9yaXpvbnRhbFNjcm9sbGVyUGlubmVkVG9NaW5pbXVtUG9zaXRpb24oKSBjb25zdCB7IHJldHVy
biAhaG9yaXpvbnRhbFNjcm9sbGJhcigpIHx8IHNjcm9sbE9mZnNldChIb3Jpem9udGFsU2Nyb2xs
YmFyKSA8PSAwOyB9Ci0gICAgYm9vbCBpc0hvcml6b250YWxTY3JvbGxlclBpbm5lZFRvTWF4aW11
bVBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gIWhvcml6b250YWxTY3JvbGxiYXIoKSB8fCBzY3Jv
bGxPZmZzZXQoSG9yaXpvbnRhbFNjcm9sbGJhcikgPj0gbWF4aW11bVNjcm9sbE9mZnNldCgpLngo
KTsgfQotICAgIGJvb2wgaXNWZXJ0aWNhbFNjcm9sbGVyUGlubmVkVG9NaW5pbXVtUG9zaXRpb24o
KSBjb25zdCB7IHJldHVybiAhdmVydGljYWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxPZmZzZXQoVmVy
dGljYWxTY3JvbGxiYXIpIDw9IDA7IH0KLSAgICBib29sIGlzVmVydGljYWxTY3JvbGxlclBpbm5l
ZFRvTWF4aW11bVBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gIXZlcnRpY2FsU2Nyb2xsYmFyKCkg
fHwgc2Nyb2xsT2Zmc2V0KFZlcnRpY2FsU2Nyb2xsYmFyKSA+PSBtYXhpbXVtU2Nyb2xsT2Zmc2V0
KCkueSgpOyB9CisgICAgYm9vbCBpc0hvcml6b250YWxTY3JvbGxlclBpbm5lZFRvTWluaW11bVBv
c2l0aW9uKCkgY29uc3QgeyByZXR1cm4gIWhvcml6b250YWxTY3JvbGxiYXIoKSB8fCBzY3JvbGxP
ZmZzZXQoKS54KCkgPD0gMDsgfQorICAgIGJvb2wgaXNIb3Jpem9udGFsU2Nyb2xsZXJQaW5uZWRU
b01heGltdW1Qb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuICFob3Jpem9udGFsU2Nyb2xsYmFyKCkg
fHwgc2Nyb2xsT2Zmc2V0KCkueCgpID49IG1heGltdW1TY3JvbGxPZmZzZXQoKS54KCk7IH0KKyAg
ICBib29sIGlzVmVydGljYWxTY3JvbGxlclBpbm5lZFRvTWluaW11bVBvc2l0aW9uKCkgY29uc3Qg
eyByZXR1cm4gIXZlcnRpY2FsU2Nyb2xsYmFyKCkgfHwgc2Nyb2xsT2Zmc2V0KCkueSgpIDw9IDA7
IH0KKyAgICBib29sIGlzVmVydGljYWxTY3JvbGxlclBpbm5lZFRvTWF4aW11bVBvc2l0aW9uKCkg
Y29uc3QgeyByZXR1cm4gIXZlcnRpY2FsU2Nyb2xsYmFyKCkgfHwgc2Nyb2xsT2Zmc2V0KCkueSgp
ID49IG1heGltdW1TY3JvbGxPZmZzZXQoKS55KCk7IH0KIAogICAgIGJvb2wgaXNQaW5uZWRJbkJv
dGhEaXJlY3Rpb25zKGNvbnN0IEludFNpemUmKSBjb25zdDsgCiAgICAgYm9vbCBpc1Bpbm5lZEhv
cml6b250YWxseUluRGlyZWN0aW9uKGludCBob3Jpem9udGFsU2Nyb2xsRGVsdGEpIGNvbnN0OyAK
ICAgICBib29sIGlzUGlubmVkVmVydGljYWxseUluRGlyZWN0aW9uKGludCB2ZXJ0aWNhbFNjcm9s
bERlbHRhKSBjb25zdDsKLSNlbmRpZgotCi0gICAgdmlydHVhbCBUaWxlZEJhY2tpbmcqIHRpbGVk
QmFja2luZygpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KIAogICAgIC8vIFRydWUgaWYgc2Ny
b2xsaW5nIGhhcHBlbnMgYnkgbW92aW5nIGNvbXBvc2l0aW5nIGxheWVycy4KICAgICB2aXJ0dWFs
IGJvb2wgdXNlc0NvbXBvc2l0ZWRTY3JvbGxpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAKaW5kZXggMjVmOGFmMTZhMTg1ZGVjMWRj
ZjIyN2YwMDk1MWM2ODgzMjljOGZjOC4uMzk2OTE1NTBkOWZhMmU3Mzk1YzU1MzA5YjNlMjRlNzcz
MmVkZmI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCkBAIC02OSw3ICs2
OSw3IEBAIFNjcm9sbGJhcjo6U2Nyb2xsYmFyKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJl
YSwgU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50CiAgICAgaW50IHRoaWNrbmVzcyA9IHRoZW1l
KCkuc2Nyb2xsYmFyVGhpY2tuZXNzKGNvbnRyb2xTaXplKTsKICAgICBXaWRnZXQ6OnNldEZyYW1l
UmVjdChJbnRSZWN0KDAsIDAsIHRoaWNrbmVzcywgdGhpY2tuZXNzKSk7CiAKLSAgICBtX2N1cnJl
bnRQb3MgPSBzdGF0aWNfY2FzdDxmbG9hdD4obV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxPZmZzZXQo
bV9vcmllbnRhdGlvbikpOworICAgIG1fY3VycmVudFBvcyA9IHN0YXRpY19jYXN0PGZsb2F0Pihv
ZmZzZXRGb3JPcmllbnRhdGlvbihtX3Njcm9sbGFibGVBcmVhLnNjcm9sbE9mZnNldCgpLCBtX29y
aWVudGF0aW9uKSk7CiB9CiAKIFNjcm9sbGJhcjo6flNjcm9sbGJhcigpCkBAIC05MSw3ICs5MSw3
IEBAIGludCBTY3JvbGxiYXI6Om9jY3VwaWVkSGVpZ2h0KCkgY29uc3QKIAogdm9pZCBTY3JvbGxi
YXI6Om9mZnNldERpZENoYW5nZSgpCiB7Ci0gICAgZmxvYXQgcG9zaXRpb24gPSBzdGF0aWNfY2Fz
dDxmbG9hdD4obV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxPZmZzZXQobV9vcmllbnRhdGlvbikpOwor
ICAgIGZsb2F0IHBvc2l0aW9uID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG9mZnNldEZvck9yaWVudGF0
aW9uKG1fc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsT2Zmc2V0KCksIG1fb3JpZW50YXRpb24pKTsKICAg
ICBpZiAocG9zaXRpb24gPT0gbV9jdXJyZW50UG9zKQogICAgICAgICByZXR1cm47CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxBbmltYXRvcklPUy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxBbmltYXRvcklPUy5tbQppbmRleCA0
OTU3NDY4OGI3MTA0Mjk0NmY5M2I5MDBiYmQyMjk4NTg2N2FiZWJlLi4wMWYwYTliYjIwYTI0OGI2
OTk4ODU2NDcwYWVlMzc0YTk4Y2ZhNTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvU2Nyb2xsQW5pbWF0b3JJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1Njcm9sbEFuaW1hdG9ySU9TLm1tCkBAIC0xMDMsOCArMTAzLDkgQEAgYm9vbCBTY3Jv
bGxBbmltYXRvcklPUzo6aGFuZGxlVG91Y2hFdmVudChjb25zdCBQbGF0Zm9ybVRvdWNoRXZlbnQm
IHRvdWNoRXZlbnQpCiAgICAgICAgIGRldGVybWluZVNjcm9sbGFibGVBcmVhRm9yVG91Y2hTZXF1
ZW5jZSh0b3VjaERlbHRhKTsKIAogICAgIGlmICghbV9jb21taXR0ZWRUb1Njcm9sbEF4aXMpIHsK
LSAgICAgICAgYm9vbCBob3Jpem9udGFsbHlTY3JvbGxhYmxlID0gbV9zY3JvbGxhYmxlQXJlYS5z
Y3JvbGxTaXplKEhvcml6b250YWxTY3JvbGxiYXIpOwotICAgICAgICBib29sIHZlcnRpY2FsbHlT
Y3JvbGxhYmxlID0gbV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxTaXplKFZlcnRpY2FsU2Nyb2xsYmFy
KTsKKyAgICAgICAgYXV0byBzY3JvbGxTaXplID0gbV9zY3JvbGxhYmxlQXJlYS5tYXhpbXVtU2Ny
b2xsUG9zaXRpb24oKSAtIG1fc2Nyb2xsYWJsZUFyZWEubWluaW11bVNjcm9sbFBvc2l0aW9uKCk7
CisgICAgICAgIGJvb2wgaG9yaXpvbnRhbGx5U2Nyb2xsYWJsZSA9IHNjcm9sbFNpemUud2lkdGgo
KTsKKyAgICAgICAgYm9vbCB2ZXJ0aWNhbGx5U2Nyb2xsYWJsZSA9IHNjcm9sbFNpemUuaGVpZ2h0
KCk7CiAKICAgICAgICAgaWYgKCFob3Jpem9udGFsbHlTY3JvbGxhYmxlICYmICF2ZXJ0aWNhbGx5
U2Nyb2xsYWJsZSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAKaW5kZXggNTIyYTM0MDhlYjRhNGIyMjNmNjc2
MDdmYTEzOTFkZmYwYTlhZjc2Ni4uN2M3YmZkZmIxOGM1YmU2N2UxNzBkYTk2NDNiOWMzZGRlNWMz
MmRmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdp
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5jcHAK
QEAgLTY3OSwxNCArNjc5LDkgQEAgdm9pZCBQb3B1cE1lbnVXaW46OnBhaW50KGNvbnN0IEludFJl
Y3QmIGRhbWFnZVJlY3QsIEhEQyBoZGMpCiAgICAgOjpCaXRCbHQobG9jYWxEQywgZGFtYWdlUmVj
dC54KCksIGRhbWFnZVJlY3QueSgpLCBkYW1hZ2VSZWN0LndpZHRoKCksIGRhbWFnZVJlY3QuaGVp
Z2h0KCksIG1fREMuZ2V0KCksIGRhbWFnZVJlY3QueCgpLCBkYW1hZ2VSZWN0LnkoKSwgU1JDQ09Q
WSk7CiB9CiAKLWludCBQb3B1cE1lbnVXaW46OnNjcm9sbFNpemUoU2Nyb2xsYmFyT3JpZW50YXRp
b24gb3JpZW50YXRpb24pIGNvbnN0CitTY3JvbGxQb3NpdGlvbiBQb3B1cE1lbnVXaW46OnNjcm9s
bFBvc2l0aW9uKCkgY29uc3QKIHsKLSAgICByZXR1cm4gKChvcmllbnRhdGlvbiA9PSBWZXJ0aWNh
bFNjcm9sbGJhcikgJiYgbV9zY3JvbGxiYXIpID8gKG1fc2Nyb2xsYmFyLT50b3RhbFNpemUoKSAt
IG1fc2Nyb2xsYmFyLT52aXNpYmxlU2l6ZSgpKSA6IDA7Ci19Ci0KLWludCBQb3B1cE1lbnVXaW46
OnNjcm9sbE9mZnNldChTY3JvbGxiYXJPcmllbnRhdGlvbikgY29uc3QKLXsKLSAgICByZXR1cm4g
bV9zY3JvbGxPZmZzZXQ7CisgICAgcmV0dXJuIHsgMCwgbV9zY3JvbGxPZmZzZXQgfTsKIH0KIAog
dm9pZCBQb3B1cE1lbnVXaW46OnNldFNjcm9sbE9mZnNldChjb25zdCBJbnRQb2ludCYgb2Zmc2V0
KQpAQCAtODkyLDkgKzg4Nyw5IEBAIExSRVNVTFQgUG9wdXBNZW51V2luOjp3bmRQcm9jKEhXTkQg
aFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLCBMUEFSQU0gbFBhCiAgICAgICAgICAg
ICAgICAgICAgIGZvY3VzTGFzdCgpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgICAgICBjYXNlIFZLX1BSSU9SOgotICAgICAgICAgICAgICAgICAgICBpZiAoZm9jdXNl
ZEluZGV4KCkgIT0gc2Nyb2xsT2Zmc2V0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGZv
Y3VzZWRJbmRleCgpICE9IG1fc2Nyb2xsT2Zmc2V0KSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBTZXQgdGhlIHNlbGVjdGlvbiB0byB0aGUgZmlyc3QgdmlzaWJsZSBpdGVtCi0gICAgICAg
ICAgICAgICAgICAgICAgICBpbnQgZmlyc3RWaXNpYmxlSXRlbSA9IHNjcm9sbE9mZnNldCgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZpcnN0VmlzaWJsZUl0ZW0gPSBtX3Njcm9sbE9m
ZnNldDsKICAgICAgICAgICAgICAgICAgICAgICAgIHVwKGZvY3VzZWRJbmRleCgpIC0gZmlyc3RW
aXNpYmxlSXRlbSk7CiAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBUaGUgZmlyc3QgdmlzaWJsZSBpdGVtIGlzIHNlbGVjdGVkLCBzbyBtb3Zl
IHRoZSBzZWxlY3Rpb24gYmFjayBvbmUgcGFnZQpAQCAtOTAyLDcgKzg5Nyw3IEBAIExSRVNVTFQg
UG9wdXBNZW51V2luOjp3bmRQcm9jKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1Bh
cmFtLCBMUEFSQU0gbFBhCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgY2FzZSBWS19ORVhUOiB7Ci0gICAgICAgICAgICAg
ICAgICAgIGludCBsYXN0VmlzaWJsZUl0ZW0gPSBzY3JvbGxPZmZzZXQoKSArIHZpc2libGVJdGVt
cygpIC0gMTsKKyAgICAgICAgICAgICAgICAgICAgaW50IGxhc3RWaXNpYmxlSXRlbSA9IG1fc2Ny
b2xsT2Zmc2V0ICsgdmlzaWJsZUl0ZW1zKCkgLSAxOwogICAgICAgICAgICAgICAgICAgICBpZiAo
Zm9jdXNlZEluZGV4KCkgIT0gbGFzdFZpc2libGVJdGVtKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBTZXQgdGhlIHNlbGVjdGlvbiB0byB0aGUgbGFzdCB2aXNpYmxlIGl0ZW0KICAgICAg
ICAgICAgICAgICAgICAgICAgIGRvd24obGFzdFZpc2libGVJdGVtIC0gZm9jdXNlZEluZGV4KCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oCmluZGV4IDM2M2Ew
YTNhYjVkNWE0YzI0NDJlNmZhNGY1OWJiNDAwZjMxY2JmZWMuLjM1MjliOGYyODc5Mzc3MzdkOGYy
NDMxNmVjZDZjMjlkNGQ3NjExYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9Qb3B1cE1lbnVXaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9w
dXBNZW51V2luLmgKQEAgLTc3LDggKzc3LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFdhc0Ns
aWNrZWQoYm9vbCBiID0gdHJ1ZSkgeyBtX3dhc0NsaWNrZWQgPSBiOyB9CiAgICAgYm9vbCB3YXND
bGlja2VkKCkgY29uc3QgeyByZXR1cm4gbV93YXNDbGlja2VkOyB9CiAKLSAgICBpbnQgc2Nyb2xs
T2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxPZmZzZXQ7IH0KLQogICAgIGJvb2wgc2Ny
b2xsVG9SZXZlYWxTZWxlY3Rpb24oKTsKIAogICAgIHZvaWQgaW5jcmVtZW50V2hlZWxEZWx0YShp
bnQgZGVsdGEpOwpAQCAtODksOCArODcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0U2Nyb2xs
YmFyQ2FwdHVyaW5nTW91c2UoYm9vbCBiKSB7IG1fc2Nyb2xsYmFyQ2FwdHVyaW5nTW91c2UgPSBi
OyB9CiAKICAgICAvLyBTY3JvbGxhYmxlQXJlYQotICAgIGludCBzY3JvbGxTaXplKFNjcm9sbGJh
ck9yaWVudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKLSAgICBpbnQgc2Nyb2xsT2Zmc2V0KFNjcm9s
bGJhck9yaWVudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKKyAgICBTY3JvbGxQb3NpdGlvbiBzY3Jv
bGxQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGNv
bnN0IEludFBvaW50Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVj
dChTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBpbnZhbGlk
YXRlU2Nyb2xsQ29ybmVyUmVjdChjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGUgeyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBhNmEzMDQ2NmVkMTc0YTY4Mzgy
YzM0MWM1ODBkMzEzMzMxMjdmZjBhLi5jMzA4YTdhNDUzZjAyYmM2MDlmZTY2NjEwNGUwYzA3MTE5
MGM3NTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTI4
OTQsMjggKzI4OTQsMTEgQEAgdm9pZCBSZW5kZXJMYXllcjo6cmVzaXplKGNvbnN0IFBsYXRmb3Jt
TW91c2VFdmVudCYgZXZ0LCBjb25zdCBMYXlvdXRTaXplJiBvbGRPZmYKICAgICAvLyBGSVhNRSAo
UmFkYXIgNDExODU2NCk6IFdlIHNob3VsZCBhbHNvIGF1dG9zY3JvbGwgdGhlIHdpbmRvdyBhcyBu
ZWNlc3NhcnkgdG8ga2VlcCB0aGUgcG9pbnQgdW5kZXIgdGhlIGN1cnNvciBpbiB2aWV3LgogfQog
Ci1pbnQgUmVuZGVyTGF5ZXI6OnNjcm9sbFNpemUoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50
YXRpb24pIGNvbnN0Ci17Ci0gICAgU2Nyb2xsYmFyKiBzY3JvbGxiYXIgPSAoKG9yaWVudGF0aW9u
ID09IEhvcml6b250YWxTY3JvbGxiYXIpID8gbV9oQmFyIDogbV92QmFyKS5nZXQoKTsKLSAgICBy
ZXR1cm4gc2Nyb2xsYmFyID8gKHNjcm9sbGJhci0+dG90YWxTaXplKCkgLSBzY3JvbGxiYXItPnZp
c2libGVTaXplKCkpIDogMDsKLX0KLQogdm9pZCBSZW5kZXJMYXllcjo6c2V0U2Nyb2xsT2Zmc2V0
KGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0KQogewogICAgIHNjcm9sbFRvKHNjcm9sbFBvc2l0
aW9uRnJvbU9mZnNldChvZmZzZXQpKTsKIH0KIAotaW50IFJlbmRlckxheWVyOjpzY3JvbGxPZmZz
ZXQoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24pIGNvbnN0Ci17Ci0gICAgaWYgKG9y
aWVudGF0aW9uID09IEhvcml6b250YWxTY3JvbGxiYXIpCi0gICAgICAgIHJldHVybiBzY3JvbGxP
ZmZzZXQoKS54KCk7Ci0KLSAgICBpZiAob3JpZW50YXRpb24gPT0gVmVydGljYWxTY3JvbGxiYXIp
Ci0gICAgICAgIHJldHVybiBzY3JvbGxPZmZzZXQoKS55KCk7Ci0KLSAgICByZXR1cm4gMDsKLX0K
LQogU2Nyb2xsaW5nTm9kZUlEIFJlbmRlckxheWVyOjpzY3JvbGxpbmdOb2RlSUQoKSBjb25zdAog
ewogICAgIGlmICghaXNDb21wb3NpdGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oCmluZGV4IDVlMDdiYzc3NWYyMmJlNDgwZmRlMjQyYzU4Yzc4ZGE0NjM3M2EzMmQuLjhj
Yzg3NTg4YTBjOWQ0ZDBiNWE0YjRhMDg1MTUyNjZlNjU5YTcwZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC00NDIsOCArNDQyLDYgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0UG9zdExheW91dFNjcm9sbFBvc2l0aW9uKE9wdGlvbmFsPFNjcm9sbFBvc2l0aW9uPik7
CiAgICAgdm9pZCBhcHBseVBvc3RMYXlvdXRTY3JvbGxQb3NpdGlvbklmTmVlZGVkKCk7CiAKLSAg
ICBTY3JvbGxPZmZzZXQgc2Nyb2xsT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gc2Nyb2xsT2Zmc2V0
RnJvbVBvc2l0aW9uKG1fc2Nyb2xsUG9zaXRpb24pOyB9Ci0KICAgICB2b2lkIGF2YWlsYWJsZUNv
bnRlbnRTaXplQ2hhbmdlZChBdmFpbGFibGVTaXplQ2hhbmdlUmVhc29uKSBvdmVycmlkZTsKIAog
ICAgIC8vICJhYnNvbHV0ZVJlY3QiIGlzIGluIHNjYWxlZCBkb2N1bWVudCBjb29yZGluYXRlcy4K
QEAgLTEwNzMsOCArMTA3MSw2IEBAIHByaXZhdGU6CiAKICAgICBib29sIHNob3VsZEJlU2VsZlBh
aW50aW5nTGF5ZXIoKSBjb25zdDsKIAotICAgIGludCBzY3JvbGxPZmZzZXQoU2Nyb2xsYmFyT3Jp
ZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwotICAgIAogICAgIC8vIFNjcm9sbGFibGVBcmVhIGlu
dGVyZmFjZQogICAgIHZvaWQgaW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyJiwgY29u
c3QgSW50UmVjdCYpIG92ZXJyaWRlOwogICAgIHZvaWQgaW52YWxpZGF0ZVNjcm9sbENvcm5lclJl
Y3QoY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOwpAQCAtMTA4NSw3ICsxMDgxLDYgQEAgcHJpdmF0
ZToKICAgICBJbnRSZWN0IGNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25z
dCBTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgSW50UG9p
bnQgY29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciYs
IGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgSW50UG9pbnQgY29udmVydEZy
b21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYsIGNvbnN0IEludFBv
aW50JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgaW50IHNjcm9sbFNpemUoU2Nyb2xsYmFyT3JpZW50
YXRpb24pIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGNvbnN0IFNj
cm9sbE9mZnNldCYpIG92ZXJyaWRlOwogICAgIFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdOb2Rl
SUQoKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guY3BwCmluZGV4IDQ0YzZkMWY2OTNjOTc3N2IzMDJjY2Y3OGEzYWY0NmY5YzBhZmE5OWUu
LjRiNDEyOWZmYmU5MDQ0YzAwZmViYzQwZDU2OTRjZmMwNzcyMjUzZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTY0NSwxNCArNjQ1LDkgQEAgdm9p
ZCBSZW5kZXJMaXN0Qm94Ojp2YWx1ZUNoYW5nZWQodW5zaWduZWQgbGlzdEluZGV4KQogICAgIHNl
bGVjdEVsZW1lbnQoKS5kaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKTsKIH0KIAotaW50
IFJlbmRlckxpc3RCb3g6OnNjcm9sbFNpemUoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRp
b24pIGNvbnN0CitTY3JvbGxQb3NpdGlvbiBSZW5kZXJMaXN0Qm94OjpzY3JvbGxQb3NpdGlvbigp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuICgob3JpZW50YXRpb24gPT0gVmVydGljYWxTY3JvbGxiYXIp
ICYmIG1fdkJhcikgPyAobV92QmFyLT50b3RhbFNpemUoKSAtIG1fdkJhci0+dmlzaWJsZVNpemUo
KSkgOiAwOwotfQotCi1pbnQgUmVuZGVyTGlzdEJveDo6c2Nyb2xsT2Zmc2V0KFNjcm9sbGJhck9y
aWVudGF0aW9uKSBjb25zdAotewotICAgIHJldHVybiBtX2luZGV4T2Zmc2V0OworICAgIHJldHVy
biB7IDAsIG1faW5kZXhPZmZzZXQgfTsKIH0KIAogU2Nyb2xsUG9zaXRpb24gUmVuZGVyTGlzdEJv
eDo6bWluaW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5oCmluZGV4IDNjZDE2OTdlMmE0OGE1M2VhOWQwYTEzMjBhZmM5YTBlMTUw
YTQyNmIuLjY1ZDkyMjZiM2EwNTRlNjk3OGEwMjk2NzRlYTlkZjQ0MDQxZTM3YmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAtMTEyLDExICsxMTIsMTIgQEAg
cHJpdmF0ZToKICAgICBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0
VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwg
Y29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBvdmVy
cmlkZTsKIAogICAgIC8vIFNjcm9sbGFibGVBcmVhIGludGVyZmFjZS4KLSAgICBpbnQgc2Nyb2xs
U2l6ZShTY3JvbGxiYXJPcmllbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgaW50IHNjcm9s
bE9mZnNldChTY3JvbGxiYXJPcmllbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBz
ZXRTY3JvbGxPZmZzZXQoY29uc3QgU2Nyb2xsT2Zmc2V0Jikgb3ZlcnJpZGU7CisKKyAgICBTY3Jv
bGxQb3NpdGlvbiBzY3JvbGxQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIFNjcm9sbFBv
c2l0aW9uIG1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIFNjcm9s
bFBvc2l0aW9uIG1heGltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOworCiAgICAg
dm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0Jikg
b3ZlcnJpZGU7CiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wg
aXNTY3JvbGxDb3JuZXJWaXNpYmxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0g
Ly8gV2UgZG9uJ3Qgc3VwcG9ydCByZXNpemUgb24gbGlzdCBib3hlcyB5ZXQuIElmIHdlIGRpZCB0
aGVzZSB3b3VsZCBoYXZlIHRvIGNoYW5nZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy93aW4vV2ViUG9wdXBNZW51UHJveHlXaW4uY3BwCmluZGV4IDk4MGUwYjdiYjAxMjI3YTMy
M2E2ZDQ1YTk1N2RhOGI5M2JkMjhiNzMuLjBhOGQ4YzQ1NWE1ZTZjOTg3NmJiMWFjMGUxMTI0OGUw
ZDU1OWQwNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1
cE1lbnVQcm94eVdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBv
cHVwTWVudVByb3h5V2luLmNwcApAQCAtNDQxLDkgKzQ0MSw5IEBAIHZvaWQgV2ViUG9wdXBNZW51
UHJveHlXaW46OmludmFsaWRhdGVJdGVtKGludCBpbmRleCkKICAgICA6OkludmFsaWRhdGVSZWN0
KG1fcG9wdXAsICZyLCBUUlVFKTsKIH0KIAotaW50IFdlYlBvcHVwTWVudVByb3h5V2luOjpzY3Jv
bGxTaXplKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uKSBjb25zdAorU2Nyb2xsUG9z
aXRpb24gV2ViUG9wdXBNZW51UHJveHlXaW46OnNjcm9sbFBvc2l0aW9uKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gKChvcmllbnRhdGlvbiA9PSBWZXJ0aWNhbFNjcm9sbGJhcikgJiYgbV9zY3JvbGxi
YXIpID8gKG1fc2Nyb2xsYmFyLT50b3RhbFNpemUoKSAtIG1fc2Nyb2xsYmFyLT52aXNpYmxlU2l6
ZSgpKSA6IDA7CisgICAgcmV0dXJuIHsgMCwgbV9zY3JvbGxPZmZzZXQgfTsKIH0KIAogdm9pZCBX
ZWJQb3B1cE1lbnVQcm94eVdpbjo6c2V0U2Nyb2xsT2Zmc2V0KGNvbnN0IEludFBvaW50JiBvZmZz
ZXQpCkBAIC01NTQsOSArNTU0LDkgQEAgTFJFU1VMVCBXZWJQb3B1cE1lbnVQcm94eVdpbjo6b25L
ZXlEb3duKEhXTkQgaFduZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLAogICAgICAgICBm
b2N1c0xhc3QoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBWS19QUklPUjoKLSAgICAgICAg
aWYgKGZvY3VzZWRJbmRleCgpICE9IHNjcm9sbE9mZnNldChWZXJ0aWNhbFNjcm9sbGJhcikpIHsK
KyAgICAgICAgaWYgKGZvY3VzZWRJbmRleCgpICE9IG1fc2Nyb2xsT2Zmc2V0KSB7CiAgICAgICAg
ICAgICAvLyBTZXQgdGhlIHNlbGVjdGlvbiB0byB0aGUgZmlyc3QgdmlzaWJsZSBpdGVtCi0gICAg
ICAgICAgICBpbnQgZmlyc3RWaXNpYmxlSXRlbSA9IHNjcm9sbE9mZnNldChWZXJ0aWNhbFNjcm9s
bGJhcik7CisgICAgICAgICAgICBpbnQgZmlyc3RWaXNpYmxlSXRlbSA9IG1fc2Nyb2xsT2Zmc2V0
OwogICAgICAgICAgICAgdXAoZm9jdXNlZEluZGV4KCkgLSBmaXJzdFZpc2libGVJdGVtKTsKICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIFRoZSBmaXJzdCB2aXNpYmxlIGl0ZW0gaXMg
c2VsZWN0ZWQsIHNvIG1vdmUgdGhlIHNlbGVjdGlvbiBiYWNrIG9uZSBwYWdlCkBAIC01NjQsNyAr
NTY0LDcgQEAgTFJFU1VMVCBXZWJQb3B1cE1lbnVQcm94eVdpbjo6b25LZXlEb3duKEhXTkQgaFdu
ZCwgVUlOVCBtZXNzYWdlLCBXUEFSQU0gd1BhcmFtLAogICAgICAgICB9CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgVktfTkVYVDogewotICAgICAgICBpbnQgbGFzdFZpc2libGVJdGVtID0gc2Ny
b2xsT2Zmc2V0KFZlcnRpY2FsU2Nyb2xsYmFyKSArIHZpc2libGVJdGVtcygpIC0gMTsKKyAgICAg
ICAgaW50IGxhc3RWaXNpYmxlSXRlbSA9IG1fc2Nyb2xsT2Zmc2V0ICsgdmlzaWJsZUl0ZW1zKCkg
LSAxOwogICAgICAgICBpZiAoZm9jdXNlZEluZGV4KCkgIT0gbGFzdFZpc2libGVJdGVtKSB7CiAg
ICAgICAgICAgICAvLyBTZXQgdGhlIHNlbGVjdGlvbiB0byB0aGUgbGFzdCB2aXNpYmxlIGl0ZW0K
ICAgICAgICAgICAgIGRvd24obGFzdFZpc2libGVJdGVtIC0gZm9jdXNlZEluZGV4KCkpOwpAQCAt
OTIxLDcgKzkyMSw2IEBAIHZvaWQgV2ViUG9wdXBNZW51UHJveHlXaW46OmZvY3VzTGFzdCgpCiAg
ICAgfQogfQogCi0KIHZvaWQgV2ViUG9wdXBNZW51UHJveHlXaW46OmluY3JlbWVudFdoZWVsRGVs
dGEoaW50IGRlbHRhKQogewogICAgIG1fd2hlZWxEZWx0YSArPSBkZWx0YTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJQb3B1cE1lbnVQcm94eVdpbi5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmgKaW5kZXggNDY5
NGM0N2JiNzk5MDFiMDY2ODQ5Y2NiY2JiNDY0YzMyN2E0YzA4OS4uNjQ3MzliMzM2M2Y1YmUxYmFk
M2Y4N2VlZjEzY2Q1MTBmMjcxNzQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3Mvd2luL1dlYlBvcHVwTWVudVByb3h5V2luLmgKQEAgLTU4LDkgKzU4LDggQEAgcHJpdmF0ZToK
ICAgICBXZWJDb3JlOjpTY3JvbGxiYXIqIHNjcm9sbGJhcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Ny
b2xsYmFyLmdldCgpOyB9CiAKICAgICAvLyBTY3JvbGxhYmxlQXJlYQotICAgIGludCBzY3JvbGxT
aXplKFdlYkNvcmU6OlNjcm9sbGJhck9yaWVudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKKyAgICBX
ZWJDb3JlOjpTY3JvbGxQb3NpdGlvbiBzY3JvbGxQb3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jikgb3ZlcnJp
ZGU7Ci0gICAgaW50IHNjcm9sbE9mZnNldChXZWJDb3JlOjpTY3JvbGxiYXJPcmllbnRhdGlvbikg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zY3JvbGxPZmZzZXQ7IH0KIAogICAgIHZvaWQgaW52
YWxpZGF0ZVNjcm9sbGJhclJlY3QoV2ViQ29yZTo6U2Nyb2xsYmFyJiwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpIG92ZXJyaWRlOwogICAgIHZvaWQgaW52YWxpZGF0ZVNjcm9sbENvcm5lclJlY3Qo
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCmluZGV4IDY4NjJlMzA0ZmVkYjg1
Yjc4NjM0NzAwYjlkNmIzNWE2YzNjMjBjZWMuLmQ0MTUwM2IyMGEzYmU5MDJhM2EzZThhODRmM2Mz
ZDVhY2EwMTkxMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BERi9QREZQbHVnaW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luLmgKQEAgLTIwMiwxMCArMjAyLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGlu
dmFsaWRhdGVTY3JvbGxiYXJSZWN0KFdlYkNvcmU6OlNjcm9sbGJhciYsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmKSBmaW5hbDsKICAgICB2b2lkIGludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKSBmaW5hbDsKICAgICBXZWJDb3JlOjpJbnRQb2ludCBsYXN0
S25vd25Nb3VzZVBvc2l0aW9uKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9sYXN0TW91c2VQb3Np
dGlvbkluUGx1Z2luQ29vcmRpbmF0ZXM7IH0KLSAgICBpbnQgc2Nyb2xsU2l6ZShXZWJDb3JlOjpT
Y3JvbGxiYXJPcmllbnRhdGlvbikgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc0FjdGl2ZSgpIGNv
bnN0IGZpbmFsOwogICAgIGJvb2wgaXNTY3JvbGxDb3JuZXJWaXNpYmxlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICBpbnQgc2Nyb2xsT2Zmc2V0KFdlYkNvcmU6OlNjcm9sbGJh
ck9yaWVudGF0aW9uKSBjb25zdCBmaW5hbDsKICAgICBXZWJDb3JlOjpTY3JvbGxQb3NpdGlvbiBz
Y3JvbGxQb3NpdGlvbigpIGNvbnN0IGZpbmFsOwogICAgIFdlYkNvcmU6OlNjcm9sbFBvc2l0aW9u
IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0IGZpbmFsOwogICAgIFdlYkNvcmU6OlNjcm9s
bFBvc2l0aW9uIG1heGltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXggMTU4
OGJkMGUxYzUwNzk4ODA0Y2UxNDE0ZmYwMzMyNzVmNDVjOWJjYS4uMDNhMWYwNDY1YzBlNjVjMjY1
MjI1NGYwZTQyZDBhZWM1NTIwOTQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC04NjMsMTIgKzg2Myw2IEBAIEludFJlY3Qg
UERGUGx1Z2luOjpzY3JvbGxhYmxlQXJlYUJvdW5kaW5nQm94KGJvb2wqKSBjb25zdAogICAgIHJl
dHVybiBwbHVnaW5WaWV3KCktPmZyYW1lUmVjdCgpOwogfQogCi1pbnQgUERGUGx1Z2luOjpzY3Jv
bGxTaXplKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uKSBjb25zdAotewotICAgIFNj
cm9sbGJhciogc2Nyb2xsYmFyID0gKChvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFy
KSA/IG1faG9yaXpvbnRhbFNjcm9sbGJhciA6IG1fdmVydGljYWxTY3JvbGxiYXIpLmdldCgpOwot
ICAgIHJldHVybiBzY3JvbGxiYXIgPyAoc2Nyb2xsYmFyLT50b3RhbFNpemUoKSAtIHNjcm9sbGJh
ci0+dmlzaWJsZVNpemUoKSkgOiAwOwotfQotCiBib29sIFBERlBsdWdpbjo6aXNBY3RpdmUoKSBj
b25zdAogewogICAgIGlmIChGcmFtZSogY29yZUZyYW1lID0gbV9mcmFtZS0+Y29yZUZyYW1lKCkp
IHsKQEAgLTg4OSwxOCArODgzLDYgQEAgYm9vbCBQREZQbHVnaW46OmZvcmNlVXBkYXRlU2Nyb2xs
YmFyc09uTWFpblRocmVhZEZvclBlcmZvcm1hbmNlVGVzdGluZygpIGNvbnN0CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi1pbnQgUERGUGx1Z2luOjpzY3JvbGxPZmZzZXQoU2Nyb2xsYmFyT3JpZW50
YXRpb24gb3JpZW50YXRpb24pIGNvbnN0Ci17Ci0gICAgaWYgKG9yaWVudGF0aW9uID09IEhvcml6
b250YWxTY3JvbGxiYXIpCi0gICAgICAgIHJldHVybiBtX3Njcm9sbE9mZnNldC53aWR0aCgpOwot
Ci0gICAgaWYgKG9yaWVudGF0aW9uID09IFZlcnRpY2FsU2Nyb2xsYmFyKQotICAgICAgICByZXR1
cm4gbV9zY3JvbGxPZmZzZXQuaGVpZ2h0KCk7Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICByZXR1cm4gMDsKLX0KLQogU2Nyb2xsUG9zaXRpb24gUERGUGx1Z2luOjpzY3JvbGxQb3Np
dGlvbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIEludFBvaW50KG1fc2Nyb2xsT2Zmc2V0LndpZHRo
KCksIG1fc2Nyb2xsT2Zmc2V0LmhlaWdodCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQppbmRleCA0ZTQ3NjJjOWQxYjk3N2UzZjE1
MWQ1ZDk3MWI3NWJiMTk4Yzg4YWQ3Li41ZTUwZTBiYTFlZjEyNDZjNmFlMDhmMjlkOTJhODMwZTBk
YjRmMjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1v
dGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLm1tCkBAIC0yNTMsMTAgKzI1Myw4IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWE6OnVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3QoKQogICAgIG1fc2Nyb2xsZWRWaWV3
RXhwb3NlZFJlY3QgPSBtX3ZpZXdFeHBvc2VkUmVjdDsKIAogI2lmICFQTEFURk9STShJT1NfRkFN
SUxZKQotICAgIGlmIChtX3ZpZXdFeHBvc2VkUmVjdCkgewotICAgICAgICBTY3JvbGxPZmZzZXQg
c2Nyb2xsT2Zmc2V0ID0gZnJhbWVWaWV3LT5zY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oZnJhbWVW
aWV3LT5zY3JvbGxQb3NpdGlvbigpKTsKLSAgICAgICAgbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVj
dC52YWx1ZSgpLm1vdmVCeShzY3JvbGxPZmZzZXQpOwotICAgIH0KKyAgICBpZiAobV92aWV3RXhw
b3NlZFJlY3QpCisgICAgICAgIG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QudmFsdWUoKS5tb3Zl
QnkoZnJhbWVWaWV3LT5zY3JvbGxPZmZzZXQoKSk7CiAjZW5kaWYKIAogICAgIGZyYW1lVmlldy0+
c2V0Vmlld0V4cG9zZWRSZWN0KG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>