<?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>38182</bug_id>
          
          <creation_ts>2010-04-27 01:40:51 -0700</creation_ts>
          <short_desc>Remove custom bindings for TreeWalker</short_desc>
          <delta_ts>2010-04-27 14:24:30 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Adam Barth">abarth</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yaar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>217581</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-27 01:40:51 -0700</bug_when>
    <thetext>Remove custom bindings for TreeWalker</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217582</commentid>
    <comment_count>1</comment_count>
      <attachid>54397</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-27 01:43:18 -0700</bug_when>
    <thetext>Created attachment 54397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217584</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-27 01:46:18 -0700</bug_when>
    <thetext>Attachment 54397 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:190:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:192:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:199:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:201:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:203:  g_res is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/bindings/scripts/test/JS/JSTestObj.cpp:148:  Missing spaces around |  [whitespace/operators] [3]
WebCore/bindings/scripts/test/JS/JSTestObj.cpp:149:  Missing spaces around |  [whitespace/operators] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.h:89:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.h:92:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 9 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217586</commentid>
    <comment_count>3</comment_count>
      <attachid>54397</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-27 01:49:53 -0700</bug_when>
    <thetext>Comment on attachment 54397
Patch

Looks right to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217590</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-27 01:54:10 -0700</bug_when>
    <thetext>I filed bug 38185 about the GObject warnings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217592</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-27 01:54:51 -0700</bug_when>
    <thetext>NodeIterator is also fixable this way. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217605</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-27 02:12:06 -0700</bug_when>
    <thetext>Attachment 54397 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/1920009</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217606</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-04-27 02:12:29 -0700</bug_when>
    <thetext>Committed r58298: &lt;http://trac.webkit.org/changeset/58298&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54397</attachid>
            <date>2010-04-27 01:43:18 -0700</date>
            <delta_ts>2010-04-27 01:49:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38182-20100427014317.patch</filename>
            <type>text/plain</type>
            <size>26939</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDk0YWJjNDhhYzJlNWRmMGJkYzQ0MmQ2Mjc5ZjBiNjEyMDI5MThlZC4uOTU5MGU0ZTM1YmYwZDI3
NTMwNGM2NWI1NzBlNGJiOTBkNjM2YjA1OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNC0yNyAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBjdXN0b20gYmluZGluZ3MgZm9yIFRyZWVXYWxr
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4MTgy
CisKKyAgICAgICAgVGhpcyBjdXN0b20gY29kZSBpcyBqdXN0IENhbGxXaXRoPVNjcmlwdFN0YXRl
LgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVHJl
ZVdhbGtlckN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1RyZWVXYWxrZXI6Om1hcmtD
aGlsZHJlbik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L2N1c3RvbS9WOFRyZWVXYWxrZXJDdXN0b20uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGRv
bS9UcmVlV2Fsa2VyLmlkbDoKKwogMjAxMC0wNC0yNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA2Y2Y4NjYx
MGVlYmE3MzMzNjUwNzgxYTJhMzk4ZmM1YWY2NjkxYzU1Li43N2UyODdjZTU3MjVjNzY3ZDEyNGVk
ZGE4YzU3ODM3YjQyNzMyNzZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNzg3LDcgKzc4Nyw2IEBACiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvY3VzdG9tL1Y4U2hhcmVkV29ya2VyQ3VzdG9tLmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4U3R5bGVTaGVldEN1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFN0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcCcsCi0gICAg
ICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4VHJlZVdhbGtlckN1c3RvbS5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYktpdENTU01hdHJpeENvbnN0cnVjdG9y
LmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViS2l0UG9pbnRDb25z
dHJ1Y3Rvci5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYlNvY2tl
dEN1c3RvbS5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RyZWVXYWxr
ZXJDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RyZWVXYWxrZXJDdXN0b20uY3Bw
CmluZGV4IGY4NzljZjQzNzI1OTE2ZDEzNzliODE4OTI2ZGE4YjUzNTU4YjY0ZjcuLjBjMTk0N2Zh
N2IwN2I5MjVlNDVlYWFhNmZiZWE3YzYxYTY2YThlZGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTVHJlZVdhbGtlckN1c3RvbS5jcHAKQEAgLTM2LDYxICszNiw1IEBAIHZvaWQgSlNUcmVlV2Fs
a2VyOjptYXJrQ2hpbGRyZW4oTWFya1N0YWNrJiBtYXJrU3RhY2spCiAgICAgaWYgKE5vZGVGaWx0
ZXIqIGZpbHRlciA9IG1faW1wbC0+ZmlsdGVyKCkpCiAgICAgICAgIGZpbHRlci0+bWFya0FnZ3Jl
Z2F0ZShtYXJrU3RhY2spOwogfQotICAgIAotSlNWYWx1ZSBKU1RyZWVXYWxrZXI6OnBhcmVudE5v
ZGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JikKLXsKLSAgICBOb2RlKiBub2RlID0g
aW1wbCgpLT5wYXJlbnROb2RlKGV4ZWMpOwotICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkK
LSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgbm9k
ZSk7Ci19Ci0gICAgCi1KU1ZhbHVlIEpTVHJlZVdhbGtlcjo6Zmlyc3RDaGlsZChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IEFyZ0xpc3QmKQotewotICAgIE5vZGUqIG5vZGUgPSBpbXBsKCktPmZpcnN0
Q2hpbGQoZXhlYyk7Ci0gICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKLSAgICByZXR1cm4gdG9KUyhleGVjLCBub2RlKTsKLX0KLSAgICAK
LUpTVmFsdWUgSlNUcmVlV2Fsa2VyOjpsYXN0Q2hpbGQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBB
cmdMaXN0JikKLXsKLSAgICBOb2RlKiBub2RlID0gaW1wbCgpLT5sYXN0Q2hpbGQoZXhlYyk7Ci0g
ICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKLSAgICByZXR1cm4gdG9KUyhleGVjLCBub2RlKTsKLX0KLSAgICAKLUpTVmFsdWUgSlNUcmVl
V2Fsa2VyOjpuZXh0U2libGluZyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmKQotewot
ICAgIE5vZGUqIG5vZGUgPSBpbXBsKCktPm5leHRTaWJsaW5nKGV4ZWMpOwotICAgIGlmIChleGVj
LT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgcmV0
dXJuIHRvSlMoZXhlYywgbm9kZSk7Ci19Ci0gICAgCi1KU1ZhbHVlIEpTVHJlZVdhbGtlcjo6cHJl
dmlvdXNTaWJsaW5nKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYpCi17Ci0gICAgTm9k
ZSogbm9kZSA9IGltcGwoKS0+cHJldmlvdXNTaWJsaW5nKGV4ZWMpOwotICAgIGlmIChleGVjLT5o
YWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgcmV0dXJu
IHRvSlMoZXhlYywgbm9kZSk7Ci19Ci0gICAgCi1KU1ZhbHVlIEpTVHJlZVdhbGtlcjo6cHJldmlv
dXNOb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYpCi17Ci0gICAgTm9kZSogbm9k
ZSA9IGltcGwoKS0+cHJldmlvdXNOb2RlKGV4ZWMpOwotICAgIGlmIChleGVjLT5oYWRFeGNlcHRp
b24oKSkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgcmV0dXJuIHRvSlMoZXhl
Yywgbm9kZSk7Ci19Ci0gICAgCi1KU1ZhbHVlIEpTVHJlZVdhbGtlcjo6bmV4dE5vZGUoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JikKLXsKLSAgICBOb2RlKiBub2RlID0gaW1wbCgpLT5u
ZXh0Tm9kZShleGVjKTsKLSAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwotICAgIHJldHVybiB0b0pTKGV4ZWMsIG5vZGUpOwotfQogCiB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
IGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBhN2U3
OTViZWQ5MmIxYmIwZWUxNWU0NjA2MDM2Y2ZhOWRhNDhmYzZjLi5mNGUxZjA1NjY0MjI1NWE4YzEw
ZTUxOTU4MDVmOTU5ZjZhM2UyY2M2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0KQEAgLTE2OTIsMTIgKzE2OTIsMTggQEAgc3ViIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb24KICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBteSAkY2FsbFdp
dGggPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxXaXRo
In07Ci0gICAgICAgICAgICAgICAgaWYgKCRjYWxsV2l0aCAmJiAkY2FsbFdpdGggZXEgIkR5bmFt
aWNGcmFtZSIpIHsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
RnJhbWUqIGR5bmFtaWNGcmFtZSA9IHRvRHluYW1pY0ZyYW1lKGV4ZWMpO1xuIik7Ci0gICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghZHluYW1pY0ZyYW1lKVxu
Iik7Ci0gICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTtcbiIpOworICAgICAgICAgICAgICAgIGlmICgkY2FsbFdpdGgpIHsK
KyAgICAgICAgICAgICAgICAgICAgbXkgJGNhbGxXaXRoQXJnID0gIkNPTVBJTEVfQVNTRVJUKGZh
bHNlKSI7CisgICAgICAgICAgICAgICAgICAgIGlmICgkY2FsbFdpdGggZXEgIkR5bmFtaWNGcmFt
ZSIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEZy
YW1lKiBkeW5hbWljRnJhbWUgPSB0b0R5bmFtaWNGcmFtZShleGVjKTtcbiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFkeW5hbWljRnJhbWUp
XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTtcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgJGNh
bGxXaXRoQXJnID0gImR5bmFtaWNGcmFtZSI7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYg
KCRjYWxsV2l0aCBlcSAiU2NyaXB0U3RhdGUiKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAk
Y2FsbFdpdGhBcmcgPSAiZXhlYyI7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgJGZ1bmN0aW9uU3RyaW5nIC49ICIsICIgaWYgJHBhcmFtSW5kZXg7Ci0gICAgICAg
ICAgICAgICAgICAgICRmdW5jdGlvblN0cmluZyAuPSAiZHluYW1pY0ZyYW1lIjsKKyAgICAgICAg
ICAgICAgICAgICAgJGZ1bmN0aW9uU3RyaW5nIC49ICRjYWxsV2l0aEFyZzsKICAgICAgICAgICAg
ICAgICAgICAgJHBhcmFtSW5kZXgrKzsKICAgICAgICAgICAgICAgICB9CiAKQEAgLTE4NzMsNiAr
MTg3OSwxMSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkZ1bmN0aW9uQ2FsbCgpCiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAkaW5kZW50IC4gInJldHVybiBqc1VuZGVmaW5lZCgpO1xu
Iik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIgLiAkaW5k
ZW50IC4gIkpTQzo6SlNWYWx1ZSByZXN1bHQgPSAiIC4gTmF0aXZlVG9KU1ZhbHVlKCRmdW5jdGlv
bi0+c2lnbmF0dXJlLCAxLCAkaW1wbENsYXNzTmFtZSwgIiIsICRmdW5jdGlvblN0cmluZywgImNh
c3RlZFRoaXNPYmoiKSAuICI7XG4iKTsKKyAgICAgICAgJGNhbGxXaXRoID0gJGZ1bmN0aW9uLT5z
aWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWxsV2l0aCJ9OworICAgICAgICBpZiAo
JGNhbGxXaXRoIGFuZCAkY2FsbFdpdGggZXEgIlNjcmlwdFN0YXRlIikgeworICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICRpbmRlbnQgLiAiaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKVxu
Iik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVudCAuICIgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7XG4iKTsKKyAgICAgICAgfQogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgJGluZGVudCAuICJzZXRET01FeGNlcHRpb24oZXhlYywgZWMpO1xuIikgaWYgQHskZnVuY3Rp
b24tPnJhaXNlc0V4Y2VwdGlvbnN9OwogCiAgICAgICAgIGlmICgkcG9kVHlwZSBhbmQgbm90ICRm
dW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1tdXRhYmxlIn0pIHsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0g
Yi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IDJlYWFm
ZjgxOWNmYzE5MGFhOTBjNGJjY2NmNmVlNDM2YjczNmE4MzUuLmM2NGIyNzYxODMwNGMzOWMwNjcw
N2VlMzNkMzNhZTJmOWRlNzkzNDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbQpAQCAtMjMzMywxNCArMjMzMywyMyBAQCBzdWIgR2VuZXJhdGVGdW5jdGlv
bkNhbGxTdHJpbmcoKQogICAgIH0KIAogICAgIG15ICRpbmRleCA9IDA7CisgICAgbXkgJGhhc1Nj
cmlwdFN0YXRlID0gMDsKIAogICAgIG15ICRjYWxsV2l0aCA9ICRmdW5jdGlvbi0+c2lnbmF0dXJl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbFdpdGgifTsKLSAgICBpZiAoJGNhbGxXaXRoICYm
ICRjYWxsV2l0aCBlcSAiRHluYW1pY0ZyYW1lIikgewotICAgICAgICAkcmVzdWx0IC49ICRpbmRl
bnQgLiAiRnJhbWUqIGVudGVyZWRGcmFtZSA9IFY4UHJveHk6OnJldHJpZXZlRnJhbWVGb3JFbnRl
cmVkQ29udGV4dCgpO1xuIjsKLSAgICAgICAgJHJlc3VsdCAuPSAkaW5kZW50IC4gImlmICghZW50
ZXJlZEZyYW1lKVxuIjsKLSAgICAgICAgJHJlc3VsdCAuPSAkaW5kZW50IC4gIiAgICByZXR1cm4g
djg6OlVuZGVmaW5lZCgpO1xuIjsKKyAgICBpZiAoJGNhbGxXaXRoKSB7CisgICAgICAgIG15ICRj
YWxsV2l0aEFyZyA9ICJDT01QSUxFX0FTU0VSVChmYWxzZSkiOworICAgICAgICBpZiAoJGNhbGxX
aXRoIGVxICJEeW5hbWljRnJhbWUiKSB7CisgICAgICAgICAgICAkcmVzdWx0IC49ICRpbmRlbnQg
LiAiRnJhbWUqIGVudGVyZWRGcmFtZSA9IFY4UHJveHk6OnJldHJpZXZlRnJhbWVGb3JFbnRlcmVk
Q29udGV4dCgpO1xuIjsKKyAgICAgICAgICAgICRyZXN1bHQgLj0gJGluZGVudCAuICJpZiAoIWVu
dGVyZWRGcmFtZSlcbiI7CisgICAgICAgICAgICAkcmVzdWx0IC49ICRpbmRlbnQgLiAiICAgIHJl
dHVybiB2ODo6VW5kZWZpbmVkKCk7XG4iOworICAgICAgICAgICAgJGNhbGxXaXRoQXJnID0gImVu
dGVyZWRGcmFtZSI7CisgICAgICAgIH0gZWxzaWYgKCRjYWxsV2l0aCBlcSAiU2NyaXB0U3RhdGUi
KSB7CisgICAgICAgICAgICAkcmVzdWx0IC49ICRpbmRlbnQgLiAiRW1wdHlTY3JpcHRTdGF0ZSBz
dGF0ZTtcbiI7CisgICAgICAgICAgICAkY2FsbFdpdGhBcmcgPSAiJnN0YXRlIjsKKyAgICAgICAg
ICAgICRoYXNTY3JpcHRTdGF0ZSA9IDE7CisgICAgICAgIH0KICAgICAgICAgJGZ1bmN0aW9uU3Ry
aW5nIC49ICIsICIgaWYgJGluZGV4OwotICAgICAgICAkZnVuY3Rpb25TdHJpbmcgLj0gImVudGVy
ZWRGcmFtZSI7CisgICAgICAgICRmdW5jdGlvblN0cmluZyAuPSAkY2FsbFdpdGhBcmc7CiAgICAg
ICAgICRpbmRleCsrOwogICAgICAgICAkbnVtYmVyT2ZQYXJhbWV0ZXJzKysKICAgICB9CkBAIC0y
Mzk3LDcgKzI0MDYsNyBAQCBzdWIgR2VuZXJhdGVGdW5jdGlvbkNhbGxTdHJpbmcoKQogICAgICAg
ICAkcmVzdWx0IC49ICRpbmRlbnQgLiBHZXROYXRpdmVUeXBlKCRyZXR1cm5UeXBlLCAwKSAuICIg
cmVzdWx0ID0gKmltcDtcbiIgLiAkaW5kZW50IC4gIiRmdW5jdGlvblN0cmluZztcbiI7CiAgICAg
fSBlbHNpZiAoJHJldHVybnNMaXN0SXRlbVBvZFR5cGUpIHsKICAgICAgICAgJHJlc3VsdCAuPSAk
aW5kZW50IC4gIlJlZlB0cjxTVkdQT0RMaXN0SXRlbTwkbmF0aXZlUmV0dXJuVHlwZT4gPiByZXN1
bHQgPSAkZnVuY3Rpb25TdHJpbmc7XG4iOwotICAgIH0gZWxzaWYgKEB7JGZ1bmN0aW9uLT5yYWlz
ZXNFeGNlcHRpb25zfSBvciAkcmV0dXJuc1BvZFR5cGUgb3IgJGlzUG9kVHlwZSBvciBJc1NWR1R5
cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkcmV0dXJuVHlwZSkpIHsKKyAgICB9IGVsc2lmICgk
aGFzU2NyaXB0U3RhdGUgb3IgQHskZnVuY3Rpb24tPnJhaXNlc0V4Y2VwdGlvbnN9IG9yICRyZXR1
cm5zUG9kVHlwZSBvciAkaXNQb2RUeXBlIG9yIElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1l
dGVyKCRyZXR1cm5UeXBlKSkgewogICAgICAgICAkcmVzdWx0IC49ICRpbmRlbnQgLiAkbmF0aXZl
UmV0dXJuVHlwZSAuICIgcmVzdWx0ID0gJGZ1bmN0aW9uU3RyaW5nO1xuIjsKICAgICB9IGVsc2Ug
ewogICAgICAgICAjIENhbiBpbmxpbmUgdGhlIGZ1bmN0aW9uIGNhbGwgaW50byB0aGUgcmV0dXJu
IHN0YXRlbWVudCB0byBhdm9pZCBvdmVyaGVhZCBvZiB1c2luZyBhIFJlZjw+IHRlbXBvcmFyeQpA
QCAtMjQwNSw4ICsyNDE0LDE0IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9uQ2FsbFN0cmluZygpCiAg
ICAgICAgICRyZXR1cm5Jc1JlZiA9IDA7CiAgICAgfQogCisgICAgaWYgKCRoYXNTY3JpcHRTdGF0
ZSkgeworICAgICAgICAkcmVzdWx0IC49ICRpbmRlbnQgLiAiaWYgKHN0YXRlLT5oYWRFeGNlcHRp
b24oKSlcbiI7CisgICAgICAgICRyZXN1bHQgLj0gJGluZGVudCAuICIgICAgcmV0dXJuIHRocm93
RXJyb3Ioc3RhdGUtPmV4Y2VwdGlvbigpKTtcbiIKKyAgICB9CisKICAgICBpZiAoQHskZnVuY3Rp
b24tPnJhaXNlc0V4Y2VwdGlvbnN9KSB7Ci0gICAgICAgICRyZXN1bHQgLj0gJGluZGVudCAuICJp
ZiAoVU5MSUtFTFkoZWMpKVxuIiAuICRpbmRlbnQgLiAiICAgIGdvdG8gZmFpbDtcbiI7CisgICAg
ICAgICRyZXN1bHQgLj0gJGluZGVudCAuICJpZiAoVU5MSUtFTFkoZWMpKVxuIjsKKyAgICAgICAg
JHJlc3VsdCAuPSAkaW5kZW50IC4gIiAgICBnb3RvIGZhaWw7XG4iOwogICAgIH0KIAogICAgICMg
SWYgdGhlIHJldHVybiB0eXBlIGlzIGEgUE9EIHR5cGUsIHNlcGFyYXRlIG91dCB0aGUgd3JhcHBl
ciBnZW5lcmF0aW9uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9H
T2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAppbmRleCAzOGVkYTRkODhmOWExOWJmYTRk
ZWE4YTdhMzJmZWQ1NGY1MTQ2YWEyLi42NmUwYzJiMjcwZjI1ZGFkNGQ1NzE1MDNmZTcyZjY1ODRi
NWEwNmM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0
L1dlYktpdERPTVRlc3RPYmouY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKQEAgLTE4Nyw2ICsxODcsMjYgQEAgd2Via2l0
X2RvbV90ZXN0X29ial93aXRoX2R5bmFtaWNfZnJhbWVfYW5kX3VzZXJfZ2VzdHVyZV9hc2FkIChX
ZWJLaXRET01UZXN0T2JqICoKIH0KIAogdm9pZAord2Via2l0X2RvbV90ZXN0X29ial93aXRoX3Nj
cmlwdF9zdGF0ZV92b2lkIChXZWJLaXRET01UZXN0T2JqICpzZWxmKQoreworICAgIGdfcmV0dXJu
X2lmX2ZhaWwgKHNlbGYpOworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHNlbGYpOworICAgIGl0ZW0tPndpdGhTY3JpcHRTdGF0ZVZvaWQoKTsKKworfQorCitXZWJL
aXRET01UZXN0T2JqKiAKK3dlYmtpdF9kb21fdGVzdF9vYmpfd2l0aF9zY3JpcHRfc3RhdGVfb2Jq
IChXZWJLaXRET01UZXN0T2JqICpzZWxmKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChz
ZWxmLCAwKTsKKyAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxm
KTsKKyAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OlRlc3RPYmo+IGdfcmVzID0gV1RGOjpnZXRQdHIo
aXRlbS0+d2l0aFNjcmlwdFN0YXRlT2JqKCkpOworICAgIFdlYktpdERPTVRlc3RPYmoqICByZXMg
PSBzdGF0aWNfY2FzdDxXZWJLaXRET01UZXN0T2JqKiA+KFdlYktpdDo6a2l0KGdfcmVzLmdldCgp
KSk7CisgICAgcmV0dXJuIHJlczsKKworfQorCit2b2lkCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21l
dGhvZF93aXRoX29wdGlvbmFsX2FyZyAoV2ViS2l0RE9NVGVzdE9iaiAqc2VsZiwgZ2xvbmcgb3B0
KQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHNlbGYpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmggYi9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAppbmRleCBj
NzVhOWUwNDZlYTg1ZTY3NmVhY2EwZGU5Zjk4NDM1M2Y2NTI2NzMyLi44MzI0OTdhMDMzZGJkZWY1
ZDA0ZGE1NzE1NThmMGYyMzFjYjZkNzQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaApAQCAtODYsNiArODYs
MTIgQEAgV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3dpdGhfZHluYW1pY19m
cmFtZV9hbmRfdXNlcl9nZXN0dXJlX2FzYWQgKFdlYktpdERPTVRlc3RPYmogKnNlbGYsIGdsb25n
IGludF9hcmcsIGdsb25nIG9wdGlvbmFsX2FyZyk7CiAKIFdFQktJVF9BUEkgdm9pZAord2Via2l0
X2RvbV90ZXN0X29ial93aXRoX3NjcmlwdF9zdGF0ZV92b2lkIChXZWJLaXRET01UZXN0T2JqICpz
ZWxmKTsKKworV0VCS0lUX0FQSSBXZWJLaXRET01UZXN0T2JqKiAKK3dlYmtpdF9kb21fdGVzdF9v
Ympfd2l0aF9zY3JpcHRfc3RhdGVfb2JqIChXZWJLaXRET01UZXN0T2JqICpzZWxmKTsKKworV0VC
S0lUX0FQSSB2b2lkCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX21ldGhvZF93aXRoX29wdGlvbmFsX2Fy
ZyAoV2ViS2l0RE9NVGVzdE9iaiAqc2VsZiwgZ2xvbmcgb3B0KTsKIAogV0VCS0lUX0FQSSB2b2lk
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRl
eCA5NzNhMTAwY2JhNWUzNWY5MDIwZTgwNzQ0NzE4ZDUyYTMyZWU4ZDFmLi5mMDg5Y2E3ZGIyZGUw
MDliOTNkMDg4OTVkNjY1YjFhNzIyZjExMzZhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTEyOCw3ICsxMjgsNyBAQCBib29sIEpTVGVz
dE9iakNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBJZGVudAogI2RlZmluZSBUSFVOS19HRU5FUkFUT1IoZ2VuZXJhdG9yKQogI2VuZGlm
CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZh
bHVlc1sxOV0gPQorc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlw
ZVRhYmxlVmFsdWVzWzIxXSA9CiB7CiAgICAgeyAidm9pZE1ldGhvZCIsIERvbnREZWxldGV8RnVu
Y3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJv
dG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDAp
IH0sCiAgICAgeyAidm9pZE1ldGhvZFdpdGhBcmdzIiwgRG9udERlbGV0ZXxGdW5jdGlvbiwgKGlu
dHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5j
dGlvblZvaWRNZXRob2RXaXRoQXJncyksIChpbnRwdHJfdCkzIFRIVU5LX0dFTkVSQVRPUigwKSB9
LApAQCAtMTQ1LDYgKzE0NSw4IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RP
YmpQcm90b3R5cGVUYWJsZVZhbHVlc1sxOV0gPQogICAgIHsgIndpdGhEeW5hbWljRnJhbWVBbmRP
cHRpb25hbEFyZyIsIERvbnREZWxldGV8RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxO
YXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRHluYW1pY0ZyYW1l
QW5kT3B0aW9uYWxBcmcpLCAoaW50cHRyX3QpMiBUSFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7
ICJ3aXRoRHluYW1pY0ZyYW1lQW5kVXNlckdlc3R1cmUiLCBEb250RGVsZXRlfEZ1bmN0aW9uLCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1
bmN0aW9uV2l0aER5bmFtaWNGcmFtZUFuZFVzZXJHZXN0dXJlKSwgKGludHB0cl90KTEgVEhVTktf
R0VORVJBVE9SKDApIH0sCiAgICAgeyAid2l0aER5bmFtaWNGcmFtZUFuZFVzZXJHZXN0dXJlQVNB
RCIsIERvbnREZWxldGV8RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5j
dGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoRHluYW1pY0ZyYW1lQW5kVXNlckdl
c3R1cmVBU0FEKSwgKGludHB0cl90KTIgVEhVTktfR0VORVJBVE9SKDApIH0sCisgICAgeyAid2l0
aFNjcmlwdFN0YXRlVm9pZCIsIERvbnREZWxldGV8RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25XaXRoU2NyaXB0
U3RhdGVWb2lkKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJBVE9SKDApIH0sCisgICAgeyAid2l0
aFNjcmlwdFN0YXRlT2JqIiwgRG9udERlbGV0ZXxGdW5jdGlvbiwgKGludHB0cl90KXN0YXRpY19j
YXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRT
dGF0ZU9iaiksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRPUigwKSB9LAogICAgIHsgIm1ldGhv
ZFdpdGhPcHRpb25hbEFyZyIsIERvbnREZWxldGV8RnVuY3Rpb24sIChpbnRwdHJfdClzdGF0aWNf
Y2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRo
T3B0aW9uYWxBcmcpLCAoaW50cHRyX3QpMSBUSFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJt
ZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyIsIERvbnREZWxldGV8RnVuY3Rp
b24sIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyksIChpbnRw
dHJfdCkyIFRIVU5LX0dFTkVSQVRPUigwKSB9LAogICAgIHsgIm1ldGhvZFdpdGhOb25PcHRpb25h
bEFyZ0FuZFR3b09wdGlvbmFsQXJncyIsIERvbnREZWxldGV8RnVuY3Rpb24sIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRo
b2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3MpLCAoaW50cHRyX3QpMyBUSFVO
S19HRU5FUkFUT1IoMCkgfSwKQEAgLTU4MSw2ICs1ODMsMzMgQEAgSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aER5bmFtaWNGcmFtZUFuZFVzZXJHZXN0
dXJlQVMKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIAorSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlVm9pZChFeGVjU3Rh
dGUqIGV4ZWMsIEpTT2JqZWN0KiwgSlNWYWx1ZSB0aGlzVmFsdWUsIGNvbnN0IEFyZ0xpc3QmIGFy
Z3MpCit7CisgICAgVU5VU0VEX1BBUkFNKGFyZ3MpOworICAgIGlmICghdGhpc1ZhbHVlLmluaGVy
aXRzKCZKU1Rlc3RPYmo6OnNfaW5mbykpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMs
IFR5cGVFcnJvcik7CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzT2JqID0gc3RhdGljX2Nhc3Q8
SlNUZXN0T2JqKj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CisgICAgVGVzdE9iaiogaW1wID0gc3Rh
dGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXNPYmotPmltcGwoKSk7CisKKyAgICBpbXAtPndp
dGhTY3JpcHRTdGF0ZVZvaWQoZXhlYyk7CisgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cit9CisK
K0pTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3Jp
cHRTdGF0ZU9iaihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiwgSlNWYWx1ZSB0aGlzVmFsdWUs
IGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCit7CisgICAgVU5VU0VEX1BBUkFNKGFyZ3MpOworICAgIGlm
ICghdGhpc1ZhbHVlLmluaGVyaXRzKCZKU1Rlc3RPYmo6OnNfaW5mbykpCisgICAgICAgIHJldHVy
biB0aHJvd0Vycm9yKGV4ZWMsIFR5cGVFcnJvcik7CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlz
T2JqID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3QodGhpc1ZhbHVlKSk7CisgICAg
VGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXNPYmotPmltcGwo
KSk7CisKKworICAgIEpTQzo6SlNWYWx1ZSByZXN1bHQgPSB0b0pTKGV4ZWMsIGNhc3RlZFRoaXNP
YmotPmdsb2JhbE9iamVjdCgpLCBXVEY6OmdldFB0cihpbXAtPndpdGhTY3JpcHRTdGF0ZU9iaihl
eGVjKSkpOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uTWV0aG9kV2l0aE9wdGlvbmFsQXJnKEV4ZWNT
dGF0ZSogZXhlYywgSlNPYmplY3QqLCBKU1ZhbHVlIHRoaXNWYWx1ZSwgY29uc3QgQXJnTGlzdCYg
YXJncykKIHsKICAgICBVTlVTRURfUEFSQU0oYXJncyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCmluZGV4IDU5NGEzOGY1NDliMmY1OWI0ODU3NGNmOGZi
NjBiMmUxNDUyZTUwOGUuLjIzYmRkM2ViNmEyMGMyMWU0MzQyZDhmMzJmNmJiZjgzYjM0MGM4OTYg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5o
CisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC0x
MDAsNiArMTAwLDggQEAgSlNDOjpKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25XaXRoRHluYW1pY0ZyYW1lQW5kQXJnKEpTQzoKIEpTQzo6SlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uV2l0aER5bmFtaWNGcmFtZUFuZE9w
dGlvbmFsQXJnKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSwg
Y29uc3QgSlNDOjpBcmdMaXN0Jik7CiBKU0M6OkpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RP
YmpQcm90b3R5cGVGdW5jdGlvbldpdGhEeW5hbWljRnJhbWVBbmRVc2VyR2VzdHVyZShKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6QXJnTGlz
dCYpOwogSlNDOjpKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rp
b25XaXRoRHluYW1pY0ZyYW1lQW5kVXNlckdlc3R1cmVBU0FEKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpBcmdMaXN0Jik7CitKU0M6OkpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbldpdGhTY3JpcHRT
dGF0ZVZvaWQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlLCBj
b25zdCBKU0M6OkFyZ0xpc3QmKTsKK0pTQzo6SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdE9i
alByb3RvdHlwZUZ1bmN0aW9uV2l0aFNjcmlwdFN0YXRlT2JqKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpBcmdMaXN0Jik7CiBKU0M6OkpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdpdGhP
cHRpb25hbEFyZyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUs
IGNvbnN0IEpTQzo6QXJnTGlzdCYpOwogSlNDOjpKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFy
ZyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpT
Qzo6QXJnTGlzdCYpOwogSlNDOjpKU1ZhbHVlIEpTQ19IT1NUX0NBTEwganNUZXN0T2JqUHJvdG90
eXBlRnVuY3Rpb25NZXRob2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3MoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OkFy
Z0xpc3QmKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMv
RE9NVGVzdE9iai5oIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0
T2JqLmgKaW5kZXggMTQ1OTI3ZWQ4ODU0NWEyNjY2ODNkNDFlNTg1ZjRhYTJiMWQ0MTZmZi4uOTVi
NjAwNTkyMDA3ZTkyNGFlYzU0YjE4MDg1N2E2ZDU0ZDA4NGZkMyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKKysrIGIvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKQEAgLTY1LDYgKzY1LDggQEAK
IC0gKHZvaWQpd2l0aER5bmFtaWNGcmFtZUFuZE9wdGlvbmFsQXJnOihpbnQpaW50QXJnIG9wdGlv
bmFsQXJnOihpbnQpb3B0aW9uYWxBcmc7CiAtICh2b2lkKXdpdGhEeW5hbWljRnJhbWVBbmRVc2Vy
R2VzdHVyZTooaW50KWludEFyZzsKIC0gKHZvaWQpd2l0aER5bmFtaWNGcmFtZUFuZFVzZXJHZXN0
dXJlQVNBRDooaW50KWludEFyZyBvcHRpb25hbEFyZzooaW50KW9wdGlvbmFsQXJnOworLSAodm9p
ZCl3aXRoU2NyaXB0U3RhdGVWb2lkOworLSAoRE9NVGVzdE9iaiAqKXdpdGhTY3JpcHRTdGF0ZU9i
ajsKIC0gKHZvaWQpbWV0aG9kV2l0aE9wdGlvbmFsQXJnOihpbnQpb3B0OwogLSAodm9pZCltZXRo
b2RXaXRoTm9uT3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZzooaW50KW5vbk9wdCBvcHQ6KGludClv
cHQ7CiAtICh2b2lkKW1ldGhvZFdpdGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJnczoo
aW50KW5vbk9wdCBvcHQxOihpbnQpb3B0MSBvcHQyOihpbnQpb3B0MjsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbSBiL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQppbmRleCAwOTU3ZDEyY2I0
ZWFlYmRiOTg3OTA2MGMyYzBlNWE2ODU1MWVhOTNkLi5kYzcwODY3YWQ4NjQzNTQyNmExY2E0NWY5
NmYzNDYwZmJkMGQxY2RhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9PYmpDL0RPTVRlc3RPYmoubW0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
T2JqQy9ET01UZXN0T2JqLm1tCkBAIC0yMzMsNiArMjMzLDE2IEBACiAgICAgSU1QTC0+d2l0aER5
bmFtaWNGcmFtZUFuZFVzZXJHZXN0dXJlQVNBRChpbnRBcmcsIG9wdGlvbmFsQXJnKTsKIH0KIAor
LSAodm9pZCl3aXRoU2NyaXB0U3RhdGVWb2lkCit7CisgICAgSU1QTC0+d2l0aFNjcmlwdFN0YXRl
Vm9pZCgpOworfQorCistIChET01UZXN0T2JqICopd2l0aFNjcmlwdFN0YXRlT2JqCit7CisgICAg
cmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT53aXRoU2NyaXB0U3RhdGVPYmooKSkpOworfQor
CiAtICh2b2lkKW1ldGhvZFdpdGhPcHRpb25hbEFyZzooaW50KW9wdAogewogICAgIElNUEwtPm1l
dGhvZFdpdGhPcHRpb25hbEFyZyhvcHQpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0T2JqLmlkbAppbmRleCBlNjYyNTY1ZDE1ZmRjZDhmZWM3YjhjNmNjYjEyM2JmZjUzNTJhYWE3
Li5lYjMwZTg3YTA5NGFmNjhhNjdiNjYxODcwZjRmMmI0NDZlOThlMzkyIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtNjYsNiArNjYsOCBAQCBtb2R1bGUg
dGVzdCB7CiAgICAgICAgIFtDYWxsV2l0aD1EeW5hbWljRnJhbWVdIHZvaWQgd2l0aER5bmFtaWNG
cmFtZUFuZE9wdGlvbmFsQXJnKGluIGxvbmcgaW50QXJnLCBpbiBbT3B0aW9uYWxdIGxvbmcgb3B0
aW9uYWxBcmcpOwogICAgICAgICBbTmVlZHNVc2VyR2VzdHVyZUNoZWNrLCBDYWxsV2l0aD1EeW5h
bWljRnJhbWVdIHZvaWQgd2l0aER5bmFtaWNGcmFtZUFuZFVzZXJHZXN0dXJlKGluIGxvbmcgaW50
QXJnKTsKICAgICAgICAgW05lZWRzVXNlckdlc3R1cmVDaGVjaywgQ2FsbFdpdGg9RHluYW1pY0Zy
YW1lXSB2b2lkIHdpdGhEeW5hbWljRnJhbWVBbmRVc2VyR2VzdHVyZUFTQUQoaW4gbG9uZyBpbnRB
cmcsIGluIFtPcHRpb25hbF0gbG9uZyBvcHRpb25hbEFyZyk7CisgICAgICAgIFtDYWxsV2l0aD1T
Y3JpcHRTdGF0ZV0gdm9pZCB3aXRoU2NyaXB0U3RhdGVWb2lkKCk7CisgICAgICAgIFtDYWxsV2l0
aD1TY3JpcHRTdGF0ZV0gVGVzdE9iaiB3aXRoU2NyaXB0U3RhdGVPYmooKTsKIAogICAgICAgICAv
LyAnT3B0aW9uYWwnIGV4dGVuZGVkIGF0dHJpYnV0ZQogICAgICAgICB2b2lkICAgIG1ldGhvZFdp
dGhPcHRpb25hbEFyZyhpbiBbT3B0aW9uYWxdIGxvbmcgb3B0KTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAgYi9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IDUzODAzNmFkOWY5NTIxN2Nk
MDgwYzc0MTdkZmU4ZDgxYTY0MGFkZmIuLjFjZjRhZGVhM2ZhOTBlMzJiMDkwZWRhMzYzM2ZjNjlm
YWYxMmVmNDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdE9iai5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
T2JqLmNwcApAQCAtMzMwLDYgKzMzMCwyOCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHdpdGhEeW5hbWljRnJhbWVBbmRVc2VyR2VzdHVyZUFTQURDYWxsYmFjayhjb25zdCB2OAogICAg
IHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIH0KIAorc3RhdGljIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiB3aXRoU2NyaXB0U3RhdGVWb2lkQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLndpdGhTY3JpcHRTdGF0ZVZv
aWQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVy
KCkpOworICAgIEVtcHR5U2NyaXB0U3RhdGUgc3RhdGU7CisgICAgaW1wLT53aXRoU2NyaXB0U3Rh
dGVWb2lkKCZzdGF0ZSk7CisgICAgaWYgKHN0YXRlLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAg
cmV0dXJuIHRocm93RXJyb3Ioc3RhdGUtPmV4Y2VwdGlvbigpKTsKKyAgICByZXR1cm4gdjg6Okhh
bmRsZTx2ODo6VmFsdWU+KCk7Cit9CisKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd2l0
aFNjcmlwdFN0YXRlT2JqQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAg
ICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLndpdGhTY3JpcHRTdGF0ZU9iaiIpOworICAgIFRlc3RP
YmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CisgICAgRW1wdHlT
Y3JpcHRTdGF0ZSBzdGF0ZTsKKyAgICBSZWZQdHI8VGVzdE9iaj4gcmVzdWx0ID0gaW1wLT53aXRo
U2NyaXB0U3RhdGVPYmooJnN0YXRlKTsKKyAgICBpZiAoc3RhdGUtPmhhZEV4Y2VwdGlvbigpKQor
ICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihzdGF0ZS0+ZXhjZXB0aW9uKCkpOworICAgIHJldHVy
biB0b1Y4KHJlc3VsdC5yZWxlYXNlKCkpOworfQorCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IG1ldGhvZFdpdGhPcHRpb25hbEFyZ0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFy
Z3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5tZXRob2RXaXRoT3B0aW9uYWxBcmci
KTsKQEAgLTQ2NSw2ICs0ODcsOCBAQCBzdGF0aWMgY29uc3QgQmF0Y2hlZENhbGxiYWNrIFRlc3RP
YmpDYWxsYmFja3NbXSA9IHsKICAgICB7IndpdGhEeW5hbWljRnJhbWVBbmRPcHRpb25hbEFyZyIs
IFRlc3RPYmpJbnRlcm5hbDo6d2l0aER5bmFtaWNGcmFtZUFuZE9wdGlvbmFsQXJnQ2FsbGJhY2t9
LAogICAgIHsid2l0aER5bmFtaWNGcmFtZUFuZFVzZXJHZXN0dXJlIiwgVGVzdE9iakludGVybmFs
Ojp3aXRoRHluYW1pY0ZyYW1lQW5kVXNlckdlc3R1cmVDYWxsYmFja30sCiAgICAgeyJ3aXRoRHlu
YW1pY0ZyYW1lQW5kVXNlckdlc3R1cmVBU0FEIiwgVGVzdE9iakludGVybmFsOjp3aXRoRHluYW1p
Y0ZyYW1lQW5kVXNlckdlc3R1cmVBU0FEQ2FsbGJhY2t9LAorICAgIHsid2l0aFNjcmlwdFN0YXRl
Vm9pZCIsIFRlc3RPYmpJbnRlcm5hbDo6d2l0aFNjcmlwdFN0YXRlVm9pZENhbGxiYWNrfSwKKyAg
ICB7IndpdGhTY3JpcHRTdGF0ZU9iaiIsIFRlc3RPYmpJbnRlcm5hbDo6d2l0aFNjcmlwdFN0YXRl
T2JqQ2FsbGJhY2t9LAogICAgIHsibWV0aG9kV2l0aE9wdGlvbmFsQXJnIiwgVGVzdE9iakludGVy
bmFsOjptZXRob2RXaXRoT3B0aW9uYWxBcmdDYWxsYmFja30sCiAgICAgeyJtZXRob2RXaXRoTm9u
T3B0aW9uYWxBcmdBbmRPcHRpb25hbEFyZyIsIFRlc3RPYmpJbnRlcm5hbDo6bWV0aG9kV2l0aE5v
bk9wdGlvbmFsQXJnQW5kT3B0aW9uYWxBcmdDYWxsYmFja30sCiAgICAgeyJtZXRob2RXaXRoTm9u
T3B0aW9uYWxBcmdBbmRUd29PcHRpb25hbEFyZ3MiLCBUZXN0T2JqSW50ZXJuYWw6Om1ldGhvZFdp
dGhOb25PcHRpb25hbEFyZ0FuZFR3b09wdGlvbmFsQXJnc0NhbGxiYWNrfSwKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VHJlZVdhbGtlckN1c3RvbS5jcHAgYi9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFRyZWVXYWxrZXJDdXN0b20uY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzNzA4N2RmNjQzYzQ3Zjk1ZWMxZGY1ZDk5ZTM5M2EzMGY1ZjMz
ZTE3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1dlYkNv
cmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4VHJlZVdhbGtlckN1c3RvbS5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSwxMjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA5IEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlY4
VHJlZVdhbGtlci5oIgotCi0jaW5jbHVkZSAiTm9kZS5oIgotI2luY2x1ZGUgIlNjcmlwdFN0YXRl
LmgiCi0jaW5jbHVkZSAiVHJlZVdhbGtlci5oIgotCi0jaW5jbHVkZSAiVjhCaW5kaW5nLmgiCi0j
aW5jbHVkZSAiVjhOb2RlLmgiCi0jaW5jbHVkZSAiVjhQcm94eS5oIgotCi0jaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotc3RhdGljIGlubGluZSB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOE9iamVjdChQ
YXNzUmVmUHRyPE5vZGU+IG9iamVjdCwgU2NyaXB0U3RhdGUqIHN0YXRlKQotewotICAgIGlmIChz
dGF0ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHN0YXRlLT5l
eGNlcHRpb24oKSk7Ci0KLSAgICBpZiAoIW9iamVjdCkKLSAgICAgICAgcmV0dXJuIHY4OjpOdWxs
KCk7Ci0KLSAgICByZXR1cm4gdG9WOChvYmplY3QpOwotfQotCi12ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhUcmVlV2Fsa2VyOjpwYXJlbnROb2RlQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKLXsKLSAgICBJTkNfU1RBVFMoIkRPTS5UcmVlV2Fsa2VyLnBhcmVudE5vZGUoKSIpOwot
ICAgIFRyZWVXYWxrZXIqIHRyZWVXYWxrZXIgPSBWOFRyZWVXYWxrZXI6OnRvTmF0aXZlKGFyZ3Mu
SG9sZGVyKCkpOwotCi0gICAgRW1wdHlTY3JpcHRTdGF0ZSBzdGF0ZTsKLSAgICBSZWZQdHI8Tm9k
ZT4gcmVzdWx0ID0gdHJlZVdhbGtlci0+cGFyZW50Tm9kZSgmc3RhdGUpOwotICAgIHJldHVybiB0
b1Y4T2JqZWN0KHJlc3VsdC5yZWxlYXNlKCksICZzdGF0ZSk7Ci19Ci0KLXY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOFRyZWVXYWxrZXI6OmZpcnN0Q2hpbGRDYWxsYmFjayhjb25zdCB2ODo6QXJndW1l
bnRzJiBhcmdzKQotewotICAgIElOQ19TVEFUUygiRE9NLlRyZWVXYWxrZXIuZmlyc3RDaGlsZCgp
Iik7Ci0gICAgVHJlZVdhbGtlciogdHJlZVdhbGtlciA9IFY4VHJlZVdhbGtlcjo6dG9OYXRpdmUo
YXJncy5Ib2xkZXIoKSk7Ci0KLSAgICBFbXB0eVNjcmlwdFN0YXRlIHN0YXRlOwotICAgIFJlZlB0
cjxOb2RlPiByZXN1bHQgPSB0cmVlV2Fsa2VyLT5maXJzdENoaWxkKCZzdGF0ZSk7Ci0gICAgcmV0
dXJuIHRvVjhPYmplY3QocmVzdWx0LnJlbGVhc2UoKSwgJnN0YXRlKTsKLX0KLQotdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4VHJlZVdhbGtlcjo6bGFzdENoaWxkQ2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncykKLXsKLSAgICBJTkNfU1RBVFMoIkRPTS5UcmVlV2Fsa2VyLmxhc3RDaGls
ZCgpIik7Ci0gICAgVHJlZVdhbGtlciogdHJlZVdhbGtlciA9IFY4VHJlZVdhbGtlcjo6dG9OYXRp
dmUoYXJncy5Ib2xkZXIoKSk7Ci0KLSAgICBFbXB0eVNjcmlwdFN0YXRlIHN0YXRlOwotICAgIFJl
ZlB0cjxOb2RlPiByZXN1bHQgPSB0cmVlV2Fsa2VyLT5sYXN0Q2hpbGQoJnN0YXRlKTsKLSAgICBy
ZXR1cm4gdG9WOE9iamVjdChyZXN1bHQucmVsZWFzZSgpLCAmc3RhdGUpOwotfQotCi12ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhUcmVlV2Fsa2VyOjpuZXh0Tm9kZUNhbGxiYWNrKGNvbnN0IHY4OjpB
cmd1bWVudHMmIGFyZ3MpCi17Ci0gICAgSU5DX1NUQVRTKCJET00uVHJlZVdhbGtlci5uZXh0Tm9k
ZSgpIik7Ci0gICAgVHJlZVdhbGtlciogdHJlZVdhbGtlciA9IFY4VHJlZVdhbGtlcjo6dG9OYXRp
dmUoYXJncy5Ib2xkZXIoKSk7Ci0KLSAgICBFbXB0eVNjcmlwdFN0YXRlIHN0YXRlOwotICAgIFJl
ZlB0cjxOb2RlPiByZXN1bHQgPSB0cmVlV2Fsa2VyLT5uZXh0Tm9kZSgmc3RhdGUpOwotICAgIHJl
dHVybiB0b1Y4T2JqZWN0KHJlc3VsdC5yZWxlYXNlKCksICZzdGF0ZSk7Ci19Ci0KLXY4OjpIYW5k
bGU8djg6OlZhbHVlPiBWOFRyZWVXYWxrZXI6OnByZXZpb3VzTm9kZUNhbGxiYWNrKGNvbnN0IHY4
OjpBcmd1bWVudHMmIGFyZ3MpCi17Ci0gICAgSU5DX1NUQVRTKCJET00uVHJlZVdhbGtlci5wcmV2
aW91c05vZGUoKSIpOwotICAgIFRyZWVXYWxrZXIqIHRyZWVXYWxrZXIgPSBWOFRyZWVXYWxrZXI6
OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotCi0gICAgRW1wdHlTY3JpcHRTdGF0ZSBzdGF0ZTsK
LSAgICBSZWZQdHI8Tm9kZT4gcmVzdWx0ID0gdHJlZVdhbGtlci0+cHJldmlvdXNOb2RlKCZzdGF0
ZSk7Ci0gICAgcmV0dXJuIHRvVjhPYmplY3QocmVzdWx0LnJlbGVhc2UoKSwgJnN0YXRlKTsKLX0K
LQotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4VHJlZVdhbGtlcjo6bmV4dFNpYmxpbmdDYWxsYmFj
ayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQotewotICAgIElOQ19TVEFUUygiRE9NLlRyZWVX
YWxrZXIubmV4dFNpYmxpbmcoKSIpOwotICAgIFRyZWVXYWxrZXIqIHRyZWVXYWxrZXIgPSBWOFRy
ZWVXYWxrZXI6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotCi0gICAgRW1wdHlTY3JpcHRTdGF0
ZSBzdGF0ZTsKLSAgICBSZWZQdHI8Tm9kZT4gcmVzdWx0ID0gdHJlZVdhbGtlci0+bmV4dFNpYmxp
bmcoJnN0YXRlKTsKLSAgICByZXR1cm4gdG9WOE9iamVjdChyZXN1bHQucmVsZWFzZSgpLCAmc3Rh
dGUpOwotfQotCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhUcmVlV2Fsa2VyOjpwcmV2aW91c1Np
YmxpbmdDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQotewotICAgIElOQ19TVEFU
UygiRE9NLlRyZWVXYWxrZXIucHJldmlvdXNTaWJsaW5nKCkiKTsKLSAgICBUcmVlV2Fsa2VyKiB0
cmVlV2Fsa2VyID0gVjhUcmVlV2Fsa2VyOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKLQotICAg
IEVtcHR5U2NyaXB0U3RhdGUgc3RhdGU7Ci0gICAgUmVmUHRyPE5vZGU+IHJlc3VsdCA9IHRyZWVX
YWxrZXItPnByZXZpb3VzU2libGluZygmc3RhdGUpOwotICAgIHJldHVybiB0b1Y4T2JqZWN0KHJl
c3VsdC5yZWxlYXNlKCksICZzdGF0ZSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1RyZWVXYWxrZXIuaWRsIGIvV2ViQ29yZS9kb20vVHJlZVdh
bGtlci5pZGwKaW5kZXggZjU5MTEyOGM3OThjYjM5ZWZhZDA1OWRiZDdiY2Y2MDdjMmM0NmQyOC4u
ODkwZTMxNTlhZGViNWM5YjQ4MGY2YjgzMGZkNmQwYmY5YTgyMGM0ZSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9kb20vVHJlZVdhbGtlci5pZGwKKysrIGIvV2ViQ29yZS9kb20vVHJlZVdhbGtlci5pZGwK
QEAgLTMxLDEzICszMSwxMyBAQCBtb2R1bGUgdHJhdmVyc2FsIHsKICAgICAgICAgICAgICAgICAg
YXR0cmlidXRlIE5vZGUgY3VycmVudE5vZGUKICAgICAgICAgICAgICAgICAgICAgIHNldHRlciBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICBbQ3VzdG9tXSBOb2RlIHBhcmVudE5vZGUo
KTsKLSAgICAgICAgW0N1c3RvbV0gTm9kZSBmaXJzdENoaWxkKCk7Ci0gICAgICAgIFtDdXN0b21d
IE5vZGUgbGFzdENoaWxkKCk7Ci0gICAgICAgIFtDdXN0b21dIE5vZGUgcHJldmlvdXNTaWJsaW5n
KCk7Ci0gICAgICAgIFtDdXN0b21dIE5vZGUgbmV4dFNpYmxpbmcoKTsKLSAgICAgICAgW0N1c3Rv
bV0gTm9kZSBwcmV2aW91c05vZGUoKTsKLSAgICAgICAgW0N1c3RvbV0gTm9kZSBuZXh0Tm9kZSgp
OworICAgICAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgcGFyZW50Tm9kZSgpOworICAg
ICAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgZmlyc3RDaGlsZCgpOworICAgICAgICBb
Q2FsbFdpdGg9U2NyaXB0U3RhdGVdIE5vZGUgbGFzdENoaWxkKCk7CisgICAgICAgIFtDYWxsV2l0
aD1TY3JpcHRTdGF0ZV0gTm9kZSBwcmV2aW91c1NpYmxpbmcoKTsKKyAgICAgICAgW0NhbGxXaXRo
PVNjcmlwdFN0YXRlXSBOb2RlIG5leHRTaWJsaW5nKCk7CisgICAgICAgIFtDYWxsV2l0aD1TY3Jp
cHRTdGF0ZV0gTm9kZSBwcmV2aW91c05vZGUoKTsKKyAgICAgICAgW0NhbGxXaXRoPVNjcmlwdFN0
YXRlXSBOb2RlIG5leHROb2RlKCk7CiAgICAgfTsKIAogfQo=
</data>
<flag name="review"
          id="38357"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>