<?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>130356</bug_id>
          
          <creation_ts>2014-03-17 13:27:03 -0700</creation_ts>
          <short_desc>Remove unnecessary JSC::Handle null checks in bindings code.</short_desc>
          <delta_ts>2014-03-17 14:25:17 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>alecflett</cc>
    
    <cc>barraclough</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jsbell</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>991362</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-17 13:27:03 -0700</bug_when>
    <thetext>Remove unnecessary JSC::Handle null checks in bindings code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991363</commentid>
    <comment_count>1</comment_count>
      <attachid>226951</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-17 13:27:45 -0700</bug_when>
    <thetext>Created attachment 226951
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991365</commentid>
    <comment_count>2</comment_count>
      <attachid>226952</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-17 13:28:46 -0700</bug_when>
    <thetext>Created attachment 226952
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991366</commentid>
    <comment_count>3</comment_count>
      <attachid>226953</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-17 13:33:33 -0700</bug_when>
    <thetext>Created attachment 226953
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991395</commentid>
    <comment_count>4</comment_count>
      <attachid>226953</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-17 14:25:11 -0700</bug_when>
    <thetext>Comment on attachment 226953
Patch

Clearing flags on attachment: 226953

Committed r165757: &lt;http://trac.webkit.org/changeset/165757&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991396</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-17 14:25:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226951</attachid>
            <date>2014-03-17 13:27:45 -0700</date>
            <delta_ts>2014-03-17 13:28:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130356.diff</filename>
            <type>text/plain</type>
            <size>12234</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzZWY4NGRmLi5lYWYwZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUg
QEAKKzIwMTQtMDMtMTcgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBKU0M6OkhhbmRsZSBudWxsIGNoZWNrcyBpbiBiaW5kaW5n
cyBjb2RlLgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTMwMzU2PgorCisgICAgICAg
IFVzZSBIYW5kbGU6OnNsb3QoKSBkaXJlY3RseSBpbnN0ZWFkIG9mIGdvaW5nIHRocm91Z2ggSGFu
ZGxlOjpnZXQoKS4KKyAgICAgICAgVGhpcyBhdm9pZHMgbnVsbCBjaGVja2luZyB0aGUgSGFuZGxl
U2xvdCwgd2hpY2ggaXNuJ3QgbmVjZXNzYXJ5IGhlcmUKKyAgICAgICAgYW55d2F5LCBhbmQgdGhl
IGNvZGUgYWxyZWFkeSBhc3N1bWVzIGl0J2xsIG5ldmVyIGJlIG51bGwuCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NTU1J1
bGVMaXN0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ1NTUnVsZUxpc3RPd25lcjo6
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ1NT
VmFsdWVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDU1NWYWx1ZU93bmVyOjppc1Jl
YWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgIChXZWJDb3JlOjpKU0NTU1ZhbHVlT3du
ZXI6OmZpbmFsaXplKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNNdXRhdGlvbk9ic2VydmVyT3duZXI6Omlz
UmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTm9kZUxpc3RPd25lcjo6aXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGV4dFRyYWNrQ3VlT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlVHlwZWRBcnJheUNv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZVR5cGVkQXJyYXlDb250cm9s
bGVyOjpKU0FycmF5QnVmZmVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZl
ck93bmVyOjpmaW5hbGl6ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBi
cmlkZ2UvcnVudGltZV9yb290LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJvb3RPYmpl
Y3Q6OmZpbmFsaXplKToKKwogMjAxNC0wMS0yOSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxs
YXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBnZXRDb21wdXRlZFN0
eWxlKCkgbm90IHVzaW5nIGF1dGhvcidzIG9yZGVyIHdoZW4gc2hvd2luZyBuYW1lZCBncmlkIGxp
bmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVMaXN0
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUxpc3RDdXN0
b20uY3BwCmluZGV4IDg0NjJmOTcuLjg5ZTk5MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUxpc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUxpc3RDdXN0b20uY3BwCkBAIC0zOCw3ICszOCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogYm9vbCBKU0NTU1J1bGVMaXN0T3duZXI6OmlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7Ci0gICAgSlNDU1NSdWxlTGlzdCoganNDU1NSdWxlTGlz
dCA9IGpzQ2FzdDxKU0NTU1J1bGVMaXN0Kj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsKKyAgICBK
U0NTU1J1bGVMaXN0KiBqc0NTU1J1bGVMaXN0ID0ganNDYXN0PEpTQ1NTUnVsZUxpc3QqPihoYW5k
bGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgaWYgKCFqc0NTU1J1bGVMaXN0LT5oYXNDdXN0b21Q
cm9wZXJ0aWVzKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoQ1NTU3R5bGVTaGVl
dCogc3R5bGVTaGVldCA9IGpzQ1NTUnVsZUxpc3QtPmltcGwoKS5zdHlsZVNoZWV0KCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1ZhbHVlQ3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTVmFsdWVDdXN0b20uY3BwCmluZGV4IGM4
MzIzNjcuLmFhOTY2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q1NTVmFsdWVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NT
VmFsdWVDdXN0b20uY3BwCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Ym9vbCBKU0NTU1ZhbHVlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0LCBTbG90VmlzaXRvciYgdmlz
aXRvcikKIHsKLSAgICBKU0NTU1ZhbHVlKiBqc0NTU1ZhbHVlID0ganNDYXN0PEpTQ1NTVmFsdWUq
PihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpOworICAgIEpTQ1NTVmFsdWUqIGpzQ1NTVmFsdWUgPSBq
c0Nhc3Q8SlNDU1NWYWx1ZSo+KGhhbmRsZS5nZXQoKS0+YXNDZWxsKCkpOwogICAgIGlmICghanND
U1NWYWx1ZS0+aGFzQ3VzdG9tUHJvcGVydGllcygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCA9IHN0YXRpY19jYXN0PERPTVdyYXBwZXJXb3JsZCo+
KGNvbnRleHQpOwpAQCAtNjEsNyArNjEsNyBAQCBib29sIEpTQ1NTVmFsdWVPd25lcjo6aXNSZWFj
aGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbAogCiB2
b2lkIEpTQ1NTVmFsdWVPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBo
YW5kbGUsIHZvaWQqIGNvbnRleHQpCiB7Ci0gICAgSlNDU1NWYWx1ZSoganNDU1NWYWx1ZSA9IGpz
Q2FzdDxKU0NTU1ZhbHVlKj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsKKyAgICBKU0NTU1ZhbHVl
KiBqc0NTU1ZhbHVlID0ganNDYXN0PEpTQ1NTVmFsdWUqPihoYW5kbGUuZ2V0KCktPmFzQ2VsbCgp
KTsKICAgICBET01XcmFwcGVyV29ybGQmIHdvcmxkID0gKnN0YXRpY19jYXN0PERPTVdyYXBwZXJX
b3JsZCo+KGNvbnRleHQpOwogICAgIHdvcmxkLm1fY3NzVmFsdWVSb290cy5yZW1vdmUoJmpzQ1NT
VmFsdWUtPmltcGwoKSk7CiAgICAgdW5jYWNoZVdyYXBwZXIod29ybGQsICZqc0NTU1ZhbHVlLT5p
bXBsKCksIGpzQ1NTVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKaW5kZXggMDk3NjA5NC4uY2E5OWUwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVy
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2Jz
ZXJ2ZXJDdXN0b20uY3BwCkBAIC02Myw3ICs2Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSlNNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTTXV0YXRpb25P
CiAKIGJvb2wgSlNNdXRhdGlvbk9ic2VydmVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3Im
IHZpc2l0b3IpCiB7Ci0gICAgTXV0YXRpb25PYnNlcnZlciYgb2JzZXJ2ZXIgPSBqc0Nhc3Q8SlNN
dXRhdGlvbk9ic2VydmVyKj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKS0+aW1wbCgpOworICAgIE11
dGF0aW9uT2JzZXJ2ZXImIG9ic2VydmVyID0ganNDYXN0PEpTTXV0YXRpb25PYnNlcnZlcio+KGhh
bmRsZS5zbG90KCktPmFzQ2VsbCgpKS0+aW1wbCgpOwogICAgIGF1dG8gb2JzZXJ2ZWROb2RlcyA9
IG9ic2VydmVyLmdldE9ic2VydmVkTm9kZXMoKTsKICAgICBmb3IgKGF1dG8gaXQgPSBvYnNlcnZl
ZE5vZGVzLmJlZ2luKCksIGVuZCA9IG9ic2VydmVkTm9kZXMuZW5kKCk7IGl0ICE9IGVuZDsgKytp
dCkgewogICAgICAgICBpZiAodmlzaXRvci5jb250YWluc09wYXF1ZVJvb3Qocm9vdCgqaXQpKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCmluZGV4IDQxNTMz
NWYuLjUxNTI5MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9k
ZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9t
LmNwcApAQCAtMTI4LDcgKzEyOCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1JlYWNoYWJsZUZy
b21ET00oSlNOb2RlKiBqc05vZGUsIE5vZGUqIG5vZGUsIFNsb3RWaXNpdG9yJiB2CiAKIGJvb2wg
SlNOb2RlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7Ci0gICAgSlNO
b2RlKiBqc05vZGUgPSBqc0Nhc3Q8SlNOb2RlKj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsKKyAg
ICBKU05vZGUqIGpzTm9kZSA9IGpzQ2FzdDxKU05vZGUqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwo
KSk7CiAgICAgcmV0dXJuIGlzUmVhY2hhYmxlRnJvbURPTShqc05vZGUsICZqc05vZGUtPmltcGwo
KSwgdmlzaXRvcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTm9kZUxpc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2Rl
TGlzdEN1c3RvbS5jcHAKaW5kZXggYzRiZjdkMC4uNTUwZGQ0MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3RvbS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBib29sIEpTTm9kZUxpc3RPd25lcjo6aXNSZWFjaGFibGVG
cm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBT
bG90VmlzaXRvciYgdmlzaXRvcikKIHsKLSAgICBKU05vZGVMaXN0KiBqc05vZGVMaXN0ID0ganND
YXN0PEpTTm9kZUxpc3QqPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpOworICAgIEpTTm9kZUxpc3Qq
IGpzTm9kZUxpc3QgPSBqc0Nhc3Q8SlNOb2RlTGlzdCo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgp
KTsKICAgICBpZiAoIWpzTm9kZUxpc3QtPmhhc0N1c3RvbVByb3BlcnRpZXMoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIGlmIChqc05vZGVMaXN0LT5pbXBsKCkuaXNMaXZlTm9kZUxpc3Qo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3Vl
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VlQ3Vz
dG9tLmNwcAppbmRleCBhOTNkYWUzLi4zZGNlNjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1ZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwCkBAIC0zOSw3ICszOSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogYm9vbCBKU1RleHRUcmFja0N1ZU93bmVyOjppc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9p
ZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewotICAgIEpTVGV4dFRyYWNrQ3VlKiBqc1RleHRU
cmFja0N1ZSA9IGpzQ2FzdDxKU1RleHRUcmFja0N1ZSo+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7
CisgICAgSlNUZXh0VHJhY2tDdWUqIGpzVGV4dFRyYWNrQ3VlID0ganNDYXN0PEpTVGV4dFRyYWNr
Q3VlKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwogICAgIFRleHRUcmFja0N1ZSYgdGV4dFRy
YWNrQ3VlID0ganNUZXh0VHJhY2tDdWUtPmltcGwoKTsKIAogICAgIC8vIElmIHRoZSBjdWUgaXMg
ZmlyaW5nIGV2ZW50IGxpc3RlbmVycywgaXRzIHdyYXBwZXIgaXMgcmVhY2hhYmxlIGJlY2F1c2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlVHlwZWRB
cnJheUNvbnRyb2xsZXIuY3BwCmluZGV4IDYwNzgyZTAuLjExMDY5MjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZVR5cGVkQXJyYXlDb250cm9s
bGVyLmNwcApAQCAtNDksNyArNDksNyBAQCBKU0M6OkpTQXJyYXlCdWZmZXIqIFdlYkNvcmVUeXBl
ZEFycmF5Q29udHJvbGxlcjo6dG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTQwogCiBib29s
IFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZlck93bmVyOjppc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9p
ZCosIEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7Ci0gICAgYXV0byYgd3JhcHBlciA9ICpK
U0M6OmpzQ2FzdDxKU0M6OkpTQXJyYXlCdWZmZXIqPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpOwor
ICAgIGF1dG8mIHdyYXBwZXIgPSAqSlNDOjpqc0Nhc3Q8SlNDOjpKU0FycmF5QnVmZmVyKj4oaGFu
ZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwogICAgIGlmICghd3JhcHBlci5oYXNDdXN0b21Qcm9wZXJ0
aWVzKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gdmlzaXRvci5jb250YWlu
c09wYXF1ZVJvb3Qod3JhcHBlci5pbXBsKCkpOwpAQCAtNTcsNyArNTcsNyBAQCBib29sIFdlYkNv
cmVUeXBlZEFycmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZlck93bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cwogCiB2b2lkIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlcjo6SlNBcnJh
eUJ1ZmZlck93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwg
dm9pZCogY29udGV4dCkKIHsKLSAgICBhdXRvJiB3cmFwcGVyID0gKnN0YXRpY19jYXN0PEpTQzo6
SlNBcnJheUJ1ZmZlcio+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7CisgICAgYXV0byYgd3JhcHBl
ciA9ICpzdGF0aWNfY2FzdDxKU0M6OkpTQXJyYXlCdWZmZXIqPihoYW5kbGUuc2xvdCgpLT5hc0Nl
bGwoKSk7CiAgICAgYXV0byYgYnVmZmVyID0gKndyYXBwZXIuaW1wbCgpOwogICAgIHVuY2FjaGVX
cmFwcGVyKCpzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0KSwgJmJ1ZmZlciwg
JndyYXBwZXIpOwogICAgIGJ1ZmZlci5kZXJlZigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBhMjY2MmQ4Li4wMmM4MzRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQpAQCAtMjkyMSwxNCArMjkyMSwxNCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlv
bgogICAgICAgICAjIGNoZWNrIGJlbG93IHRoZSBpc09ic2VydmFibGUgY2hlY2suCiAgICAgICAg
IG15ICRlbWl0dGVkSlNDYXN0ID0gMDsKICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhl
cml0c0V4dGVuZGVkQXR0cmlidXRlKCRpbnRlcmZhY2UsICJBY3RpdmVET01PYmplY3QiKSkgewot
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlMke2ludGVyZmFjZU5hbWV9KiBq
cyR7aW50ZXJmYWNlTmFtZX0gPSBqc0Nhc3Q8SlMke2ludGVyZmFjZU5hbWV9Kj4oaGFuZGxlLmdl
dCgpLmFzQ2VsbCgpKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
SlMke2ludGVyZmFjZU5hbWV9KiBqcyR7aW50ZXJmYWNlTmFtZX0gPSBqc0Nhc3Q8SlMke2ludGVy
ZmFjZU5hbWV9Kj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpO1xuIik7CiAgICAgICAgICAgICAk
ZW1pdHRlZEpTQ2FzdCA9IDE7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBp
ZiAoanMke2ludGVyZmFjZU5hbWV9LT5pbXBsKCkuaGFzUGVuZGluZ0FjdGl2aXR5KCkpXG4iKTsK
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIp
OwogICAgICAgICB9CiAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNFeHRlbmRl
ZEF0dHJpYnV0ZSgkaW50ZXJmYWNlLCAiRXZlbnRUYXJnZXQiKSkgewogICAgICAgICAgICAgaWYg
KCEkZW1pdHRlZEpTQ2FzdCkgewotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIEpTJHtpbnRlcmZhY2VOYW1lfSoganMke2ludGVyZmFjZU5hbWV9ID0ganNDYXN0PEpTJHtp
bnRlcmZhY2VOYW1lfSo+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7XG4iKTsKKyAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKUyR7aW50ZXJmYWNlTmFtZX0qIGpzJHtpbnRl
cmZhY2VOYW1lfSA9IGpzQ2FzdDxKUyR7aW50ZXJmYWNlTmFtZX0qPihoYW5kbGUuc2xvdCgpLT5h
c0NlbGwoKSk7XG4iKTsKICAgICAgICAgICAgICAgICAkZW1pdHRlZEpTQ2FzdCA9IDE7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoanMke2lu
dGVyZmFjZU5hbWV9LT5pbXBsKCkuaXNGaXJpbmdFdmVudExpc3RlbmVycygpKVxuIik7CkBAIC0y
OTM2LDcgKzI5MzYsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICB9CiAg
ICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwg
Ik5vZGUiKSkgewogICAgICAgICAgICAgaWYgKCEkZW1pdHRlZEpTQ2FzdCkgewotICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTJHtpbnRlcmZhY2VOYW1lfSoganMke2lu
dGVyZmFjZU5hbWV9ID0ganNDYXN0PEpTJHtpbnRlcmZhY2VOYW1lfSo+KGhhbmRsZS5nZXQoKS5h
c0NlbGwoKSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBK
UyR7aW50ZXJmYWNlTmFtZX0qIGpzJHtpbnRlcmZhY2VOYW1lfSA9IGpzQ2FzdDxKUyR7aW50ZXJm
YWNlTmFtZX0qPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7XG4iKTsKICAgICAgICAgICAgICAg
ICAkZW1pdHRlZEpTQ2FzdCA9IDE7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBpZiAoSlNOb2RlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKGhhbmRsZSwgMCwgdmlzaXRvcikpXG4iKTsKQEAgLTI5NDQsNyArMjk0NCw3IEBAIHN1YiBH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIH0KICAgICAgICAgaWYgKEdldEdlbmVyYXRl
SXNSZWFjaGFibGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgICAgIGlmICghJGVtaXR0ZWRKU0Nh
c3QpIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKUyR7aW50ZXJm
YWNlTmFtZX0qIGpzJHtpbnRlcmZhY2VOYW1lfSA9IGpzQ2FzdDxKUyR7aW50ZXJmYWNlTmFtZX0q
PihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgSlMke2ludGVyZmFjZU5hbWV9KiBqcyR7aW50ZXJmYWNlTmFtZX0gPSBq
c0Nhc3Q8SlMke2ludGVyZmFjZU5hbWV9Kj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpO1xuIik7
CiAgICAgICAgICAgICAgICAgJGVtaXR0ZWRKU0Nhc3QgPSAxOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFpc09ic2VydmFibGUoanMke2lu
dGVyZmFjZU5hbWV9KSlcbiIpOwpAQCAtMzAwMSw3ICszMDAxLDcgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICAgICAgICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0V4dGVuZGVkQXR0
cmlidXRlKCRpbnRlcmZhY2UsICJBY3RpdmVET01PYmplY3QiKSkpIHsKICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ2b2lkIEpTJHtpbnRlcmZhY2VOYW1lfU93bmVyOjpmaW5hbGl6ZShKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCogY29udGV4dClcbiIpOwogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBKUyR7aW50ZXJmYWNlTmFtZX0qIGpzJHtpbnRlcmZhY2VOYW1lfSA9IGpzQ2FzdDxKUyR7
aW50ZXJmYWNlTmFtZX0qPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpO1xuIik7CisgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIEpTJHtpbnRlcmZhY2VOYW1lfSoganMke2ludGVyZmFjZU5h
bWV9ID0ganNDYXN0PEpTJHtpbnRlcmZhY2VOYW1lfSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgp
KTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBET01XcmFwcGVyV29ybGQm
IHdvcmxkID0gKnN0YXRpY19jYXN0PERPTVdyYXBwZXJXb3JsZCo+KGNvbnRleHQpO1xuIik7CiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHVuY2FjaGVXcmFwcGVyKHdvcmxkLCAmanMk
e2ludGVyZmFjZU5hbWV9LT5pbXBsKCksIGpzJHtpbnRlcmZhY2VOYW1lfSk7XG4iKTsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAganMke2ludGVyZmFjZU5hbWV9LT5yZWxlYXNlSW1w
bCgpO1xuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9yb290
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX3Jvb3QuY3BwCmluZGV4IDE2MDQx
MGMuLmE0OWZhNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX3Jv
b3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX3Jvb3QuY3BwCkBAIC0y
MDAsNyArMjAwLDcgQEAgdm9pZCBSb290T2JqZWN0OjpyZW1vdmVSdW50aW1lT2JqZWN0KFJ1bnRp
bWVPYmplY3QqIG9iamVjdCkKIAogdm9pZCBSb290T2JqZWN0OjpmaW5hbGl6ZShKU0M6OkhhbmRs
ZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCopCiB7Ci0gICAgUnVudGltZU9iamVjdCogb2Jq
ZWN0ID0gc3RhdGljX2Nhc3Q8UnVudGltZU9iamVjdCo+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7
CisgICAgUnVudGltZU9iamVjdCogb2JqZWN0ID0gc3RhdGljX2Nhc3Q8UnVudGltZU9iamVjdCo+
KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKIAogICAgIFJlZjxSb290T2JqZWN0PiBwcm90ZWN0
KCp0aGlzKTsKICAgICBvYmplY3QtPmludmFsaWRhdGUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226952</attachid>
            <date>2014-03-17 13:28:46 -0700</date>
            <delta_ts>2014-03-17 13:33:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130356.diff</filename>
            <type>text/plain</type>
            <size>28177</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzZWY4NGRmLi5lYWYwZmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUg
QEAKKzIwMTQtMDMtMTcgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgorCisgICAg
ICAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBKU0M6OkhhbmRsZSBudWxsIGNoZWNrcyBpbiBiaW5kaW5n
cyBjb2RlLgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTMwMzU2PgorCisgICAgICAg
IFVzZSBIYW5kbGU6OnNsb3QoKSBkaXJlY3RseSBpbnN0ZWFkIG9mIGdvaW5nIHRocm91Z2ggSGFu
ZGxlOjpnZXQoKS4KKyAgICAgICAgVGhpcyBhdm9pZHMgbnVsbCBjaGVja2luZyB0aGUgSGFuZGxl
U2xvdCwgd2hpY2ggaXNuJ3QgbmVjZXNzYXJ5IGhlcmUKKyAgICAgICAgYW55d2F5LCBhbmQgdGhl
IGNvZGUgYWxyZWFkeSBhc3N1bWVzIGl0J2xsIG5ldmVyIGJlIG51bGwuCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NTU1J1
bGVMaXN0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ1NTUnVsZUxpc3RPd25lcjo6
aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ1NT
VmFsdWVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDU1NWYWx1ZU93bmVyOjppc1Jl
YWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAgICAgIChXZWJDb3JlOjpKU0NTU1ZhbHVlT3du
ZXI6OmZpbmFsaXplKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNNdXRhdGlvbk9ic2VydmVyT3duZXI6Omlz
UmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTm9kZUxpc3RPd25lcjo6aXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGV4dFRyYWNrQ3VlT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlVHlwZWRBcnJheUNv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZVR5cGVkQXJyYXlDb250cm9s
bGVyOjpKU0FycmF5QnVmZmVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZl
ck93bmVyOjpmaW5hbGl6ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBi
cmlkZ2UvcnVudGltZV9yb290LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OlJvb3RPYmpl
Y3Q6OmZpbmFsaXplKToKKwogMjAxNC0wMS0yOSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxs
YXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBnZXRDb21wdXRlZFN0
eWxlKCkgbm90IHVzaW5nIGF1dGhvcidzIG9yZGVyIHdoZW4gc2hvd2luZyBuYW1lZCBncmlkIGxp
bmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVMaXN0
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUxpc3RDdXN0
b20uY3BwCmluZGV4IDg0NjJmOTcuLjg5ZTk5MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUxpc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUxpc3RDdXN0b20uY3BwCkBAIC0zOCw3ICszOCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogYm9vbCBKU0NTU1J1bGVMaXN0T3duZXI6OmlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7Ci0gICAgSlNDU1NSdWxlTGlzdCoganNDU1NSdWxlTGlz
dCA9IGpzQ2FzdDxKU0NTU1J1bGVMaXN0Kj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsKKyAgICBK
U0NTU1J1bGVMaXN0KiBqc0NTU1J1bGVMaXN0ID0ganNDYXN0PEpTQ1NTUnVsZUxpc3QqPihoYW5k
bGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgaWYgKCFqc0NTU1J1bGVMaXN0LT5oYXNDdXN0b21Q
cm9wZXJ0aWVzKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoQ1NTU3R5bGVTaGVl
dCogc3R5bGVTaGVldCA9IGpzQ1NTUnVsZUxpc3QtPmltcGwoKS5zdHlsZVNoZWV0KCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NTU1ZhbHVlQ3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTVmFsdWVDdXN0b20uY3BwCmluZGV4IGM4
MzIzNjcuLmFhOTY2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q1NTVmFsdWVDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NT
VmFsdWVDdXN0b20uY3BwCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Ym9vbCBKU0NTU1ZhbHVlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0LCBTbG90VmlzaXRvciYgdmlz
aXRvcikKIHsKLSAgICBKU0NTU1ZhbHVlKiBqc0NTU1ZhbHVlID0ganNDYXN0PEpTQ1NTVmFsdWUq
PihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpOworICAgIEpTQ1NTVmFsdWUqIGpzQ1NTVmFsdWUgPSBq
c0Nhc3Q8SlNDU1NWYWx1ZSo+KGhhbmRsZS5nZXQoKS0+YXNDZWxsKCkpOwogICAgIGlmICghanND
U1NWYWx1ZS0+aGFzQ3VzdG9tUHJvcGVydGllcygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCA9IHN0YXRpY19jYXN0PERPTVdyYXBwZXJXb3JsZCo+
KGNvbnRleHQpOwpAQCAtNjEsNyArNjEsNyBAQCBib29sIEpTQ1NTVmFsdWVPd25lcjo6aXNSZWFj
aGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbAogCiB2
b2lkIEpTQ1NTVmFsdWVPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBo
YW5kbGUsIHZvaWQqIGNvbnRleHQpCiB7Ci0gICAgSlNDU1NWYWx1ZSoganNDU1NWYWx1ZSA9IGpz
Q2FzdDxKU0NTU1ZhbHVlKj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsKKyAgICBKU0NTU1ZhbHVl
KiBqc0NTU1ZhbHVlID0ganNDYXN0PEpTQ1NTVmFsdWUqPihoYW5kbGUuZ2V0KCktPmFzQ2VsbCgp
KTsKICAgICBET01XcmFwcGVyV29ybGQmIHdvcmxkID0gKnN0YXRpY19jYXN0PERPTVdyYXBwZXJX
b3JsZCo+KGNvbnRleHQpOwogICAgIHdvcmxkLm1fY3NzVmFsdWVSb290cy5yZW1vdmUoJmpzQ1NT
VmFsdWUtPmltcGwoKSk7CiAgICAgdW5jYWNoZVdyYXBwZXIod29ybGQsICZqc0NTU1ZhbHVlLT5p
bXBsKCksIGpzQ1NTVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKaW5kZXggMDk3NjA5NC4uY2E5OWUwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVy
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2Jz
ZXJ2ZXJDdXN0b20uY3BwCkBAIC02Myw3ICs2Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSlNNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTTXV0YXRpb25P
CiAKIGJvb2wgSlNNdXRhdGlvbk9ic2VydmVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3Im
IHZpc2l0b3IpCiB7Ci0gICAgTXV0YXRpb25PYnNlcnZlciYgb2JzZXJ2ZXIgPSBqc0Nhc3Q8SlNN
dXRhdGlvbk9ic2VydmVyKj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKS0+aW1wbCgpOworICAgIE11
dGF0aW9uT2JzZXJ2ZXImIG9ic2VydmVyID0ganNDYXN0PEpTTXV0YXRpb25PYnNlcnZlcio+KGhh
bmRsZS5zbG90KCktPmFzQ2VsbCgpKS0+aW1wbCgpOwogICAgIGF1dG8gb2JzZXJ2ZWROb2RlcyA9
IG9ic2VydmVyLmdldE9ic2VydmVkTm9kZXMoKTsKICAgICBmb3IgKGF1dG8gaXQgPSBvYnNlcnZl
ZE5vZGVzLmJlZ2luKCksIGVuZCA9IG9ic2VydmVkTm9kZXMuZW5kKCk7IGl0ICE9IGVuZDsgKytp
dCkgewogICAgICAgICBpZiAodmlzaXRvci5jb250YWluc09wYXF1ZVJvb3Qocm9vdCgqaXQpKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCmluZGV4IDQxNTMz
NWYuLjUxNTI5MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9k
ZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9t
LmNwcApAQCAtMTI4LDcgKzEyOCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1JlYWNoYWJsZUZy
b21ET00oSlNOb2RlKiBqc05vZGUsIE5vZGUqIG5vZGUsIFNsb3RWaXNpdG9yJiB2CiAKIGJvb2wg
SlNOb2RlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6
VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7Ci0gICAgSlNO
b2RlKiBqc05vZGUgPSBqc0Nhc3Q8SlNOb2RlKj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsKKyAg
ICBKU05vZGUqIGpzTm9kZSA9IGpzQ2FzdDxKU05vZGUqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwo
KSk7CiAgICAgcmV0dXJuIGlzUmVhY2hhYmxlRnJvbURPTShqc05vZGUsICZqc05vZGUtPmltcGwo
KSwgdmlzaXRvcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTm9kZUxpc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2Rl
TGlzdEN1c3RvbS5jcHAKaW5kZXggYzRiZjdkMC4uNTUwZGQ0MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3RvbS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBib29sIEpTTm9kZUxpc3RPd25lcjo6aXNSZWFjaGFibGVG
cm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBT
bG90VmlzaXRvciYgdmlzaXRvcikKIHsKLSAgICBKU05vZGVMaXN0KiBqc05vZGVMaXN0ID0ganND
YXN0PEpTTm9kZUxpc3QqPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpOworICAgIEpTTm9kZUxpc3Qq
IGpzTm9kZUxpc3QgPSBqc0Nhc3Q8SlNOb2RlTGlzdCo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgp
KTsKICAgICBpZiAoIWpzTm9kZUxpc3QtPmhhc0N1c3RvbVByb3BlcnRpZXMoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIGlmIChqc05vZGVMaXN0LT5pbXBsKCkuaXNMaXZlTm9kZUxpc3Qo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3Vl
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VlQ3Vz
dG9tLmNwcAppbmRleCBhOTNkYWUzLi4zZGNlNjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1ZUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwCkBAIC0zOSw3ICszOSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogYm9vbCBKU1RleHRUcmFja0N1ZU93bmVyOjppc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9p
ZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewotICAgIEpTVGV4dFRyYWNrQ3VlKiBqc1RleHRU
cmFja0N1ZSA9IGpzQ2FzdDxKU1RleHRUcmFja0N1ZSo+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7
CisgICAgSlNUZXh0VHJhY2tDdWUqIGpzVGV4dFRyYWNrQ3VlID0ganNDYXN0PEpTVGV4dFRyYWNr
Q3VlKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwogICAgIFRleHRUcmFja0N1ZSYgdGV4dFRy
YWNrQ3VlID0ganNUZXh0VHJhY2tDdWUtPmltcGwoKTsKIAogICAgIC8vIElmIHRoZSBjdWUgaXMg
ZmlyaW5nIGV2ZW50IGxpc3RlbmVycywgaXRzIHdyYXBwZXIgaXMgcmVhY2hhYmxlIGJlY2F1c2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlVHlwZWRB
cnJheUNvbnRyb2xsZXIuY3BwCmluZGV4IDYwNzgyZTAuLjExMDY5MjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZVR5cGVkQXJyYXlDb250cm9s
bGVyLmNwcApAQCAtNDksNyArNDksNyBAQCBKU0M6OkpTQXJyYXlCdWZmZXIqIFdlYkNvcmVUeXBl
ZEFycmF5Q29udHJvbGxlcjo6dG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTQwogCiBib29s
IFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZlck93bmVyOjppc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9p
ZCosIEpTQzo6U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7Ci0gICAgYXV0byYgd3JhcHBlciA9ICpK
U0M6OmpzQ2FzdDxKU0M6OkpTQXJyYXlCdWZmZXIqPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpOwor
ICAgIGF1dG8mIHdyYXBwZXIgPSAqSlNDOjpqc0Nhc3Q8SlNDOjpKU0FycmF5QnVmZmVyKj4oaGFu
ZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwogICAgIGlmICghd3JhcHBlci5oYXNDdXN0b21Qcm9wZXJ0
aWVzKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4gdmlzaXRvci5jb250YWlu
c09wYXF1ZVJvb3Qod3JhcHBlci5pbXBsKCkpOwpAQCAtNTcsNyArNTcsNyBAQCBib29sIFdlYkNv
cmVUeXBlZEFycmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZlck93bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cwogCiB2b2lkIFdlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlcjo6SlNBcnJh
eUJ1ZmZlck93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwg
dm9pZCogY29udGV4dCkKIHsKLSAgICBhdXRvJiB3cmFwcGVyID0gKnN0YXRpY19jYXN0PEpTQzo6
SlNBcnJheUJ1ZmZlcio+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7CisgICAgYXV0byYgd3JhcHBl
ciA9ICpzdGF0aWNfY2FzdDxKU0M6OkpTQXJyYXlCdWZmZXIqPihoYW5kbGUuc2xvdCgpLT5hc0Nl
bGwoKSk7CiAgICAgYXV0byYgYnVmZmVyID0gKndyYXBwZXIuaW1wbCgpOwogICAgIHVuY2FjaGVX
cmFwcGVyKCpzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0KSwgJmJ1ZmZlciwg
JndyYXBwZXIpOwogICAgIGJ1ZmZlci5kZXJlZigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBhMjY2MmQ4Li4wMmM4MzRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQpAQCAtMjkyMSwxNCArMjkyMSwxNCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlv
bgogICAgICAgICAjIGNoZWNrIGJlbG93IHRoZSBpc09ic2VydmFibGUgY2hlY2suCiAgICAgICAg
IG15ICRlbWl0dGVkSlNDYXN0ID0gMDsKICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jbmhl
cml0c0V4dGVuZGVkQXR0cmlidXRlKCRpbnRlcmZhY2UsICJBY3RpdmVET01PYmplY3QiKSkgewot
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlMke2ludGVyZmFjZU5hbWV9KiBq
cyR7aW50ZXJmYWNlTmFtZX0gPSBqc0Nhc3Q8SlMke2ludGVyZmFjZU5hbWV9Kj4oaGFuZGxlLmdl
dCgpLmFzQ2VsbCgpKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
SlMke2ludGVyZmFjZU5hbWV9KiBqcyR7aW50ZXJmYWNlTmFtZX0gPSBqc0Nhc3Q8SlMke2ludGVy
ZmFjZU5hbWV9Kj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpO1xuIik7CiAgICAgICAgICAgICAk
ZW1pdHRlZEpTQ2FzdCA9IDE7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBp
ZiAoanMke2ludGVyZmFjZU5hbWV9LT5pbXBsKCkuaGFzUGVuZGluZ0FjdGl2aXR5KCkpXG4iKTsK
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIp
OwogICAgICAgICB9CiAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNFeHRlbmRl
ZEF0dHJpYnV0ZSgkaW50ZXJmYWNlLCAiRXZlbnRUYXJnZXQiKSkgewogICAgICAgICAgICAgaWYg
KCEkZW1pdHRlZEpTQ2FzdCkgewotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIEpTJHtpbnRlcmZhY2VOYW1lfSoganMke2ludGVyZmFjZU5hbWV9ID0ganNDYXN0PEpTJHtp
bnRlcmZhY2VOYW1lfSo+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7XG4iKTsKKyAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKUyR7aW50ZXJmYWNlTmFtZX0qIGpzJHtpbnRl
cmZhY2VOYW1lfSA9IGpzQ2FzdDxKUyR7aW50ZXJmYWNlTmFtZX0qPihoYW5kbGUuc2xvdCgpLT5h
c0NlbGwoKSk7XG4iKTsKICAgICAgICAgICAgICAgICAkZW1pdHRlZEpTQ2FzdCA9IDE7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoanMke2lu
dGVyZmFjZU5hbWV9LT5pbXBsKCkuaXNGaXJpbmdFdmVudExpc3RlbmVycygpKVxuIik7CkBAIC0y
OTM2LDcgKzI5MzYsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICB9CiAg
ICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFjZSwg
Ik5vZGUiKSkgewogICAgICAgICAgICAgaWYgKCEkZW1pdHRlZEpTQ2FzdCkgewotICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTJHtpbnRlcmZhY2VOYW1lfSoganMke2lu
dGVyZmFjZU5hbWV9ID0ganNDYXN0PEpTJHtpbnRlcmZhY2VOYW1lfSo+KGhhbmRsZS5nZXQoKS5h
c0NlbGwoKSk7XG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBK
UyR7aW50ZXJmYWNlTmFtZX0qIGpzJHtpbnRlcmZhY2VOYW1lfSA9IGpzQ2FzdDxKUyR7aW50ZXJm
YWNlTmFtZX0qPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7XG4iKTsKICAgICAgICAgICAgICAg
ICAkZW1pdHRlZEpTQ2FzdCA9IDE7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBpZiAoSlNOb2RlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJv
b3RzKGhhbmRsZSwgMCwgdmlzaXRvcikpXG4iKTsKQEAgLTI5NDQsNyArMjk0NCw3IEBAIHN1YiBH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIH0KICAgICAgICAgaWYgKEdldEdlbmVyYXRl
SXNSZWFjaGFibGUoJGludGVyZmFjZSkpIHsKICAgICAgICAgICAgIGlmICghJGVtaXR0ZWRKU0Nh
c3QpIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKUyR7aW50ZXJm
YWNlTmFtZX0qIGpzJHtpbnRlcmZhY2VOYW1lfSA9IGpzQ2FzdDxKUyR7aW50ZXJmYWNlTmFtZX0q
PihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgSlMke2ludGVyZmFjZU5hbWV9KiBqcyR7aW50ZXJmYWNlTmFtZX0gPSBq
c0Nhc3Q8SlMke2ludGVyZmFjZU5hbWV9Kj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpO1xuIik7
CiAgICAgICAgICAgICAgICAgJGVtaXR0ZWRKU0Nhc3QgPSAxOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFpc09ic2VydmFibGUoanMke2lu
dGVyZmFjZU5hbWV9KSlcbiIpOwpAQCAtMzAwMSw3ICszMDAxLDcgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICAgICAgICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0V4dGVuZGVkQXR0
cmlidXRlKCRpbnRlcmZhY2UsICJBY3RpdmVET01PYmplY3QiKSkpIHsKICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICJ2b2lkIEpTJHtpbnRlcmZhY2VOYW1lfU93bmVyOjpmaW5hbGl6ZShKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCogY29udGV4dClcbiIpOwogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBKUyR7aW50ZXJmYWNlTmFtZX0qIGpzJHtpbnRlcmZhY2VOYW1lfSA9IGpzQ2FzdDxKUyR7
aW50ZXJmYWNlTmFtZX0qPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpO1xuIik7CisgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIEpTJHtpbnRlcmZhY2VOYW1lfSoganMke2ludGVyZmFjZU5h
bWV9ID0ganNDYXN0PEpTJHtpbnRlcmZhY2VOYW1lfSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgp
KTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBET01XcmFwcGVyV29ybGQm
IHdvcmxkID0gKnN0YXRpY19jYXN0PERPTVdyYXBwZXJXb3JsZCo+KGNvbnRleHQpO1xuIik7CiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHVuY2FjaGVXcmFwcGVyKHdvcmxkLCAmanMk
e2ludGVyZmFjZU5hbWV9LT5pbXBsKCksIGpzJHtpbnRlcmZhY2VOYW1lfSk7XG4iKTsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAganMke2ludGVyZmFjZU5hbWV9LT5yZWxlYXNlSW1w
bCgpO1xuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCmluZGV4IDNiOTIwOTku
LjdmZjBlYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCkBAIC0yMzMsNyAr
MjMzLDcgQEAgYm9vbCBKU1Rlc3RBY3RpdmVET01PYmplY3RPd25lcjo6aXNSZWFjaGFibGVGcm9t
T3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmsKIAogdm9pZCBKU1Rlc3RBY3RpdmVET01P
YmplY3RPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZv
aWQqIGNvbnRleHQpCiB7Ci0gICAgSlNUZXN0QWN0aXZlRE9NT2JqZWN0KiBqc1Rlc3RBY3RpdmVE
T01PYmplY3QgPSBqc0Nhc3Q8SlNUZXN0QWN0aXZlRE9NT2JqZWN0Kj4oaGFuZGxlLmdldCgpLmFz
Q2VsbCgpKTsKKyAgICBKU1Rlc3RBY3RpdmVET01PYmplY3QqIGpzVGVzdEFjdGl2ZURPTU9iamVj
dCA9IGpzQ2FzdDxKU1Rlc3RBY3RpdmVET01PYmplY3QqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwo
KSk7CiAgICAgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCA9ICpzdGF0aWNfY2FzdDxET01XcmFwcGVy
V29ybGQqPihjb250ZXh0KTsKICAgICB1bmNhY2hlV3JhcHBlcih3b3JsZCwgJmpzVGVzdEFjdGl2
ZURPTU9iamVjdC0+aW1wbCgpLCBqc1Rlc3RBY3RpdmVET01PYmplY3QpOwogICAgIGpzVGVzdEFj
dGl2ZURPTU9iamVjdC0+cmVsZWFzZUltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXIuY3BwCmluZGV4IDI5NWRkZTIuLjZhNGU0ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyLmNwcApAQCAtMjAwLDcgKzIwMCw3IEBAIGJvb2wgSlNUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVCiAKIHZvaWQgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJPd25lcjo6ZmluYWxpemUoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqIGNvbnRleHQpCiB7Ci0gICAgSlNUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIqIGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyID0ganNDYXN0PEpTVGVz
dEN1c3RvbU5hbWVkR2V0dGVyKj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsKKyAgICBKU1Rlc3RD
dXN0b21OYW1lZEdldHRlcioganNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIgPSBqc0Nhc3Q8SlNUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgRE9NV3Jh
cHBlcldvcmxkJiB3b3JsZCA9ICpzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0
KTsKICAgICB1bmNhY2hlV3JhcHBlcih3b3JsZCwgJmpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyLT5p
bXBsKCksIGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyKTsKICAgICBqc1Rlc3RDdXN0b21OYW1lZEdl
dHRlci0+cmVsZWFzZUltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcApp
bmRleCA2MTc1Njk1Li41MTdiNjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3Iu
Y3BwCkBAIC0yNDUsNyArMjQ1LDcgQEAgYm9vbCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yT3duZXI6
OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW4KIAogdm9pZCBK
U1Rlc3RFdmVudENvbnN0cnVjdG9yT3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5r
bm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0KQogewotICAgIEpTVGVzdEV2ZW50Q29uc3RydWN0
b3IqIGpzVGVzdEV2ZW50Q29uc3RydWN0b3IgPSBqc0Nhc3Q8SlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
cio+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7CisgICAgSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvciog
anNUZXN0RXZlbnRDb25zdHJ1Y3RvciA9IGpzQ2FzdDxKU1Rlc3RFdmVudENvbnN0cnVjdG9yKj4o
aGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwogICAgIERPTVdyYXBwZXJXb3JsZCYgd29ybGQgPSAq
c3RhdGljX2Nhc3Q8RE9NV3JhcHBlcldvcmxkKj4oY29udGV4dCk7CiAgICAgdW5jYWNoZVdyYXBw
ZXIod29ybGQsICZqc1Rlc3RFdmVudENvbnN0cnVjdG9yLT5pbXBsKCksIGpzVGVzdEV2ZW50Q29u
c3RydWN0b3IpOwogICAgIGpzVGVzdEV2ZW50Q29uc3RydWN0b3ItPnJlbGVhc2VJbXBsKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAppbmRleCAzZDdlMGMxLi43OGI1ZTFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJn
ZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudFRhcmdldC5jcHAKQEAgLTMwNSw3ICszMDUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU1Rl
c3RFdmVudFRhcmdldDo6aW5kZXhHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogc2xv
dEJhcwogCiBib29sIEpTVGVzdEV2ZW50VGFyZ2V0T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0
b3ImIHZpc2l0b3IpCiB7Ci0gICAgSlNUZXN0RXZlbnRUYXJnZXQqIGpzVGVzdEV2ZW50VGFyZ2V0
ID0ganNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0Kj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsKKyAg
ICBKU1Rlc3RFdmVudFRhcmdldCoganNUZXN0RXZlbnRUYXJnZXQgPSBqc0Nhc3Q8SlNUZXN0RXZl
bnRUYXJnZXQqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgaWYgKGpzVGVzdEV2ZW50
VGFyZ2V0LT5pbXBsKCkuaXNGaXJpbmdFdmVudExpc3RlbmVycygpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7CkBAIC0zMTQsNyArMzE0LDcgQEAgYm9v
bCBKU1Rlc3RFdmVudFRhcmdldE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6
OkhhbmRsZTxKU0M6OlVua25vd24KIAogdm9pZCBKU1Rlc3RFdmVudFRhcmdldE93bmVyOjpmaW5h
bGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCogY29udGV4dCkKIHsK
LSAgICBKU1Rlc3RFdmVudFRhcmdldCoganNUZXN0RXZlbnRUYXJnZXQgPSBqc0Nhc3Q8SlNUZXN0
RXZlbnRUYXJnZXQqPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpOworICAgIEpTVGVzdEV2ZW50VGFy
Z2V0KiBqc1Rlc3RFdmVudFRhcmdldCA9IGpzQ2FzdDxKU1Rlc3RFdmVudFRhcmdldCo+KGhhbmRs
ZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICBET01XcmFwcGVyV29ybGQmIHdvcmxkID0gKnN0YXRp
Y19jYXN0PERPTVdyYXBwZXJXb3JsZCo+KGNvbnRleHQpOwogICAgIHVuY2FjaGVXcmFwcGVyKHdv
cmxkLCAmanNUZXN0RXZlbnRUYXJnZXQtPmltcGwoKSwganNUZXN0RXZlbnRUYXJnZXQpOwogICAg
IGpzVGVzdEV2ZW50VGFyZ2V0LT5yZWxlYXNlSW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcApp
bmRleCBhMmRkY2I2Li5jZTRjMzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcApAQCAtMTg1LDcg
KzE4NSw3IEBAIGJvb2wgSlNUZXN0RXhjZXB0aW9uT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4KIAogdm9pZCBKU1Rlc3RFeGNlcHRpb25P
d25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqIGNv
bnRleHQpCiB7Ci0gICAgSlNUZXN0RXhjZXB0aW9uKiBqc1Rlc3RFeGNlcHRpb24gPSBqc0Nhc3Q8
SlNUZXN0RXhjZXB0aW9uKj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsKKyAgICBKU1Rlc3RFeGNl
cHRpb24qIGpzVGVzdEV4Y2VwdGlvbiA9IGpzQ2FzdDxKU1Rlc3RFeGNlcHRpb24qPihoYW5kbGUu
c2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCA9ICpzdGF0aWNf
Y2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0KTsKICAgICB1bmNhY2hlV3JhcHBlcih3b3Js
ZCwgJmpzVGVzdEV4Y2VwdGlvbi0+aW1wbCgpLCBqc1Rlc3RFeGNlcHRpb24pOwogICAgIGpzVGVz
dEV4Y2VwdGlvbi0+cmVsZWFzZUltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlLmNwcAppbmRleCA5YjkxOGMyLi5jOWRjZTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdl
bmVyYXRlSXNSZWFjaGFibGUuY3BwCkBAIC0xNDksNyArMTQ5LDcgQEAgc3RhdGljIGlubGluZSBi
b29sIGlzT2JzZXJ2YWJsZShKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKiBqc1Rlc3RHZW5lcmF0
ZUlzUmVhY2gKIAogYm9vbCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lk
KiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7Ci0gICAgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZSoganNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSA9IGpzQ2FzdDxKU1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlKj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsKKyAgICBKU1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlKiBqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlID0ganNDYXN0PEpTVGVzdEdlbmVyYXRl
SXNSZWFjaGFibGUqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgaWYgKCFpc09ic2Vy
dmFibGUoanNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICBUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSogcm9vdCA9ICZqc1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlLT5pbXBsKCk7CkBAIC0xNTgsNyArMTU4LDcgQEAgYm9vbCBKU1Rlc3RHZW5lcmF0ZUlz
UmVhY2hhYmxlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpT
QzoKIAogdm9pZCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlT3duZXI6OmZpbmFsaXplKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0KQogewotICAgIEpTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGUqIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUgPSBqc0Nhc3Q8
SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSo+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7CisgICAg
SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSoganNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSA9IGpz
Q2FzdDxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkp
OwogICAgIERPTVdyYXBwZXJXb3JsZCYgd29ybGQgPSAqc3RhdGljX2Nhc3Q8RE9NV3JhcHBlcldv
cmxkKj4oY29udGV4dCk7CiAgICAgdW5jYWNoZVdyYXBwZXIod29ybGQsICZqc1Rlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlLT5pbXBsKCksIGpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUpOwogICAgIGpz
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGUtPnJlbGVhc2VJbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2Uu
Y3BwCmluZGV4IGU2MWRkZDEuLjZkYTk0N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCkBAIC05
NjIsNyArOTYyLDcgQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU1VQUExFTUVOVEFM
Q09OU1RBTlQyKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqLAogI2VuZGlmCiBib29sIEpTVGVz
dEludGVyZmFjZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxK
U0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewotICAg
IEpTVGVzdEludGVyZmFjZSoganNUZXN0SW50ZXJmYWNlID0ganNDYXN0PEpTVGVzdEludGVyZmFj
ZSo+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7CisgICAgSlNUZXN0SW50ZXJmYWNlKiBqc1Rlc3RJ
bnRlcmZhY2UgPSBqc0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxs
KCkpOwogICAgIGlmIChqc1Rlc3RJbnRlcmZhY2UtPmltcGwoKS5oYXNQZW5kaW5nQWN0aXZpdHko
KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOwpAQCAt
OTcxLDcgKzk3MSw3IEBAIGJvb2wgSlNUZXN0SW50ZXJmYWNlT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4KIAogdm9pZCBKU1Rlc3RJbnRl
cmZhY2VPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZv
aWQqIGNvbnRleHQpCiB7Ci0gICAgSlNUZXN0SW50ZXJmYWNlKiBqc1Rlc3RJbnRlcmZhY2UgPSBq
c0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsKKyAgICBKU1Rl
c3RJbnRlcmZhY2UqIGpzVGVzdEludGVyZmFjZSA9IGpzQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPiho
YW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCA9ICpz
dGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0KTsKICAgICB1bmNhY2hlV3JhcHBl
cih3b3JsZCwgJmpzVGVzdEludGVyZmFjZS0+aW1wbCgpLCBqc1Rlc3RJbnRlcmZhY2UpOwogICAg
IGpzVGVzdEludGVyZmFjZS0+cmVsZWFzZUltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAppbmRleCBmNDAxZTFmLi42OGZmNDk5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCkBAIC0xNzMsNyArMTczLDcg
QEAgYm9vbCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEoKIAogdm9pZCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyT3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2
b2lkKiBjb250ZXh0KQogewotICAgIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIGpzVGVz
dE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgPSBqc0Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0
ZW5lcio+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7CisgICAgSlNUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lcioganNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciA9IGpzQ2FzdDxKU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwogICAgIERPTVdy
YXBwZXJXb3JsZCYgd29ybGQgPSAqc3RhdGljX2Nhc3Q8RE9NV3JhcHBlcldvcmxkKj4oY29udGV4
dCk7CiAgICAgdW5jYWNoZVdyYXBwZXIod29ybGQsICZqc1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLT5pbXBsKCksIGpzVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIpOwogICAgIGpzVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXItPnJlbGVhc2VJbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRD
b25zdHJ1Y3Rvci5jcHAKaW5kZXggODdjODk5OS4uMDExZDlhOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZENvbnN0cnVjdG9yLmNwcApAQCAtMTk0LDcgKzE5NCw3IEBAIEpTVmFsdWUgSlNUZXN0TmFt
ZWRDb25zdHJ1Y3Rvcjo6Z2V0TmFtZWRDb25zdHJ1Y3RvcihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0
KiBnbG9iCiAKIGJvb2wgSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvck93bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNs
b3RWaXNpdG9yJiB2aXNpdG9yKQogewotICAgIEpTVGVzdE5hbWVkQ29uc3RydWN0b3IqIGpzVGVz
dE5hbWVkQ29uc3RydWN0b3IgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcio+KGhhbmRs
ZS5nZXQoKS5hc0NlbGwoKSk7CisgICAgSlNUZXN0TmFtZWRDb25zdHJ1Y3RvcioganNUZXN0TmFt
ZWRDb25zdHJ1Y3RvciA9IGpzQ2FzdDxKU1Rlc3ROYW1lZENvbnN0cnVjdG9yKj4oaGFuZGxlLnNs
b3QoKS0+YXNDZWxsKCkpOwogICAgIGlmIChqc1Rlc3ROYW1lZENvbnN0cnVjdG9yLT5pbXBsKCku
aGFzUGVuZGluZ0FjdGl2aXR5KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIFVOVVNFRF9Q
QVJBTSh2aXNpdG9yKTsKQEAgLTIwMyw3ICsyMDMsNyBAQCBib29sIEpTVGVzdE5hbWVkQ29uc3Ry
dWN0b3JPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpV
bgogCiB2b2lkIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqIGNvbnRleHQpCiB7Ci0gICAgSlNUZXN0TmFt
ZWRDb25zdHJ1Y3RvcioganNUZXN0TmFtZWRDb25zdHJ1Y3RvciA9IGpzQ2FzdDxKU1Rlc3ROYW1l
ZENvbnN0cnVjdG9yKj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsKKyAgICBKU1Rlc3ROYW1lZENv
bnN0cnVjdG9yKiBqc1Rlc3ROYW1lZENvbnN0cnVjdG9yID0ganNDYXN0PEpTVGVzdE5hbWVkQ29u
c3RydWN0b3IqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgRE9NV3JhcHBlcldvcmxk
JiB3b3JsZCA9ICpzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0KTsKICAgICB1
bmNhY2hlV3JhcHBlcih3b3JsZCwgJmpzVGVzdE5hbWVkQ29uc3RydWN0b3ItPmltcGwoKSwganNU
ZXN0TmFtZWRDb25zdHJ1Y3Rvcik7CiAgICAganNUZXN0TmFtZWRDb25zdHJ1Y3Rvci0+cmVsZWFz
ZUltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggMmQyYzA2YS4uYWRhODg2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAg
LTQ3NzksNyArNDc3OSw3IEBAIGJvb2wgSlNUZXN0T2JqT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9w
YXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlCiAKIHZvaWQgSlNUZXN0
T2JqT3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lk
KiBjb250ZXh0KQogewotICAgIEpTVGVzdE9iaioganNUZXN0T2JqID0ganNDYXN0PEpTVGVzdE9i
aio+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7CisgICAgSlNUZXN0T2JqKiBqc1Rlc3RPYmogPSBq
c0Nhc3Q8SlNUZXN0T2JqKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwogICAgIERPTVdyYXBw
ZXJXb3JsZCYgd29ybGQgPSAqc3RhdGljX2Nhc3Q8RE9NV3JhcHBlcldvcmxkKj4oY29udGV4dCk7
CiAgICAgdW5jYWNoZVdyYXBwZXIod29ybGQsICZqc1Rlc3RPYmotPmltcGwoKSwganNUZXN0T2Jq
KTsKICAgICBqc1Rlc3RPYmotPnJlbGVhc2VJbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKaW5kZXggYjU4NDJmZi4uYjMxMTY2NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcApAQCAtMjI0LDcgKzIyNCw3
IEBAIGJvb2wgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc093bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKCiAKIHZvaWQgSlNUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9yc093bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwg
dm9pZCogY29udGV4dCkKIHsKLSAgICBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKiBqc1Rl
c3RPdmVybG9hZGVkQ29uc3RydWN0b3JzID0ganNDYXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnMqPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpOworICAgIEpTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnMqIGpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMgPSBqc0Nhc3Q8SlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9ycyo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICBET01X
cmFwcGVyV29ybGQmIHdvcmxkID0gKnN0YXRpY19jYXN0PERPTVdyYXBwZXJXb3JsZCo+KGNvbnRl
eHQpOwogICAgIHVuY2FjaGVXcmFwcGVyKHdvcmxkLCAmanNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9ycy0+aW1wbCgpLCBqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKTsKICAgICBqc1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzLT5yZWxlYXNlSW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAppbmRleCAyZWIzZThm
Li43NjlmYzY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlLmNwcApAQCAtMzIzLDcgKzMyMyw3IEBAIGJvb2wgSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3Rz
KEpTQzo6CiAKIHZvaWQgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlT3duZXI6
OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0
KQogewotICAgIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSoganNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlID0ganNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZSo+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7CisgICAgSlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UgPSBqc0Nhc3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKj4o
aGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwogICAgIERPTVdyYXBwZXJXb3JsZCYgd29ybGQgPSAq
c3RhdGljX2Nhc3Q8RE9NV3JhcHBlcldvcmxkKj4oY29udGV4dCk7CiAgICAgdW5jYWNoZVdyYXBw
ZXIod29ybGQsICZqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UtPmltcGwoKSwg
anNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKTsKICAgICBqc1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UtPnJlbGVhc2VJbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNw
cAppbmRleCBhMGU5YzQ4Li44YjQyNjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKQEAgLTczNSw3
ICs3MzUsNyBAQCBib29sIEpTVGVzdFR5cGVkZWZzT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaAogCiB2b2lkIEpTVGVzdFR5cGVkZWZz
T3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBj
b250ZXh0KQogewotICAgIEpTVGVzdFR5cGVkZWZzKiBqc1Rlc3RUeXBlZGVmcyA9IGpzQ2FzdDxK
U1Rlc3RUeXBlZGVmcyo+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7CisgICAgSlNUZXN0VHlwZWRl
ZnMqIGpzVGVzdFR5cGVkZWZzID0ganNDYXN0PEpTVGVzdFR5cGVkZWZzKj4oaGFuZGxlLnNsb3Qo
KS0+YXNDZWxsKCkpOwogICAgIERPTVdyYXBwZXJXb3JsZCYgd29ybGQgPSAqc3RhdGljX2Nhc3Q8
RE9NV3JhcHBlcldvcmxkKj4oY29udGV4dCk7CiAgICAgdW5jYWNoZVdyYXBwZXIod29ybGQsICZq
c1Rlc3RUeXBlZGVmcy0+aW1wbCgpLCBqc1Rlc3RUeXBlZGVmcyk7CiAgICAganNUZXN0VHlwZWRl
ZnMtPnJlbGVhc2VJbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcAppbmRleCA3NWU2MDcwLi5hYzRjMjkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRy
aWJ1dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U2F0dHJpYnV0ZS5jcHAKQEAgLTE3NCw3ICsxNzQsNyBAQCBib29sIEpTYXR0cmlidXRlT3duZXI6
OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFu
ZAogCiB2b2lkIEpTYXR0cmlidXRlT3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5r
bm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0KQogewotICAgIEpTYXR0cmlidXRlKiBqc2F0dHJp
YnV0ZSA9IGpzQ2FzdDxKU2F0dHJpYnV0ZSo+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7CisgICAg
SlNhdHRyaWJ1dGUqIGpzYXR0cmlidXRlID0ganNDYXN0PEpTYXR0cmlidXRlKj4oaGFuZGxlLnNs
b3QoKS0+YXNDZWxsKCkpOwogICAgIERPTVdyYXBwZXJXb3JsZCYgd29ybGQgPSAqc3RhdGljX2Nh
c3Q8RE9NV3JhcHBlcldvcmxkKj4oY29udGV4dCk7CiAgICAgdW5jYWNoZVdyYXBwZXIod29ybGQs
ICZqc2F0dHJpYnV0ZS0+aW1wbCgpLCBqc2F0dHJpYnV0ZSk7CiAgICAganNhdHRyaWJ1dGUtPnJl
bGVhc2VJbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNyZWFkb25seS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNyZWFkb25seS5jcHAKaW5kZXggYzQ1NTRjMS4uMjhkZTczOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5
LmNwcApAQCAtMTQ5LDcgKzE0OSw3IEBAIGJvb2wgSlNyZWFkb25seU93bmVyOjppc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsCiAKIHZvaWQg
SlNyZWFkb25seU93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRs
ZSwgdm9pZCogY29udGV4dCkKIHsKLSAgICBKU3JlYWRvbmx5KiBqc3JlYWRvbmx5ID0ganNDYXN0
PEpTcmVhZG9ubHkqPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpOworICAgIEpTcmVhZG9ubHkqIGpz
cmVhZG9ubHkgPSBqc0Nhc3Q8SlNyZWFkb25seSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsK
ICAgICBET01XcmFwcGVyV29ybGQmIHdvcmxkID0gKnN0YXRpY19jYXN0PERPTVdyYXBwZXJXb3Js
ZCo+KGNvbnRleHQpOwogICAgIHVuY2FjaGVXcmFwcGVyKHdvcmxkLCAmanNyZWFkb25seS0+aW1w
bCgpLCBqc3JlYWRvbmx5KTsKICAgICBqc3JlYWRvbmx5LT5yZWxlYXNlSW1wbCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfcm9vdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9yb290LmNwcAppbmRleCAxNjA0MTBjLi5hNDlmYTczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9yb290LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9yb290LmNwcApAQCAtMjAwLDcgKzIwMCw3IEBAIHZv
aWQgUm9vdE9iamVjdDo6cmVtb3ZlUnVudGltZU9iamVjdChSdW50aW1lT2JqZWN0KiBvYmplY3Qp
CiAKIHZvaWQgUm9vdE9iamVjdDo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBo
YW5kbGUsIHZvaWQqKQogewotICAgIFJ1bnRpbWVPYmplY3QqIG9iamVjdCA9IHN0YXRpY19jYXN0
PFJ1bnRpbWVPYmplY3QqPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpOworICAgIFJ1bnRpbWVPYmpl
Y3QqIG9iamVjdCA9IHN0YXRpY19jYXN0PFJ1bnRpbWVPYmplY3QqPihoYW5kbGUuc2xvdCgpLT5h
c0NlbGwoKSk7CiAKICAgICBSZWY8Um9vdE9iamVjdD4gcHJvdGVjdCgqdGhpcyk7CiAgICAgb2Jq
ZWN0LT5pbnZhbGlkYXRlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226953</attachid>
            <date>2014-03-17 13:33:33 -0700</date>
            <delta_ts>2014-03-17 14:25:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130356.diff</filename>
            <type>text/plain</type>
            <size>28320</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">Y29tbWl0IDM4YjU4NWQzZjg5ODk5MzE0NjQ3ZmVhZmEwMDk4NmM0ODA2M2I2NDYKQXV0aG9yOiBB
bmRyZWFzIEtsaW5nIDxha2xpbmdAYXBwbGUuY29tPgpEYXRlOiAgIE1vbiBNYXIgMTcgMTM6MzE6
MTIgMjAxNCAtMDcwMAoKICAgIDEzMDM1NgoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzZWY4NGRmLi5lYWYwZmQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTQtMDMtMTcgIEFuZHJlYXMgS2xpbmcg
IDxha2xpbmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBKU0M6Okhh
bmRsZSBudWxsIGNoZWNrcyBpbiBiaW5kaW5ncyBjb2RlLgorICAgICAgICA8aHR0cHM6Ly93ZWJr
aXQub3JnL2IvMTMwMzU2PgorCisgICAgICAgIFVzZSBIYW5kbGU6OnNsb3QoKSBkaXJlY3RseSBp
bnN0ZWFkIG9mIGdvaW5nIHRocm91Z2ggSGFuZGxlOjpnZXQoKS4KKyAgICAgICAgVGhpcyBhdm9p
ZHMgbnVsbCBjaGVja2luZyB0aGUgSGFuZGxlU2xvdCwgd2hpY2ggaXNuJ3QgbmVjZXNzYXJ5IGhl
cmUKKyAgICAgICAgYW55d2F5LCBhbmQgdGhlIGNvZGUgYWxyZWFkeSBhc3N1bWVzIGl0J2xsIG5l
dmVyIGJlIG51bGwuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTQ1NTUnVsZUxpc3RPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ1NTVmFsdWVDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNDU1NWYWx1ZU93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyk6CisgICAg
ICAgIChXZWJDb3JlOjpKU0NTU1ZhbHVlT3duZXI6OmZpbmFsaXplKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNNdXRhdGlvbk9ic2VydmVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNOb2RlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTm9kZUxp
c3RPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTVGV4dFRyYWNrQ3VlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGV4dFRy
YWNrQ3VlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9XZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyOjpKU0FycmF5QnVmZmVyT3duZXI6OmlzUmVh
Y2hhYmxlRnJvbU9wYXF1ZVJvb3RzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVUeXBlZEFy
cmF5Q29udHJvbGxlcjo6SlNBcnJheUJ1ZmZlck93bmVyOjpmaW5hbGl6ZSk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uKToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9yb290LmNwcDoKKyAgICAg
ICAgKEpTQzo6QmluZGluZ3M6OlJvb3RPYmplY3Q6OmZpbmFsaXplKToKKwogMjAxNC0wMS0yOSAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbQ1NT
IEdyaWQgTGF5b3V0XSBnZXRDb21wdXRlZFN0eWxlKCkgbm90IHVzaW5nIGF1dGhvcidzIG9yZGVy
IHdoZW4gc2hvd2luZyBuYW1lZCBncmlkIGxpbmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0NTU1J1bGVMaXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ1NTUnVsZUxpc3RDdXN0b20uY3BwCmluZGV4IDg0NjJmOTcuLjg5ZTk5MjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUxpc3RDdXN0
b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTUnVsZUxpc3RDdXN0
b20uY3BwCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogYm9vbCBKU0NT
U1J1bGVMaXN0T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7Ci0gICAg
SlNDU1NSdWxlTGlzdCoganNDU1NSdWxlTGlzdCA9IGpzQ2FzdDxKU0NTU1J1bGVMaXN0Kj4oaGFu
ZGxlLmdldCgpLmFzQ2VsbCgpKTsKKyAgICBKU0NTU1J1bGVMaXN0KiBqc0NTU1J1bGVMaXN0ID0g
anNDYXN0PEpTQ1NTUnVsZUxpc3QqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgaWYg
KCFqc0NTU1J1bGVMaXN0LT5oYXNDdXN0b21Qcm9wZXJ0aWVzKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBpZiAoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCA9IGpzQ1NTUnVsZUxpc3Qt
PmltcGwoKS5zdHlsZVNoZWV0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0NTU1ZhbHVlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q1NTVmFsdWVDdXN0b20uY3BwCmluZGV4IGM4MzIzNjcuLmU2MTRkNDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTVmFsdWVDdXN0b20uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ1NTVmFsdWVDdXN0b20uY3BwCkBAIC00OSw3ICs0OSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogYm9vbCBKU0NTU1ZhbHVlT3duZXI6OmlzUmVhY2hh
YmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lk
KiBjb250ZXh0LCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKLSAgICBKU0NTU1ZhbHVlKiBqc0NT
U1ZhbHVlID0ganNDYXN0PEpTQ1NTVmFsdWUqPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpOworICAg
IEpTQ1NTVmFsdWUqIGpzQ1NTVmFsdWUgPSBqc0Nhc3Q8SlNDU1NWYWx1ZSo+KGhhbmRsZS5zbG90
KCktPmFzQ2VsbCgpKTsKICAgICBpZiAoIWpzQ1NTVmFsdWUtPmhhc0N1c3RvbVByb3BlcnRpZXMo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIERPTVdyYXBwZXJXb3JsZCogd29ybGQgPSBz
dGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0KTsKQEAgLTYxLDcgKzYxLDcgQEAg
Ym9vbCBKU0NTU1ZhbHVlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4gaGFuZGwKIAogdm9pZCBKU0NTU1ZhbHVlT3duZXI6OmZpbmFsaXpl
KEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0KQogewotICAg
IEpTQ1NTVmFsdWUqIGpzQ1NTVmFsdWUgPSBqc0Nhc3Q8SlNDU1NWYWx1ZSo+KGhhbmRsZS5nZXQo
KS5hc0NlbGwoKSk7CisgICAgSlNDU1NWYWx1ZSoganNDU1NWYWx1ZSA9IGpzQ2FzdDxKU0NTU1Zh
bHVlKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwogICAgIERPTVdyYXBwZXJXb3JsZCYgd29y
bGQgPSAqc3RhdGljX2Nhc3Q8RE9NV3JhcHBlcldvcmxkKj4oY29udGV4dCk7CiAgICAgd29ybGQu
bV9jc3NWYWx1ZVJvb3RzLnJlbW92ZSgmanNDU1NWYWx1ZS0+aW1wbCgpKTsKICAgICB1bmNhY2hl
V3JhcHBlcih3b3JsZCwgJmpzQ1NTVmFsdWUtPmltcGwoKSwganNDU1NWYWx1ZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9t
LmNwcAppbmRleCAwOTc2MDk0Li5jYTk5ZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKQEAgLTYzLDcgKzYz
LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU011dGF0aW9uT2JzZXJ2ZXJDb25z
dHJ1Y3Rvcjo6Y29uc3RydWN0SlNNdXRhdGlvbk8KIAogYm9vbCBKU011dGF0aW9uT2JzZXJ2ZXJP
d25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
PiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKLSAgICBNdXRhdGlvbk9i
c2VydmVyJiBvYnNlcnZlciA9IGpzQ2FzdDxKU011dGF0aW9uT2JzZXJ2ZXIqPihoYW5kbGUuZ2V0
KCkuYXNDZWxsKCkpLT5pbXBsKCk7CisgICAgTXV0YXRpb25PYnNlcnZlciYgb2JzZXJ2ZXIgPSBq
c0Nhc3Q8SlNNdXRhdGlvbk9ic2VydmVyKj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpLT5pbXBs
KCk7CiAgICAgYXV0byBvYnNlcnZlZE5vZGVzID0gb2JzZXJ2ZXIuZ2V0T2JzZXJ2ZWROb2Rlcygp
OwogICAgIGZvciAoYXV0byBpdCA9IG9ic2VydmVkTm9kZXMuYmVnaW4oKSwgZW5kID0gb2JzZXJ2
ZWROb2Rlcy5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIGlmICh2aXNpdG9yLmNv
bnRhaW5zT3BhcXVlUm9vdChyb290KCppdCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTm9kZUN1c3RvbS5jcHAKaW5kZXggNDE1MzM1Zi4uNTE1MjkwOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgc3Rh
dGljIGlubGluZSBib29sIGlzUmVhY2hhYmxlRnJvbURPTShKU05vZGUqIGpzTm9kZSwgTm9kZSog
bm9kZSwgU2xvdFZpc2l0b3ImIHYKIAogYm9vbCBKU05vZGVPd25lcjo6aXNSZWFjaGFibGVGcm9t
T3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90
VmlzaXRvciYgdmlzaXRvcikKIHsKLSAgICBKU05vZGUqIGpzTm9kZSA9IGpzQ2FzdDxKU05vZGUq
PihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpOworICAgIEpTTm9kZSoganNOb2RlID0ganNDYXN0PEpT
Tm9kZSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICByZXR1cm4gaXNSZWFjaGFibGVG
cm9tRE9NKGpzTm9kZSwgJmpzTm9kZS0+aW1wbCgpLCB2aXNpdG9yKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVMaXN0Q3VzdG9tLmNwcAppbmRleCBjNGJmN2Qw
Li41NTBkZDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVM
aXN0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVMaXN0
Q3VzdG9tLmNwcApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGJvb2wg
SlNOb2RlTGlzdE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxK
U0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogewotICAg
IEpTTm9kZUxpc3QqIGpzTm9kZUxpc3QgPSBqc0Nhc3Q8SlNOb2RlTGlzdCo+KGhhbmRsZS5nZXQo
KS5hc0NlbGwoKSk7CisgICAgSlNOb2RlTGlzdCoganNOb2RlTGlzdCA9IGpzQ2FzdDxKU05vZGVM
aXN0Kj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwogICAgIGlmICghanNOb2RlTGlzdC0+aGFz
Q3VzdG9tUHJvcGVydGllcygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKGpzTm9k
ZUxpc3QtPmltcGwoKS5pc0xpdmVOb2RlTGlzdCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNUZXh0VHJhY2tDdWVDdXN0b20uY3BwCmluZGV4IGE5M2RhZTMuLjNkY2U2
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3Vl
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1
ZUN1c3RvbS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBib29s
IEpTVGV4dFRyYWNrQ3VlT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7
Ci0gICAgSlNUZXh0VHJhY2tDdWUqIGpzVGV4dFRyYWNrQ3VlID0ganNDYXN0PEpTVGV4dFRyYWNr
Q3VlKj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsKKyAgICBKU1RleHRUcmFja0N1ZSoganNUZXh0
VHJhY2tDdWUgPSBqc0Nhc3Q8SlNUZXh0VHJhY2tDdWUqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwo
KSk7CiAgICAgVGV4dFRyYWNrQ3VlJiB0ZXh0VHJhY2tDdWUgPSBqc1RleHRUcmFja0N1ZS0+aW1w
bCgpOwogCiAgICAgLy8gSWYgdGhlIGN1ZSBpcyBmaXJpbmcgZXZlbnQgbGlzdGVuZXJzLCBpdHMg
d3JhcHBlciBpcyByZWFjaGFibGUgYmVjYXVzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAKaW5kZXggNjA3
ODJlMC4uMTEwNjkyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2Vi
Q29yZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9XZWJDb3JlVHlwZWRBcnJheUNvbnRyb2xsZXIuY3BwCkBAIC00OSw3ICs0OSw3IEBAIEpT
Qzo6SlNBcnJheUJ1ZmZlciogV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyOjp0b0pTKEpTQzo6
RXhlY1N0YXRlKiBzdGF0ZSwgSlNDCiAKIGJvb2wgV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVy
OjpKU0FycmF5QnVmZmVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFu
ZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgSlNDOjpTbG90VmlzaXRvciYgdmlzaXRv
cikKIHsKLSAgICBhdXRvJiB3cmFwcGVyID0gKkpTQzo6anNDYXN0PEpTQzo6SlNBcnJheUJ1ZmZl
cio+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7CisgICAgYXV0byYgd3JhcHBlciA9ICpKU0M6Ompz
Q2FzdDxKU0M6OkpTQXJyYXlCdWZmZXIqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAg
aWYgKCF3cmFwcGVyLmhhc0N1c3RvbVByb3BlcnRpZXMoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIHJldHVybiB2aXNpdG9yLmNvbnRhaW5zT3BhcXVlUm9vdCh3cmFwcGVyLmltcGwoKSk7
CkBAIC01Nyw3ICs1Nyw3IEBAIGJvb2wgV2ViQ29yZVR5cGVkQXJyYXlDb250cm9sbGVyOjpKU0Fy
cmF5QnVmZmVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzCiAKIHZvaWQgV2ViQ29y
ZVR5cGVkQXJyYXlDb250cm9sbGVyOjpKU0FycmF5QnVmZmVyT3duZXI6OmZpbmFsaXplKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0KQogewotICAgIGF1dG8m
IHdyYXBwZXIgPSAqc3RhdGljX2Nhc3Q8SlNDOjpKU0FycmF5QnVmZmVyKj4oaGFuZGxlLmdldCgp
LmFzQ2VsbCgpKTsKKyAgICBhdXRvJiB3cmFwcGVyID0gKnN0YXRpY19jYXN0PEpTQzo6SlNBcnJh
eUJ1ZmZlcio+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICBhdXRvJiBidWZmZXIgPSAq
d3JhcHBlci5pbXBsKCk7CiAgICAgdW5jYWNoZVdyYXBwZXIoKnN0YXRpY19jYXN0PERPTVdyYXBw
ZXJXb3JsZCo+KGNvbnRleHQpLCAmYnVmZmVyLCAmd3JhcHBlcik7CiAgICAgYnVmZmVyLmRlcmVm
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCmluZGV4IGEyNjYyZDguLjAyYzgzNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0yOTIxLDE0ICsyOTIxLDE0
IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICMgY2hlY2sgYmVsb3cgdGhl
IGlzT2JzZXJ2YWJsZSBjaGVjay4KICAgICAgICAgbXkgJGVtaXR0ZWRKU0Nhc3QgPSAwOwogICAg
ICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzRXh0ZW5kZWRBdHRyaWJ1dGUoJGludGVy
ZmFjZSwgIkFjdGl2ZURPTU9iamVjdCIpKSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBKUyR7aW50ZXJmYWNlTmFtZX0qIGpzJHtpbnRlcmZhY2VOYW1lfSA9IGpzQ2FzdDxK
UyR7aW50ZXJmYWNlTmFtZX0qPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpO1xuIik7CisgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKUyR7aW50ZXJmYWNlTmFtZX0qIGpzJHtpbnRl
cmZhY2VOYW1lfSA9IGpzQ2FzdDxKUyR7aW50ZXJmYWNlTmFtZX0qPihoYW5kbGUuc2xvdCgpLT5h
c0NlbGwoKSk7XG4iKTsKICAgICAgICAgICAgICRlbWl0dGVkSlNDYXN0ID0gMTsKICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChqcyR7aW50ZXJmYWNlTmFtZX0tPmltcGwo
KS5oYXNQZW5kaW5nQWN0aXZpdHkoKSlcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCRj
b2RlR2VuZXJhdG9yLT5Jbmhlcml0c0V4dGVuZGVkQXR0cmlidXRlKCRpbnRlcmZhY2UsICJFdmVu
dFRhcmdldCIpKSB7CiAgICAgICAgICAgICBpZiAoISRlbWl0dGVkSlNDYXN0KSB7Ci0gICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlMke2ludGVyZmFjZU5hbWV9KiBqcyR7
aW50ZXJmYWNlTmFtZX0gPSBqc0Nhc3Q8SlMke2ludGVyZmFjZU5hbWV9Kj4oaGFuZGxlLmdldCgp
LmFzQ2VsbCgpKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IEpTJHtpbnRlcmZhY2VOYW1lfSoganMke2ludGVyZmFjZU5hbWV9ID0ganNDYXN0PEpTJHtpbnRl
cmZhY2VOYW1lfSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTtcbiIpOwogICAgICAgICAgICAg
ICAgICRlbWl0dGVkSlNDYXN0ID0gMTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIGlmIChqcyR7aW50ZXJmYWNlTmFtZX0tPmltcGwoKS5pc0Zpcmlu
Z0V2ZW50TGlzdGVuZXJzKCkpXG4iKTsKQEAgLTI5MzYsNyArMjkzNiw3IEBAIHN1YiBHZW5lcmF0
ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIH0KICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5J
bmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAiTm9kZSIpKSB7CiAgICAgICAgICAgICBpZiAo
ISRlbWl0dGVkSlNDYXN0KSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgSlMke2ludGVyZmFjZU5hbWV9KiBqcyR7aW50ZXJmYWNlTmFtZX0gPSBqc0Nhc3Q8SlMke2lu
dGVyZmFjZU5hbWV9Kj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTtcbiIpOworICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTJHtpbnRlcmZhY2VOYW1lfSoganMke2ludGVy
ZmFjZU5hbWV9ID0ganNDYXN0PEpTJHtpbnRlcmZhY2VOYW1lfSo+KGhhbmRsZS5zbG90KCktPmFz
Q2VsbCgpKTtcbiIpOwogICAgICAgICAgICAgICAgICRlbWl0dGVkSlNDYXN0ID0gMTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChKU05vZGVP
d25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoaGFuZGxlLCAwLCB2aXNpdG9yKSlcbiIp
OwpAQCAtMjk0NCw3ICsyOTQ0LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAg
ICAgfQogICAgICAgICBpZiAoR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkaW50ZXJmYWNlKSkgewog
ICAgICAgICAgICAgaWYgKCEkZW1pdHRlZEpTQ2FzdCkgewotICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIEpTJHtpbnRlcmZhY2VOYW1lfSoganMke2ludGVyZmFjZU5hbWV9
ID0ganNDYXN0PEpTJHtpbnRlcmZhY2VOYW1lfSo+KGhhbmRsZS5nZXQoKS5hc0NlbGwoKSk7XG4i
KTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKUyR7aW50ZXJmYWNl
TmFtZX0qIGpzJHtpbnRlcmZhY2VOYW1lfSA9IGpzQ2FzdDxKUyR7aW50ZXJmYWNlTmFtZX0qPiho
YW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7XG4iKTsKICAgICAgICAgICAgICAgICAkZW1pdHRlZEpT
Q2FzdCA9IDE7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBpZiAoIWlzT2JzZXJ2YWJsZShqcyR7aW50ZXJmYWNlTmFtZX0pKVxuIik7CkBAIC0zMDAx
LDcgKzMwMDEsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgJGNvZGVH
ZW5lcmF0b3ItPkluaGVyaXRzRXh0ZW5kZWRBdHRyaWJ1dGUoJGludGVyZmFjZSwgIkFjdGl2ZURP
TU9iamVjdCIpKSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgInZvaWQgSlMke2ludGVy
ZmFjZU5hbWV9T3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxl
LCB2b2lkKiBjb250ZXh0KVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7
Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEpTJHtpbnRlcmZhY2VOYW1lfSoganMk
e2ludGVyZmFjZU5hbWV9ID0ganNDYXN0PEpTJHtpbnRlcmZhY2VOYW1lfSo+KGhhbmRsZS5nZXQo
KS5hc0NlbGwoKSk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlMke2lu
dGVyZmFjZU5hbWV9KiBqcyR7aW50ZXJmYWNlTmFtZX0gPSBqc0Nhc3Q8SlMke2ludGVyZmFjZU5h
bWV9Kj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIERPTVdyYXBwZXJXb3JsZCYgd29ybGQgPSAqc3RhdGljX2Nhc3Q8RE9NV3Jh
cHBlcldvcmxkKj4oY29udGV4dCk7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgdW5jYWNoZVdyYXBwZXIod29ybGQsICZqcyR7aW50ZXJmYWNlTmFtZX0tPmltcGwoKSwganMk
e2ludGVyZmFjZU5hbWV9KTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBq
cyR7aW50ZXJmYWNlTmFtZX0tPnJlbGVhc2VJbXBsKCk7XG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2
ZURPTU9iamVjdC5jcHAKaW5kZXggM2I5MjA5OS4uN2ZmMGVhMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFj
dGl2ZURPTU9iamVjdC5jcHAKQEAgLTIzMyw3ICsyMzMsNyBAQCBib29sIEpTVGVzdEFjdGl2ZURP
TU9iamVjdE93bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6
OlVuawogCiB2b2lkIEpTVGVzdEFjdGl2ZURPTU9iamVjdE93bmVyOjpmaW5hbGl6ZShKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCogY29udGV4dCkKIHsKLSAgICBKU1Rlc3RB
Y3RpdmVET01PYmplY3QqIGpzVGVzdEFjdGl2ZURPTU9iamVjdCA9IGpzQ2FzdDxKU1Rlc3RBY3Rp
dmVET01PYmplY3QqPihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpOworICAgIEpTVGVzdEFjdGl2ZURP
TU9iamVjdCoganNUZXN0QWN0aXZlRE9NT2JqZWN0ID0ganNDYXN0PEpTVGVzdEFjdGl2ZURPTU9i
amVjdCo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICBET01XcmFwcGVyV29ybGQmIHdv
cmxkID0gKnN0YXRpY19jYXN0PERPTVdyYXBwZXJXb3JsZCo+KGNvbnRleHQpOwogICAgIHVuY2Fj
aGVXcmFwcGVyKHdvcmxkLCAmanNUZXN0QWN0aXZlRE9NT2JqZWN0LT5pbXBsKCksIGpzVGVzdEFj
dGl2ZURPTU9iamVjdCk7CiAgICAganNUZXN0QWN0aXZlRE9NT2JqZWN0LT5yZWxlYXNlSW1wbCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKaW5kZXggMjk1ZGRlMi4uNmE0
ZTQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCkBAIC0yMDAsNyAr
MjAwLDcgQEAgYm9vbCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlck93bmVyOjppc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlUKIAogdm9pZCBKU1Rlc3RDdXN0b21OYW1l
ZEdldHRlck93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwg
dm9pZCogY29udGV4dCkKIHsKLSAgICBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcioganNUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIgPSBqc0Nhc3Q8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqPihoYW5kbGUu
Z2V0KCkuYXNDZWxsKCkpOworICAgIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiBqc1Rlc3RDdXN0
b21OYW1lZEdldHRlciA9IGpzQ2FzdDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlcio+KGhhbmRsZS5z
bG90KCktPmFzQ2VsbCgpKTsKICAgICBET01XcmFwcGVyV29ybGQmIHdvcmxkID0gKnN0YXRpY19j
YXN0PERPTVdyYXBwZXJXb3JsZCo+KGNvbnRleHQpOwogICAgIHVuY2FjaGVXcmFwcGVyKHdvcmxk
LCAmanNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXItPmltcGwoKSwganNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIpOwogICAgIGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyLT5yZWxlYXNlSW1wbCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50
Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCmluZGV4IDYxNzU2OTUuLjUxN2I2MGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVu
dENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTI0NSw3ICsyNDUsNyBAQCBib29s
IEpTVGVzdEV2ZW50Q29uc3RydWN0b3JPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMo
SlNDOjpIYW5kbGU8SlNDOjpVbgogCiB2b2lkIEpTVGVzdEV2ZW50Q29uc3RydWN0b3JPd25lcjo6
ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqIGNvbnRleHQp
CiB7Ci0gICAgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvcioganNUZXN0RXZlbnRDb25zdHJ1Y3RvciA9
IGpzQ2FzdDxKU1Rlc3RFdmVudENvbnN0cnVjdG9yKj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsK
KyAgICBKU1Rlc3RFdmVudENvbnN0cnVjdG9yKiBqc1Rlc3RFdmVudENvbnN0cnVjdG9yID0ganND
YXN0PEpTVGVzdEV2ZW50Q29uc3RydWN0b3IqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAg
ICAgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCA9ICpzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQq
Pihjb250ZXh0KTsKICAgICB1bmNhY2hlV3JhcHBlcih3b3JsZCwgJmpzVGVzdEV2ZW50Q29uc3Ry
dWN0b3ItPmltcGwoKSwganNUZXN0RXZlbnRDb25zdHJ1Y3Rvcik7CiAgICAganNUZXN0RXZlbnRD
b25zdHJ1Y3Rvci0+cmVsZWFzZUltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCmluZGV4
IDNkN2UwYzEuLjc4YjVlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcApAQCAtMzA1LDcg
KzMwNSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTVGVzdEV2ZW50VGFyZ2V0OjppbmRleEdldHRlcihF
eGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBzbG90QmFzCiAKIGJvb2wgSlNUZXN0RXZlbnRUYXJn
ZXRPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsKLSAgICBKU1Rlc3RF
dmVudFRhcmdldCoganNUZXN0RXZlbnRUYXJnZXQgPSBqc0Nhc3Q8SlNUZXN0RXZlbnRUYXJnZXQq
PihoYW5kbGUuZ2V0KCkuYXNDZWxsKCkpOworICAgIEpTVGVzdEV2ZW50VGFyZ2V0KiBqc1Rlc3RF
dmVudFRhcmdldCA9IGpzQ2FzdDxKU1Rlc3RFdmVudFRhcmdldCo+KGhhbmRsZS5zbG90KCktPmFz
Q2VsbCgpKTsKICAgICBpZiAoanNUZXN0RXZlbnRUYXJnZXQtPmltcGwoKS5pc0ZpcmluZ0V2ZW50
TGlzdGVuZXJzKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIFVOVVNFRF9QQVJBTSh2aXNp
dG9yKTsKQEAgLTMxNCw3ICszMTQsNyBAQCBib29sIEpTVGVzdEV2ZW50VGFyZ2V0T3duZXI6Omlz
UmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bgogCiB2b2lk
IEpTVGVzdEV2ZW50VGFyZ2V0T3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93
bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0KQogewotICAgIEpTVGVzdEV2ZW50VGFyZ2V0KiBqc1Rl
c3RFdmVudFRhcmdldCA9IGpzQ2FzdDxKU1Rlc3RFdmVudFRhcmdldCo+KGhhbmRsZS5nZXQoKS5h
c0NlbGwoKSk7CisgICAgSlNUZXN0RXZlbnRUYXJnZXQqIGpzVGVzdEV2ZW50VGFyZ2V0ID0ganND
YXN0PEpTVGVzdEV2ZW50VGFyZ2V0Kj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwogICAgIERP
TVdyYXBwZXJXb3JsZCYgd29ybGQgPSAqc3RhdGljX2Nhc3Q8RE9NV3JhcHBlcldvcmxkKj4oY29u
dGV4dCk7CiAgICAgdW5jYWNoZVdyYXBwZXIod29ybGQsICZqc1Rlc3RFdmVudFRhcmdldC0+aW1w
bCgpLCBqc1Rlc3RFdmVudFRhcmdldCk7CiAgICAganNUZXN0RXZlbnRUYXJnZXQtPnJlbGVhc2VJ
bXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCmluZGV4IGEyZGRjYjYuLmNlNGMzNzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNl
cHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFeGNlcHRpb24uY3BwCkBAIC0xODUsNyArMTg1LDcgQEAgYm9vbCBKU1Rlc3RFeGNlcHRp
b25Pd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPgogCiB2b2lkIEpTVGVzdEV4Y2VwdGlvbk93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxK
U0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCogY29udGV4dCkKIHsKLSAgICBKU1Rlc3RFeGNlcHRp
b24qIGpzVGVzdEV4Y2VwdGlvbiA9IGpzQ2FzdDxKU1Rlc3RFeGNlcHRpb24qPihoYW5kbGUuZ2V0
KCkuYXNDZWxsKCkpOworICAgIEpTVGVzdEV4Y2VwdGlvbioganNUZXN0RXhjZXB0aW9uID0ganND
YXN0PEpTVGVzdEV4Y2VwdGlvbio+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAgICBET01X
cmFwcGVyV29ybGQmIHdvcmxkID0gKnN0YXRpY19jYXN0PERPTVdyYXBwZXJXb3JsZCo+KGNvbnRl
eHQpOwogICAgIHVuY2FjaGVXcmFwcGVyKHdvcmxkLCAmanNUZXN0RXhjZXB0aW9uLT5pbXBsKCks
IGpzVGVzdEV4Y2VwdGlvbik7CiAgICAganNUZXN0RXhjZXB0aW9uLT5yZWxlYXNlSW1wbCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCmluZGV4IDliOTE4YzIuLmM5
ZGNlODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKQEAgLTE0
OSw3ICsxNDksNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNPYnNlcnZhYmxlKEpTVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGUqIGpzVGVzdEdlbmVyYXRlSXNSZWFjaAogCiBib29sIEpTVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikKIHsK
LSAgICBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKiBqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
ID0ganNDYXN0PEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqPihoYW5kbGUuZ2V0KCkuYXNDZWxs
KCkpOworICAgIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUqIGpzVGVzdEdlbmVyYXRlSXNSZWFj
aGFibGUgPSBqc0Nhc3Q8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSo+KGhhbmRsZS5zbG90KCkt
PmFzQ2VsbCgpKTsKICAgICBpZiAoIWlzT2JzZXJ2YWJsZShqc1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
KiByb290ID0gJmpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUtPmltcGwoKTsKQEAgLTE1OCw3ICsx
NTgsNyBAQCBib29sIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGVPd25lcjo6aXNSZWFjaGFibGVG
cm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOgogCiB2b2lkIEpTVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGVPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUs
IHZvaWQqIGNvbnRleHQpCiB7Ci0gICAgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSoganNUZXN0
R2VuZXJhdGVJc1JlYWNoYWJsZSA9IGpzQ2FzdDxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKj4o
aGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsKKyAgICBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKiBq
c1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlID0ganNDYXN0PEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFi
bGUqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgRE9NV3JhcHBlcldvcmxkJiB3b3Js
ZCA9ICpzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0KTsKICAgICB1bmNhY2hl
V3JhcHBlcih3b3JsZCwgJmpzVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUtPmltcGwoKSwganNUZXN0
R2VuZXJhdGVJc1JlYWNoYWJsZSk7CiAgICAganNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS0+cmVs
ZWFzZUltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKaW5kZXggZTYxZGRkMS4uNmRhOTQ3ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKQEAgLTk2Miw3ICs5NjIsNyBAQCBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RJbnRlcmZhY2VTVVBQTEVNRU5UQUxDT05TVEFOVDIoRXhlY1N0YXRlKiBleGVjLCBK
U09iamVjdCosCiAjZW5kaWYKIGJvb2wgSlNUZXN0SW50ZXJmYWNlT3duZXI6OmlzUmVhY2hhYmxl
RnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7Ci0gICAgSlNUZXN0SW50ZXJmYWNlKiBqc1Rlc3RJbnRl
cmZhY2UgPSBqc0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsK
KyAgICBKU1Rlc3RJbnRlcmZhY2UqIGpzVGVzdEludGVyZmFjZSA9IGpzQ2FzdDxKU1Rlc3RJbnRl
cmZhY2UqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgaWYgKGpzVGVzdEludGVyZmFj
ZS0+aW1wbCgpLmhhc1BlbmRpbmdBY3Rpdml0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICBVTlVTRURfUEFSQU0odmlzaXRvcik7CkBAIC05NzEsNyArOTcxLDcgQEAgYm9vbCBKU1Rlc3RJ
bnRlcmZhY2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlND
OjpVbmtub3duPgogCiB2b2lkIEpTVGVzdEludGVyZmFjZU93bmVyOjpmaW5hbGl6ZShKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCogY29udGV4dCkKIHsKLSAgICBKU1Rlc3RJ
bnRlcmZhY2UqIGpzVGVzdEludGVyZmFjZSA9IGpzQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPihoYW5k
bGUuZ2V0KCkuYXNDZWxsKCkpOworICAgIEpTVGVzdEludGVyZmFjZSoganNUZXN0SW50ZXJmYWNl
ID0ganNDYXN0PEpTVGVzdEludGVyZmFjZSo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKICAg
ICBET01XcmFwcGVyV29ybGQmIHdvcmxkID0gKnN0YXRpY19jYXN0PERPTVdyYXBwZXJXb3JsZCo+
KGNvbnRleHQpOwogICAgIHVuY2FjaGVXcmFwcGVyKHdvcmxkLCAmanNUZXN0SW50ZXJmYWNlLT5p
bXBsKCksIGpzVGVzdEludGVyZmFjZSk7CiAgICAganNUZXN0SW50ZXJmYWNlLT5yZWxlYXNlSW1w
bCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCmluZGV4
IGY0MDFlMWYuLjY4ZmY0OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5jcHAKQEAgLTE3Myw3ICsxNzMsNyBAQCBib29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8Sgog
CiB2b2lkIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJPd25lcjo6ZmluYWxpemUoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqIGNvbnRleHQpCiB7Ci0gICAgSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcioganNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciA9IGpz
Q2FzdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgp
KTsKKyAgICBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBqc1Rlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyID0ganNDYXN0PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqPihoYW5kbGUu
c2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCA9ICpzdGF0aWNf
Y2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0KTsKICAgICB1bmNhY2hlV3JhcHBlcih3b3Js
ZCwgJmpzVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXItPmltcGwoKSwganNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lcik7CiAgICAganNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci0+cmVsZWFz
ZUltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAppbmRleCA4N2M4OTk5
Li4wMTFkOWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCkBAIC0xOTQs
NyArMTk0LDcgQEAgSlNWYWx1ZSBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yOjpnZXROYW1lZENvbnN0
cnVjdG9yKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGdsb2IKIAogYm9vbCBKU1Rlc3ROYW1lZENv
bnN0cnVjdG9yT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpT
Qzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0b3IpCiB7Ci0gICAg
SlNUZXN0TmFtZWRDb25zdHJ1Y3RvcioganNUZXN0TmFtZWRDb25zdHJ1Y3RvciA9IGpzQ2FzdDxK
U1Rlc3ROYW1lZENvbnN0cnVjdG9yKj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsKKyAgICBKU1Rl
c3ROYW1lZENvbnN0cnVjdG9yKiBqc1Rlc3ROYW1lZENvbnN0cnVjdG9yID0ganNDYXN0PEpTVGVz
dE5hbWVkQ29uc3RydWN0b3IqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgaWYgKGpz
VGVzdE5hbWVkQ29uc3RydWN0b3ItPmltcGwoKS5oYXNQZW5kaW5nQWN0aXZpdHkoKSkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgVU5VU0VEX1BBUkFNKHZpc2l0b3IpOwpAQCAtMjAzLDcgKzIw
Myw3IEBAIGJvb2wgSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvck93bmVyOjppc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVuCiAKIHZvaWQgSlNUZXN0TmFtZWRDb25zdHJ1
Y3Rvck93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9p
ZCogY29udGV4dCkKIHsKLSAgICBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yKiBqc1Rlc3ROYW1lZENv
bnN0cnVjdG9yID0ganNDYXN0PEpTVGVzdE5hbWVkQ29uc3RydWN0b3IqPihoYW5kbGUuZ2V0KCku
YXNDZWxsKCkpOworICAgIEpTVGVzdE5hbWVkQ29uc3RydWN0b3IqIGpzVGVzdE5hbWVkQ29uc3Ry
dWN0b3IgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcio+KGhhbmRsZS5zbG90KCktPmFz
Q2VsbCgpKTsKICAgICBET01XcmFwcGVyV29ybGQmIHdvcmxkID0gKnN0YXRpY19jYXN0PERPTVdy
YXBwZXJXb3JsZCo+KGNvbnRleHQpOwogICAgIHVuY2FjaGVXcmFwcGVyKHdvcmxkLCAmanNUZXN0
TmFtZWRDb25zdHJ1Y3Rvci0+aW1wbCgpLCBqc1Rlc3ROYW1lZENvbnN0cnVjdG9yKTsKICAgICBq
c1Rlc3ROYW1lZENvbnN0cnVjdG9yLT5yZWxlYXNlSW1wbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCAyZDJj
MDZhLi5hZGE4ODZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtNDc3OSw3ICs0Nzc5LDcgQEAgYm9vbCBKU1Rl
c3RPYmpPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpV
bmtub3duPiBoYW5kbGUKIAogdm9pZCBKU1Rlc3RPYmpPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5k
bGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqIGNvbnRleHQpCiB7Ci0gICAgSlNUZXN0T2Jq
KiBqc1Rlc3RPYmogPSBqc0Nhc3Q8SlNUZXN0T2JqKj4oaGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsK
KyAgICBKU1Rlc3RPYmoqIGpzVGVzdE9iaiA9IGpzQ2FzdDxKU1Rlc3RPYmoqPihoYW5kbGUuc2xv
dCgpLT5hc0NlbGwoKSk7CiAgICAgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCA9ICpzdGF0aWNfY2Fz
dDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0KTsKICAgICB1bmNhY2hlV3JhcHBlcih3b3JsZCwg
JmpzVGVzdE9iai0+aW1wbCgpLCBqc1Rlc3RPYmopOwogICAgIGpzVGVzdE9iai0+cmVsZWFzZUlt
cGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAppbmRl
eCBiNTg0MmZmLi5iMzExNjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnMuY3BwCkBAIC0yMjQsNyArMjI0LDcgQEAgYm9vbCBKU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEoK
IAogdm9pZCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzT3duZXI6OmZpbmFsaXplKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0KQogewotICAgIEpTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqIGpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMgPSBq
c0Nhc3Q8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyo+KGhhbmRsZS5nZXQoKS5hc0NlbGwo
KSk7CisgICAgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyoganNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9ycyA9IGpzQ2FzdDxKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKj4oaGFuZGxl
LnNsb3QoKS0+YXNDZWxsKCkpOwogICAgIERPTVdyYXBwZXJXb3JsZCYgd29ybGQgPSAqc3RhdGlj
X2Nhc3Q8RE9NV3JhcHBlcldvcmxkKj4oY29udGV4dCk7CiAgICAgdW5jYWNoZVdyYXBwZXIod29y
bGQsICZqc1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLT5pbXBsKCksIGpzVGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnMpOwogICAgIGpzVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMtPnJlbGVh
c2VJbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuY3BwCmluZGV4IDJlYjNlOGYuLjc2OWZjNjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC0zMjMs
NyArMzIzLDcgQEAgYm9vbCBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VPd25l
cjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjoKIAogdm9pZCBKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpV
bmtub3duPiBoYW5kbGUsIHZvaWQqIGNvbnRleHQpCiB7Ci0gICAgSlNUZXN0U2VyaWFsaXplZFNj
cmlwdFZhbHVlSW50ZXJmYWNlKiBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Ug
PSBqc0Nhc3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKj4oaGFuZGxlLmdl
dCgpLmFzQ2VsbCgpKTsKKyAgICBKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Uq
IGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSA9IGpzQ2FzdDxKU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAg
ICAgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCA9ICpzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQq
Pihjb250ZXh0KTsKICAgICB1bmNhY2hlV3JhcHBlcih3b3JsZCwgJmpzVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZS0+aW1wbCgpLCBqc1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UpOwogICAgIGpzVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS0+cmVs
ZWFzZUltcGwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCmluZGV4IGEwZTljNDguLjhiNDI2M2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RU
eXBlZGVmcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFR5cGVkZWZzLmNwcApAQCAtNzM1LDcgKzczNSw3IEBAIGJvb2wgSlNUZXN0VHlwZWRl
ZnNPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtu
b3duPiBoCiAKIHZvaWQgSlNUZXN0VHlwZWRlZnNPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqIGNvbnRleHQpCiB7Ci0gICAgSlNUZXN0VHlwZWRl
ZnMqIGpzVGVzdFR5cGVkZWZzID0ganNDYXN0PEpTVGVzdFR5cGVkZWZzKj4oaGFuZGxlLmdldCgp
LmFzQ2VsbCgpKTsKKyAgICBKU1Rlc3RUeXBlZGVmcyoganNUZXN0VHlwZWRlZnMgPSBqc0Nhc3Q8
SlNUZXN0VHlwZWRlZnMqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgRE9NV3JhcHBl
cldvcmxkJiB3b3JsZCA9ICpzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0KTsK
ICAgICB1bmNhY2hlV3JhcHBlcih3b3JsZCwgJmpzVGVzdFR5cGVkZWZzLT5pbXBsKCksIGpzVGVz
dFR5cGVkZWZzKTsKICAgICBqc1Rlc3RUeXBlZGVmcy0+cmVsZWFzZUltcGwoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUu
Y3BwCmluZGV4IDc1ZTYwNzAuLmFjNGMyOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcApAQCAtMTc0LDcgKzE3
NCw3IEBAIGJvb2wgSlNhdHRyaWJ1dGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMo
SlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kCiAKIHZvaWQgSlNhdHRyaWJ1dGVPd25lcjo6
ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqIGNvbnRleHQp
CiB7Ci0gICAgSlNhdHRyaWJ1dGUqIGpzYXR0cmlidXRlID0ganNDYXN0PEpTYXR0cmlidXRlKj4o
aGFuZGxlLmdldCgpLmFzQ2VsbCgpKTsKKyAgICBKU2F0dHJpYnV0ZSoganNhdHRyaWJ1dGUgPSBq
c0Nhc3Q8SlNhdHRyaWJ1dGUqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CiAgICAgRE9NV3Jh
cHBlcldvcmxkJiB3b3JsZCA9ICpzdGF0aWNfY2FzdDxET01XcmFwcGVyV29ybGQqPihjb250ZXh0
KTsKICAgICB1bmNhY2hlV3JhcHBlcih3b3JsZCwgJmpzYXR0cmlidXRlLT5pbXBsKCksIGpzYXR0
cmlidXRlKTsKICAgICBqc2F0dHJpYnV0ZS0+cmVsZWFzZUltcGwoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNwcAppbmRl
eCBjNDU1NGMxLi4yOGRlNzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuY3BwCkBAIC0xNDksNyArMTQ5LDcgQEAgYm9v
bCBKU3JlYWRvbmx5T3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4gaGFuZGwKIAogdm9pZCBKU3JlYWRvbmx5T3duZXI6OmZpbmFsaXplKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250ZXh0KQogewotICAgIEpT
cmVhZG9ubHkqIGpzcmVhZG9ubHkgPSBqc0Nhc3Q8SlNyZWFkb25seSo+KGhhbmRsZS5nZXQoKS5h
c0NlbGwoKSk7CisgICAgSlNyZWFkb25seSoganNyZWFkb25seSA9IGpzQ2FzdDxKU3JlYWRvbmx5
Kj4oaGFuZGxlLnNsb3QoKS0+YXNDZWxsKCkpOwogICAgIERPTVdyYXBwZXJXb3JsZCYgd29ybGQg
PSAqc3RhdGljX2Nhc3Q8RE9NV3JhcHBlcldvcmxkKj4oY29udGV4dCk7CiAgICAgdW5jYWNoZVdy
YXBwZXIod29ybGQsICZqc3JlYWRvbmx5LT5pbXBsKCksIGpzcmVhZG9ubHkpOwogICAgIGpzcmVh
ZG9ubHktPnJlbGVhc2VJbXBsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
cnVudGltZV9yb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX3Jvb3QuY3Bw
CmluZGV4IDE2MDQxMGMuLmE0OWZhNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX3Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX3Jv
b3QuY3BwCkBAIC0yMDAsNyArMjAwLDcgQEAgdm9pZCBSb290T2JqZWN0OjpyZW1vdmVSdW50aW1l
T2JqZWN0KFJ1bnRpbWVPYmplY3QqIG9iamVjdCkKIAogdm9pZCBSb290T2JqZWN0OjpmaW5hbGl6
ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCopCiB7Ci0gICAgUnVudGlt
ZU9iamVjdCogb2JqZWN0ID0gc3RhdGljX2Nhc3Q8UnVudGltZU9iamVjdCo+KGhhbmRsZS5nZXQo
KS5hc0NlbGwoKSk7CisgICAgUnVudGltZU9iamVjdCogb2JqZWN0ID0gc3RhdGljX2Nhc3Q8UnVu
dGltZU9iamVjdCo+KGhhbmRsZS5zbG90KCktPmFzQ2VsbCgpKTsKIAogICAgIFJlZjxSb290T2Jq
ZWN0PiBwcm90ZWN0KCp0aGlzKTsKICAgICBvYmplY3QtPmludmFsaWRhdGUoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>