<?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>39512</bug_id>
          
          <creation_ts>2010-05-21 13:57:05 -0700</creation_ts>
          <short_desc>Fix code generators to better support Conditional attribute and add test coverage for it</short_desc>
          <delta_ts>2010-06-14 11:35:48 -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>All</rep_platform>
          <op_sys>All</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="Jian Li">jianli</reporter>
          <assigned_to name="Jian Li">jianli</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>229082</commentid>
    <comment_count>0</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-05-21 13:57:05 -0700</bug_when>
    <thetext>Some code generators do not support Conditional extended attribute completely. We also need to ass the test coverage for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229097</commentid>
    <comment_count>1</comment_count>
      <attachid>56746</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-05-21 14:20:13 -0700</bug_when>
    <thetext>Created attachment 56746
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229098</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-21 14:22:46 -0700</bug_when>
    <thetext>Attachment 56746 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
Last 3072 characters of output:
arens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:600:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:721:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:727:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:728:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:734:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:735:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:741:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:817:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:823:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:824:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:830:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:831:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:837:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:950:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:960:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:961:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:971:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:972:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:982:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 36 in 22 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>229160</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-21 16:23:16 -0700</bug_when>
    <thetext>Attachment 56746 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/2266404</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229644</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-24 01:10:27 -0700</bug_when>
    <thetext>Gtk failure?
DerivedSources/webkit/WebKitDOMDOMApplicationCache.cpp:21:5: warning: &quot;ENABLE&quot; is not defined
DerivedSources/webkit/WebKitDOMDOMApplicationCache.cpp:21:11: error: missing binary operator before token &quot;(&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229811</commentid>
    <comment_count>5</comment_count>
      <attachid>56904</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-05-24 10:59:36 -0700</bug_when>
    <thetext>Created attachment 56904
Proposed Patch

Fixed GTK error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229814</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-24 11:00:41 -0700</bug_when>
    <thetext>Attachment 56904 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
Last 3072 characters of output:
arens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:601:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:722:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:728:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:729:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:735:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:736:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:742:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:818:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:824:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:825:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:831:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:832:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:838:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:951:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:961:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:962:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:972:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:973:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:983:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 36 in 24 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>237940</commentid>
    <comment_count>7</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-06-14 11:35:48 -0700</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/61131.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56746</attachid>
            <date>2010-05-21 14:20:13 -0700</date>
            <delta_ts>2010-05-24 10:59:36 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>39512</filename>
            <type>text/plain</type>
            <size>42657</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODE4ZDdkNi4uYzA4ZDhiZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MiBAQAorMjAxMC0wNS0yMSAgSmlhbiBMaSAgPGpp
YW5saUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRml4IGNvZGUgZ2VuZXJhdG9ycyB0byBiZXR0ZXIgc3VwcG9ydCBDb25kaXRp
b25hbCBhdHRyaWJ1dGUgYW5kIGFkZCB0ZXN0CisgICAgICAgIGNvdmVyYWdlIGZvciBpdC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NTEyCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG06CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdENhbGxiYWNrLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0Q2FsbGJhY2suaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0SW50ZXJm
YWNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRE
T01UZXN0SW50ZXJmYWNlLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmpl
Y3QvV2ViS2l0RE9NVGVzdE9iai5jcHA6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dl
dF9jb25kaXRpb25hbF9hdHRyMSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9j
b25kaXRpb25hbF9hdHRyMSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9jb25k
aXRpb25hbF9hdHRyMik6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9jb25kaXRp
b25hbF9hdHRyMik6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9jb25kaXRpb25h
bF9hdHRyMyk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9jb25kaXRpb25hbF9h
dHRyMyk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9wcm9wZXJ0eSk6CisgICAg
ICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9wcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2NsYXNzX2luaXQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpDb25kaXRpb25hbEF0dHIyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbmRp
dGlvbmFsQXR0cjMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyMSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50ZXJmYWNlLm1tOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tOgorICAgICAgICAoLVtET01UZXN0T2Jq
IGNvbmRpdGlvbmFsQXR0cjFdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBzZXRDb25kaXRpb25h
bEF0dHIxOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIGNvbmRpdGlvbmFsQXR0cjJdKToKKyAg
ICAgICAgKC1bRE9NVGVzdE9iaiBzZXRDb25kaXRpb25hbEF0dHIyOl0pOgorICAgICAgICAoLVtE
T01UZXN0T2JqIGNvbmRpdGlvbmFsQXR0cjNdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBzZXRD
b25kaXRpb25hbEF0dHIzOl0pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0
SW50ZXJmYWNlLmlkbDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5p
ZGw6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5j
cHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5o
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGVzdE9iakludGVybmFsOjpjb25kaXRpb25hbEF0dHIxQXR0ckdldHRl
cik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqSW50ZXJuYWw6OmNvbmRpdGlvbmFsQXR0cjFB
dHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpJbnRlcm5hbDo6Y29uZGl0aW9u
YWxBdHRyMkF0dHJHZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9iakludGVybmFsOjpj
b25kaXRpb25hbEF0dHIyQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqSW50
ZXJuYWw6OmNvbmRpdGlvbmFsQXR0cjNBdHRyR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
c3RPYmpJbnRlcm5hbDo6Y29uZGl0aW9uYWxBdHRyM0F0dHJTZXR0ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6KToKKwogMjAxMC0wNS0yMSAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmVyZW15IE9ybG93LgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIGIvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCmluZGV4IDFkMDNmMDguLjAx
ZmVmNDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
R09iamVjdC5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdP
YmplY3QucG0KQEAgLTMwMiwxMSArMzAyLDI5IEBAIHN1YiBHZXRXcml0ZWFibGVQcm9wZXJ0aWVz
IHsKICAgICByZXR1cm4gQHJlc3VsdDsKIH0KIAorc3ViIEdlbmVyYXRlQ29uZGl0aW9uYWxTdHJp
bmcKK3sKKyAgICBteSAkbm9kZSA9IHNoaWZ0OworICAgIG15ICRjb25kaXRpb25hbCA9ICRub2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifTsKKyAgICBpZiAoJGNvbmRpdGlv
bmFsKSB7CisgICAgICAgIGlmICgkY29uZGl0aW9uYWwgPX4gLyYvKSB7CisgICAgICAgICAgICBy
ZXR1cm4gIkVOQUJMRSgiIC4gam9pbigiKSAmJiBFTkFCTEUoIiwgc3BsaXQoLyYvLCAkY29uZGl0
aW9uYWwpKSAuICIpIjsKKyAgICAgICAgfSBlbHNpZiAoJGNvbmRpdGlvbmFsID1+IC9cfC8pIHsK
KyAgICAgICAgICAgIHJldHVybiAiRU5BQkxFKCIgLiBqb2luKCIpIHx8IEVOQUJMRSgiLCBzcGxp
dCgvXHwvLCAkY29uZGl0aW9uYWwpKSAuICIpIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIHJldHVybiAiRU5BQkxFKCIgLiAkY29uZGl0aW9uYWwgLiAiKSI7CisgICAgICAgIH0KKyAg
ICB9IGVsc2UgeworICAgICAgICByZXR1cm4gIiI7CisgICAgfQorfQorCiBzdWIgR2VuZXJhdGVQ
cm9wZXJ0eSB7CiAgICAgbXkgJGF0dHJpYnV0ZSA9IHNoaWZ0OwogICAgIG15ICRpbnRlcmZhY2VO
YW1lID0gc2hpZnQ7CiAgICAgbXkgQHdyaXRlYWJsZVByb3BlcnRpZXMgPSBAe3NoaWZ0IEBffTsK
IAorICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9IEdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmco
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsKICAgICBteSAkY2FtZWxQcm9wTmFtZSA9ICRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+bmFtZTsKICAgICBteSAkc2V0UHJvcE5hbWVGdW5jdGlvbiA9ICRjb2Rl
R2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRjYW1lbFByb3BOYW1lKTsKICAgICBteSAkZ2V0UHJvcE5h
bWVGdW5jdGlvbiA9ICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjYW1lbFByb3BOYW1lKTsK
QEAgLTMxNSw3ICszMzMsOSBAQCBzdWIgR2VuZXJhdGVQcm9wZXJ0eSB7CiAgICAgbXkgJHByb3BO
YW1lQ2FwcyA9IHVjKCRwcm9wTmFtZSk7CiAgICAgJHByb3BOYW1lID1+IHMvXy8tL2c7CiAgICAg
bXkgJHtwcm9wRW51bX0gPSAiUFJPUF8ke3Byb3BOYW1lQ2Fwc30iOworICAgIHB1c2goQGNCb2R5
UHJpdiwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5n
OwogICAgIHB1c2goQGNCb2R5UHJpdiwgIiAgICAke3Byb3BFbnVtfSxcbiIpOworICAgIHB1c2go
QGNCb2R5UHJpdiwgIiNlbmRpZiAvKiAke2NvbmRpdGlvbmFsU3RyaW5nfSAqL1xuIikgaWYgJGNv
bmRpdGlvbmFsU3RyaW5nOwogCiAgICAgbXkgJHByb3BUeXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT50eXBlOwogICAgIG15ICR7cHJvcEdUeXBlfSA9IGRlY2FtZWxpemUoJHByb3BUeXBlKTsK
QEAgLTM2NiwxNCArMzg2LDE3IEBAIHN1YiBHZW5lcmF0ZVByb3BlcnR5IHsKICAgICB9CiAKICAg
ICBpZiAoZ3JlcCB7JF8gZXEgJGF0dHJpYnV0ZX0gQHdyaXRlYWJsZVByb3BlcnRpZXMpIHsKKyAg
ICAgICAgcHVzaChAdHh0U2V0UHJvcHMsICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlm
ICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAgcHVzaChAdHh0U2V0UHJvcHMsICIgICBjYXNl
ICR7cHJvcEVudW19OlxuICAgIHtcbiIpOwogICAgICAgICBwdXNoKEB0eHRTZXRQcm9wcywgIiAg
ICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKSBpZiBAeyRhdHRyaWJ1dGUt
PnNldHRlckV4Y2VwdGlvbnN9OwogICAgICAgICBwdXNoKEB0eHRTZXRQcm9wcywgIiAgICAgICAg
JHtzZXR0ZXJDb250ZW50SGVhZH0iKTsKICAgICAgICAgcHVzaChAdHh0U2V0UHJvcHMsICIsIGVj
IikgaWYgQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25zfTsKICAgICAgICAgcHVzaChAdHh0
U2V0UHJvcHMsICIpO1xuIik7CiAgICAgICAgIHB1c2goQHR4dFNldFByb3BzLCAiICAgICAgICBi
cmVhaztcbiAgICB9XG4iKTsKKyAgICAgICAgcHVzaChAdHh0U2V0UHJvcHMsICIjZW5kaWYgLyog
JHtjb25kaXRpb25hbFN0cmluZ30gKi9cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICB9
CiAKKyAgICBwdXNoKEB0eHRHZXRQcm9wcywgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikg
aWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgIHB1c2goQHR4dEdldFByb3BzLCAiICAgY2FzZSAk
e3Byb3BFbnVtfTpcbiAgICB7XG4iKTsKIAogICAgIG15ICRleGNlcHRpb24gPSAiIjsKQEAgLTQx
OCw2ICs0NDEsNyBAQCBFT0YKICAgICB9CiAKICAgICBwdXNoKEB0eHRHZXRQcm9wcywgIiAgICAg
ICAgYnJlYWs7XG4gICAgfVxuIik7CisgICAgcHVzaChAdHh0R2V0UHJvcHMsICIjZW5kaWYgLyog
JHtjb25kaXRpb25hbFN0cmluZ30gKi9cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKIAogICAg
IG15ICVwYXJhbV9zcGVjX29wdGlvbnMgPSAoImludCIsICJHX01JTklOVCwgLyogbWluICovXG5H
X01BWElOVCwgLyogbWF4ICovXG4wLCAvKiBkZWZhdWx0ICovIiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJib29sZWFuIiwgIkZBTFNFLCAvKiBkZWZhdWx0ICovIiwKQEAgLTQ0Myw3
ICs0NjcsOSBAQCBFT0YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJHBhcmFtX3NwZWNfb3B0aW9uc3skZ3R5cGV9CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7Z3BhcmFt
ZmxhZ30pKTsKIEVPRgorICAgIHB1c2goQHR4dEluc3RhbGxQcm9wcywgIiNpZiAke2NvbmRpdGlv
bmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgIHB1c2goQHR4dEluc3Rh
bGxQcm9wcywgJHR4dEluc3RhbGxQcm9wKTsKKyAgICBwdXNoKEB0eHRJbnN0YWxsUHJvcHMsICIj
ZW5kaWYgLyogJHtjb25kaXRpb25hbFN0cmluZ30gKi9cbiIpIGlmICRjb25kaXRpb25hbFN0cmlu
ZzsKIH0KIAogc3ViIEdlbmVyYXRlUHJvcGVydGllcyB7CkBAIC02ODgsNiArNzE0LDcgQEAgc3Vi
IEdlbmVyYXRlRnVuY3Rpb24gewogICAgIG15ICRmdW5jdGlvbk5hbWUgPSAid2Via2l0X2RvbV8i
IC4gJGRlY2FtZWxpemUgLiAiXyIgLiAkcHJlZml4IC4gZGVjYW1lbGl6ZSgkZnVuY3Rpb25TaWdO
YW1lKTsKICAgICBteSAkcmV0dXJuVHlwZSA9IEdldEdsaWJUeXBlTmFtZSgkZnVuY3Rpb25TaWdU
eXBlKTsKICAgICBteSAkcmV0dXJuVmFsdWVJc0dET01UeXBlID0gSXNHRE9NQ2xhc3NUeXBlKCRm
dW5jdGlvblNpZ1R5cGUpOworICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9IEdlbmVyYXRlQ29u
ZGl0aW9uYWxTdHJpbmcoJGZ1bmN0aW9uLT5zaWduYXR1cmUpOwogCiAgICAgbXkgJGZ1bmN0aW9u
U2lnID0gIiRjbGFzc05hbWUgKnNlbGYiOwogCkBAIC03MzksNyArNzY2LDEyIEBAIHN1YiBHZW5l
cmF0ZUZ1bmN0aW9uIHsKICAgICAgICAgJGZ1bmN0aW9uU2lnIC49ICIsIEdFcnJvciAqKmVycm9y
IjsKICAgICB9CiAKLSAgICBwdXNoKEBoQm9keSwgIldFQktJVF9BUEkgJHJldHVyblR5cGVcbiRm
dW5jdGlvbk5hbWUgKCRmdW5jdGlvblNpZyk7XG5cbiIpOworICAgIHB1c2goQGhCb2R5LCAiI2lm
ICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CisgICAgcHVz
aChAaEJvZHksICJXRUJLSVRfQVBJICRyZXR1cm5UeXBlXG4kZnVuY3Rpb25OYW1lICgkZnVuY3Rp
b25TaWcpO1xuIik7CisgICAgcHVzaChAaEJvZHksICIjZW5kaWYgLyogJHtjb25kaXRpb25hbFN0
cmluZ30gKi9cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKKyAgICBwdXNoKEBoQm9keSwgIlxu
Iik7CisKKyAgICBwdXNoKEBjQm9keSwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYg
JGNvbmRpdGlvbmFsU3RyaW5nOwogICAgIHB1c2goQGNCb2R5LCAiJHJldHVyblR5cGVcbiRmdW5j
dGlvbk5hbWUgKCRmdW5jdGlvblNpZylcbntcbiIpOwogCiAgICAgaWYgKCRyZXR1cm5UeXBlIG5l
ICJ2b2lkIikgewpAQCAtOTAwLDcgKzkzMiw5IEBAIEVPRgogICAgICAgICAgICAgcHVzaChAY0Jv
ZHksICIgICAgcmV0dXJuIHJlcztcbiIpOwogICAgICAgICB9CiAgICAgfQotICAgIHB1c2goQGNC
b2R5LCAiXG59XG5cbiIpOworICAgIHB1c2goQGNCb2R5LCAiXG59XG4iKTsKKyAgICBwdXNoKEBj
Qm9keSwgIiNlbmRpZiAvKiAke2NvbmRpdGlvbmFsU3RyaW5nfSAqL1xuIikgaWYgJGNvbmRpdGlv
bmFsU3RyaW5nOworICAgIHB1c2goQGNCb2R5LCAiXG4iKTsKIH0KIAogc3ViIENsYXNzSGFzRnVu
Y3Rpb24gewpAQCAtMTExNyw2ICsxMTUxLDExIEBAIHN1YiBHZW5lcmF0ZSB7CiAgICAgbXkgJHBh
cmVudEdPYmpUeXBlID0gR2V0UGFyZW50R09ialR5cGUoJGRhdGFOb2RlKTsKICAgICBteSAkaW50
ZXJmYWNlTmFtZSA9ICRkYXRhTm9kZS0+bmFtZTsKIAorICAgICMgQWRkIHRoZSBndWFyZCBpZiB0
aGUgJ0NvbmRpdGlvbmFsJyBleHRlbmRlZCBhdHRyaWJ1dGUgZXhpc3RzCisgICAgbXkgJGNvbmRp
dGlvbmFsU3RyaW5nID0gR2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkZGF0YU5vZGUpOworICAg
IHB1c2goQGNvbmRpdGlvbkd1YXJkU3RhcnQsICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIp
IGlmICRjb25kaXRpb25hbFN0cmluZzsKKyAgICBwdXNoKEBjb25kaXRpb25HdWFyZEVuZCwgIiNl
bmRpZiAvKiAke2NvbmRpdGlvbmFsU3RyaW5nfSAqL1xuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5n
OworCiAgICAgIyBBZGQgdGhlIGRlZmF1bHQgaW1wbCBoZWFkZXIgdGVtcGxhdGUKICAgICBAY1By
ZWZpeCA9IHNwbGl0KCJcciIsICRsaWNlbmNlVGVtcGxhdGUpOwogICAgIHB1c2goQGNQcmVmaXgs
ICJcbiIpOwpAQCAtMTE2Nyw2ICsxMjA2LDcgQEAgc3ViIFdyaXRlRGF0YSB7CiAgICAgb3BlbihI
RUFERVIsICI+JGhkckZOYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVuIGZpbGUgJGhkckZOYW1l
IjsKIAogICAgIHByaW50IEhFQURFUiBAaFByZWZpeDsKKyAgICBwcmludCBIRUFERVIgQGNvbmRp
dGlvbkd1YXJkU3RhcnQ7CiAgICAgcHJpbnQgSEVBREVSIEBoUHJlZml4R3VhcmQ7CiAgICAgcHJp
bnQgSEVBREVSICIjaW5jbHVkZSBcIndlYmtpdC93ZWJraXRkb21kZWZpbmVzLmhcIlxuIjsKICAg
ICBwcmludCBIRUFERVIgIiNpbmNsdWRlIDxnbGliLW9iamVjdC5oPlxuIjsKQEAgLTExNzYsNiAr
MTIxNiw3IEBAIHN1YiBXcml0ZURhdGEgewogICAgIHByaW50IEhFQURFUiAiXG4iOwogICAgIHBy
aW50IEhFQURFUiBAaEJvZHlQcmU7CiAgICAgcHJpbnQgSEVBREVSIEBoQm9keTsKKyAgICBwcmlu
dCBIRUFERVIgQGNvbmRpdGlvbkd1YXJkRW5kOwogCiAgICAgY2xvc2UoSEVBREVSKTsKIApAQCAt
MTE4NCw2ICsxMjI1LDcgQEAgc3ViIFdyaXRlRGF0YSB7CiAgICAgb3BlbihJTVBMLCAiPiRpbXBs
RmlsZU5hbWUiKSBvciBkaWUgIkNvdWxkbid0IG9wZW4gZmlsZSAkaW1wbEZpbGVOYW1lIjsKIAog
ICAgIHByaW50IElNUEwgQGNQcmVmaXg7CisgICAgcHJpbnQgSU1QTCBAY29uZGl0aW9uR3VhcmRT
dGFydDsKICAgICBwcmludCBJTVBMICIjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD5cbiI7CiAgICAg
cHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJjb25maWcuaFwiXG5cbiI7CiAgICAgcHJpbnQgSU1QTCAi
I2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD5cbiI7CkBAIC0xMTk0LDYgKzEyMzYsNyBAQCBzdWIgV3Jp
dGVEYXRhIHsKIAogICAgIHByaW50IElNUEwgIlxuIjsKICAgICBwcmludCBJTVBMIEBjQm9keVBy
aXY7CisgICAgcHJpbnQgSU1QTCBAY29uZGl0aW9uR3VhcmRFbmQ7CiAKICAgICBjbG9zZShJTVBM
KTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JP
YmpDLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCmlu
ZGV4IGUwNmIyNzQuLmMwYTQ2YjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvck9iakMucG0KQEAgLTc5MCw2ICs3OTAsMTIgQEAgc3ViIEdlbmVyYXRlSGVhZGVy
CiAgICAgICAgICAgICAgICAgcHVzaChAaGVhZGVyQXR0cmlidXRlcywgJHByb3BlcnR5KSBpZiAk
cHVibGljOwogICAgICAgICAgICAgICAgIHB1c2goQHByaXZhdGVIZWFkZXJBdHRyaWJ1dGVzLCAk
cHJvcGVydHkpIHVubGVzcyAkcHVibGljOwogICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICBteSAkYXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmcgPSBHZW5lcmF0ZUNvbmRpdGlv
bmFsU3RyaW5nKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSk7CisgICAgICAgICAgICAgICAgaWYgKCRh
dHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZykgeworICAgICAgICAgICAgICAgICAgICBwdXNoKEBo
ZWFkZXJBdHRyaWJ1dGVzLCAiI2lmICR7YXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmd9XG4iKSBp
ZiAkcHVibGljOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBwcml2YXRlSGVhZGVyQXR0cmli
dXRlcywgIiNpZiAke2F0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nfVxuIikgdW5sZXNzICRwdWJs
aWM7CisgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAgICAgIyAtIEdFVFRFUgogICAg
ICAgICAgICAgICAgIG15ICRnZXR0ZXIgPSAiLSAoIiAuICRhdHRyaWJ1dGVUeXBlIC4gIikiIC4g
JGF0dHJpYnV0ZU5hbWUgLiAkZGVjbGFyYXRpb25TdWZmaXg7CiAgICAgICAgICAgICAgICAgcHVz
aChAaGVhZGVyQXR0cmlidXRlcywgJGdldHRlcikgaWYgJHB1YmxpYzsKQEAgLTgwMSw2ICs4MDcs
MTEgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgICAgICAgICAgICAgIHB1c2goQGhlYWRl
ckF0dHJpYnV0ZXMsICRzZXR0ZXIpIGlmICRwdWJsaWM7CiAgICAgICAgICAgICAgICAgICAgIHB1
c2goQHByaXZhdGVIZWFkZXJBdHRyaWJ1dGVzLCAkc2V0dGVyKSB1bmxlc3MgJHB1YmxpYzsKICAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZUNvbmRpdGlv
bmFsU3RyaW5nKSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGhlYWRlckF0dHJpYnV0ZXMs
ICIjZW5kaWZcbiIpIGlmICRwdWJsaWM7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQHByaXZh
dGVIZWFkZXJBdHRyaWJ1dGVzLCAiI2VuZGlmXG4iKSB1bmxlc3MgJHB1YmxpYzsKKyAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApAQCAtMTI2OCw2ICsxMjc5LDgg
QEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAkZ2V0dGVyQ29u
dGVudCA9ICRnZXR0ZXJDb250ZW50SGVhZCAuICRnZXR0ZXJDb250ZW50VGFpbDsKICAgICAgICAg
ICAgIH0KIAorICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nID0gR2Vu
ZXJhdGVDb25kaXRpb25hbFN0cmluZygkYXR0cmlidXRlLT5zaWduYXR1cmUpOworICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIjaWYgJHthdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZ31c
biIpIGlmICRhdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZzsKICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAkZ2V0dGVyU2lnKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
e1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkanNDb250ZXh0U2V0
dGVyXG4iKTsKQEAgLTEyODgsNyArMTMwMSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9u
CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIHJldHVybiAkZ2V0dGVyQ29udGVudDtcbiIpOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOworICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ9XG4iKTsKIAogICAgICAgICAgICAgIyAtIFNFVFRFUgogICAgICAgICAgICAg
aWYgKCEkYXR0cmlidXRlSXNSZWFkb25seSkgewpAQCAtMTMwOSw2ICsxMzIyLDcgQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAgICAgICAgICAgIG15ICRzZXR0ZXJTaWcgPSAi
LSAodm9pZCkkc2V0dGVyTmFtZTooJGF0dHJpYnV0ZVR5cGUpJGFyZ05hbWVcbiI7CiAKKyAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIik7CiAgICAgICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICRzZXR0ZXJTaWcpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAie1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
JGpzQ29udGV4dFNldHRlclxuIik7CkBAIC0xMzQ0LDggKzEzNTgsMTEgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgJGV4Y2VwdGlvblJhaXNlT25FcnJvclxuIikgaWYgJGhhc1NldHRlckV4Y2VwdGlvbjsKICAg
ICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1c
blxuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG4iKTsKICAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjZW5kaWZcbiIpIGlm
ICRhdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZzsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiXG4iKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggMDE2N2E0Zi4uNDk2YTFlNCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0xMjc1LDkgKzEyNzUsOSBA
QCBzdWIgR2VuZXJhdGVCYXRjaGVkQXR0cmlidXRlRGF0YQogCiAgICAgZm9yZWFjaCBteSAkYXR0
cmlidXRlIChAJGF0dHJpYnV0ZXMpIHsKICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0g
R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkYXR0cmlidXRlLT5zaWduYXR1cmUpOwotICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIlxuI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAk
Y29uZGl0aW9uYWxTdHJpbmc7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2lmICR7Y29u
ZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgIEdlbmVy
YXRlU2luZ2xlQmF0Y2hlZEF0dHJpYnV0ZSgkaW50ZXJmYWNlTmFtZSwgJGF0dHJpYnV0ZSwgIiwi
LCAiIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4jZW5kaWYgLy8gJHtjb25kaXRp
b25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKKyAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIjZW5kaWYgLy8gJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRp
b25hbFN0cmluZzsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdENhbGxiYWNrLmNwcCBiL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdENhbGxiYWNrLmNwcAppbmRl
eCA2Y2ZlYzc0Li4zZGU4Y2E0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RDYWxsYmFjay5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0Q2FsbGJhY2suY3BwCkBAIC0x
OCw2ICsxOCw3IEBACiAgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAqLwogCisjaWYg
RU5BQkxFKERBVEFCQVNFKQogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAKQEAgLTE4NCwzICsxODUsNCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rf
Y2FsbGJhY2tfaW5pdChXZWJLaXRET01UZXN0Q2FsbGJhY2sqIHJlcXVlc3QpCiB7CiB9CiAKKyNl
bmRpZiAvKiBFTkFCTEUoREFUQUJBU0UpICovCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RDYWxsYmFjay5oIGIvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0Q2FsbGJhY2suaAppbmRl
eCAwODhjNDU3Li41MzBmNjY1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RDYWxsYmFjay5oCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdENhbGxiYWNrLmgKQEAgLTE4LDYg
KzE4LDcgQEAKICAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICovCiAKKyNpZiBFTkFC
TEUoREFUQUJBU0UpCiAjaWZuZGVmIFdlYktpdERPTVRlc3RDYWxsYmFja19oCiAjZGVmaW5lIFdl
YktpdERPTVRlc3RDYWxsYmFja19oCiAKQEAgLTU4LDMgKzU5LDQgQEAgd2Via2l0X2RvbV90ZXN0
X2NhbGxiYWNrX2NhbGxiYWNrX3dpdGhfbm9uX2Jvb2xfcmV0dXJuX3R5cGUgKFdlYktpdERPTVRl
c3RDYWxsYmEKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZiAvKiBXZWJLaXRET01UZXN0Q2FsbGJhY2tf
aCAqLworI2VuZGlmIC8qIEVOQUJMRShEQVRBQkFTRSkgKi8KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEludGVyZmFjZS5jcHAg
Yi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RJbnRl
cmZhY2UuY3BwCmluZGV4IDJiZTAyNzcuLjkwNDgyODQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEludGVyZmFjZS5jcHAKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0SW50
ZXJmYWNlLmNwcApAQCAtMTgsNiArMTgsNyBAQAogICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgogKi8KIAorI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikK
ICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgogI2luY2x1ZGUgImNvbmZpZy5oIgogCkBAIC0xMzcs
MyArMTM4LDQgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9pbml0KFdl
YktpdERPTVRlc3RJbnRlcmZhY2UqIHJlcXVlc3QpCiB7CiB9CiAKKyNlbmRpZiAvKiBFTkFCTEUo
Q29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpICovCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RJbnRlcmZhY2UuaCBi
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEludGVy
ZmFjZS5oCmluZGV4IGY5YWY4NjYuLmJlZjFjNDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEludGVyZmFjZS5oCisrKyBiL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEludGVyZmFj
ZS5oCkBAIC0xOCw2ICsxOCw3IEBACiAgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAq
LwogCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQogI2lmbmRl
ZiBXZWJLaXRET01UZXN0SW50ZXJmYWNlX2gKICNkZWZpbmUgV2ViS2l0RE9NVGVzdEludGVyZmFj
ZV9oCiAKQEAgLTQ5LDMgKzUwLDQgQEAgd2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9nZXRfdHlw
ZSAodm9pZCk7CiBHX0VORF9ERUNMUwogCiAjZW5kaWYgLyogV2ViS2l0RE9NVGVzdEludGVyZmFj
ZV9oICovCisjZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24y
KSAqLwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9X
ZWJLaXRET01UZXN0T2JqLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmpl
Y3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKaW5kZXggOTk2YmQwMS4uNjQ4ZTAxMSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2Jq
LmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERP
TVRlc3RPYmouY3BwCkBAIC01MzUsNiArNTM1LDc1IEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0
X3NjcmlwdF9zdHJpbmdfYXR0ciAoV2ViS2l0RE9NVGVzdE9iaiAqc2VsZikKIAogfQogCisjaWYg
RU5BQkxFKENvbmRpdGlvbjEpCitnbG9uZword2Via2l0X2RvbV90ZXN0X29ial9nZXRfY29uZGl0
aW9uYWxfYXR0cjEgKFdlYktpdERPTVRlc3RPYmogKnNlbGYpCit7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwgKHNlbGYsIDApOworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0
Ojpjb3JlKHNlbGYpOworICAgIGdsb25nIHJlcyA9IGl0ZW0tPmNvbmRpdGlvbmFsQXR0cjEoKTsK
KyAgICByZXR1cm4gcmVzOworCit9CisjZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjEpICovCisK
KyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKK3ZvaWQKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2Nv
bmRpdGlvbmFsX2F0dHIxIChXZWJLaXRET01UZXN0T2JqICpzZWxmLCBnbG9uZyB2YWx1ZSkKK3sK
KyAgICBnX3JldHVybl9pZl9mYWlsIChzZWxmKTsKKyAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRl
bSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBpdGVtLT5zZXRDb25kaXRpb25hbEF0dHIxKHZh
bHVlKTsKKworfQorI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xKSAqLworCisjaWYgRU5BQkxF
KENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRpb24yKQorZ2xvbmcKK3dlYmtpdF9kb21fdGVz
dF9vYmpfZ2V0X2NvbmRpdGlvbmFsX2F0dHIyIChXZWJLaXRET01UZXN0T2JqICpzZWxmKQorewor
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChzZWxmLCAwKTsKKyAgICBXZWJDb3JlOjpUZXN0T2Jq
ICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBnbG9uZyByZXMgPSBpdGVtLT5jb25k
aXRpb25hbEF0dHIyKCk7CisgICAgcmV0dXJuIHJlczsKKworfQorI2VuZGlmIC8qIEVOQUJMRShD
b25kaXRpb24xKSAmJiBFTkFCTEUoQ29uZGl0aW9uMikgKi8KKworI2lmIEVOQUJMRShDb25kaXRp
b24xKSAmJiBFTkFCTEUoQ29uZGl0aW9uMikKK3ZvaWQKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X2NvbmRpdGlvbmFsX2F0dHIyIChXZWJLaXRET01UZXN0T2JqICpzZWxmLCBnbG9uZyB2YWx1ZSkK
K3sKKyAgICBnX3JldHVybl9pZl9mYWlsIChzZWxmKTsKKyAgICBXZWJDb3JlOjpUZXN0T2JqICog
aXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBpdGVtLT5zZXRDb25kaXRpb25hbEF0dHIy
KHZhbHVlKTsKKworfQorI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUoQ29u
ZGl0aW9uMikgKi8KKworI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9u
MikKK2dsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9jb25kaXRpb25hbF9hdHRyMyAoV2Vi
S2l0RE9NVGVzdE9iaiAqc2VsZikKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoc2VsZiwg
MCk7CisgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Cisg
ICAgZ2xvbmcgcmVzID0gaXRlbS0+Y29uZGl0aW9uYWxBdHRyMygpOworICAgIHJldHVybiByZXM7
CisKK30KKyNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIp
ICovCisKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCit2b2lk
Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9jb25kaXRpb25hbF9hdHRyMyAoV2ViS2l0RE9NVGVz
dE9iaiAqc2VsZiwgZ2xvbmcgdmFsdWUpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbCAoc2VsZik7
CisgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAg
aXRlbS0+c2V0Q29uZGl0aW9uYWxBdHRyMyh2YWx1ZSk7CisKK30KKyNlbmRpZiAvKiBFTkFCTEUo
Q29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpICovCisKIAogR19ERUZJTkVfVFlQRShX
ZWJLaXRET01UZXN0T2JqLCB3ZWJraXRfZG9tX3Rlc3Rfb2JqLCBXRUJLSVRfVFlQRV9ET01fT0JK
RUNUKQogCkBAIC01ODQsNiArNjUzLDE1IEBAIGVudW0gewogICAgIFBST1BfQVRUUl9XSVRIX0dF
VFRFUl9FWENFUFRJT04sCiAgICAgUFJPUF9DVVNUT01fQVRUUiwKICAgICBQUk9QX1NDUklQVF9T
VFJJTkdfQVRUUiwKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKKyAgICBQUk9QX0NPTkRJVElPTkFM
X0FUVFIxLAorI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xKSAqLworI2lmIEVOQUJMRShDb25k
aXRpb24xKSAmJiBFTkFCTEUoQ29uZGl0aW9uMikKKyAgICBQUk9QX0NPTkRJVElPTkFMX0FUVFIy
LAorI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUoQ29uZGl0aW9uMikgKi8K
KyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCisgICAgUFJPUF9D
T05ESVRJT05BTF9BVFRSMywKKyNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxF
KENvbmRpdGlvbjIpICovCiB9OwogCiAKQEAgLTY0MCw2ICs3MTgsMjcgQEAgc3RhdGljIHZvaWQg
d2Via2l0X2RvbV90ZXN0X29ial9zZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBw
cm9wX2lkLCBjb24KICAgICAgICAgIGNvcmVTZWxmLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlv
bigoZ192YWx1ZV9nZXRfbG9uZyh2YWx1ZSkpICwgZWMgKTsKICAgICAgICAgIGJyZWFrOwogICAg
IH0KKyAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCisgICAgY2FzZSBQUk9QX0NPTkRJVElPTkFMX0FU
VFIxOgorICAgIHsKKyAgICAgICAgIGNvcmVTZWxmLT5zZXRDb25kaXRpb25hbEF0dHIxKChnX3Zh
bHVlX2dldF9sb25nKHZhbHVlKSkgKTsKKyAgICAgICAgIGJyZWFrOworICAgIH0KKyAjZW5kaWYg
LyogRU5BQkxFKENvbmRpdGlvbjEpICovCisgI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFC
TEUoQ29uZGl0aW9uMikKKyAgICBjYXNlIFBST1BfQ09ORElUSU9OQUxfQVRUUjI6CisgICAgewor
ICAgICAgICAgY29yZVNlbGYtPnNldENvbmRpdGlvbmFsQXR0cjIoKGdfdmFsdWVfZ2V0X2xvbmco
dmFsdWUpKSApOworICAgICAgICAgYnJlYWs7CisgICAgfQorICNlbmRpZiAvKiBFTkFCTEUoQ29u
ZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIpICovCisgI2lmIEVOQUJMRShDb25kaXRpb24x
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKKyAgICBjYXNlIFBST1BfQ09ORElUSU9OQUxfQVRUUjM6
CisgICAgeworICAgICAgICAgY29yZVNlbGYtPnNldENvbmRpdGlvbmFsQXR0cjMoKGdfdmFsdWVf
Z2V0X2xvbmcodmFsdWUpKSApOworICAgICAgICAgYnJlYWs7CisgICAgfQorICNlbmRpZiAvKiBF
TkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpICovCiAgICAgIGRlZmF1bHQ6
CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3Bf
aWQsIHBzcGVjKTsKICAgICAgICAgYnJlYWs7CkBAIC03MTUsNiArODE0LDI3IEBAIHN0YXRpYyB2
b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3Vp
bnQgcHJvcF9pZCwgR1ZhCiAgICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZhbHVlLCBjb252
ZXJ0VG9VVEY4U3RyaW5nKGNvcmVTZWxmLT5zY3JpcHRTdHJpbmdBdHRyKCkpKTsKICAgICAgICAg
IGJyZWFrOwogICAgIH0KKyAjaWYgRU5BQkxFKENvbmRpdGlvbjEpCisgICAgY2FzZSBQUk9QX0NP
TkRJVElPTkFMX0FUVFIxOgorICAgIHsKKyAgICAgICAgIGdfdmFsdWVfc2V0X2xvbmcodmFsdWUs
IGNvcmVTZWxmLT5jb25kaXRpb25hbEF0dHIxKCkpOworICAgICAgICAgYnJlYWs7CisgICAgfQor
ICNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMSkgKi8KKyAjaWYgRU5BQkxFKENvbmRpdGlvbjEp
ICYmIEVOQUJMRShDb25kaXRpb24yKQorICAgIGNhc2UgUFJPUF9DT05ESVRJT05BTF9BVFRSMjoK
KyAgICB7CisgICAgICAgICBnX3ZhbHVlX3NldF9sb25nKHZhbHVlLCBjb3JlU2VsZi0+Y29uZGl0
aW9uYWxBdHRyMigpKTsKKyAgICAgICAgIGJyZWFrOworICAgIH0KKyAjZW5kaWYgLyogRU5BQkxF
KENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRpb24yKSAqLworICNpZiBFTkFCTEUoQ29uZGl0
aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCisgICAgY2FzZSBQUk9QX0NPTkRJVElPTkFMX0FU
VFIzOgorICAgIHsKKyAgICAgICAgIGdfdmFsdWVfc2V0X2xvbmcodmFsdWUsIGNvcmVTZWxmLT5j
b25kaXRpb25hbEF0dHIzKCkpOworICAgICAgICAgYnJlYWs7CisgICAgfQorICNlbmRpZiAvKiBF
TkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpICovCiAgICAgIGRlZmF1bHQ6
CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3Bf
aWQsIHBzcGVjKTsKICAgICAgICAgYnJlYWs7CkBAIC04MjcsNiArOTQ3LDM5IEBAIEdfTUFYTE9O
RywgLyogbWF4ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJyZWFkLW9ubHkgIGdjaGFyKiAgVGVzdE9iai5zY3JpcHQtc3RyaW5n
LWF0dHIiLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9jIHN0dWZmIGhl
cmUgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIiIsIC8qIGRlZmF1bHQgKi8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Cisg
I2lmIEVOQUJMRShDb25kaXRpb24xKQorICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KGdvYmplY3RDbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBS
T1BfQ09ORElUSU9OQUxfQVRUUjEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBnX3BhcmFtX3NwZWNfbG9uZygiY29uZGl0aW9uYWwtYXR0cjEiLCAvKiBuYW1lICovCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0
ZXN0X29ial9jb25kaXRpb25hbC1hdHRyMSIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICovCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJy
ZWFkLXdyaXRlICBnbG9uZyBUZXN0T2JqLmNvbmRpdGlvbmFsLWF0dHIxIiwgLyogbG9uZ2VyIC0g
Y291bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdfTUlOTE9ORywg
LyogbWluICovCitHX01BWExPTkcsIC8qIG1heCAqLworMCwgLyogZGVmYXVsdCAqLworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJL
SVRfUEFSQU1fUkVBRFdSSVRFKSk7CisgI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xKSAqLwor
ICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIpCisgICAgIGdfb2Jq
ZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUFJPUF9DT05ESVRJT05BTF9BVFRSMiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19sb25nKCJjb25kaXRpb25hbC1h
dHRyMiIsIC8qIG5hbWUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInRlc3Rfb2JqX2NvbmRpdGlvbmFsLWF0dHIyIiwgLyogc2hv
cnQgZGVzY3JpcHRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInJlYWQtd3JpdGUgIGdsb25nIFRlc3RPYmouY29uZGl0aW9u
YWwtYXR0cjIiLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9jIHN0dWZm
IGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR19NSU5MT05HLCAvKiBtaW4gKi8KK0dfTUFYTE9ORywgLyogbWF4ICovCisw
LCAvKiBkZWZhdWx0ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKKyAjZW5kaWYgLyog
RU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRpb24yKSAqLworICNpZiBFTkFCTEUo
Q29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCisgICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUFJPUF9DT05ESVRJT05BTF9BVFRSMywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19sb25nKCJjb25kaXRpb25hbC1hdHRyMyIsIC8qIG5h
bWUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInRlc3Rfb2JqX2NvbmRpdGlvbmFsLWF0dHIzIiwgLyogc2hvcnQgZGVzY3JpcHRp
b24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInJlYWQtd3JpdGUgIGdsb25nIFRlc3RPYmouY29uZGl0aW9uYWwtYXR0cjMiLCAv
KiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9jIHN0dWZmIGhlcmUgKi8KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
R19NSU5MT05HLCAvKiBtaW4gKi8KK0dfTUFYTE9ORywgLyogbWF4ICovCiswLCAvKiBkZWZhdWx0
ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKKyAjZW5kaWYgLyogRU5BQkxFKENvbmRp
dGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKSAqLwogCiAKIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmggYi9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAppbmRl
eCAyODJlZGI4Li4yN2RiMzQ3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaApAQCAtMTc4LDYgKzE3OCwzNiBA
QCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbiAoV2Vi
S2l0RE9NVGVzdE9iaiAqc2VsZiwgZ2xvbgogV0VCS0lUX0FQSSBnY2hhciogCiB3ZWJraXRfZG9t
X3Rlc3Rfb2JqX2dldF9zY3JpcHRfc3RyaW5nX2F0dHIgKFdlYktpdERPTVRlc3RPYmogKnNlbGYp
OwogCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpCitXRUJLSVRfQVBJIGdsb25nCit3ZWJraXRfZG9t
X3Rlc3Rfb2JqX2dldF9jb25kaXRpb25hbF9hdHRyMSAoV2ViS2l0RE9NVGVzdE9iaiAqc2VsZik7
CisjZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjEpICovCisKKyNpZiBFTkFCTEUoQ29uZGl0aW9u
MSkKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV90ZXN0X29ial9zZXRfY29uZGl0aW9uYWxf
YXR0cjEgKFdlYktpdERPTVRlc3RPYmogKnNlbGYsIGdsb25nIHZhbHVlKTsKKyNlbmRpZiAvKiBF
TkFCTEUoQ29uZGl0aW9uMSkgKi8KKworI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUo
Q29uZGl0aW9uMikKK1dFQktJVF9BUEkgZ2xvbmcKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2Nv
bmRpdGlvbmFsX2F0dHIyIChXZWJLaXRET01UZXN0T2JqICpzZWxmKTsKKyNlbmRpZiAvKiBFTkFC
TEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIpICovCisKKyNpZiBFTkFCTEUoQ29u
ZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIpCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9k
b21fdGVzdF9vYmpfc2V0X2NvbmRpdGlvbmFsX2F0dHIyIChXZWJLaXRET01UZXN0T2JqICpzZWxm
LCBnbG9uZyB2YWx1ZSk7CisjZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShD
b25kaXRpb24yKSAqLworCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRp
b24yKQorV0VCS0lUX0FQSSBnbG9uZword2Via2l0X2RvbV90ZXN0X29ial9nZXRfY29uZGl0aW9u
YWxfYXR0cjMgKFdlYktpdERPTVRlc3RPYmogKnNlbGYpOworI2VuZGlmIC8qIEVOQUJMRShDb25k
aXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikgKi8KKworI2lmIEVOQUJMRShDb25kaXRpb24x
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV90ZXN0
X29ial9zZXRfY29uZGl0aW9uYWxfYXR0cjMgKFdlYktpdERPTVRlc3RPYmogKnNlbGYsIGdsb25n
IHZhbHVlKTsKKyNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlv
bjIpICovCisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZiAvKiBXZWJLaXRET01UZXN0T2JqX2ggKi8K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVy
ZmFjZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2UuY3BwCmluZGV4IDUxZWI0ZWMuLmIwYjFiYWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcApAQCAtMTksNiArMTksOSBA
QAogKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8
IEVOQUJMRShDb25kaXRpb24yKQorCiAjaW5jbHVkZSAiSlNUZXN0SW50ZXJmYWNlLmgiCiAKICNp
bmNsdWRlICJUZXN0SW50ZXJmYWNlLmgiCkBAIC0xNzMsMyArMTc2LDUgQEAgVGVzdEludGVyZmFj
ZSogdG9UZXN0SW50ZXJmYWNlKEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIH0KIAogfQorCisjZW5kaWYg
Ly8gRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmggYi9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuaAppbmRleCBjMDc2
ZGJkLi45NjVkY2ZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJbnRlcmZhY2UuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJbnRlcmZhY2UuaApAQCAtMjEsNiArMjEsOCBAQAogI2lmbmRlZiBKU1Rlc3RJbnRl
cmZhY2VfaAogI2RlZmluZSBKU1Rlc3RJbnRlcmZhY2VfaAogCisjaWYgRU5BQkxFKENvbmRpdGlv
bjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQorCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAj
aW5jbHVkZSA8cnVudGltZS9KU0dsb2JhbE9iamVjdC5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvT2Jq
ZWN0UHJvdG90eXBlLmg+CkBAIC03OCw0ICs4MCw2IEBAIEpTQzo6SlNWYWx1ZSBqc1Rlc3RJbnRl
cmZhY2VDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlND
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24x
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCA5MjZkMTM3Li44NjJjYmU3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisr
KyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTQ2
LDcgKzQ2LDcgQEAgQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU1Rlc3RPYmopOwogI2RlZmlu
ZSBUSFVOS19HRU5FUkFUT1IoZ2VuZXJhdG9yKQogI2VuZGlmCiAKLXN0YXRpYyBjb25zdCBIYXNo
VGFibGVWYWx1ZSBKU1Rlc3RPYmpUYWJsZVZhbHVlc1sxNV0gPQorc3RhdGljIGNvbnN0IEhhc2hU
YWJsZVZhbHVlIEpTVGVzdE9ialRhYmxlVmFsdWVzWzE4XSA9CiB7CiAgICAgeyAicmVhZE9ubHlJ
bnRBdHRyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialJlYWRPbmx5SW50QXR0ciksIChpbnRw
dHJfdCkwIFRIVU5LX0dFTkVSQVRPUigwKSB9LAogICAgIHsgInJlYWRPbmx5U3RyaW5nQXR0ciIs
IERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWFkT25seVN0cmluZ0F0dHIpLCAoaW50cHRyX3Qp
MCBUSFVOS19HRU5FUkFUT1IoMCkgfSwKQEAgLTYxLDEyICs2MSwyMSBAQCBzdGF0aWMgY29uc3Qg
SGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqVGFibGVWYWx1ZXNbMTVdID0KICAgICB7ICJhdHRyV2l0
aEdldHRlckV4Y2VwdGlvbiIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24p
LCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24gVEhVTktfR0VO
RVJBVE9SKDApIH0sCiAgICAgeyAiY3VzdG9tQXR0ciIsIERvbnREZWxldGUsIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ3VzdG9tQXR0
ciksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpDdXN0b21BdHRyIFRIVU5LX0dFTkVSQVRPUigwKSB9
LAogICAgIHsgInNjcmlwdFN0cmluZ0F0dHIiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRw
dHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqU2Ny
aXB0U3RyaW5nQXR0ciksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRPUigwKSB9LAorI2lmIEVO
QUJMRShDb25kaXRpb24xKQorICAgIHsgImNvbmRpdGlvbmFsQXR0cjEiLCBEb250RGVsZXRlLCAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
akNvbmRpdGlvbmFsQXR0cjEpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRy
MSBUSFVOS19HRU5FUkFUT1IoMCkgfSwKKyNlbmRpZgorI2lmIEVOQUJMRShDb25kaXRpb24xKSAm
JiBFTkFCTEUoQ29uZGl0aW9uMikKKyAgICB7ICJjb25kaXRpb25hbEF0dHIyIiwgRG9udERlbGV0
ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RPYmpDb25kaXRpb25hbEF0dHIyKSwgKGludHB0cl90KXNldEpTVGVzdE9iakNvbmRpdGlvbmFs
QXR0cjIgVEhVTktfR0VORVJBVE9SKDApIH0sCisjZW5kaWYKKyNpZiBFTkFCTEUoQ29uZGl0aW9u
MSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCisgICAgeyAiY29uZGl0aW9uYWxBdHRyMyIsIERvbnRE
ZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpDb25kaXRp
b25hbEF0dHIzIFRIVU5LX0dFTkVSQVRPUigwKSB9LAorI2VuZGlmCiAgICAgeyAiY29uc3RydWN0
b3IiLCBEb250RW51bSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNvbnN0cnVjdG9yKSwgKGludHB0cl90KTAgVEhV
TktfR0VORVJBVE9SKDApIH0sCiAgICAgeyAwLCAwLCAwLCAwIFRIVU5LX0dFTkVSQVRPUigwKSB9
CiB9OwogCiAjdW5kZWYgVEhVTktfR0VORVJBVE9SCi1zdGF0aWMgSlNDX0NPTlNUX0hBU0hUQUJM
RSBIYXNoVGFibGUgSlNUZXN0T2JqVGFibGUgPSB7IDM0LCAzMSwgSlNUZXN0T2JqVGFibGVWYWx1
ZXMsIDAgfTsKK3N0YXRpYyBKU0NfQ09OU1RfSEFTSFRBQkxFIEhhc2hUYWJsZSBKU1Rlc3RPYmpU
YWJsZSA9IHsgNjUsIDYzLCBKU1Rlc3RPYmpUYWJsZVZhbHVlcywgMCB9OwogLyogSGFzaCB0YWJs
ZSBmb3IgY29uc3RydWN0b3IgKi8KICNpZiBFTkFCTEUoSklUKQogI2RlZmluZSBUSFVOS19HRU5F
UkFUT1IoZ2VuZXJhdG9yKSAsIGdlbmVyYXRvcgpAQCAtMzE2LDYgKzMyNSwzOSBAQCBKU1ZhbHVl
IGpzVGVzdE9ialNjcmlwdFN0cmluZ0F0dHIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RC
YXNlLCBjb25zdCBJZGVudAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKKyNpZiBFTkFCTEUoQ29u
ZGl0aW9uMSkKK0pTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShFeGVjU3RhdGUqIGV4
ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQoreworICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNl
KSk7CisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOworICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19j
YXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIEpTVmFsdWUgcmVzdWx0ID0g
anNOdW1iZXIoZXhlYywgaW1wLT5jb25kaXRpb25hbEF0dHIxKCkpOworICAgIHJldHVybiByZXN1
bHQ7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUoQ29uZGl0
aW9uMikKK0pTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihFeGVjU3RhdGUqIGV4ZWMs
IEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQoreworICAgIEpTVGVzdE9iaiog
Y2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7
CisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOworICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0
PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNO
dW1iZXIoZXhlYywgaW1wLT5jb25kaXRpb25hbEF0dHIyKCkpOworICAgIHJldHVybiByZXN1bHQ7
Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9u
MikKK0pTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyhFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQoreworICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7Cisg
ICAgVU5VU0VEX1BBUkFNKGV4ZWMpOworICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRl
c3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1i
ZXIoZXhlYywgaW1wLT5jb25kaXRpb25hbEF0dHIzKCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9
CisjZW5kaWYKKwogSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMs
IEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQogewogICAgIEpTVGVzdE9iaiog
ZG9tT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsK
QEAgLTM5MSw2ICs0MzMsMzMgQEAgdm9pZCBzZXRKU1Rlc3RPYmpDdXN0b21BdHRyKEV4ZWNTdGF0
ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUKICAgICBzdGF0aWNf
Y2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KS0+c2V0Q3VzdG9tQXR0cihleGVjLCB2YWx1ZSk7
CiB9CiAKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKK3ZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9u
YWxBdHRyMShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZh
bHVlKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9i
aio+KHRoaXNPYmplY3QpOworICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoq
PihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGltcC0+c2V0Q29uZGl0aW9uYWxBdHRyMSh2YWx1
ZS50b0ludDMyKGV4ZWMpKTsKK30KKyNlbmRpZgorCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpICYm
IEVOQUJMRShDb25kaXRpb24yKQordm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKEV4
ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCit7Cisg
ICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4odGhpc09i
amVjdCk7CisgICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRo
aXMtPmltcGwoKSk7CisgICAgaW1wLT5zZXRDb25kaXRpb25hbEF0dHIyKHZhbHVlLnRvSW50MzIo
ZXhlYykpOworfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENv
bmRpdGlvbjIpCit2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoRXhlY1N0YXRlKiBl
eGVjLCBKU09iamVjdCogdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPih0aGlzT2JqZWN0KTsKKyAg
ICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgp
KTsKKyAgICBpbXAtPnNldENvbmRpdGlvbmFsQXR0cjModmFsdWUudG9JbnQzMihleGVjKSk7Cit9
CisjZW5kaWYKKwogSlNWYWx1ZSBKU1Rlc3RPYmo6OmdldENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
ZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1cm4gZ2V0RE9N
Q29uc3RydWN0b3I8SlNUZXN0T2JqQ29uc3RydWN0b3I+KGV4ZWMsIHN0YXRpY19jYXN0PEpTRE9N
R2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5oCmluZGV4IGExZjIwOGQuLjJmZWI5MzcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCisrKyBiL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCkBAIC0xMzcsNiArMTM3LDEy
IEBAIHZvaWQgc2V0SlNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKCiBKU0M6OkpTVmFsdWUganNUZXN0T2JqQ3VzdG9t
QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVy
Jik7CiB2b2lkIHNldEpTVGVzdE9iakN1c3RvbUF0dHIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
T2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpTY3JpcHRTdHJp
bmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImKTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIxKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKK3ZvaWQgc2V0SlNU
ZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBK
U0M6OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwordm9p
ZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09i
amVjdCosIEpTQzo6SlNWYWx1ZSk7CitKU0M6OkpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyMyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVy
Jik7Cit2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpDb25z
dHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlm
aWVyJik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdEludGVyZmFjZS5tbSBiL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdEludGVyZmFjZS5tbQppbmRleCA4ZmQ3Nzkx
Li5hYjU5MzMzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpD
L0RPTVRlc3RJbnRlcmZhY2UubW0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
T2JqQy9ET01UZXN0SW50ZXJmYWNlLm1tCkBAIC0yNSw2ICsyNSw5IEBACiAgKi8KIAogI2ltcG9y
dCAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlv
bjIpCisKICNpbXBvcnQgIkRPTUludGVybmFsLmgiCiAKICNpbXBvcnQgIkRPTVRlc3RJbnRlcmZh
Y2UuaCIKQEAgLTg1LDMgKzg4LDUgQEAgRE9NVGVzdEludGVyZmFjZSAqa2l0KFdlYkNvcmU6OlRl
c3RJbnRlcmZhY2UqIHZhbHVlKQogICAgIGFkZERPTVdyYXBwZXIod3JhcHBlciwgdmFsdWUpOwog
ICAgIHJldHVybiBbd3JhcHBlciBhdXRvcmVsZWFzZV07CiB9CisKKyNlbmRpZiAvLyBFTkFCTEUo
Q29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaCBiL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCmluZGV4IDI0N2Y0YTMuLjMxZDkwODggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5o
CisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCkBA
IC01Niw2ICs1NiwxOCBAQAogLSAoaW50KWN1c3RvbUF0dHI7CiAtICh2b2lkKXNldEN1c3RvbUF0
dHI6KGludCluZXdDdXN0b21BdHRyOwogLSAoTlNTdHJpbmcgKilzY3JpcHRTdHJpbmdBdHRyOwor
I2lmIEVOQUJMRShDb25kaXRpb24xKQorLSAoaW50KWNvbmRpdGlvbmFsQXR0cjE7CistICh2b2lk
KXNldENvbmRpdGlvbmFsQXR0cjE6KGludCluZXdDb25kaXRpb25hbEF0dHIxOworI2VuZGlmCisj
aWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRpb24yKQorLSAoaW50KWNvbmRp
dGlvbmFsQXR0cjI7CistICh2b2lkKXNldENvbmRpdGlvbmFsQXR0cjI6KGludCluZXdDb25kaXRp
b25hbEF0dHIyOworI2VuZGlmCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25k
aXRpb24yKQorLSAoaW50KWNvbmRpdGlvbmFsQXR0cjM7CistICh2b2lkKXNldENvbmRpdGlvbmFs
QXR0cjM6KGludCluZXdDb25kaXRpb25hbEF0dHIzOworI2VuZGlmCiAtICh2b2lkKXZvaWRNZXRo
b2Q7CiAtICh2b2lkKXZvaWRNZXRob2RXaXRoQXJnczooaW50KWludEFyZyBzdHJBcmc6KE5TU3Ry
aW5nICopc3RyQXJnIG9iakFyZzooRE9NVGVzdE9iaiAqKW9iakFyZzsKIC0gKGludClpbnRNZXRo
b2Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RPYmoubW0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmou
bW0KaW5kZXggMGYzZmI2Ni4uZDllOTAxOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQpAQCAtMjEyLDYgKzIxMiw0OCBAQAogICAgIHJl
dHVybiBJTVBMLT5zY3JpcHRTdHJpbmdBdHRyKCk7CiB9CiAKKyNpZiBFTkFCTEUoQ29uZGl0aW9u
MSkKKy0gKGludCljb25kaXRpb25hbEF0dHIxCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5jb25kaXRpb25hbEF0dHIxKCk7Cit9
CisKKy0gKHZvaWQpc2V0Q29uZGl0aW9uYWxBdHRyMTooaW50KW5ld0NvbmRpdGlvbmFsQXR0cjEK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+
c2V0Q29uZGl0aW9uYWxBdHRyMShuZXdDb25kaXRpb25hbEF0dHIxKTsKK30KKyNlbmRpZgorCisj
aWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRpb24yKQorLSAoaW50KWNvbmRp
dGlvbmFsQXR0cjIKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgcmV0dXJuIElNUEwtPmNvbmRpdGlvbmFsQXR0cjIoKTsKK30KKworLSAodm9pZClzZXRD
b25kaXRpb25hbEF0dHIyOihpbnQpbmV3Q29uZGl0aW9uYWxBdHRyMgoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRDb25kaXRpb25hbEF0
dHIyKG5ld0NvbmRpdGlvbmFsQXR0cjIpOworfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoQ29uZGl0
aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCistIChpbnQpY29uZGl0aW9uYWxBdHRyMworewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1Q
TC0+Y29uZGl0aW9uYWxBdHRyMygpOworfQorCistICh2b2lkKXNldENvbmRpdGlvbmFsQXR0cjM6
KGludCluZXdDb25kaXRpb25hbEF0dHIzCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldENvbmRpdGlvbmFsQXR0cjMobmV3Q29uZGl0aW9u
YWxBdHRyMyk7Cit9CisjZW5kaWYKKwogLSAodm9pZCl2b2lkTWV0aG9kCiB7CiAgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEludGVyZmFjZS5pZGwgYi9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9UZXN0SW50ZXJmYWNlLmlkbAppbmRleCA1YThiMDA4Li4xZjBhYTE4IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0SW50ZXJmYWNlLmlkbAor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0SW50ZXJmYWNlLmlkbApAQCAt
MzAsNiArMzAsNyBAQAogLy8gY2hhbmdlcyBpbiBpdHMgb3VwdXQuCiBtb2R1bGUgdGVzdCB7CiAg
ICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9Q29uZGl0aW9uMXxDb25kaXRpb24y
LAogICAgICAgICBDYW5CZUNvbnN0cnVjdGVkLAogICAgICAgICBDYWxsV2l0aD1TY3JpcHRFeGVj
dXRpb25Db250ZXh0CiAgICAgXSBUZXN0SW50ZXJmYWNlIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggYmRhMjU4Ni4uZTAzMzY1YiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTk2LDYgKzk2LDExIEBAIG1vZHVs
ZSB0ZXN0IHsKICAgICAgICAgLy8gJ0NvbnZlcnRTY3JpcHRTdHJpbmcnIGV4dGVuZGVkIGF0dHJp
YnV0ZQogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbnZlcnRTY3JpcHRTdHJpbmddIERP
TVN0cmluZyBzY3JpcHRTdHJpbmdBdHRyOwogCisgICAgICAgIC8vICdDb25kaXRpb25hbCcgZXh0
ZW5kZWQgYXR0cmlidXRlCisgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9Q29uZGl0aW9u
MV0gbG9uZyBjb25kaXRpb25hbEF0dHIxOworICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFs
PUNvbmRpdGlvbjEmQ29uZGl0aW9uMl0gbG9uZyBjb25kaXRpb25hbEF0dHIyOworICAgICAgICBh
dHRyaWJ1dGUgW0NvbmRpdGlvbmFsPUNvbmRpdGlvbjF8Q29uZGl0aW9uMl0gbG9uZyBjb25kaXRp
b25hbEF0dHIzOworCiAjaWYgZGVmaW5lZChURVNUSU5HX1Y4KSB8fCBkZWZpbmVkKFRFU1RJTkdf
SlMpCiAgICAgICAgIC8vIE92ZXJsb2FkcwogICAgICAgICB2b2lkICAgIG92ZXJsb2FkZWRNZXRo
b2QoaW4gVGVzdE9iaiBvYmpBcmcsIGluIERPTVN0cmluZyBzdHJBcmcpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcCBiL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAKaW5kZXgg
ZjBiZmI4Ni4uMzQwZGNhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwCkBAIC0yMSw2ICsyMSw4IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiVjhUZXN0SW50ZXJmYWNlLmgiCiAKKyNpZiBFTkFCTEUoQ29u
ZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCisKICNpbmNsdWRlICJSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5n
U3RhdGUuaCIKQEAgLTExMywzICsxMTUsNSBAQCB2b2lkIFY4VGVzdEludGVyZmFjZTo6ZGVyZWZP
YmplY3Qodm9pZCogb2JqZWN0KQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuaCBiL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5oCmluZGV4IGNl
MTMxMGUuLmQyMTkyY2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdEludGVyZmFjZS5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdEludGVyZmFjZS5oCkBAIC0xOCw2ICsxOCw4IEBACiAgICAgQm9zdG9uLCBNQSAw
MjExMS0xMzA3LCBVU0EuCiAqLwogCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShD
b25kaXRpb24yKQorCiAjaWZuZGVmIFY4VGVzdEludGVyZmFjZV9oCiAjZGVmaW5lIFY4VGVzdElu
dGVyZmFjZV9oCiAKQEAgLTQ4LDMgKzUwLDUgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgo
UGFzc1JlZlB0cjxUZXN0SW50ZXJmYWNlID4pOwogfQogCiAjZW5kaWYgLy8gVjhUZXN0SW50ZXJm
YWNlX2gKKyNlbmRpZiAvLyBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIp
CisKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9i
ai5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmlu
ZGV4IDQ0OWUwODYuLmNjMDlhNzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0T2JqLmNwcApAQCAtMjE4LDYgKzIxOCw3OCBAQCBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IHNjcmlwdFN0cmluZ0F0dHJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3Ry
aW5nPiBuYQogICAgIHJldHVybiB2OFN0cmluZ09yTnVsbChpbXAtPnNjcmlwdFN0cmluZ0F0dHIo
KSk7CiB9CiAKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKKworc3RhdGljIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBjb25kaXRpb25hbEF0dHIxQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4g
bmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRP
TS5UZXN0T2JqLmNvbmRpdGlvbmFsQXR0cjEuX2dldCIpOworICAgIFRlc3RPYmoqIGltcCA9IFY4
VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgcmV0dXJuIHY4OjpJbnRlZ2Vy
OjpOZXcoaW1wLT5jb25kaXRpb25hbEF0dHIxKCkpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKENv
bmRpdGlvbjEpCisKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKKworc3RhdGljIHZvaWQgY29uZGl0
aW9uYWxBdHRyMUF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2Nh
bDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAg
IElOQ19TVEFUUygiRE9NLlRlc3RPYmouY29uZGl0aW9uYWxBdHRyMS5fc2V0Iik7CisgICAgVGVz
dE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBpbnQg
diA9IHRvSW50MzIodmFsdWUpOworICAgIGltcC0+c2V0Q29uZGl0aW9uYWxBdHRyMSh2KTsKKyAg
ICByZXR1cm47Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoQ29uZGl0aW9uMSkKKworI2lmIEVOQUJM
RShDb25kaXRpb24xKSAmJiBFTkFCTEUoQ29uZGl0aW9uMikKKworc3RhdGljIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBjb25kaXRpb25hbEF0dHIyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmlu
Zz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMo
IkRPTS5UZXN0T2JqLmNvbmRpdGlvbmFsQXR0cjIuX2dldCIpOworICAgIFRlc3RPYmoqIGltcCA9
IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgcmV0dXJuIHY4OjpJbnRl
Z2VyOjpOZXcoaW1wLT5jb25kaXRpb25hbEF0dHIyKCkpOworfQorCisjZW5kaWYgLy8gRU5BQkxF
KENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRpb24yKQorCisjaWYgRU5BQkxFKENvbmRpdGlv
bjEpICYmIEVOQUJMRShDb25kaXRpb24yKQorCitzdGF0aWMgdm9pZCBjb25kaXRpb25hbEF0dHIy
QXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1
ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRT
KCJET00uVGVzdE9iai5jb25kaXRpb25hbEF0dHIyLl9zZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAg
PSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIGludCB2ID0gdG9JbnQz
Mih2YWx1ZSk7CisgICAgaW1wLT5zZXRDb25kaXRpb25hbEF0dHIyKHYpOworICAgIHJldHVybjsK
K30KKworI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUoQ29uZGl0aW9uMikK
KworI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKKworc3RhdGlj
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjb25kaXRpb25hbEF0dHIzQXR0ckdldHRlcih2ODo6TG9j
YWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAg
ICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmNvbmRpdGlvbmFsQXR0cjMuX2dldCIpOworICAgIFRl
c3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgcmV0
dXJuIHY4OjpJbnRlZ2VyOjpOZXcoaW1wLT5jb25kaXRpb25hbEF0dHIzKCkpOworfQorCisjZW5k
aWYgLy8gRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQorCisjaWYgRU5B
QkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQorCitzdGF0aWMgdm9pZCBjb25k
aXRpb25hbEF0dHIzQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6Okxv
Y2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7Cisg
ICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5jb25kaXRpb25hbEF0dHIzLl9zZXQiKTsKKyAgICBU
ZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIGlu
dCB2ID0gdG9JbnQzMih2YWx1ZSk7CisgICAgaW1wLT5zZXRDb25kaXRpb25hbEF0dHIzKHYpOwor
ICAgIHJldHVybjsKK30KKworI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUo
Q29uZGl0aW9uMikKKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB2b2lkTWV0aG9kQ2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5U
ZXN0T2JqLnZvaWRNZXRob2QiKTsKQEAgLTYzNSw2ICs3MDcsMTggQEAgc3RhdGljIGNvbnN0IEJh
dGNoZWRBdHRyaWJ1dGUgVGVzdE9iakF0dHJzW10gPSB7CiAgICAgeyJjdXN0b21BdHRyIiwgVjhU
ZXN0T2JqOjpjdXN0b21BdHRyQWNjZXNzb3JHZXR0ZXIsIFY4VGVzdE9iajo6Y3VzdG9tQXR0ckFj
Y2Vzc29yU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250
cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6
Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3NjcmlwdFN0
cmluZ0F0dHInIChUeXBlOiAncmVhZG9ubHkgYXR0cmlidXRlJyBFeHRBdHRyOiAnQ29udmVydFNj
cmlwdFN0cmluZycpCiAgICAgeyJzY3JpcHRTdHJpbmdBdHRyIiwgVGVzdE9iakludGVybmFsOjpz
Y3JpcHRTdHJpbmdBdHRyQXR0ckdldHRlciwgMCwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2Fz
dDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVy
dHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisjaWYgRU5BQkxF
KENvbmRpdGlvbjEpCisgICAgLy8gQXR0cmlidXRlICdjb25kaXRpb25hbEF0dHIxJyAoVHlwZTog
J2F0dHJpYnV0ZScgRXh0QXR0cjogJ0NvbmRpdGlvbmFsJykKKyAgICB7ImNvbmRpdGlvbmFsQXR0
cjEiLCBUZXN0T2JqSW50ZXJuYWw6OmNvbmRpdGlvbmFsQXR0cjFBdHRyR2V0dGVyLCBUZXN0T2Jq
SW50ZXJuYWw6OmNvbmRpdGlvbmFsQXR0cjFBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0
YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4
OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKKyNl
bmRpZiAvLyBFTkFCTEUoQ29uZGl0aW9uMSkKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5B
QkxFKENvbmRpdGlvbjIpCisgICAgLy8gQXR0cmlidXRlICdjb25kaXRpb25hbEF0dHIyJyAoVHlw
ZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ0NvbmRpdGlvbmFsJykKKyAgICB7ImNvbmRpdGlvbmFs
QXR0cjIiLCBUZXN0T2JqSW50ZXJuYWw6OmNvbmRpdGlvbmFsQXR0cjJBdHRyR2V0dGVyLCBUZXN0
T2JqSW50ZXJuYWw6OmNvbmRpdGlvbmFsQXR0cjJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8s
IHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0
PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwK
KyNlbmRpZiAvLyBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIpCisjaWYg
RU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQorICAgIC8vIEF0dHJpYnV0
ZSAnY29uZGl0aW9uYWxBdHRyMycgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdDb25kaXRp
b25hbCcpCisgICAgeyJjb25kaXRpb25hbEF0dHIzIiwgVGVzdE9iakludGVybmFsOjpjb25kaXRp
b25hbEF0dHIzQXR0ckdldHRlciwgVGVzdE9iakludGVybmFsOjpjb25kaXRpb25hbEF0dHIzQXR0
clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4o
djg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25l
KSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisjZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjEpIHx8
IEVOQUJMRShDb25kaXRpb24yKQogfTsKIHN0YXRpYyBjb25zdCBCYXRjaGVkQ2FsbGJhY2sgVGVz
dE9iakNhbGxiYWNrc1tdID0gewogICAgIHsidm9pZE1ldGhvZCIsIFRlc3RPYmpJbnRlcm5hbDo6
dm9pZE1ldGhvZENhbGxiYWNrfSwK
</data>
<flag name="commit-queue"
          id="41226"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56904</attachid>
            <date>2010-05-24 10:59:36 -0700</date>
            <delta_ts>2010-06-12 18:54:51 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>39512_2</filename>
            <type>text/plain</type>
            <size>46066</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ODE4ZDdkNi4uYzA4ZDhiZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MiBAQAorMjAxMC0wNS0yMSAgSmlhbiBMaSAgPGpp
YW5saUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRml4IGNvZGUgZ2VuZXJhdG9ycyB0byBiZXR0ZXIgc3VwcG9ydCBDb25kaXRp
b25hbCBhdHRyaWJ1dGUgYW5kIGFkZCB0ZXN0CisgICAgICAgIGNvdmVyYWdlIGZvciBpdC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5NTEyCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG06CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdENhbGxiYWNrLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0Q2FsbGJhY2suaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0SW50ZXJm
YWNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRE
T01UZXN0SW50ZXJmYWNlLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmpl
Y3QvV2ViS2l0RE9NVGVzdE9iai5jcHA6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dl
dF9jb25kaXRpb25hbF9hdHRyMSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9j
b25kaXRpb25hbF9hdHRyMSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9jb25k
aXRpb25hbF9hdHRyMik6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9jb25kaXRp
b25hbF9hdHRyMik6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9jb25kaXRpb25h
bF9hdHRyMyk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9jb25kaXRpb25hbF9h
dHRyMyk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9wcm9wZXJ0eSk6CisgICAg
ICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9wcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX2NsYXNzX2luaXQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAoV2Vi
Q29yZTo6anNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rl
c3RPYmpDb25kaXRpb25hbEF0dHIyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakNvbmRp
dGlvbmFsQXR0cjMpOgorICAgICAgICAoV2ViQ29yZTo6c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxB
dHRyMSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKToK
KyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50ZXJmYWNlLm1tOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tOgorICAgICAgICAoLVtET01UZXN0T2Jq
IGNvbmRpdGlvbmFsQXR0cjFdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBzZXRDb25kaXRpb25h
bEF0dHIxOl0pOgorICAgICAgICAoLVtET01UZXN0T2JqIGNvbmRpdGlvbmFsQXR0cjJdKToKKyAg
ICAgICAgKC1bRE9NVGVzdE9iaiBzZXRDb25kaXRpb25hbEF0dHIyOl0pOgorICAgICAgICAoLVtE
T01UZXN0T2JqIGNvbmRpdGlvbmFsQXR0cjNdKToKKyAgICAgICAgKC1bRE9NVGVzdE9iaiBzZXRD
b25kaXRpb25hbEF0dHIzOl0pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0
SW50ZXJmYWNlLmlkbDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5p
ZGw6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5j
cHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5o
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGVzdE9iakludGVybmFsOjpjb25kaXRpb25hbEF0dHIxQXR0ckdldHRl
cik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqSW50ZXJuYWw6OmNvbmRpdGlvbmFsQXR0cjFB
dHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpJbnRlcm5hbDo6Y29uZGl0aW9u
YWxBdHRyMkF0dHJHZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9iakludGVybmFsOjpj
b25kaXRpb25hbEF0dHIyQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqSW50
ZXJuYWw6OmNvbmRpdGlvbmFsQXR0cjNBdHRyR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
c3RPYmpJbnRlcm5hbDo6Y29uZGl0aW9uYWxBdHRyM0F0dHJTZXR0ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6KToKKwogMjAxMC0wNS0yMSAgU3RldmUgQmxvY2sgIDxzdGV2ZWJsb2NrQGdvb2dsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmVyZW15IE9ybG93LgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtIGIvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtCmluZGV4IDFkMDNmMDguLjg5
OWY2ODEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
R09iamVjdC5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdP
YmplY3QucG0KQEAgLTMwMiwxMSArMzAyLDI5IEBAIHN1YiBHZXRXcml0ZWFibGVQcm9wZXJ0aWVz
IHsKICAgICByZXR1cm4gQHJlc3VsdDsKIH0KIAorc3ViIEdlbmVyYXRlQ29uZGl0aW9uYWxTdHJp
bmcKK3sKKyAgICBteSAkbm9kZSA9IHNoaWZ0OworICAgIG15ICRjb25kaXRpb25hbCA9ICRub2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uZGl0aW9uYWwifTsKKyAgICBpZiAoJGNvbmRpdGlv
bmFsKSB7CisgICAgICAgIGlmICgkY29uZGl0aW9uYWwgPX4gLyYvKSB7CisgICAgICAgICAgICBy
ZXR1cm4gIkVOQUJMRSgiIC4gam9pbigiKSAmJiBFTkFCTEUoIiwgc3BsaXQoLyYvLCAkY29uZGl0
aW9uYWwpKSAuICIpIjsKKyAgICAgICAgfSBlbHNpZiAoJGNvbmRpdGlvbmFsID1+IC9cfC8pIHsK
KyAgICAgICAgICAgIHJldHVybiAiRU5BQkxFKCIgLiBqb2luKCIpIHx8IEVOQUJMRSgiLCBzcGxp
dCgvXHwvLCAkY29uZGl0aW9uYWwpKSAuICIpIjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIHJldHVybiAiRU5BQkxFKCIgLiAkY29uZGl0aW9uYWwgLiAiKSI7CisgICAgICAgIH0KKyAg
ICB9IGVsc2UgeworICAgICAgICByZXR1cm4gIiI7CisgICAgfQorfQorCiBzdWIgR2VuZXJhdGVQ
cm9wZXJ0eSB7CiAgICAgbXkgJGF0dHJpYnV0ZSA9IHNoaWZ0OwogICAgIG15ICRpbnRlcmZhY2VO
YW1lID0gc2hpZnQ7CiAgICAgbXkgQHdyaXRlYWJsZVByb3BlcnRpZXMgPSBAe3NoaWZ0IEBffTsK
IAorICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9IEdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmco
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsKICAgICBteSAkY2FtZWxQcm9wTmFtZSA9ICRhdHRyaWJ1
dGUtPnNpZ25hdHVyZS0+bmFtZTsKICAgICBteSAkc2V0UHJvcE5hbWVGdW5jdGlvbiA9ICRjb2Rl
R2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRjYW1lbFByb3BOYW1lKTsKICAgICBteSAkZ2V0UHJvcE5h
bWVGdW5jdGlvbiA9ICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRjYW1lbFByb3BOYW1lKTsK
QEAgLTMxNSw3ICszMzMsOSBAQCBzdWIgR2VuZXJhdGVQcm9wZXJ0eSB7CiAgICAgbXkgJHByb3BO
YW1lQ2FwcyA9IHVjKCRwcm9wTmFtZSk7CiAgICAgJHByb3BOYW1lID1+IHMvXy8tL2c7CiAgICAg
bXkgJHtwcm9wRW51bX0gPSAiUFJPUF8ke3Byb3BOYW1lQ2Fwc30iOworICAgIHB1c2goQGNCb2R5
UHJpdiwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5n
OwogICAgIHB1c2goQGNCb2R5UHJpdiwgIiAgICAke3Byb3BFbnVtfSxcbiIpOworICAgIHB1c2go
QGNCb2R5UHJpdiwgIiNlbmRpZiAvKiAke2NvbmRpdGlvbmFsU3RyaW5nfSAqL1xuIikgaWYgJGNv
bmRpdGlvbmFsU3RyaW5nOwogCiAgICAgbXkgJHByb3BUeXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0
dXJlLT50eXBlOwogICAgIG15ICR7cHJvcEdUeXBlfSA9IGRlY2FtZWxpemUoJHByb3BUeXBlKTsK
QEAgLTM2NiwxNCArMzg2LDE3IEBAIHN1YiBHZW5lcmF0ZVByb3BlcnR5IHsKICAgICB9CiAKICAg
ICBpZiAoZ3JlcCB7JF8gZXEgJGF0dHJpYnV0ZX0gQHdyaXRlYWJsZVByb3BlcnRpZXMpIHsKKyAg
ICAgICAgcHVzaChAdHh0U2V0UHJvcHMsICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlm
ICRjb25kaXRpb25hbFN0cmluZzsKICAgICAgICAgcHVzaChAdHh0U2V0UHJvcHMsICIgICBjYXNl
ICR7cHJvcEVudW19OlxuICAgIHtcbiIpOwogICAgICAgICBwdXNoKEB0eHRTZXRQcm9wcywgIiAg
ICAgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKSBpZiBAeyRhdHRyaWJ1dGUt
PnNldHRlckV4Y2VwdGlvbnN9OwogICAgICAgICBwdXNoKEB0eHRTZXRQcm9wcywgIiAgICAgICAg
JHtzZXR0ZXJDb250ZW50SGVhZH0iKTsKICAgICAgICAgcHVzaChAdHh0U2V0UHJvcHMsICIsIGVj
IikgaWYgQHskYXR0cmlidXRlLT5zZXR0ZXJFeGNlcHRpb25zfTsKICAgICAgICAgcHVzaChAdHh0
U2V0UHJvcHMsICIpO1xuIik7CiAgICAgICAgIHB1c2goQHR4dFNldFByb3BzLCAiICAgICAgICBi
cmVhaztcbiAgICB9XG4iKTsKKyAgICAgICAgcHVzaChAdHh0U2V0UHJvcHMsICIjZW5kaWYgLyog
JHtjb25kaXRpb25hbFN0cmluZ30gKi9cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKICAgICB9
CiAKKyAgICBwdXNoKEB0eHRHZXRQcm9wcywgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikg
aWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgIHB1c2goQHR4dEdldFByb3BzLCAiICAgY2FzZSAk
e3Byb3BFbnVtfTpcbiAgICB7XG4iKTsKIAogICAgIG15ICRleGNlcHRpb24gPSAiIjsKQEAgLTQx
OCw2ICs0NDEsNyBAQCBFT0YKICAgICB9CiAKICAgICBwdXNoKEB0eHRHZXRQcm9wcywgIiAgICAg
ICAgYnJlYWs7XG4gICAgfVxuIik7CisgICAgcHVzaChAdHh0R2V0UHJvcHMsICIjZW5kaWYgLyog
JHtjb25kaXRpb25hbFN0cmluZ30gKi9cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKIAogICAg
IG15ICVwYXJhbV9zcGVjX29wdGlvbnMgPSAoImludCIsICJHX01JTklOVCwgLyogbWluICovXG5H
X01BWElOVCwgLyogbWF4ICovXG4wLCAvKiBkZWZhdWx0ICovIiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJib29sZWFuIiwgIkZBTFNFLCAvKiBkZWZhdWx0ICovIiwKQEAgLTQ0Myw3
ICs0NjcsOSBAQCBFT0YKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJHBhcmFtX3NwZWNfb3B0aW9uc3skZ3R5cGV9CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7Z3BhcmFt
ZmxhZ30pKTsKIEVPRgorICAgIHB1c2goQHR4dEluc3RhbGxQcm9wcywgIiNpZiAke2NvbmRpdGlv
bmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgIHB1c2goQHR4dEluc3Rh
bGxQcm9wcywgJHR4dEluc3RhbGxQcm9wKTsKKyAgICBwdXNoKEB0eHRJbnN0YWxsUHJvcHMsICIj
ZW5kaWYgLyogJHtjb25kaXRpb25hbFN0cmluZ30gKi9cbiIpIGlmICRjb25kaXRpb25hbFN0cmlu
ZzsKIH0KIAogc3ViIEdlbmVyYXRlUHJvcGVydGllcyB7CkBAIC02ODgsNiArNzE0LDcgQEAgc3Vi
IEdlbmVyYXRlRnVuY3Rpb24gewogICAgIG15ICRmdW5jdGlvbk5hbWUgPSAid2Via2l0X2RvbV8i
IC4gJGRlY2FtZWxpemUgLiAiXyIgLiAkcHJlZml4IC4gZGVjYW1lbGl6ZSgkZnVuY3Rpb25TaWdO
YW1lKTsKICAgICBteSAkcmV0dXJuVHlwZSA9IEdldEdsaWJUeXBlTmFtZSgkZnVuY3Rpb25TaWdU
eXBlKTsKICAgICBteSAkcmV0dXJuVmFsdWVJc0dET01UeXBlID0gSXNHRE9NQ2xhc3NUeXBlKCRm
dW5jdGlvblNpZ1R5cGUpOworICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9IEdlbmVyYXRlQ29u
ZGl0aW9uYWxTdHJpbmcoJGZ1bmN0aW9uLT5zaWduYXR1cmUpOwogCiAgICAgbXkgJGZ1bmN0aW9u
U2lnID0gIiRjbGFzc05hbWUgKnNlbGYiOwogCkBAIC03MzksNyArNzY2LDEyIEBAIHN1YiBHZW5l
cmF0ZUZ1bmN0aW9uIHsKICAgICAgICAgJGZ1bmN0aW9uU2lnIC49ICIsIEdFcnJvciAqKmVycm9y
IjsKICAgICB9CiAKLSAgICBwdXNoKEBoQm9keSwgIldFQktJVF9BUEkgJHJldHVyblR5cGVcbiRm
dW5jdGlvbk5hbWUgKCRmdW5jdGlvblNpZyk7XG5cbiIpOworICAgIHB1c2goQGhCb2R5LCAiI2lm
ICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CisgICAgcHVz
aChAaEJvZHksICJXRUJLSVRfQVBJICRyZXR1cm5UeXBlXG4kZnVuY3Rpb25OYW1lICgkZnVuY3Rp
b25TaWcpO1xuIik7CisgICAgcHVzaChAaEJvZHksICIjZW5kaWYgLyogJHtjb25kaXRpb25hbFN0
cmluZ30gKi9cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKKyAgICBwdXNoKEBoQm9keSwgIlxu
Iik7CisKKyAgICBwdXNoKEBjQm9keSwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYg
JGNvbmRpdGlvbmFsU3RyaW5nOwogICAgIHB1c2goQGNCb2R5LCAiJHJldHVyblR5cGVcbiRmdW5j
dGlvbk5hbWUgKCRmdW5jdGlvblNpZylcbntcbiIpOwogCiAgICAgaWYgKCRyZXR1cm5UeXBlIG5l
ICJ2b2lkIikgewpAQCAtOTAwLDcgKzkzMiw5IEBAIEVPRgogICAgICAgICAgICAgcHVzaChAY0Jv
ZHksICIgICAgcmV0dXJuIHJlcztcbiIpOwogICAgICAgICB9CiAgICAgfQotICAgIHB1c2goQGNC
b2R5LCAiXG59XG5cbiIpOworICAgIHB1c2goQGNCb2R5LCAiXG59XG4iKTsKKyAgICBwdXNoKEBj
Qm9keSwgIiNlbmRpZiAvKiAke2NvbmRpdGlvbmFsU3RyaW5nfSAqL1xuIikgaWYgJGNvbmRpdGlv
bmFsU3RyaW5nOworICAgIHB1c2goQGNCb2R5LCAiXG4iKTsKIH0KIAogc3ViIENsYXNzSGFzRnVu
Y3Rpb24gewpAQCAtMTAzNSw3ICsxMDY5LDcgQEAgc3ViIEdlbmVyYXRlRW5kSGVhZGVyIHsKICAg
ICBteSAkZ3VhcmQgPSAkY2xhc3NOYW1lIC4gIl9oIjsKIAogICAgIHB1c2goQGhCb2R5LCAiR19F
TkRfREVDTFNcblxuIik7Ci0gICAgcHVzaChAaEJvZHksICIjZW5kaWYgLyogJGd1YXJkICovXG4i
KTsKKyAgICBwdXNoKEBoUHJlZml4R3VhcmRFbmQsICIjZW5kaWYgLyogJGd1YXJkICovXG4iKTsK
IH0KIAogc3ViIEdlbmVyYXRlUHJpdmF0ZUhlYWRlciB7CkBAIC0xMDQ5LDYgKzEwODMsNyBAQCBz
dWIgR2VuZXJhdGVQcml2YXRlSGVhZGVyIHsKICAgICBteSAkaGFzTGVnYWN5UGFyZW50ID0gJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In07CiAgICAgbXkgJGhh
c1JlYWxQYXJlbnQgPSBAeyRkYXRhTm9kZS0+cGFyZW50c30gPiAwOwogICAgIG15ICRoYXNQYXJl
bnQgPSAkaGFzTGVnYWN5UGFyZW50IHx8ICRoYXNSZWFsUGFyZW50OworICAgIG15ICRjb25kaXRp
b25hbFN0cmluZyA9IEdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJGRhdGFOb2RlKTsKICAgICAK
ICAgICBvcGVuKFBSSVZIRUFERVIsICI+JGZpbGVuYW1lIikgb3IgZGllICJDb3VsZG4ndCBvcGVu
IGZpbGUgJGZpbGVuYW1lIGZvciB3cml0aW5nIjsKICAgICAKQEAgLTEwNTksNiArMTA5NCwxMiBA
QCBzdWIgR2VuZXJhdGVQcml2YXRlSGVhZGVyIHsKICNpZm5kZWYgJGd1YXJkCiAjZGVmaW5lICRn
dWFyZAogCitFT0YKKyAgICBwcmludCBQUklWSEVBREVSICR0ZXh0OworCisgICAgcHJpbnQgUFJJ
VkhFQURFUiAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG5cbiIgaWYgJGNvbmRpdGlvbmFsU3Ry
aW5nOworCisgICAgJHRleHQgPSA8PCAiRU9GIjsKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgog
I2luY2x1ZGUgPHdlYmtpdC8ke3BhcmVudENsYXNzTmFtZX0uaD4KICNpbmNsdWRlICIke2ludGVy
ZmFjZU5hbWV9LmgiCkBAIC0xMDkzLDkgKzExMzQsMTIgQEAgRU9GCiAgICAgJHRleHQgPSA8PCAi
RU9GIjsKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLyogJHtndWFyZH0gKi8KIEVP
RgogICAgIHByaW50IFBSSVZIRUFERVIgJHRleHQ7CisKKyAgICBwcmludCBQUklWSEVBREVSICIj
ZW5kaWYgLyogJHtjb25kaXRpb25hbFN0cmluZ30gKi9cblxuIiBpZiAkY29uZGl0aW9uYWxTdHJp
bmc7CisKKyAgICBwcmludCBQUklWSEVBREVSICIjZW5kaWYgLyogJHtndWFyZH0gKi9cbiI7CiAg
ICAgCiAgICAgY2xvc2UoUFJJVkhFQURFUik7CiB9CkBAIC0xMTE3LDYgKzExNjEsMTEgQEAgc3Vi
IEdlbmVyYXRlIHsKICAgICBteSAkcGFyZW50R09ialR5cGUgPSBHZXRQYXJlbnRHT2JqVHlwZSgk
ZGF0YU5vZGUpOwogICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGRhdGFOb2RlLT5uYW1lOwogCisg
ICAgIyBBZGQgdGhlIGd1YXJkIGlmIHRoZSAnQ29uZGl0aW9uYWwnIGV4dGVuZGVkIGF0dHJpYnV0
ZSBleGlzdHMKKyAgICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSBHZW5lcmF0ZUNvbmRpdGlvbmFs
U3RyaW5nKCRkYXRhTm9kZSk7CisgICAgcHVzaChAY29uZGl0aW9uR3VhcmRTdGFydCwgIiNpZiAk
e2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOworICAgIHB1c2go
QGNvbmRpdGlvbkd1YXJkRW5kLCAiI2VuZGlmIC8qICR7Y29uZGl0aW9uYWxTdHJpbmd9ICovXG4i
KSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CisKICAgICAjIEFkZCB0aGUgZGVmYXVsdCBpbXBsIGhl
YWRlciB0ZW1wbGF0ZQogICAgIEBjUHJlZml4ID0gc3BsaXQoIlxyIiwgJGxpY2VuY2VUZW1wbGF0
ZSk7CiAgICAgcHVzaChAY1ByZWZpeCwgIlxuIik7CkBAIC0xMTY4LDYgKzEyMTcsOCBAQCBzdWIg
V3JpdGVEYXRhIHsKIAogICAgIHByaW50IEhFQURFUiBAaFByZWZpeDsKICAgICBwcmludCBIRUFE
RVIgQGhQcmVmaXhHdWFyZDsKKyAgICBwcmludCBIRUFERVIgQGNvbmRpdGlvbkd1YXJkU3RhcnQ7
CisgICAgcHJpbnQgSEVBREVSICJcbiI7CiAgICAgcHJpbnQgSEVBREVSICIjaW5jbHVkZSBcIndl
YmtpdC93ZWJraXRkb21kZWZpbmVzLmhcIlxuIjsKICAgICBwcmludCBIRUFERVIgIiNpbmNsdWRl
IDxnbGliLW9iamVjdC5oPlxuIjsKICAgICBwcmludCBIRUFERVIgIiNpbmNsdWRlIDx3ZWJraXQv
d2Via2l0ZGVmaW5lcy5oPlxuIjsKQEAgLTExNzYsNiArMTIyNyw5IEBAIHN1YiBXcml0ZURhdGEg
ewogICAgIHByaW50IEhFQURFUiAiXG4iOwogICAgIHByaW50IEhFQURFUiBAaEJvZHlQcmU7CiAg
ICAgcHJpbnQgSEVBREVSIEBoQm9keTsKKyAgICBwcmludCBIRUFERVIgQGNvbmRpdGlvbkd1YXJk
RW5kOworICAgIHByaW50IEhFQURFUiAiXG4iOworICAgIHByaW50IEhFQURFUiBAaFByZWZpeEd1
YXJkRW5kOwogCiAgICAgY2xvc2UoSEVBREVSKTsKIApAQCAtMTE4Niw2ICsxMjQwLDggQEAgc3Vi
IFdyaXRlRGF0YSB7CiAgICAgcHJpbnQgSU1QTCBAY1ByZWZpeDsKICAgICBwcmludCBJTVBMICIj
aW5jbHVkZSA8Z2xpYi1vYmplY3QuaD5cbiI7CiAgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgXCJj
b25maWcuaFwiXG5cbiI7CisgICAgcHJpbnQgSU1QTCBAY29uZGl0aW9uR3VhcmRTdGFydDsKKyAg
ICBwcmludCBJTVBMICJcbiI7CiAgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgPHd0Zi9HZXRQdHIu
aD5cbiI7CiAgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD5cbiI7CiAgICAg
cHJpbnQgSU1QTCBtYXAgeyAiI2luY2x1ZGUgXCIkX1wiXG4iIH0gc29ydCBrZXlzKCVpbXBsSW5j
bHVkZXMpOwpAQCAtMTE5NCw2ICsxMjUwLDcgQEAgc3ViIFdyaXRlRGF0YSB7CiAKICAgICBwcmlu
dCBJTVBMICJcbiI7CiAgICAgcHJpbnQgSU1QTCBAY0JvZHlQcml2OworICAgIHByaW50IElNUEwg
QGNvbmRpdGlvbkd1YXJkRW5kOwogCiAgICAgY2xvc2UoSU1QTCk7CiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbSBiL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQppbmRleCBlMDZiMjc0Li5jMGE0NmIx
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMu
cG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCkBA
IC03OTAsNiArNzkwLDEyIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAgICAgICAgICAgIHB1
c2goQGhlYWRlckF0dHJpYnV0ZXMsICRwcm9wZXJ0eSkgaWYgJHB1YmxpYzsKICAgICAgICAgICAg
ICAgICBwdXNoKEBwcml2YXRlSGVhZGVyQXR0cmlidXRlcywgJHByb3BlcnR5KSB1bmxlc3MgJHB1
YmxpYzsKICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0
ZUNvbmRpdGlvbmFsU3RyaW5nID0gR2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkYXR0cmlidXRl
LT5zaWduYXR1cmUpOworICAgICAgICAgICAgICAgIGlmICgkYXR0cmlidXRlQ29uZGl0aW9uYWxT
dHJpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaGVhZGVyQXR0cmlidXRlcywgIiNp
ZiAke2F0dHJpYnV0ZUNvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJHB1YmxpYzsKKyAgICAgICAg
ICAgICAgICAgICAgcHVzaChAcHJpdmF0ZUhlYWRlckF0dHJpYnV0ZXMsICIjaWYgJHthdHRyaWJ1
dGVDb25kaXRpb25hbFN0cmluZ31cbiIpIHVubGVzcyAkcHVibGljOworICAgICAgICAgICAgICAg
IH0KKwogICAgICAgICAgICAgICAgICMgLSBHRVRURVIKICAgICAgICAgICAgICAgICBteSAkZ2V0
dGVyID0gIi0gKCIgLiAkYXR0cmlidXRlVHlwZSAuICIpIiAuICRhdHRyaWJ1dGVOYW1lIC4gJGRl
Y2xhcmF0aW9uU3VmZml4OwogICAgICAgICAgICAgICAgIHB1c2goQGhlYWRlckF0dHJpYnV0ZXMs
ICRnZXR0ZXIpIGlmICRwdWJsaWM7CkBAIC04MDEsNiArODA3LDExIEBAIHN1YiBHZW5lcmF0ZUhl
YWRlcgogICAgICAgICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJBdHRyaWJ1dGVzLCAkc2V0dGVy
KSBpZiAkcHVibGljOwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBwcml2YXRlSGVhZGVyQXR0
cmlidXRlcywgJHNldHRlcikgdW5sZXNzICRwdWJsaWM7CiAgICAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZykgeworICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJBdHRyaWJ1dGVzLCAiI2VuZGlmXG4iKSBpZiAkcHVi
bGljOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBwcml2YXRlSGVhZGVyQXR0cmlidXRlcywg
IiNlbmRpZlxuIikgdW5sZXNzICRwdWJsaWM7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAKQEAgLTEyNjgsNiArMTI3OSw4IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnQgPSAkZ2V0dGVyQ29udGVu
dEhlYWQgLiAkZ2V0dGVyQ29udGVudFRhaWw7CiAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAg
IG15ICRhdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZyA9IEdlbmVyYXRlQ29uZGl0aW9uYWxTdHJp
bmcoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiI2lmICR7YXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkYXR0cmlidXRlQ29u
ZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGdldHRlclNp
Zyk7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgJGpzQ29udGV4dFNldHRlclxuIik7CkBAIC0xMjg4LDcg
KzEzMDEsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gJGdldHRl
ckNvbnRlbnQ7XG4iKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAifVxuXG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuIik7CiAK
ICAgICAgICAgICAgICMgLSBTRVRURVIKICAgICAgICAgICAgIGlmICghJGF0dHJpYnV0ZUlzUmVh
ZG9ubHkpIHsKQEAgLTEzMDksNiArMTMyMiw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9u
CiAKICAgICAgICAgICAgICAgICBteSAkc2V0dGVyU2lnID0gIi0gKHZvaWQpJHNldHRlck5hbWU6
KCRhdHRyaWJ1dGVUeXBlKSRhcmdOYW1lXG4iOwogCisgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkc2V0
dGVyU2lnKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwogICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRqc0NvbnRleHRTZXR0ZXJcbiIp
OwpAQCAtMTM0NCw4ICsxMzU4LDExIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAg
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICRleGNlcHRpb25SYWlzZU9u
RXJyb3JcbiIpIGlmICRoYXNTZXR0ZXJFeGNlcHRpb247CiAgICAgICAgICAgICAgICAgfQogCi0g
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOworICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuIik7CiAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAkYXR0cmlidXRlQ29uZGl0aW9u
YWxTdHJpbmc7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIik7CiAgICAgICAg
IH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
CmluZGV4IDAxNjdhNGYuLjQ5NmExZTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JWOC5wbQpAQCAtMTI3NSw5ICsxMjc1LDkgQEAgc3ViIEdlbmVyYXRlQmF0Y2hl
ZEF0dHJpYnV0ZURhdGEKIAogICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQCRhdHRyaWJ1dGVz
KSB7CiAgICAgICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9IEdlbmVyYXRlQ29uZGl0aW9uYWxT
dHJpbmcoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlKTsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJcbiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwor
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIikg
aWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgICAgICBHZW5lcmF0ZVNpbmdsZUJhdGNoZWRBdHRy
aWJ1dGUoJGludGVyZmFjZU5hbWUsICRhdHRyaWJ1dGUsICIsIiwgIiIpOwotICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIlxuI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAk
Y29uZGl0aW9uYWxTdHJpbmc7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlmIC8v
ICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dl
YktpdERPTVRlc3RDYWxsYmFjay5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9H
T2JqZWN0L1dlYktpdERPTVRlc3RDYWxsYmFjay5jcHAKaW5kZXggNmNmZWM3NC4uMDJmMjY2YyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRE
T01UZXN0Q2FsbGJhY2suY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dP
YmplY3QvV2ViS2l0RE9NVGVzdENhbGxiYWNrLmNwcApAQCAtMjEsNiArMjEsOCBAQAogI2luY2x1
ZGUgPGdsaWItb2JqZWN0Lmg+CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKKyNpZiBFTkFCTEUoREFU
QUJBU0UpCisKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTE4NCwzICsxODYsNCBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfZG9tX3Rlc3RfY2FsbGJhY2tfaW5pdChXZWJLaXRET01UZXN0Q2FsbGJhY2sq
IHJlcXVlc3QpCiB7CiB9CiAKKyNlbmRpZiAvKiBFTkFCTEUoREFUQUJBU0UpICovCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RD
YWxsYmFjay5oIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRE
T01UZXN0Q2FsbGJhY2suaAppbmRleCAwODhjNDU3Li5mNmNjZjNlIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RDYWxsYmFjay5o
CisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVz
dENhbGxiYWNrLmgKQEAgLTIxLDYgKzIxLDggQEAKICNpZm5kZWYgV2ViS2l0RE9NVGVzdENhbGxi
YWNrX2gKICNkZWZpbmUgV2ViS2l0RE9NVGVzdENhbGxiYWNrX2gKIAorI2lmIEVOQUJMRShEQVRB
QkFTRSkKKwogI2luY2x1ZGUgIndlYmtpdC93ZWJraXRkb21kZWZpbmVzLmgiCiAjaW5jbHVkZSA8
Z2xpYi1vYmplY3QuaD4KICNpbmNsdWRlIDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgpAQCAtNTcs
NCArNTksNiBAQCB3ZWJraXRfZG9tX3Rlc3RfY2FsbGJhY2tfY2FsbGJhY2tfd2l0aF9ub25fYm9v
bF9yZXR1cm5fdHlwZSAoV2ViS2l0RE9NVGVzdENhbGxiYQogCiBHX0VORF9ERUNMUwogCisjZW5k
aWYgLyogRU5BQkxFKERBVEFCQVNFKSAqLworCiAjZW5kaWYgLyogV2ViS2l0RE9NVGVzdENhbGxi
YWNrX2ggKi8KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmpl
Y3QvV2ViS2l0RE9NVGVzdENhbGxiYWNrUHJpdmF0ZS5oIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0Q2FsbGJhY2tQcml2YXRlLmgKaW5kZXggNDU4
ODRiMi4uYjUyODBiMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0Q2FsbGJhY2tQcml2YXRlLmgKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0Q2FsbGJhY2tQcml2YXRlLmgK
QEAgLTIxLDYgKzIxLDggQEAKICNpZm5kZWYgV0VCX0tJVF9ET01fVEVTVF9DQUxMQkFDS19QUklW
QVRFX0gKICNkZWZpbmUgV0VCX0tJVF9ET01fVEVTVF9DQUxMQkFDS19QUklWQVRFX0gKIAorI2lm
IEVOQUJMRShEQVRBQkFTRSkKKwogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CiAjaW5jbHVkZSA8
d2Via2l0L1dlYktpdERPTU9iamVjdC5oPgogI2luY2x1ZGUgIlRlc3RDYWxsYmFjay5oIgpAQCAt
MzYsNCArMzgsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiAKKyNlbmRpZiAvKiBFTkFCTEUoREFUQUJBU0UpICovCisKICNlbmRpZiAvKiBXRUJfS0lUX0RP
TV9URVNUX0NBTExCQUNLX1BSSVZBVEVfSCAqLwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlLmNwcCBiL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEludGVyZmFjZS5j
cHAKaW5kZXggMmJlMDI3Ny4uZmY0MmI3MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlLmNwcAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RJbnRlcmZhY2Uu
Y3BwCkBAIC0yMSw2ICsyMSw4IEBACiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KICNpbmNsdWRl
ICJjb25maWcuaCIKIAorI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9u
MikKKwogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgpAQCAtMTM3LDMgKzEzOSw0IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfaW5pdChXZWJLaXRET01UZXN0SW50ZXJmYWNlKiBy
ZXF1ZXN0KQogewogfQogCisjZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShD
b25kaXRpb24yKSAqLwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RJbnRlcmZhY2UuaAppbmRleCBmOWFmODY2Li44
ZTJkYzA4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0
L1dlYktpdERPTVRlc3RJbnRlcmZhY2UuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RJbnRlcmZhY2UuaApAQCAtMjEsNiArMjEsOCBAQAog
I2lmbmRlZiBXZWJLaXRET01UZXN0SW50ZXJmYWNlX2gKICNkZWZpbmUgV2ViS2l0RE9NVGVzdElu
dGVyZmFjZV9oCiAKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIp
CisKICNpbmNsdWRlICJ3ZWJraXQvd2Via2l0ZG9tZGVmaW5lcy5oIgogI2luY2x1ZGUgPGdsaWIt
b2JqZWN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdGRlZmluZXMuaD4KQEAgLTQ4LDQgKzUw
LDYgQEAgd2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9nZXRfdHlwZSAodm9pZCk7CiAKIEdfRU5E
X0RFQ0xTCiAKKyNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlv
bjIpICovCisKICNlbmRpZiAvKiBXZWJLaXRET01UZXN0SW50ZXJmYWNlX2ggKi8KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdElu
dGVyZmFjZVByaXZhdGUuaCBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3Qv
V2ViS2l0RE9NVGVzdEludGVyZmFjZVByaXZhdGUuaAppbmRleCA0NWZiOTQ5Li5hY2ZmMmI3IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERP
TVRlc3RJbnRlcmZhY2VQcml2YXRlLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvR09iamVjdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlUHJpdmF0ZS5oCkBAIC0yMSw2ICsyMSw4
IEBACiAjaWZuZGVmIFdFQl9LSVRfRE9NX1RFU1RfSU5URVJGQUNFX1BSSVZBVEVfSAogI2RlZmlu
ZSBXRUJfS0lUX0RPTV9URVNUX0lOVEVSRkFDRV9QUklWQVRFX0gKIAorI2lmIEVOQUJMRShDb25k
aXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKKwogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+
CiAjaW5jbHVkZSA8d2Via2l0L1dlYktpdERPTU9iamVjdC5oPgogI2luY2x1ZGUgIlRlc3RJbnRl
cmZhY2UuaCIKQEAgLTM2LDQgKzM4LDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCisjZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShD
b25kaXRpb24yKSAqLworCiAjZW5kaWYgLyogV0VCX0tJVF9ET01fVEVTVF9JTlRFUkZBQ0VfUFJJ
VkFURV9IICovCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2Jq
ZWN0L1dlYktpdERPTVRlc3RPYmouY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAppbmRleCA5OTZiZDAxLi4yYzE3YTBhIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRl
c3RPYmouY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2Vi
S2l0RE9NVGVzdE9iai5jcHAKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlIDxnbGliLW9iamVj
dC5oPgogI2luY2x1ZGUgImNvbmZpZy5oIgogCisKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTUz
NSw2ICs1MzYsNzUgQEAgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfc2NyaXB0X3N0cmluZ19hdHRy
IChXZWJLaXRET01UZXN0T2JqICpzZWxmKQogCiB9CiAKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkK
K2dsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9jb25kaXRpb25hbF9hdHRyMSAoV2ViS2l0
RE9NVGVzdE9iaiAqc2VsZikKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoc2VsZiwgMCk7
CisgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAg
Z2xvbmcgcmVzID0gaXRlbS0+Y29uZGl0aW9uYWxBdHRyMSgpOworICAgIHJldHVybiByZXM7CisK
K30KKyNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMSkgKi8KKworI2lmIEVOQUJMRShDb25kaXRp
b24xKQordm9pZAord2Via2l0X2RvbV90ZXN0X29ial9zZXRfY29uZGl0aW9uYWxfYXR0cjEgKFdl
YktpdERPTVRlc3RPYmogKnNlbGYsIGdsb25nIHZhbHVlKQoreworICAgIGdfcmV0dXJuX2lmX2Zh
aWwgKHNlbGYpOworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNl
bGYpOworICAgIGl0ZW0tPnNldENvbmRpdGlvbmFsQXR0cjEodmFsdWUpOworCit9CisjZW5kaWYg
LyogRU5BQkxFKENvbmRpdGlvbjEpICovCisKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5B
QkxFKENvbmRpdGlvbjIpCitnbG9uZword2Via2l0X2RvbV90ZXN0X29ial9nZXRfY29uZGl0aW9u
YWxfYXR0cjIgKFdlYktpdERPTVRlc3RPYmogKnNlbGYpCit7CisgICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwgKHNlbGYsIDApOworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHNlbGYpOworICAgIGdsb25nIHJlcyA9IGl0ZW0tPmNvbmRpdGlvbmFsQXR0cjIoKTsKKyAg
ICByZXR1cm4gcmVzOworCit9CisjZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJM
RShDb25kaXRpb24yKSAqLworCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25k
aXRpb24yKQordm9pZAord2Via2l0X2RvbV90ZXN0X29ial9zZXRfY29uZGl0aW9uYWxfYXR0cjIg
KFdlYktpdERPTVRlc3RPYmogKnNlbGYsIGdsb25nIHZhbHVlKQoreworICAgIGdfcmV0dXJuX2lm
X2ZhaWwgKHNlbGYpOworICAgIFdlYkNvcmU6OlRlc3RPYmogKiBpdGVtID0gV2ViS2l0Ojpjb3Jl
KHNlbGYpOworICAgIGl0ZW0tPnNldENvbmRpdGlvbmFsQXR0cjIodmFsdWUpOworCit9CisjZW5k
aWYgLyogRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRpb24yKSAqLworCisjaWYg
RU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQorZ2xvbmcKK3dlYmtpdF9k
b21fdGVzdF9vYmpfZ2V0X2NvbmRpdGlvbmFsX2F0dHIzIChXZWJLaXRET01UZXN0T2JqICpzZWxm
KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChzZWxmLCAwKTsKKyAgICBXZWJDb3JlOjpU
ZXN0T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBnbG9uZyByZXMgPSBpdGVt
LT5jb25kaXRpb25hbEF0dHIzKCk7CisgICAgcmV0dXJuIHJlczsKKworfQorI2VuZGlmIC8qIEVO
QUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikgKi8KKworI2lmIEVOQUJMRShD
b25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKK3ZvaWQKK3dlYmtpdF9kb21fdGVzdF9v
Ympfc2V0X2NvbmRpdGlvbmFsX2F0dHIzIChXZWJLaXRET01UZXN0T2JqICpzZWxmLCBnbG9uZyB2
YWx1ZSkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsIChzZWxmKTsKKyAgICBXZWJDb3JlOjpUZXN0
T2JqICogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBpdGVtLT5zZXRDb25kaXRpb25h
bEF0dHIzKHZhbHVlKTsKKworfQorI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMikgKi8KKwogCiBHX0RFRklORV9UWVBFKFdlYktpdERPTVRlc3RPYmosIHdl
YmtpdF9kb21fdGVzdF9vYmosIFdFQktJVF9UWVBFX0RPTV9PQkpFQ1QpCiAKQEAgLTU4NCw2ICs2
NTQsMTUgQEAgZW51bSB7CiAgICAgUFJPUF9BVFRSX1dJVEhfR0VUVEVSX0VYQ0VQVElPTiwKICAg
ICBQUk9QX0NVU1RPTV9BVFRSLAogICAgIFBST1BfU0NSSVBUX1NUUklOR19BVFRSLAorI2lmIEVO
QUJMRShDb25kaXRpb24xKQorICAgIFBST1BfQ09ORElUSU9OQUxfQVRUUjEsCisjZW5kaWYgLyog
RU5BQkxFKENvbmRpdGlvbjEpICovCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShD
b25kaXRpb24yKQorICAgIFBST1BfQ09ORElUSU9OQUxfQVRUUjIsCisjZW5kaWYgLyogRU5BQkxF
KENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRpb24yKSAqLworI2lmIEVOQUJMRShDb25kaXRp
b24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKKyAgICBQUk9QX0NPTkRJVElPTkFMX0FUVFIzLAor
I2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikgKi8KIH07
CiAKIApAQCAtNjQwLDYgKzcxOSwyNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BfaWQsIGNvbgogICAgICAg
ICAgY29yZVNlbGYtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKChnX3ZhbHVlX2dldF9sb25n
KHZhbHVlKSkgLCBlYyApOwogICAgICAgICAgYnJlYWs7CiAgICAgfQorICNpZiBFTkFCTEUoQ29u
ZGl0aW9uMSkKKyAgICBjYXNlIFBST1BfQ09ORElUSU9OQUxfQVRUUjE6CisgICAgeworICAgICAg
ICAgY29yZVNlbGYtPnNldENvbmRpdGlvbmFsQXR0cjEoKGdfdmFsdWVfZ2V0X2xvbmcodmFsdWUp
KSApOworICAgICAgICAgYnJlYWs7CisgICAgfQorICNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9u
MSkgKi8KKyAjaWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRpb24yKQorICAg
IGNhc2UgUFJPUF9DT05ESVRJT05BTF9BVFRSMjoKKyAgICB7CisgICAgICAgICBjb3JlU2VsZi0+
c2V0Q29uZGl0aW9uYWxBdHRyMigoZ192YWx1ZV9nZXRfbG9uZyh2YWx1ZSkpICk7CisgICAgICAg
ICBicmVhazsKKyAgICB9CisgI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUo
Q29uZGl0aW9uMikgKi8KKyAjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRp
b24yKQorICAgIGNhc2UgUFJPUF9DT05ESVRJT05BTF9BVFRSMzoKKyAgICB7CisgICAgICAgICBj
b3JlU2VsZi0+c2V0Q29uZGl0aW9uYWxBdHRyMygoZ192YWx1ZV9nZXRfbG9uZyh2YWx1ZSkpICk7
CisgICAgICAgICBicmVhazsKKyAgICB9CisgI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xKSB8
fCBFTkFCTEUoQ29uZGl0aW9uMikgKi8KICAgICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1Rf
V0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOwogICAgICAg
ICBicmVhazsKQEAgLTcxNSw2ICs4MTUsMjcgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0
X29ial9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmEKICAg
ICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIGNvbnZlcnRUb1VURjhTdHJpbmcoY29y
ZVNlbGYtPnNjcmlwdFN0cmluZ0F0dHIoKSkpOwogICAgICAgICAgYnJlYWs7CiAgICAgfQorICNp
ZiBFTkFCTEUoQ29uZGl0aW9uMSkKKyAgICBjYXNlIFBST1BfQ09ORElUSU9OQUxfQVRUUjE6Cisg
ICAgeworICAgICAgICAgZ192YWx1ZV9zZXRfbG9uZyh2YWx1ZSwgY29yZVNlbGYtPmNvbmRpdGlv
bmFsQXR0cjEoKSk7CisgICAgICAgICBicmVhazsKKyAgICB9CisgI2VuZGlmIC8qIEVOQUJMRShD
b25kaXRpb24xKSAqLworICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlv
bjIpCisgICAgY2FzZSBQUk9QX0NPTkRJVElPTkFMX0FUVFIyOgorICAgIHsKKyAgICAgICAgIGdf
dmFsdWVfc2V0X2xvbmcodmFsdWUsIGNvcmVTZWxmLT5jb25kaXRpb25hbEF0dHIyKCkpOworICAg
ICAgICAgYnJlYWs7CisgICAgfQorICNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5B
QkxFKENvbmRpdGlvbjIpICovCisgI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMikKKyAgICBjYXNlIFBST1BfQ09ORElUSU9OQUxfQVRUUjM6CisgICAgeworICAgICAg
ICAgZ192YWx1ZV9zZXRfbG9uZyh2YWx1ZSwgY29yZVNlbGYtPmNvbmRpdGlvbmFsQXR0cjMoKSk7
CisgICAgICAgICBicmVhazsKKyAgICB9CisgI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24xKSB8
fCBFTkFCTEUoQ29uZGl0aW9uMikgKi8KICAgICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1Rf
V0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOwogICAgICAg
ICBicmVhazsKQEAgLTgyNyw2ICs5NDgsMzkgQEAgR19NQVhMT05HLCAvKiBtYXggKi8KICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJl
YWQtb25seSAgZ2NoYXIqICBUZXN0T2JqLnNjcmlwdC1zdHJpbmctYXR0ciIsIC8qIGxvbmdlciAt
IGNvdWxkIGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwgLyogZGVm
YXVsdCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKyAjaWYgRU5BQkxFKENvbmRpdGlv
bjEpCisgICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9DT05ESVRJT05BTF9BVFRS
MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19sb25n
KCJjb25kaXRpb25hbC1hdHRyMSIsIC8qIG5hbWUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3Rfb2JqX2NvbmRpdGlvbmFs
LWF0dHIxIiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlYWQtd3JpdGUgIGdsb25nIFRl
c3RPYmouY29uZGl0aW9uYWwtYXR0cjEiLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUg
ZXh0cmEgZG9jIHN0dWZmIGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR19NSU5MT05HLCAvKiBtaW4gKi8KK0dfTUFYTE9O
RywgLyogbWF4ICovCiswLCAvKiBkZWZhdWx0ICovCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUp
KTsKKyAjZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjEpICovCisgI2lmIEVOQUJMRShDb25kaXRp
b24xKSAmJiBFTkFCTEUoQ29uZGl0aW9uMikKKyAgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9w
cm9wZXJ0eShnb2JqZWN0Q2xhc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBQUk9QX0NPTkRJVElPTkFMX0FUVFIyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ19wYXJhbV9zcGVjX2xvbmcoImNvbmRpdGlvbmFsLWF0dHIyIiwgLyogbmFtZSAqLwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAidGVzdF9vYmpfY29uZGl0aW9uYWwtYXR0cjIiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAicmVhZC13cml0ZSAgZ2xvbmcgVGVzdE9iai5jb25kaXRpb25hbC1hdHRyMiIsIC8qIGxvbmdl
ciAtIGNvdWxkIGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX01JTkxP
TkcsIC8qIG1pbiAqLworR19NQVhMT05HLCAvKiBtYXggKi8KKzAsIC8qIGRlZmF1bHQgKi8KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
V0VCS0lUX1BBUkFNX1JFQURXUklURSkpOworICNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMSkg
JiYgRU5BQkxFKENvbmRpdGlvbjIpICovCisgI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMikKKyAgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2Jq
ZWN0Q2xhc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0NPTkRJ
VElPTkFMX0FUVFIzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJh
bV9zcGVjX2xvbmcoImNvbmRpdGlvbmFsLWF0dHIzIiwgLyogbmFtZSAqLworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9vYmpf
Y29uZGl0aW9uYWwtYXR0cjMiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVhZC13cml0
ZSAgZ2xvbmcgVGVzdE9iai5jb25kaXRpb25hbC1hdHRyMyIsIC8qIGxvbmdlciAtIGNvdWxkIGRv
IHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHX01JTkxPTkcsIC8qIG1pbiAq
LworR19NQVhMT05HLCAvKiBtYXggKi8KKzAsIC8qIGRlZmF1bHQgKi8KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFN
X1JFQURXUklURSkpOworICNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENv
bmRpdGlvbjIpICovCiAKIAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaCBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCmluZGV4IDI4MmVkYjguLmIzYjdhZTgg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0
RE9NVGVzdE9iai5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3Qv
V2ViS2l0RE9NVGVzdE9iai5oCkBAIC0yMSw2ICsyMSw3IEBACiAjaWZuZGVmIFdlYktpdERPTVRl
c3RPYmpfaAogI2RlZmluZSBXZWJLaXRET01UZXN0T2JqX2gKIAorCiAjaW5jbHVkZSAid2Via2l0
L3dlYmtpdGRvbWRlZmluZXMuaCIKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgogI2luY2x1ZGUg
PHdlYmtpdC93ZWJraXRkZWZpbmVzLmg+CkBAIC0xNzgsNiArMTc5LDM3IEBAIHdlYmtpdF9kb21f
dGVzdF9vYmpfc2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uIChXZWJLaXRET01UZXN0T2Jq
ICpzZWxmLCBnbG9uCiBXRUJLSVRfQVBJIGdjaGFyKiAKIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0
X3NjcmlwdF9zdHJpbmdfYXR0ciAoV2ViS2l0RE9NVGVzdE9iaiAqc2VsZik7CiAKKyNpZiBFTkFC
TEUoQ29uZGl0aW9uMSkKK1dFQktJVF9BUEkgZ2xvbmcKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0
X2NvbmRpdGlvbmFsX2F0dHIxIChXZWJLaXRET01UZXN0T2JqICpzZWxmKTsKKyNlbmRpZiAvKiBF
TkFCTEUoQ29uZGl0aW9uMSkgKi8KKworI2lmIEVOQUJMRShDb25kaXRpb24xKQorV0VCS0lUX0FQ
SSB2b2lkCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9jb25kaXRpb25hbF9hdHRyMSAoV2ViS2l0
RE9NVGVzdE9iaiAqc2VsZiwgZ2xvbmcgdmFsdWUpOworI2VuZGlmIC8qIEVOQUJMRShDb25kaXRp
b24xKSAqLworCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRpb24yKQor
V0VCS0lUX0FQSSBnbG9uZword2Via2l0X2RvbV90ZXN0X29ial9nZXRfY29uZGl0aW9uYWxfYXR0
cjIgKFdlYktpdERPTVRlc3RPYmogKnNlbGYpOworI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24x
KSAmJiBFTkFCTEUoQ29uZGl0aW9uMikgKi8KKworI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBF
TkFCTEUoQ29uZGl0aW9uMikKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV90ZXN0X29ial9z
ZXRfY29uZGl0aW9uYWxfYXR0cjIgKFdlYktpdERPTVRlc3RPYmogKnNlbGYsIGdsb25nIHZhbHVl
KTsKKyNlbmRpZiAvKiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIpICov
CisKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCitXRUJLSVRf
QVBJIGdsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9jb25kaXRpb25hbF9hdHRyMyAoV2Vi
S2l0RE9NVGVzdE9iaiAqc2VsZik7CisjZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVO
QUJMRShDb25kaXRpb24yKSAqLworCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShD
b25kaXRpb24yKQorV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9jb25k
aXRpb25hbF9hdHRyMyAoV2ViS2l0RE9NVGVzdE9iaiAqc2VsZiwgZ2xvbmcgdmFsdWUpOworI2Vu
ZGlmIC8qIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikgKi8KKwogR19F
TkRfREVDTFMKIAorCiAjZW5kaWYgLyogV2ViS2l0RE9NVGVzdE9ial9oICovCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwIGIv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAppbmRl
eCA1MWViNGVjLi5iMGIxYmFlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKQEAgLTE5LDYgKzE5LDkgQEAKICovCiAKICNp
bmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMikKKwogI2luY2x1ZGUgIkpTVGVzdEludGVyZmFjZS5oIgogCiAjaW5jbHVkZSAiVGVz
dEludGVyZmFjZS5oIgpAQCAtMTczLDMgKzE3Niw1IEBAIFRlc3RJbnRlcmZhY2UqIHRvVGVzdElu
dGVyZmFjZShKU0M6OkpTVmFsdWUgdmFsdWUpCiB9CiAKIH0KKworI2VuZGlmIC8vIEVOQUJMRShD
b25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5oIGIvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKaW5kZXggYzA3NmRiZC4uOTY1ZGNm
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50
ZXJmYWNlLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50
ZXJmYWNlLmgKQEAgLTIxLDYgKzIxLDggQEAKICNpZm5kZWYgSlNUZXN0SW50ZXJmYWNlX2gKICNk
ZWZpbmUgSlNUZXN0SW50ZXJmYWNlX2gKIAorI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMikKKwogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgPHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3QuaD4KICNpbmNsdWRlIDxydW50aW1lL09iamVjdFByb3RvdHlw
ZS5oPgpAQCAtNzgsNCArODAsNiBAQCBKU0M6OkpTVmFsdWUganNUZXN0SW50ZXJmYWNlQ29uc3Ry
dWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKKyNlbmRpZiAvLyBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxF
KENvbmRpdGlvbjIpCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggOTI2ZDEzNy4uODYyY2JlNyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC00Niw3ICs0Niw3IEBA
IEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNUZXN0T2JqKTsKICNkZWZpbmUgVEhVTktfR0VO
RVJBVE9SKGdlbmVyYXRvcikKICNlbmRpZgogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUg
SlNUZXN0T2JqVGFibGVWYWx1ZXNbMTVdID0KK3N0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBK
U1Rlc3RPYmpUYWJsZVZhbHVlc1sxOF0gPQogewogICAgIHsgInJlYWRPbmx5SW50QXR0ciIsIERv
bnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWFkT25seUludEF0dHIpLCAoaW50cHRyX3QpMCBUSFVO
S19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJyZWFkT25seVN0cmluZ0F0dHIiLCBEb250RGVsZXRl
IHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqUmVhZE9ubHlTdHJpbmdBdHRyKSwgKGludHB0cl90KTAgVEhVTktfR0VO
RVJBVE9SKDApIH0sCkBAIC02MSwxMiArNjEsMjEgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZh
bHVlIEpTVGVzdE9ialRhYmxlVmFsdWVzWzE1XSA9CiAgICAgeyAiYXR0cldpdGhHZXR0ZXJFeGNl
cHRpb24iLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKSwgKGludHB0cl90
KXNldEpTVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uIFRIVU5LX0dFTkVSQVRPUigwKSB9
LAogICAgIHsgImN1c3RvbUF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8
UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakN1c3RvbUF0dHIpLCAoaW50cHRy
X3Qpc2V0SlNUZXN0T2JqQ3VzdG9tQXR0ciBUSFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJz
Y3JpcHRTdHJpbmdBdHRyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialNjcmlwdFN0cmluZ0F0
dHIpLCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgfSwKKyNpZiBFTkFCTEUoQ29uZGl0
aW9uMSkKKyAgICB7ICJjb25kaXRpb25hbEF0dHIxIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDb25kaXRpb25h
bEF0dHIxKSwgKGludHB0cl90KXNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEgVEhVTktfR0VO
RVJBVE9SKDApIH0sCisjZW5kaWYKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENv
bmRpdGlvbjIpCisgICAgeyAiY29uZGl0aW9uYWxBdHRyMiIsIERvbnREZWxldGUsIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ29uZGl0
aW9uYWxBdHRyMiksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyIFRIVU5L
X0dFTkVSQVRPUigwKSB9LAorI2VuZGlmCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJM
RShDb25kaXRpb24yKQorICAgIHsgImNvbmRpdGlvbmFsQXR0cjMiLCBEb250RGVsZXRlLCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNv
bmRpdGlvbmFsQXR0cjMpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMyBU
SFVOS19HRU5FUkFUT1IoMCkgfSwKKyNlbmRpZgogICAgIHsgImNvbnN0cnVjdG9yIiwgRG9udEVu
dW0gfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RPYmpDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkwIFRIVU5LX0dFTkVSQVRP
UigwKSB9LAogICAgIHsgMCwgMCwgMCwgMCBUSFVOS19HRU5FUkFUT1IoMCkgfQogfTsKIAogI3Vu
ZGVmIFRIVU5LX0dFTkVSQVRPUgotc3RhdGljIEpTQ19DT05TVF9IQVNIVEFCTEUgSGFzaFRhYmxl
IEpTVGVzdE9ialRhYmxlID0geyAzNCwgMzEsIEpTVGVzdE9ialRhYmxlVmFsdWVzLCAwIH07Citz
dGF0aWMgSlNDX0NPTlNUX0hBU0hUQUJMRSBIYXNoVGFibGUgSlNUZXN0T2JqVGFibGUgPSB7IDY1
LCA2MywgSlNUZXN0T2JqVGFibGVWYWx1ZXMsIDAgfTsKIC8qIEhhc2ggdGFibGUgZm9yIGNvbnN0
cnVjdG9yICovCiAjaWYgRU5BQkxFKEpJVCkKICNkZWZpbmUgVEhVTktfR0VORVJBVE9SKGdlbmVy
YXRvcikgLCBnZW5lcmF0b3IKQEAgLTMxNiw2ICszMjUsMzkgQEAgSlNWYWx1ZSBqc1Rlc3RPYmpT
Y3JpcHRTdHJpbmdBdHRyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3Qg
SWRlbnQKICAgICByZXR1cm4gcmVzdWx0OwogfQogCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpCitK
U1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkpOworICAgIFVO
VVNFRF9QQVJBTShleGVjKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2Jq
Kj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGV4
ZWMsIGltcC0+Y29uZGl0aW9uYWxBdHRyMSgpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIpCitKU1Zh
bHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNs
b3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMg
PSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkpOworICAgIFVOVVNF
RF9QQVJBTShleGVjKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4o
Y2FzdGVkVGhpcy0+aW1wbCgpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGV4ZWMs
IGltcC0+Y29uZGl0aW9uYWxBdHRyMigpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorI2VuZGlm
CisKKyNpZiBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCitKU1ZhbHVl
IGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RC
YXNlLCBjb25zdCBJZGVudGlmaWVyJikKK3sKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBz
dGF0aWNfY2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkpOworICAgIFVOVVNFRF9Q
QVJBTShleGVjKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2Fz
dGVkVGhpcy0+aW1wbCgpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGV4ZWMsIGlt
cC0+Y29uZGl0aW9uYWxBdHRyMygpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorI2VuZGlmCisK
IEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNs
b3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKIHsKICAgICBKU1Rlc3RPYmoqIGRvbU9iamVjdCA9
IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CkBAIC0zOTEsNiAr
NDMzLDMzIEBAIHZvaWQgc2V0SlNUZXN0T2JqQ3VzdG9tQXR0cihFeGVjU3RhdGUqIGV4ZWMsIEpT
T2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlCiAgICAgc3RhdGljX2Nhc3Q8SlNUZXN0
T2JqKj4odGhpc09iamVjdCktPnNldEN1c3RvbUF0dHIoZXhlYywgdmFsdWUpOwogfQogCisjaWYg
RU5BQkxFKENvbmRpdGlvbjEpCit2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjEoRXhl
Y1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAg
ICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBzdGF0aWNfY2FzdDxKU1Rlc3RPYmoqPih0aGlzT2Jq
ZWN0KTsKKyAgICBUZXN0T2JqKiBpbXAgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTsKKyAgICBpbXAtPnNldENvbmRpdGlvbmFsQXR0cjEodmFsdWUudG9JbnQzMihl
eGVjKSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFCTEUoQ29u
ZGl0aW9uMikKK3ZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMihFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KHRoaXNPYmplY3QpOworICAg
IFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkp
OworICAgIGltcC0+c2V0Q29uZGl0aW9uYWxBdHRyMih2YWx1ZS50b0ludDMyKGV4ZWMpKTsKK30K
KyNlbmRpZgorCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQor
dm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmpl
Y3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCit7CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRU
aGlzID0gc3RhdGljX2Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CisgICAgVGVzdE9iaiog
aW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgaW1w
LT5zZXRDb25kaXRpb25hbEF0dHIzKHZhbHVlLnRvSW50MzIoZXhlYykpOworfQorI2VuZGlmCisK
IEpTVmFsdWUgSlNUZXN0T2JqOjpnZXRDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiB7CiAgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9y
PEpTVGVzdE9iakNvbnN0cnVjdG9yPihleGVjLCBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVj
dCo+KGdsb2JhbE9iamVjdCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmggYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouaAppbmRleCBhMWYyMDhkLi4yZmViOTM3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaAorKysgYi9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaApAQCAtMTM3LDYgKzEzNywxMiBAQCB2b2lkIHNl
dEpTVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U09iamVjdCosIEpTQzo6SgogSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakN1c3RvbUF0dHIoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogdm9pZCBz
ZXRKU1Rlc3RPYmpDdXN0b21BdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpT
Qzo6SlNWYWx1ZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqU2NyaXB0U3RyaW5nQXR0cihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7CitKU0M6
OkpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyMShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7Cit2b2lkIHNldEpTVGVzdE9iakNvbmRp
dGlvbmFsQXR0cjEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVl
KTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEF0dHIyKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKK3ZvaWQgc2V0SlNUZXN0
T2JqQ29uZGl0aW9uYWxBdHRyMihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6
OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsQXR0cjMoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwordm9pZCBz
ZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHIzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVj
dCosIEpTQzo6SlNWYWx1ZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3IoSlND
OjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9PYmpDL0RPTVRlc3RJbnRlcmZhY2UubW0gYi9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9PYmpDL0RPTVRlc3RJbnRlcmZhY2UubW0KaW5kZXggOGZkNzc5MS4uYWI1OTMzMyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0SW50
ZXJmYWNlLm1tCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVz
dEludGVyZmFjZS5tbQpAQCAtMjUsNiArMjUsOSBAQAogICovCiAKICNpbXBvcnQgImNvbmZpZy5o
IgorCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQorCiAjaW1w
b3J0ICJET01JbnRlcm5hbC5oIgogCiAjaW1wb3J0ICJET01UZXN0SW50ZXJmYWNlLmgiCkBAIC04
NSwzICs4OCw1IEBAIERPTVRlc3RJbnRlcmZhY2UgKmtpdChXZWJDb3JlOjpUZXN0SW50ZXJmYWNl
KiB2YWx1ZSkKICAgICBhZGRET01XcmFwcGVyKHdyYXBwZXIsIHZhbHVlKTsKICAgICByZXR1cm4g
W3dyYXBwZXIgYXV0b3JlbGVhc2VdOwogfQorCisjZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjEp
IHx8IEVOQUJMRShDb25kaXRpb24yKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmggYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9PYmpDL0RPTVRlc3RPYmouaAppbmRleCAyNDdmNGEzLi4zMWQ5MDg4IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaApAQCAtNTYsNiArNTYs
MTggQEAKIC0gKGludCljdXN0b21BdHRyOwogLSAodm9pZClzZXRDdXN0b21BdHRyOihpbnQpbmV3
Q3VzdG9tQXR0cjsKIC0gKE5TU3RyaW5nICopc2NyaXB0U3RyaW5nQXR0cjsKKyNpZiBFTkFCTEUo
Q29uZGl0aW9uMSkKKy0gKGludCljb25kaXRpb25hbEF0dHIxOworLSAodm9pZClzZXRDb25kaXRp
b25hbEF0dHIxOihpbnQpbmV3Q29uZGl0aW9uYWxBdHRyMTsKKyNlbmRpZgorI2lmIEVOQUJMRShD
b25kaXRpb24xKSAmJiBFTkFCTEUoQ29uZGl0aW9uMikKKy0gKGludCljb25kaXRpb25hbEF0dHIy
OworLSAodm9pZClzZXRDb25kaXRpb25hbEF0dHIyOihpbnQpbmV3Q29uZGl0aW9uYWxBdHRyMjsK
KyNlbmRpZgorI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKKy0g
KGludCljb25kaXRpb25hbEF0dHIzOworLSAodm9pZClzZXRDb25kaXRpb25hbEF0dHIzOihpbnQp
bmV3Q29uZGl0aW9uYWxBdHRyMzsKKyNlbmRpZgogLSAodm9pZCl2b2lkTWV0aG9kOwogLSAodm9p
ZCl2b2lkTWV0aG9kV2l0aEFyZ3M6KGludClpbnRBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFy
ZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CiAtIChpbnQpaW50TWV0aG9kOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tIGIv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCmluZGV4IDBm
M2ZiNjYuLmQ5ZTkwMTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L09iakMvRE9NVGVzdE9iai5tbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9P
YmpDL0RPTVRlc3RPYmoubW0KQEAgLTIxMiw2ICsyMTIsNDggQEAKICAgICByZXR1cm4gSU1QTC0+
c2NyaXB0U3RyaW5nQXR0cigpOwogfQogCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpCistIChpbnQp
Y29uZGl0aW9uYWxBdHRyMQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Y29uZGl0aW9uYWxBdHRyMSgpOworfQorCistICh2b2lk
KXNldENvbmRpdGlvbmFsQXR0cjE6KGludCluZXdDb25kaXRpb25hbEF0dHIxCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldENvbmRpdGlv
bmFsQXR0cjEobmV3Q29uZGl0aW9uYWxBdHRyMSk7Cit9CisjZW5kaWYKKworI2lmIEVOQUJMRShD
b25kaXRpb24xKSAmJiBFTkFCTEUoQ29uZGl0aW9uMikKKy0gKGludCljb25kaXRpb25hbEF0dHIy
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBJTVBMLT5jb25kaXRpb25hbEF0dHIyKCk7Cit9CisKKy0gKHZvaWQpc2V0Q29uZGl0aW9uYWxB
dHRyMjooaW50KW5ld0NvbmRpdGlvbmFsQXR0cjIKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0Q29uZGl0aW9uYWxBdHRyMihuZXdDb25k
aXRpb25hbEF0dHIyKTsKK30KKyNlbmRpZgorCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVO
QUJMRShDb25kaXRpb24yKQorLSAoaW50KWNvbmRpdGlvbmFsQXR0cjMKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmNvbmRpdGlv
bmFsQXR0cjMoKTsKK30KKworLSAodm9pZClzZXRDb25kaXRpb25hbEF0dHIzOihpbnQpbmV3Q29u
ZGl0aW9uYWxBdHRyMworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBJTVBMLT5zZXRDb25kaXRpb25hbEF0dHIzKG5ld0NvbmRpdGlvbmFsQXR0cjMpOwor
fQorI2VuZGlmCisKIC0gKHZvaWQpdm9pZE1ldGhvZAogewogICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RJbnRlcmZhY2UuaWRsIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VGVzdEludGVyZmFjZS5pZGwKaW5kZXggNWE4YjAwOC4uMWYwYWExOCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEludGVyZmFjZS5pZGwKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEludGVyZmFjZS5pZGwKQEAgLTMwLDYgKzMwLDcg
QEAKIC8vIGNoYW5nZXMgaW4gaXRzIG91cHV0LgogbW9kdWxlIHRlc3QgewogICAgIGludGVyZmFj
ZSBbCisgICAgICAgIENvbmRpdGlvbmFsPUNvbmRpdGlvbjF8Q29uZGl0aW9uMiwKICAgICAgICAg
Q2FuQmVDb25zdHJ1Y3RlZCwKICAgICAgICAgQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4
dAogICAgIF0gVGVzdEludGVyZmFjZSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9UZXN0T2JqLmlkbCBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RPYmouaWRsCmluZGV4IGJkYTI1ODYuLmUwMzM2NWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Rlc3RPYmouaWRsCkBAIC05Niw2ICs5NiwxMSBAQCBtb2R1bGUgdGVzdCB7CiAg
ICAgICAgIC8vICdDb252ZXJ0U2NyaXB0U3RyaW5nJyBleHRlbmRlZCBhdHRyaWJ1dGUKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb252ZXJ0U2NyaXB0U3RyaW5nXSBET01TdHJpbmcgc2Ny
aXB0U3RyaW5nQXR0cjsKIAorICAgICAgICAvLyAnQ29uZGl0aW9uYWwnIGV4dGVuZGVkIGF0dHJp
YnV0ZQorICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPUNvbmRpdGlvbjFdIGxvbmcgY29u
ZGl0aW9uYWxBdHRyMTsKKyAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1Db25kaXRpb24x
JkNvbmRpdGlvbjJdIGxvbmcgY29uZGl0aW9uYWxBdHRyMjsKKyAgICAgICAgYXR0cmlidXRlIFtD
b25kaXRpb25hbD1Db25kaXRpb24xfENvbmRpdGlvbjJdIGxvbmcgY29uZGl0aW9uYWxBdHRyMzsK
KwogI2lmIGRlZmluZWQoVEVTVElOR19WOCkgfHwgZGVmaW5lZChURVNUSU5HX0pTKQogICAgICAg
ICAvLyBPdmVybG9hZHMKICAgICAgICAgdm9pZCAgICBvdmVybG9hZGVkTWV0aG9kKGluIFRlc3RP
Ymogb2JqQXJnLCBpbiBET01TdHJpbmcgc3RyQXJnKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAgYi9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwCmluZGV4IGYwYmZiODYuLjM0
MGRjYTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEludGVyZmFjZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0SW50ZXJmYWNlLmNwcApAQCAtMjEsNiArMjEsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIlY4VGVzdEludGVyZmFjZS5oIgogCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpIHx8
IEVOQUJMRShDb25kaXRpb24yKQorCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
IgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4QmluZGluZ1N0YXRlLmgiCkBA
IC0xMTMsMyArMTE1LDUgQEAgdm9pZCBWOFRlc3RJbnRlcmZhY2U6OmRlcmVmT2JqZWN0KHZvaWQq
IG9iamVjdCkKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmggYi9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuaAppbmRleCBjZTEzMTBlLi5kMjE5
MmNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJ
bnRlcmZhY2UuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJ
bnRlcmZhY2UuaApAQCAtMTgsNiArMTgsOCBAQAogICAgIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywg
VVNBLgogKi8KIAorI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikK
KwogI2lmbmRlZiBWOFRlc3RJbnRlcmZhY2VfaAogI2RlZmluZSBWOFRlc3RJbnRlcmZhY2VfaAog
CkBAIC00OCwzICs1MCw1IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KFBhc3NSZWZQdHI8
VGVzdEludGVyZmFjZSA+KTsKIH0KIAogI2VuZGlmIC8vIFY4VGVzdEludGVyZmFjZV9oCisjZW5k
aWYgLy8gRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQorCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwIGIvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAppbmRleCA0NDllMDg2
Li5jYzA5YTcwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RPYmouY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dE9iai5jcHAKQEAgLTIxOCw2ICsyMTgsNzggQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBzY3JpcHRTdHJpbmdBdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmEKICAg
ICByZXR1cm4gdjhTdHJpbmdPck51bGwoaW1wLT5zY3JpcHRTdHJpbmdBdHRyKCkpOwogfQogCisj
aWYgRU5BQkxFKENvbmRpdGlvbjEpCisKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY29u
ZGl0aW9uYWxBdHRyMUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0
IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5j
b25kaXRpb25hbEF0dHIxLl9nZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRv
TmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIHJldHVybiB2ODo6SW50ZWdlcjo6TmV3KGltcC0+
Y29uZGl0aW9uYWxBdHRyMSgpKTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xKQor
CisjaWYgRU5BQkxFKENvbmRpdGlvbjEpCisKK3N0YXRpYyB2b2lkIGNvbmRpdGlvbmFsQXR0cjFB
dHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVl
PiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMo
IkRPTS5UZXN0T2JqLmNvbmRpdGlvbmFsQXR0cjEuX3NldCIpOworICAgIFRlc3RPYmoqIGltcCA9
IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgaW50IHYgPSB0b0ludDMy
KHZhbHVlKTsKKyAgICBpbXAtPnNldENvbmRpdGlvbmFsQXR0cjEodik7CisgICAgcmV0dXJuOwor
fQorCisjZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjEpCisKKyNpZiBFTkFCTEUoQ29uZGl0aW9u
MSkgJiYgRU5BQkxFKENvbmRpdGlvbjIpCisKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
Y29uZGl0aW9uYWxBdHRyMkF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNv
bnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9i
ai5jb25kaXRpb25hbEF0dHIyLl9nZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6
OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIHJldHVybiB2ODo6SW50ZWdlcjo6TmV3KGlt
cC0+Y29uZGl0aW9uYWxBdHRyMigpKTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24x
KSAmJiBFTkFCTEUoQ29uZGl0aW9uMikKKworI2lmIEVOQUJMRShDb25kaXRpb24xKSAmJiBFTkFC
TEUoQ29uZGl0aW9uMikKKworc3RhdGljIHZvaWQgY29uZGl0aW9uYWxBdHRyMkF0dHJTZXR0ZXIo
djg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBj
b25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RP
YmouY29uZGl0aW9uYWxBdHRyMi5fc2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2Jq
Ojp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBpbnQgdiA9IHRvSW50MzIodmFsdWUpOwor
ICAgIGltcC0+c2V0Q29uZGl0aW9uYWxBdHRyMih2KTsKKyAgICByZXR1cm47Cit9CisKKyNlbmRp
ZiAvLyBFTkFCTEUoQ29uZGl0aW9uMSkgJiYgRU5BQkxFKENvbmRpdGlvbjIpCisKKyNpZiBFTkFC
TEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCisKK3N0YXRpYyB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gY29uZGl0aW9uYWxBdHRyM0F0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJp
bmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRT
KCJET00uVGVzdE9iai5jb25kaXRpb25hbEF0dHIzLl9nZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAg
PSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIHJldHVybiB2ODo6SW50
ZWdlcjo6TmV3KGltcC0+Y29uZGl0aW9uYWxBdHRyMygpKTsKK30KKworI2VuZGlmIC8vIEVOQUJM
RShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKKworI2lmIEVOQUJMRShDb25kaXRp
b24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKKworc3RhdGljIHZvaWQgY29uZGl0aW9uYWxBdHRy
M0F0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFs
dWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFU
UygiRE9NLlRlc3RPYmouY29uZGl0aW9uYWxBdHRyMy5fc2V0Iik7CisgICAgVGVzdE9iaiogaW1w
ID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBpbnQgdiA9IHRvSW50
MzIodmFsdWUpOworICAgIGltcC0+c2V0Q29uZGl0aW9uYWxBdHRyMyh2KTsKKyAgICByZXR1cm47
Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoQ29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIp
CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdm9pZE1ldGhvZENhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai52b2lk
TWV0aG9kIik7CkBAIC02MzUsNiArNzA3LDE4IEBAIHN0YXRpYyBjb25zdCBCYXRjaGVkQXR0cmli
dXRlIFRlc3RPYmpBdHRyc1tdID0gewogICAgIHsiY3VzdG9tQXR0ciIsIFY4VGVzdE9iajo6Y3Vz
dG9tQXR0ckFjY2Vzc29yR2V0dGVyLCBWOFRlc3RPYmo6OmN1c3RvbUF0dHJBY2Nlc3NvclNldHRl
ciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRF
RkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAv
KiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICdzY3JpcHRTdHJpbmdBdHRyJyAo
VHlwZTogJ3JlYWRvbmx5IGF0dHJpYnV0ZScgRXh0QXR0cjogJ0NvbnZlcnRTY3JpcHRTdHJpbmcn
KQogICAgIHsic2NyaXB0U3RyaW5nQXR0ciIsIFRlc3RPYmpJbnRlcm5hbDo6c2NyaXB0U3RyaW5n
QXR0ckF0dHJHZXR0ZXIsIDAsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vz
c0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRl
Pih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorI2lmIEVOQUJMRShDb25kaXRpb24x
KQorICAgIC8vIEF0dHJpYnV0ZSAnY29uZGl0aW9uYWxBdHRyMScgKFR5cGU6ICdhdHRyaWJ1dGUn
IEV4dEF0dHI6ICdDb25kaXRpb25hbCcpCisgICAgeyJjb25kaXRpb25hbEF0dHIxIiwgVGVzdE9i
akludGVybmFsOjpjb25kaXRpb25hbEF0dHIxQXR0ckdldHRlciwgVGVzdE9iakludGVybmFsOjpj
b25kaXRpb25hbEF0dHIxQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2
ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlB
dHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisjZW5kaWYgLy8gRU5B
QkxFKENvbmRpdGlvbjEpCisjaWYgRU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRp
b24yKQorICAgIC8vIEF0dHJpYnV0ZSAnY29uZGl0aW9uYWxBdHRyMicgKFR5cGU6ICdhdHRyaWJ1
dGUnIEV4dEF0dHI6ICdDb25kaXRpb25hbCcpCisgICAgeyJjb25kaXRpb25hbEF0dHIyIiwgVGVz
dE9iakludGVybmFsOjpjb25kaXRpb25hbEF0dHIyQXR0ckdldHRlciwgVGVzdE9iakludGVybmFs
Ojpjb25kaXRpb25hbEF0dHIyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2Fz
dDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVy
dHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisjZW5kaWYgLy8g
RU5BQkxFKENvbmRpdGlvbjEpICYmIEVOQUJMRShDb25kaXRpb24yKQorI2lmIEVOQUJMRShDb25k
aXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKKyAgICAvLyBBdHRyaWJ1dGUgJ2NvbmRpdGlv
bmFsQXR0cjMnIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnQ29uZGl0aW9uYWwnKQorICAg
IHsiY29uZGl0aW9uYWxBdHRyMyIsIFRlc3RPYmpJbnRlcm5hbDo6Y29uZGl0aW9uYWxBdHRyM0F0
dHJHZXR0ZXIsIFRlc3RPYmpJbnRlcm5hbDo6Y29uZGl0aW9uYWxBdHRyM0F0dHJTZXR0ZXIsIDAg
Lyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxU
KSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24g
aW5zdGFuY2UgKi99LAorI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29u
ZGl0aW9uMikKIH07CiBzdGF0aWMgY29uc3QgQmF0Y2hlZENhbGxiYWNrIFRlc3RPYmpDYWxsYmFj
a3NbXSA9IHsKICAgICB7InZvaWRNZXRob2QiLCBUZXN0T2JqSW50ZXJuYWw6OnZvaWRNZXRob2RD
YWxsYmFja30sCg==
</data>
<flag name="review"
          id="41396"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="41397"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
      

    </bug>

</bugzilla>