<?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>112447</bug_id>
          
          <creation_ts>2013-03-15 08:09:04 -0700</creation_ts>
          <short_desc>The CPP, GObject and ObjC binding generators need to use correct signatures for nullable types.</short_desc>
          <delta_ts>2013-03-15 08:55:06 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          <dependson>111728</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peter Beverloo">peter</reporter>
          <assigned_to name="Peter Beverloo">peter</assigned_to>
          <cc>abarth</cc>
    
    <cc>haraken</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>855996</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2013-03-15 08:09:04 -0700</bug_when>
    <thetext>Without changing the externally visible behavior of the CPP, GObject and ObjC binding generators, update them to call the WebCore methods associated with nullable attributes with the correct signatures.
    
Nullable attributes insert an additional parameter in their call to the associated WebCore method, namely &quot;bool&amp; isNull&quot;. If these code generators do not supply them, the generated code won&apos;t be able to compile.
    
Tested by the TestObj.idl file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855998</commentid>
    <comment_count>1</comment_count>
      <attachid>193312</attachid>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2013-03-15 08:13:09 -0700</bug_when>
    <thetext>Created attachment 193312
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855999</commentid>
    <comment_count>2</comment_count>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2013-03-15 08:13:51 -0700</bug_when>
    <thetext>The EWS won&apos;t be able to process this as it depends on the patch in Bug 111728.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856016</commentid>
    <comment_count>3</comment_count>
      <attachid>193312</attachid>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2013-03-15 08:54:58 -0700</bug_when>
    <thetext>Comment on attachment 193312
Patch

We&apos;re doing the full patch in bug 111728 after all.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193312</attachid>
            <date>2013-03-15 08:13:09 -0700</date>
            <delta_ts>2013-03-15 08:54:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112447-20130315150903.patch</filename>
            <type>text/plain</type>
            <size>29089</size>
            <attacher name="Peter Beverloo">peter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1OTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjZmOTc0ZDg5ZjVjNTVj
Nzk4YjI4ZjhlZGEyZGEyNTg4MTE5MzZjOC4uMjM0NmE5NzljZmZjMWI5MDhjMjcxMDM3YWJlMTVj
M2RhOGY1ZDAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY2IEBACiAyMDEzLTAzLTE1ICBQZXRl
ciBCZXZlcmxvbyAgPHBldGVyQGNocm9taXVtLm9yZz4KIAorICAgICAgICBUaGUgQ1BQLCBHT2Jq
ZWN0IGFuZCBPYmpDIGJpbmRpbmcgZ2VuZXJhdG9ycyBuZWVkIHRvIHVzZSBjb3JyZWN0IHNpZ25h
dHVyZXMgZm9yIG51bGxhYmxlIHR5cGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTEyNDQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2l0aG91dCBjaGFuZ2luZyB0aGUgZXh0ZXJuYWxseSB2aXNpYmxl
IGJlaGF2aW9yIG9mIHRoZSBDUFAsCisgICAgICAgIEdPYmplY3QgYW5kIE9iakMgYmluZGluZyBn
ZW5lcmF0b3JzLCB1cGRhdGUgdGhlbSB0byBjYWxsIHRoZQorICAgICAgICBXZWJDb3JlIG1ldGhv
ZHMgYXNzb2NpYXRlZCB3aXRoIG51bGxhYmxlIGF0dHJpYnV0ZXMgd2l0aCB0aGUKKyAgICAgICAg
Y29ycmVjdCBzaWduYXR1cmVzLgorCisgICAgICAgIE51bGxhYmxlIGF0dHJpYnV0ZXMgaW5zZXJ0
IGFuIGFkZGl0aW9uYWwgcGFyYW1ldGVyIGluIHRoZWlyIGNhbGwKKyAgICAgICAgdG8gdGhlIGFz
c29jaWF0ZWQgV2ViQ29yZSBtZXRob2QsIG5hbWVseSAiYm9vbCYgaXNOdWxsIi4gSWYKKyAgICAg
ICAgdGhlc2UgY29kZSBnZW5lcmF0b3JzIGRvIG5vdCBzdXBwbHkgdGhlbSwgdGhlIGdlbmVyYXRl
ZCBjb2RlCisgICAgICAgIHdvbid0IGJlIGFibGUgdG8gY29tcGlsZS4KKworICAgICAgICBUZXN0
ZWQgYnkgdGhlIFRlc3RPYmouaWRsIGZpbGUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JDUFAucG06CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtOgorICAg
ICAgICAoR2VuZXJhdGVQcm9wZXJ0eSk6CisgICAgICAgIChHZW5lcmF0ZUZ1bmN0aW9uKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtOgorICAgICAgICAo
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0NQUC9XZWJET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6Om51bGxhYmxl
RG91YmxlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6Om51bGxhYmxlTG9uZ0F0
dHJpYnV0ZSk6CisgICAgICAgIChXZWJET01UZXN0T2JqOjpudWxsYWJsZUJvb2xlYW5BdHRyaWJ1
dGUpOgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6bnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViRE9NVGVzdE9iajo6bnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViRE9NVGVzdE9iajo6c2V0TnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUp
OgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6bnVsbGFibGVTdHJpbmdWYWx1ZSk6CisgICAgICAg
IChXZWJET01UZXN0T2JqOjpzZXROdWxsYWJsZVN0cmluZ1ZhbHVlKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKHdl
YmtpdF9kb21fdGVzdF9vYmpfc2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVz
dF9vYmpfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfY2xhc3Nf
aW5pdCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9udWxsYWJsZV9kb3VibGVf
YXR0cmlidXRlKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X251bGxhYmxlX2xv
bmdfYXR0cmlidXRlKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X251bGxhYmxl
X2Jvb2xlYW5fYXR0cmlidXRlKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X251
bGxhYmxlX3N0cmluZ19hdHRyaWJ1dGUpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9n
ZXRfbnVsbGFibGVfbG9uZ19zZXR0YWJsZV9hdHRyaWJ1dGUpOgorICAgICAgICAod2Via2l0X2Rv
bV90ZXN0X29ial9zZXRfbnVsbGFibGVfbG9uZ19zZXR0YWJsZV9hdHRyaWJ1dGUpOgorICAgICAg
ICAod2Via2l0X2RvbV90ZXN0X29ial9nZXRfbnVsbGFibGVfc3RyaW5nX3ZhbHVlKToKKyAgICAg
ICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X251bGxhYmxlX3N0cmluZ192YWx1ZSk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tOgorICAgICAgICAo
LVtET01UZXN0T2JqIG51bGxhYmxlRG91YmxlQXR0cmlidXRlXSk6CisgICAgICAgICgtW0RPTVRl
c3RPYmogbnVsbGFibGVMb25nQXR0cmlidXRlXSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogbnVs
bGFibGVCb29sZWFuQXR0cmlidXRlXSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogbnVsbGFibGVT
dHJpbmdBdHRyaWJ1dGVdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBudWxsYWJsZUxvbmdTZXR0
YWJsZUF0dHJpYnV0ZV0pOgorICAgICAgICAoLVtET01UZXN0T2JqIHNldE51bGxhYmxlTG9uZ1Nl
dHRhYmxlQXR0cmlidXRlOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIG51bGxhYmxlU3RyaW5n
VmFsdWVdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBzZXROdWxsYWJsZVN0cmluZ1ZhbHVlOl0p
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbDoKKworMjAxMy0w
My0xNSAgUGV0ZXIgQmV2ZXJsb28gIDxwZXRlckBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgSW1w
bGVtZW50IHN1cHBvcnQgZm9yIG51bGxhYmxlIHR5cGVzIGluIHRoZSBiaW5kaW5ncyBnZW5lcmF0
b3IKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTcy
OAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JDUFAucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JDUFAucG0KaW5kZXggY2EwYTk2NGMzYzdmMjY3OTliMzcxMzNhMjE3YjczNmU0MTgzZTJiZS4u
M2Y5Zjg0YmJlZjU1MjIxNTRhYTEzMGExNDVmNmRkZjI2M2M2ODdmMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yQ1BQLnBtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckNQUC5wbQpAQCAtNjk3
LDYgKzY5Nyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBteSAk
YXR0cmlidXRlTmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKICAgICAgICAgICAg
IG15ICRhdHRyaWJ1dGVUeXBlID0gR2V0Q1BQVHlwZSgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5
cGUsIDApOwogICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZUlzUmVhZG9ubHkgPSAoJGF0dHJpYnV0
ZS0+dHlwZSA9fiAvXnJlYWRvbmx5Lyk7CisgICAgICAgICAgICBteSAkYXR0cmlidXRlSXNOdWxs
YWJsZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+aXNOdWxsYWJsZTsKIAogICAgICAgICAgICAg
JGF0dHJpYnV0ZU5hbWVzeyRhdHRyaWJ1dGVOYW1lfSA9IDE7CiAKQEAgLTcwNCw2ICs3MDUsNyBA
QCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgbXkgJGdldHRlclNpZyA9
ICIkYXR0cmlidXRlVHlwZSAkY2xhc3NOYW1lXDpcOiRhdHRyaWJ1dGVOYW1lKCkgY29uc3RcbiI7
CiAgICAgICAgICAgICBteSAkaGFzR2V0dGVyRXhjZXB0aW9uID0gQHskYXR0cmlidXRlLT5nZXR0
ZXJFeGNlcHRpb25zfTsKICAgICAgICAgICAgIG15ICgkZnVuY3Rpb25OYW1lLCBAYXJndW1lbnRz
KSA9ICRjb2RlR2VuZXJhdG9yLT5HZXR0ZXJFeHByZXNzaW9uKFwlaW1wbEluY2x1ZGVzLCAkaW50
ZXJmYWNlTmFtZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgICAgICBwdXNoKEBhcmd1bWVudHMsICJp
c051bGwiKSBpZiAkYXR0cmlidXRlSXNOdWxsYWJsZTsKICAgICAgICAgICAgIHB1c2goQGFyZ3Vt
ZW50cywgImVjIikgaWYgJGhhc0dldHRlckV4Y2VwdGlvbjsKICAgICAgICAgICAgIGlmICgkYXR0
cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEJ5In0p
IHsKICAgICAgICAgICAgICAgICBteSAkaW1wbGVtZW50ZWRCeSA9ICRhdHRyaWJ1dGUtPnNpZ25h
dHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkltcGxlbWVudGVkQnkifTsKQEAgLTczNiw2ICs3
MzgsMTIgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAie1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgQWRkRWFy
bHlSZXR1cm5TdGF0ZW1lbnQoJGF0dHJpYnV0ZVR5cGUpKTsKICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCBAY3VzdG9tR2V0dGVyQ29udGVudCk7CisKKyAgICAgICAgICAgICMgRklYTUU6
IFNob3VsZCB3ZSByZXR1cm4gYSBkZWZhdWx0IHZhbHVlIHdoZW4gaXNOdWxsID09IHRydWU/Cisg
ICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZUlzTnVsbGFibGUpIHsKKyAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBib29sIGlzTnVsbCA9IGZhbHNlO1xuIik7CisgICAgICAg
ICAgICB9CisKICAgICAgICAgICAgIGlmICgkaGFzR2V0dGVyRXhjZXB0aW9uKSB7CiAgICAgICAg
ICAgICAgICAgIyBEaWZmZXJlbnRpYXRlZCBiZXR3ZWVuIHdoZW4gdGhlIHJldHVybiB0eXBlIGlz
IGEgcG9pbnRlciBhbmQKICAgICAgICAgICAgICAgICAjIG5vdCBmb3Igd2hpdGUgc3BhY2UgaXNz
dWUgKGllLiBGb28gKnJlc3VsdCB2cy4gaW50IHJlc3VsdCkuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5wbQppbmRleCAw
NmNmYWEzN2VlOWQ0MGEwNjVhMTFmY2ZkMWYxOTQyN2RmMzBhMGY3Li41ZmE0NzQ0YmNjZjcxODE1
YjA4ZjdjZTBmMTA3ODZmNmUxOTEzMDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KQEAgLTQ3MCw2ICs0NzAs
NyBAQCBzdWIgR2VuZXJhdGVQcm9wZXJ0eSB7CiAgICAgICAgICRnZXR0ZXJGdW5jdGlvbk5hbWUg
PSAiY29yZVNlbGYtPiRnZXR0ZXJGdW5jdGlvbk5hbWUiOwogICAgICAgICAkc2V0dGVyRnVuY3Rp
b25OYW1lID0gImNvcmVTZWxmLT4kc2V0dGVyRnVuY3Rpb25OYW1lIjsKICAgICB9CisgICAgcHVz
aChAZ2V0dGVyQXJndW1lbnRzLCAiaXNOdWxsIikgaWYgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5p
c051bGxhYmxlOwogICAgIHB1c2goQGdldHRlckFyZ3VtZW50cywgImVjIikgaWYgQHskYXR0cmli
dXRlLT5nZXR0ZXJFeGNlcHRpb25zfTsKICAgICBwdXNoKEBzZXR0ZXJBcmd1bWVudHMsICJlYyIp
IGlmIEB7JGF0dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9uc307CiAKQEAgLTQ5MSw4ICs0OTIsMTEg
QEAgc3ViIEdlbmVyYXRlUHJvcGVydHkgewogICAgIHB1c2goQHR4dEdldFByb3BzLCAiICAgIGNh
c2UgJHtwcm9wRW51bX06IHtcbiIpOwogICAgIHB1c2goQHR4dEdldFByb3BzLCAiI2lmICR7cGFy
ZW50Q29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkcGFyZW50Q29uZGl0aW9uYWxTdHJpbmc7CiAg
ICAgcHVzaChAdHh0R2V0UHJvcHMsICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRj
b25kaXRpb25hbFN0cmluZzsKKyAgICBwdXNoKEB0eHRHZXRQcm9wcywgIiAgICAgICAgYm9vbCBp
c051bGwgPSBmYWxzZTtcbiIpIGlmICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+aXNOdWxsYWJsZTsK
ICAgICBwdXNoKEB0eHRHZXRQcm9wcywgIiAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBl
YyA9IDA7XG4iKSBpZiBAeyRhdHRyaWJ1dGUtPmdldHRlckV4Y2VwdGlvbnN9OwogCisgICAgIyBG
SVhNRTogU2hvdWxkIHdlIHJldHVybiBhIGRlZmF1bHQgdmFsdWUgd2hlbiBpc051bGwgPT0gdHJ1
ZT8KKwogICAgIG15ICRwb3N0Q29udmVydEZ1bmN0aW9uID0gIiI7CiAgICAgbXkgJGRvbmUgPSAw
OwogICAgIGlmICgkZ3R5cGUgZXEgInN0cmluZyIpIHsKQEAgLTEwMDMsOCArMTAwNywxNCBAQCBz
dWIgR2VuZXJhdGVGdW5jdGlvbiB7CiAgICAgICAgIH0KICAgICB9CiAKKyAgICAjIEZJWE1FOiBT
aG91bGQgd2UgcmV0dXJuIGEgZGVmYXVsdCB2YWx1ZSB3aGVuIGlzTnVsbCA9PSB0cnVlPworICAg
IGlmICgkZnVuY3Rpb24tPnNpZ25hdHVyZS0+aXNOdWxsYWJsZSkgeworICAgICAgICBwdXNoKEBj
Qm9keSwgIiAgICBib29sIGlzTnVsbCA9IGZhbHNlO1xuIik7CisgICAgICAgIHB1c2goQGNhbGxJ
bXBsUGFyYW1zLCAiaXNOdWxsIik7CisgICAgfQorCiAgICAgaWYgKEB7JGZ1bmN0aW9uLT5yYWlz
ZXNFeGNlcHRpb25zfSkgewotICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJDb3JlOjpFeGNl
cHRpb25Db2RlIGVjID0gMDtcbiIpIDsKKyAgICAgICAgcHVzaChAY0JvZHksICIgICAgV2ViQ29y
ZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKTsKICAgICAgICAgcHVzaChAY2FsbEltcGxQYXJh
bXMsICJlYyIpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KaW5kZXggMjk1MGEyYTViMDA1M2RkYTE4ZmU0MTBl
YmNiYjJjM2IwNDYyMTFhZS4uYTQ4Y2NhYzRlNDBiMWE0YmJiOWYzNjI5ZDQxYTU0YjAzYmZiMmE3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yT2JqQy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JPYmpDLnBtCkBAIC03Niw2ICs3Niw3IEBAIG15ICViYXNlVHlwZUhhc2ggPSAoIk9iamVj
dCIgPT4gMSwgIk5vZGUiID0+IDEsICJOb2RlTGlzdCIgPT4gMSwgIk5hbWVkTm9kZU1hcCIKICAg
ICAgICAgICAgICAgICAgICAgIlNWR1N0cmluZ0xpc3QiID0+IDEsICJTVkdUcmFuc2Zvcm0iID0+
IDEsICJTVkdUcmFuc2Zvcm1MaXN0IiA9PiAxLCAiU1ZHVW5pdFR5cGVzIiA9PiAxKTsKIAogIyBD
b25zdGFudHMKK215ICRudWxsYWJsZUluaXQgPSAiYm9vbCBpc051bGwgPSBmYWxzZTsiOwogbXkg
JGV4Y2VwdGlvbkluaXQgPSAiV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7IjsKIG15ICRq
c0NvbnRleHRTZXR0ZXIgPSAiV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOyI7
CiBteSAkZXhjZXB0aW9uUmFpc2VPbkVycm9yID0gIldlYkNvcmU6OnJhaXNlT25ET01FcnJvcihl
Yyk7IjsKQEAgLTEzMzQsOCArMTMzNSwxNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBteSAkZ2V0dGVyQ29udGVudDsKLSAgICAgICAg
ICAgIGlmICgkaGFzR2V0dGVyRXhjZXB0aW9uKSB7Ci0gICAgICAgICAgICAgICAgJGdldHRlckNv
bnRlbnQgPSAkZ2V0dGVyQ29udGVudEhlYWQgLiAoJGdldHRlckNvbnRlbnRIZWFkID1+IC9cKCR8
LCAkLyA/ICJlYyIgOiAiLCBlYyIpIC4gJGdldHRlckNvbnRlbnRUYWlsOworICAgICAgICAgICAg
aWYgKCRoYXNHZXR0ZXJFeGNlcHRpb24gfHwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5pc051bGxh
YmxlKSB7CisgICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnQgPSAkZ2V0dGVyQ29udGVudEhl
YWQ7CisgICAgICAgICAgICAgICAgbXkgJGdldHRlcldpdGhvdXRBdHRyaWJ1dGVzID0gJGdldHRl
ckNvbnRlbnRIZWFkID1+IC9cKCR8LCAkLyA/ICJlYyIgOiAiLCBlYyI7CisgICAgICAgICAgICAg
ICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+aXNOdWxsYWJsZSkgeworICAgICAgICAgICAg
ICAgICAgICAkZ2V0dGVyQ29udGVudCAuPSAkZ2V0dGVyV2l0aG91dEF0dHJpYnV0ZXMgPyAiaXNO
dWxsIiA6ICIsIGlzTnVsbCI7CisgICAgICAgICAgICAgICAgICAgICRnZXR0ZXJXaXRob3V0QXR0
cmlidXRlcyA9IDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICgkaGFz
R2V0dGVyRXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50IC49
ICRnZXR0ZXJXaXRob3V0QXR0cmlidXRlcyA/ICJlYyIgOiAiLCBlYyI7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50IC49ICRnZXR0ZXJDb250ZW50VGFp
bDsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnQg
PSAkZ2V0dGVyQ29udGVudEhlYWQgLiAkZ2V0dGVyQ29udGVudFRhaWw7CiAgICAgICAgICAgICB9
CkBAIC0xMzQ2LDYgKzEzNTYsMTIgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAkanNDb250ZXh0U2V0dGVyXG4iKTsKICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCBAY3VzdG9tR2V0dGVyQ29udGVudCk7CisKKyAgICAgICAgICAgICMgRklYTUU6
IFNob3VsZCB3ZSByZXR1cm4gYSBkZWZhdWx0IHZhbHVlIHdoZW4gaXNOdWxsID09IHRydWU/Cisg
ICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5pc051bGxhYmxlKSB7CisgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRzLCAiICAgICRudWxsYWJsZUluaXRcbiIpOwor
ICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBpZiAoJGhhc0dldHRlckV4Y2VwdGlvbikgewog
ICAgICAgICAgICAgICAgICMgRGlmZmVyZW50aWF0ZWQgYmV0d2VlbiB3aGVuIHRoZSByZXR1cm4g
dHlwZSBpcyBhIHBvaW50ZXIgYW5kCiAgICAgICAgICAgICAgICAgIyBub3QgZm9yIHdoaXRlIHNw
YWNlIGlzc3VlIChpZS4gRm9vICpyZXN1bHQgdnMuIGludCByZXN1bHQpLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9i
ai5jcHAKaW5kZXggOWZiYmQ1MDJiN2ZhNmNjOTYwZWQ0OThlMmY2ODgxYmUzMGQ4NDU1NC4uNWQw
OTViNjZhMzVjNjc3NjllOWE3MWM1M2VlODQ0YTY1MjE2ZGZhNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmou
Y3BwCkBAIC02NjQsNiArNjY0LDc5IEBAIGludCBXZWJET01UZXN0T2JqOjpyZXBsYWNlYWJsZUF0
dHJpYnV0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGltcGwoKS0+cmVwbGFjZWFibGVBdHRyaWJ1dGUo
KTsKIH0KIAorZG91YmxlIFdlYkRPTVRlc3RPYmo6Om51bGxhYmxlRG91YmxlQXR0cmlidXRlKCkg
Y29uc3QKK3sKKyAgICBpZiAoIWltcGwoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBib29s
IGlzTnVsbCA9IGZhbHNlOworICAgIHJldHVybiBpbXBsKCktPm51bGxhYmxlRG91YmxlQXR0cmli
dXRlKGlzTnVsbCk7Cit9CisKK2ludCBXZWJET01UZXN0T2JqOjpudWxsYWJsZUxvbmdBdHRyaWJ1
dGUoKSBjb25zdAoreworICAgIGlmICghaW1wbCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAg
IGJvb2wgaXNOdWxsID0gZmFsc2U7CisgICAgcmV0dXJuIGltcGwoKS0+bnVsbGFibGVMb25nQXR0
cmlidXRlKGlzTnVsbCk7Cit9CisKK2Jvb2wgV2ViRE9NVGVzdE9iajo6bnVsbGFibGVCb29sZWFu
QXR0cmlidXRlKCkgY29uc3QKK3sKKyAgICBpZiAoIWltcGwoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgYm9vbCBpc051bGwgPSBmYWxzZTsKKyAgICByZXR1cm4gaW1wbCgpLT5udWxs
YWJsZUJvb2xlYW5BdHRyaWJ1dGUoaXNOdWxsKTsKK30KKworV2ViRE9NU3RyaW5nIFdlYkRPTVRl
c3RPYmo6Om51bGxhYmxlU3RyaW5nQXR0cmlidXRlKCkgY29uc3QKK3sKKyAgICBpZiAoIWltcGwo
KSkKKyAgICAgICAgcmV0dXJuIFdlYkRPTVN0cmluZygpOworCisgICAgYm9vbCBpc051bGwgPSBm
YWxzZTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgV1RGOjpTdHJpbmcmPihpbXBsKCkt
Pm51bGxhYmxlU3RyaW5nQXR0cmlidXRlKGlzTnVsbCkpOworfQorCitpbnQgV2ViRE9NVGVzdE9i
ajo6bnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoKSBjb25zdAoreworICAgIGlmICghaW1w
bCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGJvb2wgaXNOdWxsID0gZmFsc2U7CisgICAg
cmV0dXJuIGltcGwoKS0+bnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoaXNOdWxsKTsKK30K
Kwordm9pZCBXZWJET01UZXN0T2JqOjpzZXROdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZShp
bnQgbmV3TnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUpCit7CisgICAgaWYgKCFpbXBsKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGltcGwoKS0+c2V0TnVsbGFibGVMb25nU2V0dGFibGVB
dHRyaWJ1dGUobmV3TnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUpOworfQorCitpbnQgV2Vi
RE9NVGVzdE9iajo6bnVsbGFibGVTdHJpbmdWYWx1ZSgpIGNvbnN0Cit7CisgICAgaWYgKCFpbXBs
KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgYm9vbCBpc051bGwgPSBmYWxzZTsKKyAgICBX
ZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBpbnQgcmVzdWx0ID0gaW1wbCgpLT5u
dWxsYWJsZVN0cmluZ1ZhbHVlKGlzTnVsbCwgZWMpOworICAgIHdlYkRPTVJhaXNlRXJyb3Ioc3Rh
dGljX2Nhc3Q8V2ViRE9NRXhjZXB0aW9uQ29kZT4oZWMpKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCit2b2lkIFdlYkRPTVRlc3RPYmo6OnNldE51bGxhYmxlU3RyaW5nVmFsdWUoaW50IG5ld051
bGxhYmxlU3RyaW5nVmFsdWUpCit7CisgICAgaWYgKCFpbXBsKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIGltcGwoKS0+c2V0TnVsbGFibGVTdHJpbmdWYWx1ZShuZXdOdWxsYWJsZVN0cmluZ1Zh
bHVlKTsKK30KKwogdm9pZCBXZWJET01UZXN0T2JqOjp2b2lkTWV0aG9kKCkKIHsKICAgICBpZiAo
IWltcGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9DUFAvV2ViRE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKaW5kZXggZTY3YmE4MzhhN2RiNjRkODQ3NzJjMWM2NzI1
MDI3ZjIwZTA0OWE4ZS4uZDgyYjc4MjVhYTNkODY0MzY5ODkwZjA3MWI5OWUzOGI3YmMwODc0NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJE
T01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQ
UC9XZWJET01UZXN0T2JqLmgKQEAgLTE0NSw2ICsxNDUsMTQgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0SWQoaW50KTsKICAgICBXZWJET01TdHJpbmcgaGFzaCgpIGNvbnN0OwogICAgIGludCByZXBs
YWNlYWJsZUF0dHJpYnV0ZSgpIGNvbnN0OworICAgIGRvdWJsZSBudWxsYWJsZURvdWJsZUF0dHJp
YnV0ZSgpIGNvbnN0OworICAgIGludCBudWxsYWJsZUxvbmdBdHRyaWJ1dGUoKSBjb25zdDsKKyAg
ICBib29sIG51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZSgpIGNvbnN0OworICAgIFdlYkRPTVN0cmlu
ZyBudWxsYWJsZVN0cmluZ0F0dHJpYnV0ZSgpIGNvbnN0OworICAgIGludCBudWxsYWJsZUxvbmdT
ZXR0YWJsZUF0dHJpYnV0ZSgpIGNvbnN0OworICAgIHZvaWQgc2V0TnVsbGFibGVMb25nU2V0dGFi
bGVBdHRyaWJ1dGUoaW50KTsKKyAgICBpbnQgbnVsbGFibGVTdHJpbmdWYWx1ZSgpIGNvbnN0Owor
ICAgIHZvaWQgc2V0TnVsbGFibGVTdHJpbmdWYWx1ZShpbnQpOwogCiAgICAgdm9pZCB2b2lkTWV0
aG9kKCk7CiAgICAgdm9pZCB2b2lkTWV0aG9kV2l0aEFyZ3MoaW50IGxvbmdBcmcsIGNvbnN0IFdl
YkRPTVN0cmluZyYgc3RyQXJnLCBjb25zdCBXZWJET01UZXN0T2JqJiBvYmpBcmcpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0
RE9NVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09i
amVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAppbmRleCA0ZDQxZDZlMTNiNmM4YzZiNjI4MGE3NmZj
Zjk4OTE4OTg5MDRlYzI1Li4zZjk4Y2I3ZmJkN2YwNDdmODRhNTY1M2U5Y2IyZWUyNDhiODA5OTUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01UZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcApAQCAtMTI0LDYgKzEyNCwxMiBA
QCBlbnVtIHsKICAgICBQUk9QX0lELAogICAgIFBST1BfSEFTSCwKICAgICBQUk9QX1JFUExBQ0VB
QkxFX0FUVFJJQlVURSwKKyAgICBQUk9QX05VTExBQkxFX0RPVUJMRV9BVFRSSUJVVEUsCisgICAg
UFJPUF9OVUxMQUJMRV9MT05HX0FUVFJJQlVURSwKKyAgICBQUk9QX05VTExBQkxFX0JPT0xFQU5f
QVRUUklCVVRFLAorICAgIFBST1BfTlVMTEFCTEVfU1RSSU5HX0FUVFJJQlVURSwKKyAgICBQUk9Q
X05VTExBQkxFX0xPTkdfU0VUVEFCTEVfQVRUUklCVVRFLAorICAgIFBST1BfTlVMTEFCTEVfU1RS
SU5HX1ZBTFVFLAogfTsKIAogc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X29ial9maW5hbGl6
ZShHT2JqZWN0KiBvYmplY3QpCkBAIC0yNjQsNiArMjcwLDE0IEBAIHN0YXRpYyB2b2lkIHdlYmtp
dF9kb21fdGVzdF9vYmpfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVy
dHlJZCwKICAgICAgICAgY29yZVNlbGYtPnNldElkKChnX3ZhbHVlX2dldF9sb25nKHZhbHVlKSkp
OwogICAgICAgICBicmVhazsKICAgICB9CisgICAgY2FzZSBQUk9QX05VTExBQkxFX0xPTkdfU0VU
VEFCTEVfQVRUUklCVVRFOiB7CisgICAgICAgIGNvcmVTZWxmLT5zZXROdWxsYWJsZUxvbmdTZXR0
YWJsZUF0dHJpYnV0ZSgoZ192YWx1ZV9nZXRfbG9uZyh2YWx1ZSkpKTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIGNhc2UgUFJPUF9OVUxMQUJMRV9TVFJJTkdfVkFMVUU6IHsKKyAgICAgICAg
Y29yZVNlbGYtPnNldE51bGxhYmxlU3RyaW5nVmFsdWUoKGdfdmFsdWVfZ2V0X2xvbmcodmFsdWUp
KSk7CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVD
VF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wZXJ0eUlkLCBwc3BlYyk7CiAg
ICAgICAgIGJyZWFrOwpAQCAtNDk5LDYgKzUxMywzNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9t
X3Rlc3Rfb2JqX2dldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQs
CiAgICAgICAgIGdfdmFsdWVfc2V0X2xvbmcodmFsdWUsIGNvcmVTZWxmLT5yZXBsYWNlYWJsZUF0
dHJpYnV0ZSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorICAgIGNhc2UgUFJPUF9OVUxMQUJM
RV9ET1VCTEVfQVRUUklCVVRFOiB7CisgICAgICAgIGJvb2wgaXNOdWxsID0gZmFsc2U7CisgICAg
ICAgIGdfdmFsdWVfc2V0X2RvdWJsZSh2YWx1ZSwgY29yZVNlbGYtPm51bGxhYmxlRG91YmxlQXR0
cmlidXRlKGlzTnVsbCkpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBQUk9QX05V
TExBQkxFX0xPTkdfQVRUUklCVVRFOiB7CisgICAgICAgIGJvb2wgaXNOdWxsID0gZmFsc2U7Cisg
ICAgICAgIGdfdmFsdWVfc2V0X2xvbmcodmFsdWUsIGNvcmVTZWxmLT5udWxsYWJsZUxvbmdBdHRy
aWJ1dGUoaXNOdWxsKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFBST1BfTlVM
TEFCTEVfQk9PTEVBTl9BVFRSSUJVVEU6IHsKKyAgICAgICAgYm9vbCBpc051bGwgPSBmYWxzZTsK
KyAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgY29yZVNlbGYtPm51bGxhYmxlQm9v
bGVhbkF0dHJpYnV0ZShpc051bGwpKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2Ug
UFJPUF9OVUxMQUJMRV9TVFJJTkdfQVRUUklCVVRFOiB7CisgICAgICAgIGJvb2wgaXNOdWxsID0g
ZmFsc2U7CisgICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIGNvbnZlcnRUb1VURjhT
dHJpbmcoY29yZVNlbGYtPm51bGxhYmxlU3RyaW5nQXR0cmlidXRlKGlzTnVsbCkpKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgUFJPUF9OVUxMQUJMRV9MT05HX1NFVFRBQkxFX0FU
VFJJQlVURTogeworICAgICAgICBib29sIGlzTnVsbCA9IGZhbHNlOworICAgICAgICBnX3ZhbHVl
X3NldF9sb25nKHZhbHVlLCBjb3JlU2VsZi0+bnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUo
aXNOdWxsKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFBST1BfTlVMTEFCTEVf
U1RSSU5HX1ZBTFVFOiB7CisgICAgICAgIGJvb2wgaXNOdWxsID0gZmFsc2U7CisgICAgICAgIFdl
YkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgICAgICBnX3ZhbHVlX3NldF9sb25nKHZh
bHVlLCBjb3JlU2VsZi0+bnVsbGFibGVTdHJpbmdWYWx1ZShpc051bGwsIGVjKSk7CisgICAgICAg
IGJyZWFrOworICAgIH0KICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFM
SURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wZXJ0eUlkLCBwc3BlYyk7CiAgICAgICAgIGJyZWFr
OwpAQCAtODg3LDYgKzkzMiw1NiBAQCBHX01BWExPTkcsIC8qIG1heCAqLwogR19NQVhMT05HLCAv
KiBtYXggKi8KIDAsIC8qIGRlZmF1bHQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Cisg
ICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0Q2xhc3MsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX05VTExBQkxFX0RPVUJMRV9BVFRSSUJV
VEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfZG91
YmxlKCJudWxsYWJsZS1kb3VibGUtYXR0cmlidXRlIiwgLyogbmFtZSAqLworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9vYmpf
bnVsbGFibGUtZG91YmxlLWF0dHJpYnV0ZSIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICovCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJy
ZWFkLW9ubHkgIGdkb3VibGUgVGVzdE9iai5udWxsYWJsZS1kb3VibGUtYXR0cmlidXRlIiwgLyog
bG9uZ2VyIC0gY291bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC1H
X01BWERPVUJMRSwgLyogbWluICovCitHX01BWERPVUJMRSwgLyogbWF4ICovCiswLjAsIC8qIGRl
ZmF1bHQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisgICAgZ19vYmplY3RfY2xhc3Nf
aW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0Q2xhc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBQUk9QX05VTExBQkxFX0xPTkdfQVRUUklCVVRFLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2xvbmcoIm51bGxhYmxlLWxvbmctYXR0
cmlidXRlIiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9vYmpfbnVsbGFibGUtbG9uZy1hdHRyaWJ1dGUi
LCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVhZC1vbmx5ICBnbG9uZyBUZXN0T2JqLm51
bGxhYmxlLWxvbmctYXR0cmlidXRlIiwgLyogbG9uZ2VyIC0gY291bGQgZG8gd2l0aCBzb21lIGV4
dHJhIGRvYyBzdHVmZiBoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdfTUlOTE9ORywgLyogbWluICovCitHX01BWExPTkcs
IC8qIG1heCAqLworMCwgLyogZGVmYXVsdCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsK
KyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1BfTlVMTEFCTEVfQk9PTEVBTl9BVFRS
SUJVVEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNf
Ym9vbGVhbigibnVsbGFibGUtYm9vbGVhbi1hdHRyaWJ1dGUiLCAvKiBuYW1lICovCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0
X29ial9udWxsYWJsZS1ib29sZWFuLWF0dHJpYnV0ZSIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICov
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJyZWFkLW9ubHkgIGdib29sZWFuIFRlc3RPYmoubnVsbGFibGUtYm9vbGVhbi1hdHRyaWJ1
dGUiLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9jIHN0dWZmIGhlcmUg
Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRkFMU0UsIC8qIGRlZmF1bHQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Cisg
ICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0Q2xhc3MsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX05VTExBQkxFX1NUUklOR19BVFRSSUJV
VEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfc3Ry
aW5nKCJudWxsYWJsZS1zdHJpbmctYXR0cmlidXRlIiwgLyogbmFtZSAqLworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9vYmpf
bnVsbGFibGUtc3RyaW5nLWF0dHJpYnV0ZSIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICovCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJy
ZWFkLW9ubHkgIGdjaGFyKiBUZXN0T2JqLm51bGxhYmxlLXN0cmluZy1hdHRyaWJ1dGUiLCAvKiBs
b25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9jIHN0dWZmIGhlcmUgKi8KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiIs
IC8qIGRlZmF1bHQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisgICAgZ19vYmplY3Rf
Y2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0Q2xhc3MsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBQUk9QX05VTExBQkxFX0xPTkdfU0VUVEFCTEVfQVRUUklCVVRFLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9zcGVjX2xvbmcoIm51
bGxhYmxlLWxvbmctc2V0dGFibGUtYXR0cmlidXRlIiwgLyogbmFtZSAqLworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9vYmpf
bnVsbGFibGUtbG9uZy1zZXR0YWJsZS1hdHRyaWJ1dGUiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAq
LworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAicmVhZC13cml0ZSAgZ2xvbmcgVGVzdE9iai5udWxsYWJsZS1sb25nLXNldHRhYmxlLWF0
dHJpYnV0ZSIsIC8qIGxvbmdlciAtIGNvdWxkIGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYg
aGVyZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHX01JTkxPTkcsIC8qIG1pbiAqLworR19NQVhMT05HLCAvKiBtYXggKi8KKzAs
IC8qIGRlZmF1bHQgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOworICAgIGdfb2JqZWN0
X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgUFJPUF9OVUxMQUJMRV9TVFJJTkdfVkFMVUUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfbG9uZygibnVsbGFibGUtc3Ry
aW5nLXZhbHVlIiwgLyogbmFtZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9vYmpfbnVsbGFibGUtc3RyaW5nLXZhbHVl
IiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlYWQtd3JpdGUgIGdsb25nIFRlc3RPYmou
bnVsbGFibGUtc3RyaW5nLXZhbHVlIiwgLyogbG9uZ2VyIC0gY291bGQgZG8gd2l0aCBzb21lIGV4
dHJhIGRvYyBzdHVmZiBoZXJlICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdfTUlOTE9ORywgLyogbWluICovCitHX01BWExPTkcs
IC8qIG1heCAqLworMCwgLyogZGVmYXVsdCAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7
CiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpfaW5pdChXZWJLaXRET01UZXN0
T2JqKiByZXF1ZXN0KQpAQCAtMjMwMywzICsyMzk4LDkzIEBAIHdlYmtpdF9kb21fdGVzdF9vYmpf
Z2V0X3JlcGxhY2VhYmxlX2F0dHJpYnV0ZShXZWJLaXRET01UZXN0T2JqKiBzZWxmKQogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKK2dkb3VibGUKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X251bGxh
YmxlX2RvdWJsZV9hdHRyaWJ1dGUoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0RPTV9JU19URVNUX09CSihzZWxmKSwgMCk7CisgICAgV2ViQ29yZTo6VGVzdE9i
aiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBib29sIGlzTnVsbCA9IGZhbHNlOwor
ICAgIGdkb3VibGUgcmVzdWx0ID0gaXRlbS0+bnVsbGFibGVEb3VibGVBdHRyaWJ1dGUoaXNOdWxs
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitnbG9uZword2Via2l0X2RvbV90ZXN0X29ial9n
ZXRfbnVsbGFibGVfbG9uZ19hdHRyaWJ1dGUoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19URVNUX09CSihzZWxmKSwgMCk7CisgICAgV2ViQ29yZTo6
VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBib29sIGlzTnVsbCA9IGZh
bHNlOworICAgIGdsb25nIHJlc3VsdCA9IGl0ZW0tPm51bGxhYmxlTG9uZ0F0dHJpYnV0ZShpc051
bGwpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2dib29sZWFuCit3ZWJraXRfZG9tX3Rlc3Rf
b2JqX2dldF9udWxsYWJsZV9ib29sZWFuX2F0dHJpYnV0ZShXZWJLaXRET01UZXN0T2JqKiBzZWxm
KQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX1RFU1RfT0JKKHNlbGYpLCBGQUxTRSk7Cisg
ICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBib29s
IGlzTnVsbCA9IGZhbHNlOworICAgIGdib29sZWFuIHJlc3VsdCA9IGl0ZW0tPm51bGxhYmxlQm9v
bGVhbkF0dHJpYnV0ZShpc051bGwpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2djaGFyKgor
d2Via2l0X2RvbV90ZXN0X29ial9nZXRfbnVsbGFibGVfc3RyaW5nX2F0dHJpYnV0ZShXZWJLaXRE
T01UZXN0T2JqKiBzZWxmKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX1RFU1RfT0JKKHNl
bGYpLCAwKTsKKyAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYp
OworICAgIGJvb2wgaXNOdWxsID0gZmFsc2U7CisgICAgZ2NoYXIqIHJlc3VsdCA9IGNvbnZlcnRU
b1VURjhTdHJpbmcoaXRlbS0+bnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUoaXNOdWxsKSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKworZ2xvbmcKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X251bGxh
YmxlX2xvbmdfc2V0dGFibGVfYXR0cmlidXRlKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9ET01fSVNfVEVTVF9PQkooc2VsZiksIDApOworICAgIFdlYkNvcmU6
OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgYm9vbCBpc051bGwgPSBm
YWxzZTsKKyAgICBnbG9uZyByZXN1bHQgPSBpdGVtLT5udWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJp
YnV0ZShpc051bGwpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQKK3dlYmtpdF9kb21f
dGVzdF9vYmpfc2V0X251bGxhYmxlX2xvbmdfc2V0dGFibGVfYXR0cmlidXRlKFdlYktpdERPTVRl
c3RPYmoqIHNlbGYsIGdsb25nIHZhbHVlKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfVEVTVF9P
Qkooc2VsZikpOworICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2Vs
Zik7CisgICAgaXRlbS0+c2V0TnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUodmFsdWUpOwor
fQorCitnbG9uZword2Via2l0X2RvbV90ZXN0X29ial9nZXRfbnVsbGFibGVfc3RyaW5nX3ZhbHVl
KFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIEdFcnJvcioqIGVycm9yKQoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChX
RUJLSVRfRE9NX0lTX1RFU1RfT0JKKHNlbGYpLCAwKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bCghZXJyb3IgfHwgISplcnJvciwgMCk7CisgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdl
YktpdDo6Y29yZShzZWxmKTsKKyAgICBib29sIGlzTnVsbCA9IGZhbHNlOworICAgIFdlYkNvcmU6
OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGdsb25nIHJlc3VsdCA9IGl0ZW0tPm51bGxhYmxl
U3RyaW5nVmFsdWUoaXNOdWxsLCBlYyk7CisgICAgaWYgKGVjKSB7CisgICAgICAgIFdlYkNvcmU6
OkV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiBlY2Rlc2MoZWMpOworICAgICAgICBnX3NldF9lcnJv
cl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGVjZGVz
Yy5jb2RlLCBlY2Rlc2MubmFtZSk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3Zv
aWQKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X251bGxhYmxlX3N0cmluZ192YWx1ZShXZWJLaXRE
T01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lTX1RF
U1RfT0JKKHNlbGYpKTsKKyAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3Jl
KHNlbGYpOworICAgIGl0ZW0tPnNldE51bGxhYmxlU3RyaW5nVmFsdWUodmFsdWUpOworfQorCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9X
ZWJLaXRET01UZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgKaW5kZXggZWYwNmRkZGI5ZjVlNjA0MmUxNjg2Yjc1
ZWRhNWExMmE5YjYwZDhlMS4uODM0Y2FmNzBmNjdiY2JmMjkzMGFhNWE2NjQ1YmVjYWEwYjcxNWEw
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmpl
Y3QvV2ViS2l0RE9NVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaApAQCAtMTM4OSw2ICsxMzg5LDg5IEBA
IHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2hhc2goV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiBX
RUJLSVRfQVBJIGdsb25nCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9yZXBsYWNlYWJsZV9hdHRy
aWJ1dGUoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAKKy8qKgorICogd2Via2l0X2RvbV90ZXN0
X29ial9nZXRfbnVsbGFibGVfZG91YmxlX2F0dHJpYnV0ZToKKyAqIEBzZWxmOiBBICNXZWJLaXRE
T01UZXN0T2JqCisgKgorICogUmV0dXJuczoKKyAqCisqKi8KK1dFQktJVF9BUEkgZ2RvdWJsZQor
d2Via2l0X2RvbV90ZXN0X29ial9nZXRfbnVsbGFibGVfZG91YmxlX2F0dHJpYnV0ZShXZWJLaXRE
T01UZXN0T2JqKiBzZWxmKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9udWxs
YWJsZV9sb25nX2F0dHJpYnV0ZToKKyAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCisgKgor
ICogUmV0dXJuczoKKyAqCisqKi8KK1dFQktJVF9BUEkgZ2xvbmcKK3dlYmtpdF9kb21fdGVzdF9v
YmpfZ2V0X251bGxhYmxlX2xvbmdfYXR0cmlidXRlKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOwor
CisvKioKKyAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X251bGxhYmxlX2Jvb2xlYW5fYXR0cmli
dXRlOgorICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKKyAqCisgKiBSZXR1cm5zOgorICoK
KyoqLworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X2RvbV90ZXN0X29ial9nZXRfbnVsbGFi
bGVfYm9vbGVhbl9hdHRyaWJ1dGUoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CisKKy8qKgorICog
d2Via2l0X2RvbV90ZXN0X29ial9nZXRfbnVsbGFibGVfc3RyaW5nX2F0dHJpYnV0ZToKKyAqIEBz
ZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCisgKgorICogUmV0dXJuczoKKyAqCisqKi8KK1dFQktJ
VF9BUEkgZ2NoYXIqCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9udWxsYWJsZV9zdHJpbmdfYXR0
cmlidXRlKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpOworCisvKioKKyAqIHdlYmtpdF9kb21fdGVz
dF9vYmpfZ2V0X251bGxhYmxlX2xvbmdfc2V0dGFibGVfYXR0cmlidXRlOgorICogQHNlbGY6IEEg
I1dlYktpdERPTVRlc3RPYmoKKyAqCisgKiBSZXR1cm5zOgorICoKKyoqLworV0VCS0lUX0FQSSBn
bG9uZword2Via2l0X2RvbV90ZXN0X29ial9nZXRfbnVsbGFibGVfbG9uZ19zZXR0YWJsZV9hdHRy
aWJ1dGUoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CisKKy8qKgorICogd2Via2l0X2RvbV90ZXN0
X29ial9zZXRfbnVsbGFibGVfbG9uZ19zZXR0YWJsZV9hdHRyaWJ1dGU6CisgKiBAc2VsZjogQSAj
V2ViS2l0RE9NVGVzdE9iagorICogQHZhbHVlOiBBICNnbG9uZworICoKKyAqIFJldHVybnM6Cisg
KgorKiovCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X251bGxhYmxl
X2xvbmdfc2V0dGFibGVfYXR0cmlidXRlKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIHZh
bHVlKTsKKworLyoqCisgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9udWxsYWJsZV9zdHJpbmdf
dmFsdWU6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagorICogQGVycm9yOiAjR0Vycm9y
CisgKgorICogUmV0dXJuczoKKyAqCisqKi8KK1dFQktJVF9BUEkgZ2xvbmcKK3dlYmtpdF9kb21f
dGVzdF9vYmpfZ2V0X251bGxhYmxlX3N0cmluZ192YWx1ZShXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBHRXJyb3IqKiBlcnJvcik7CisKKy8qKgorICogd2Via2l0X2RvbV90ZXN0X29ial9zZXRfbnVs
bGFibGVfc3RyaW5nX3ZhbHVlOgorICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKKyAqIEB2
YWx1ZTogQSAjZ2xvbmcKKyAqCisgKiBSZXR1cm5zOgorICoKKyoqLworV0VCS0lUX0FQSSB2b2lk
Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9udWxsYWJsZV9zdHJpbmdfdmFsdWUoV2ViS2l0RE9N
VGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYgLyog
V2ViS2l0RE9NVGVzdE9ial9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKaW5kZXggY2ViNWFlOGRiOTJiMTg1ZGRh
ZTUxMjJjYzc5NjEyZGVkMGEzNDczYy4uMmI4ZWI4Nzg3MjVmMThhMDI3ODg1Y2U1YjJjMmZmMzEx
ZGNlNjc4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L09iakMvRE9NVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9PYmpDL0RPTVRlc3RPYmouaApAQCAtMTE1LDYgKzExNSwxMiBAQCBlbnVtIHsKIEBwcm9w
ZXJ0eSBpbnQgaWROYW1lOwogQHByb3BlcnR5KHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqaGFz
aE5hbWU7CiBAcHJvcGVydHkocmVhZG9ubHkpIGludCByZXBsYWNlYWJsZUF0dHJpYnV0ZTsKK0Bw
cm9wZXJ0eShyZWFkb25seSkgZG91YmxlIG51bGxhYmxlRG91YmxlQXR0cmlidXRlOworQHByb3Bl
cnR5KHJlYWRvbmx5KSBpbnQgbnVsbGFibGVMb25nQXR0cmlidXRlOworQHByb3BlcnR5KHJlYWRv
bmx5KSBCT09MIG51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZTsKK0Bwcm9wZXJ0eShyZWFkb25seSwg
Y29weSkgTlNTdHJpbmcgKm51bGxhYmxlU3RyaW5nQXR0cmlidXRlOworQHByb3BlcnR5IGludCBu
dWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZTsKK0Bwcm9wZXJ0eSBpbnQgbnVsbGFibGVTdHJp
bmdWYWx1ZTsKIAogLSAodm9pZCl2b2lkTWV0aG9kOwogLSAodm9pZCl2b2lkTWV0aG9kV2l0aEFy
Z3M6KGludClsb25nQXJnIHN0ckFyZzooTlNTdHJpbmcgKilzdHJBcmcgb2JqQXJnOihET01UZXN0
T2JqICopb2JqQXJnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KaW5kZXggN2RmYmFlODQ5NzYxNDc2ZGZjYzEyYTg1
NWMwZjRiNGI5MWEwMWU3MC4uYzg1Y2RjODM3NzcxYTc0YzBhZmRlZGI2ZTM2N2QyMjI5NWQxMDU3
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdE9iai5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
T2JqQy9ET01UZXN0T2JqLm1tCkBAIC03MTYsNiArNzE2LDU3IEBACiAgICAgcmV0dXJuIElNUEwt
PnJlcGxhY2VhYmxlQXR0cmlidXRlKCk7CiB9CiAKKy0gKGRvdWJsZSludWxsYWJsZURvdWJsZUF0
dHJpYnV0ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4gSU1QTC0+bnVsbGFibGVEb3VibGVBdHRyaWJ1dGUoaXNOdWxsKTsKK30KKworLSAo
aW50KW51bGxhYmxlTG9uZ0F0dHJpYnV0ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+bnVsbGFibGVMb25nQXR0cmlidXRlKGlz
TnVsbCk7Cit9CisKKy0gKEJPT0wpbnVsbGFibGVCb29sZWFuQXR0cmlidXRlCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5udWxs
YWJsZUJvb2xlYW5BdHRyaWJ1dGUoaXNOdWxsKTsKK30KKworLSAoTlNTdHJpbmcgKiludWxsYWJs
ZVN0cmluZ0F0dHJpYnV0ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+bnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUoaXNOdWxsKTsK
K30KKworLSAoaW50KW51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5udWxsYWJs
ZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZShpc051bGwpOworfQorCistICh2b2lkKXNldE51bGxhYmxl
TG9uZ1NldHRhYmxlQXR0cmlidXRlOihpbnQpbmV3TnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1
dGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1Q
TC0+c2V0TnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUobmV3TnVsbGFibGVMb25nU2V0dGFi
bGVBdHRyaWJ1dGUpOworfQorCistIChpbnQpbnVsbGFibGVTdHJpbmdWYWx1ZQoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpFeGNlcHRp
b25Db2RlIGVjID0gMDsKKyAgICBpbnQgcmVzdWx0ID0gSU1QTC0+bnVsbGFibGVTdHJpbmdWYWx1
ZShpc051bGwsIGVjKTsKKyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKKy0gKHZvaWQpc2V0TnVsbGFibGVTdHJpbmdWYWx1ZTooaW50KW5l
d051bGxhYmxlU3RyaW5nVmFsdWUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgSU1QTC0+c2V0TnVsbGFibGVTdHJpbmdWYWx1ZShuZXdOdWxsYWJsZVN0
cmluZ1ZhbHVlKTsKK30KKwogLSAodm9pZCl2b2lkTWV0aG9kCiB7CiAgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IGY5ZTUwZmFkNjE1MjVjNTZkMmQ4YWQ5Y2E1
Y2YxN2RkYzFmZDM5ZWQuLjAzMDVkNWI2NmUxMjljNGM0MTRmNzVmOTQ5Y2RiNDU4MWE4YjAwODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2Jq
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5p
ZGwKQEAgLTI3Miw3ICsyNzIsNiBAQCBlbnVtIFRlc3RFbnVtVHlwZSB7ICIiLCAiRW51bVZhbHVl
MSIsICJFbnVtVmFsdWUyIiwgIkVudW1WYWx1ZTMiIH07CiAgICAgdm9pZCB2YXJpYWRpY0RvdWJs
ZU1ldGhvZChpbiBkb3VibGUgaGVhZCwgaW4gZG91YmxlLi4uIHRhaWwpOwogICAgIHZvaWQgdmFy
aWFkaWNOb2RlTWV0aG9kKGluIE5vZGUgaGVhZCwgaW4gTm9kZS4uLiB0YWlsKTsKIAotI2lmIGRl
ZmluZWQoVEVTVElOR19WOCkgfHwgZGVmaW5lZChURVNUSU5HX0pTKQogICAgIC8vIE51bGxhYmxl
IGF0dHJpYnV0ZXMuCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZT8gbnVsbGFibGVEb3Vi
bGVBdHRyaWJ1dGU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmc/IG51bGxhYmxlTG9uZ0F0
dHJpYnV0ZTsKQEAgLTI4Myw1ICsyODIsNCBAQCBlbnVtIFRlc3RFbnVtVHlwZSB7ICIiLCAiRW51
bVZhbHVlMSIsICJFbnVtVmFsdWUyIiwgIkVudW1WYWx1ZTMiIH07CiAKICAgICBhdHRyaWJ1dGUg
bG9uZz8gbnVsbGFibGVTdHJpbmdWYWx1ZQogICAgICAgICBnZXR0ZXIgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7Ci0jZW5kaWYKIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>