<?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>57127</bug_id>
          
          <creation_ts>2011-03-25 15:13:53 -0700</creation_ts>
          <short_desc>Add ApplicationCache API to get disk usage per origin</short_desc>
          <delta_ts>2011-05-10 18:47:24 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anton D&apos;Auria">adauria</reporter>
          <assigned_to name="Anton D&apos;Auria">adauria</assigned_to>
          <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>373749</commentid>
    <comment_count>0</comment_count>
    <who name="Anton D&apos;Auria">adauria</who>
    <bug_when>2011-03-25 15:13:53 -0700</bug_when>
    <thetext>ApplicationCacheStorage already provides an API to get per-origin disk usage. This should be exposed through WebCore::ApplicationCache. And add +[WebApplicationCache diskUsageForOrigin:] to Mac port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373765</commentid>
    <comment_count>1</comment_count>
      <attachid>86990</attachid>
    <who name="Anton D&apos;Auria">adauria</who>
    <bug_when>2011-03-25 16:00:09 -0700</bug_when>
    <thetext>Created attachment 86990
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373776</commentid>
    <comment_count>2</comment_count>
      <attachid>86990</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-25 16:21:43 -0700</bug_when>
    <thetext>Comment on attachment 86990
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=86990&amp;action=review

&gt; Tools/DumpRenderTree/LayoutTestController.cpp:408
&gt; +    JSRetainPtr&lt;JSStringRef&gt; originUrl(Adopt, JSValueToStringCopy(context, arguments[0], exception));

s/Url/URL/.

&gt; LayoutTests/http/tests/appcache/origin-usage.html:5
&gt; +var drtUrl = &quot;http://127.0.0.1:8000&quot;;

You only use this constant sometimes, so I&apos;m not sure if it helps at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373779</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-25 16:23:27 -0700</bug_when>
    <thetext>Attachment 86990 did not build on win:
Build output: http://queues.webkit.org/results/8243752</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373804</commentid>
    <comment_count>4</comment_count>
      <attachid>86997</attachid>
    <who name="Anton D&apos;Auria">adauria</who>
    <bug_when>2011-03-25 17:24:03 -0700</bug_when>
    <thetext>Created attachment 86997
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373902</commentid>
    <comment_count>5</comment_count>
      <attachid>86997</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-26 08:47:10 -0700</bug_when>
    <thetext>Comment on attachment 86997
Patch

Rejecting attachment 86997 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-4&apos;, &apos;apply-...&quot; exit_code: 1

Last 500 characters of output:
autoinstalled/mechanize/_urllib2_fork.py&quot;, line 332, in _call_chain
    result = func(*args)
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_urllib2_fork.py&quot;, line 1170, in https_open
    return self.do_open(conn_factory, req)
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_urllib2_fork.py&quot;, line 1118, in do_open
    raise URLError(err)
urllib2.URLError: &lt;urlopen error [Errno 60] Operation timed out&gt;

Full output: http://queues.webkit.org/results/8255523</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373906</commentid>
    <comment_count>6</comment_count>
    <who name="Anton D&apos;Auria">adauria</who>
    <bug_when>2011-03-26 09:44:06 -0700</bug_when>
    <thetext>Looks like the commit queue had a network-related issue, and c-&apos;d the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374194</commentid>
    <comment_count>7</comment_count>
      <attachid>86997</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-27 12:11:45 -0700</bug_when>
    <thetext>Comment on attachment 86997
Patch

Rejecting attachment 86997 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=eseidel-cq-sf&apos;, &apos;bu...&quot; exit_code: 2

Last 500 characters of output:
........................................
traversal ......................
traversal/hixie-node-iterator ..........
userscripts ...............
webarchive .....................
webarchive/loading ....
http/tests/appcache ...........................................
http/tests/appcache/origin-usage.html -&gt; failed

Exiting early after 1 failures. 22032 tests run.
545.80s total testing time

22031 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
14 test cases (&lt;1%) had stderr output

Full output: http://queues.webkit.org/results/8268325</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401620</commentid>
    <comment_count>8</comment_count>
      <attachid>93039</attachid>
    <who name="Anton D&apos;Auria">adauria</who>
    <bug_when>2011-05-10 16:23:13 -0700</bug_when>
    <thetext>Created attachment 93039
Patch

Revised description of test 7 to clearly indicate its dependence on test 6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401622</commentid>
    <comment_count>9</comment_count>
      <attachid>93039</attachid>
    <who name="Anton D&apos;Auria">adauria</who>
    <bug_when>2011-05-10 16:26:26 -0700</bug_when>
    <thetext>Comment on attachment 93039
Patch

Oops! Patch for wrong bug!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401666</commentid>
    <comment_count>10</comment_count>
      <attachid>93054</attachid>
    <who name="Anton D&apos;Auria">adauria</who>
    <bug_when>2011-05-10 17:27:14 -0700</bug_when>
    <thetext>Created attachment 93054
Patch

This patch is identical to the one Alexey r+ and c+, with the only difference being the layout test checking for a byte range instead of a precise byte number, since size can vary on the order of 10 bytes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401671</commentid>
    <comment_count>11</comment_count>
      <attachid>93055</attachid>
    <who name="Anton D&apos;Auria">adauria</who>
    <bug_when>2011-05-10 17:34:58 -0700</bug_when>
    <thetext>Created attachment 93055
Patch

This patch is identical to the one Alexey r+ and c+, with the only difference being the layout test checking for a byte range instead of a precise byte number, since size can vary on the order of 10 bytes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401697</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-10 18:41:33 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 93055:

http/tests/misc/favicon-loads-with-icon-loading-override.html bug 58412 (author: alice.liu@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401698</commentid>
    <comment_count>13</comment_count>
      <attachid>93055</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-10 18:47:20 -0700</bug_when>
    <thetext>Comment on attachment 93055
Patch

Clearing flags on attachment: 93055

Committed r86204: &lt;http://trac.webkit.org/changeset/86204&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>401699</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-10 18:47:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86990</attachid>
            <date>2011-03-25 16:00:09 -0700</date>
            <delta_ts>2011-03-25 17:24:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57127-20110325160008.patch</filename>
            <type>text/plain</type>
            <size>24750</size>
            <attacher name="Anton D&apos;Auria">adauria</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxOTk3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDMtMjUgIEFudG9uIEQn
QXVyaWEgIDxhZGF1cmlhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgQXBwbGljYXRpb25DYWNoZSBBUEkgdG8gZ2V0IGRpc2sg
dXNhZ2UgcGVyIG9yaWdpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTcxMjcKKworICAgICAgICBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSBhbHJlYWR5
IHByb3ZpZGVzIGFuIEFQSSB0byBnZXQgcGVyLW9yaWdpbgorICAgICAgICBkaXNrIHVzYWdlLiBU
aGlzIHNob3VsZCBiZSBleHBvc2VkIHRocm91Z2ggV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZQor
ICAgICAgICB0byBub3QgYmUgZGVwZW5kZW50IG9uIHN0b3JhZ2UgaW1wbGVtZW50YXRpb24uCisK
KyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tdXNhZ2UuaHRtbAorCisg
ICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGU6OmRpc2tVc2FnZUZvck9y
aWdpbik6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUuaDoKKwog
MjAxMS0wMy0yNCAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lv
biA4MTk5NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkp
CkBAIC0xODA3LDYgKzE4MDcsNyBAQCBfX1pOSzdXZWJDb3JlNE5vZGUxNnRyYXZlcnNlTmV4dE5v
ZGVFUEtTCiAjZW5kaWYKIAogI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9BUFBMSUNBVElPTlMpCitf
X1pON1dlYkNvcmUxNkFwcGxpY2F0aW9uQ2FjaGUxOGRpc2tVc2FnZUZvck9yaWdpbkVQTlNfMTRT
ZWN1cml0eU9yaWdpbkUKIF9fWk43V2ViQ29yZTE2QXBwbGljYXRpb25DYWNoZTIwZGVsZXRlQ2Fj
aGVGb3JPcmlnaW5FUE5TXzE0U2VjdXJpdHlPcmlnaW5FCiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlMTRxdW90YUZvck9yaWdpbkVQS05TXzE0U2VjdXJpdHlPcmlnaW5FUngK
IF9fWk43V2ViQ29yZTIzQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UxNHNldE1heGltdW1TaXplRXgK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZS5jcHAJKHJldmlzaW9uIDgxOTk3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDYsNyArMjA2
LDE0IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZTo6ZGVsZXRlQ2FjaGVGb3JPcmkKICAgICAgICAg
fQogICAgIH0KIH0KLSAgICAKKworaW50NjRfdCBBcHBsaWNhdGlvbkNhY2hlOjpkaXNrVXNhZ2VG
b3JPcmlnaW4oU2VjdXJpdHlPcmlnaW4qIG9yaWdpbikKK3sKKyAgICBpbnQ2NF90IHVzYWdlID0g
MDsKKyAgICBjYWNoZVN0b3JhZ2UoKS51c2FnZUZvck9yaWdpbihvcmlnaW4sIHVzYWdlKTsKKyAg
ICByZXR1cm4gdXNhZ2U7Cit9CisKICNpZm5kZWYgTkRFQlVHCiB2b2lkIEFwcGxpY2F0aW9uQ2Fj
aGU6OmR1bXAoKQogewpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZS5oCShyZXZpc2lvbiA4MTk5NykKKysrIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTky
LDYgKzkyLDggQEAgcHVibGljOgogICAgIAogICAgIHN0YXRpYyBib29sIHJlcXVlc3RJc0hUVFBP
ckhUVFBTR2V0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwogCisgICAgc3RhdGljIGludDY0X3Qg
ZGlza1VzYWdlRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKik7CisgICAgCiAgICAgaW50NjRfdCBl
c3RpbWF0ZWRTaXplSW5TdG9yYWdlKCkgY29uc3QgeyByZXR1cm4gbV9lc3RpbWF0ZWRTaXplSW5T
dG9yYWdlOyB9CiAKIHByaXZhdGU6CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4MTk5
NykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE2IEBACisyMDExLTAzLTI1ICBBbnRvbiBEJ0F1cmlhICA8YWRhdXJpYUBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFw
cGxpY2F0aW9uQ2FjaGUgQVBJIHRvIGdldCBkaXNrIHVzYWdlIHBlciBvcmlnaW4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MTI3CisKKyAgICAgICAg
QWRkZWQgTWFjIHBvcnQgQVBJLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGlj
YXRpb25DYWNoZS5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2Fj
aGUubW06CisgICAgICAgICgrW1dlYkFwcGxpY2F0aW9uQ2FjaGUgZGlza1VzYWdlRm9yT3JpZ2lu
Ol0pOgorCiAyMDExLTAzLTI0ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWls
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByODE5MzkuCkluZGV4OiBT
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRp
b25DYWNoZS5oCShyZXZpc2lvbiA4MTk5NykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUs
OCBAQCBAaW50ZXJmYWNlIFdlYkFwcGxpY2F0aW9uQ2FjaGU6IE5TT2JqZWN0CiArIChsb25nIGxv
bmcpZGVmYXVsdE9yaWdpblF1b3RhOwogKyAodm9pZClzZXREZWZhdWx0T3JpZ2luUXVvdGE6KGxv
bmcgbG9uZylzaXplOwogCisrIChsb25nIGxvbmcpZGlza1VzYWdlRm9yT3JpZ2luOihXZWJTZWN1
cml0eU9yaWdpbiAqKW9yaWdpbjsKKwogKyAodm9pZClkZWxldGVBbGxBcHBsaWNhdGlvbkNhY2hl
czsKICsgKHZvaWQpZGVsZXRlQ2FjaGVGb3JPcmlnaW46KFdlYlNlY3VyaXR5T3JpZ2luICopb3Jp
Z2luOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNh
dGlvbkNhY2hlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGUubW0JKHJldmlzaW9uIDgxOTk3KQorKysgU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZS5tbQkod29ya2luZyBj
b3B5KQpAQCAtNTgsNiArNTgsMTEgQEAgKyAodm9pZClzZXREZWZhdWx0T3JpZ2luUXVvdGE6KGxv
bmcgbG9uZwogICAgIGNhY2hlU3RvcmFnZSgpLnNldERlZmF1bHRPcmlnaW5RdW90YShzaXplKTsK
IH0KIAorKyAobG9uZyBsb25nKWRpc2tVc2FnZUZvck9yaWdpbjooV2ViU2VjdXJpdHlPcmlnaW4g
KilvcmlnaW4KK3sKKyAgICByZXR1cm4gQXBwbGljYXRpb25DYWNoZTo6ZGlza1VzYWdlRm9yT3Jp
Z2luKFtvcmlnaW4gX2NvcmVdKTsKK30KKwogKyAodm9pZClkZWxldGVBbGxBcHBsaWNhdGlvbkNh
Y2hlcwogewogICAgIGNhY2hlU3RvcmFnZSgpLmRlbGV0ZUFsbEVudHJpZXMoKTsKSW5kZXg6IFRv
b2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDgx
OTk3KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAK
KzIwMTEtMDMtMjUgIEFudG9uIEQnQXVyaWEgIDxhZGF1cmlhQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgQXBwbGljYXRpb25D
YWNoZSBBUEkgdG8gZ2V0IGRpc2sgdXNhZ2UgcGVyIG9yaWdpbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcxMjcKKworICAgICAgICBBZGRlZCB0ZXN0
IHRoYXQgbG9hZHMgdHdvIGZyYW1lcyB3aXRoIH4xNUtiIGltYWdlLCBjaGVja3MgdXNhZ2UsCisg
ICAgICAgIGRlbGV0ZXMgYXBwIGNhY2hlLCB2ZXJpZmllcyB1c2FnZSBpcyAwLgorCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoYXBw
bGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbkNhbGxiYWNrKToKKyAgICAgICAgKExheW91
dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOiBBZGRlZCBzdHViLgorICAgICAgICAoTGF5
b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKExheW91
dFRlc3RDb250cm9sbGVyOjphcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHA6
IEFkZGVkIHN0dWIuCisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXBwbGljYXRpb25D
YWNoZURpc2tVc2FnZUZvck9yaWdpbik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xh
eW91dFRlc3RDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4pOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwOiBBZGRlZCBzdHViLgorICAgICAg
ICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmln
aW4pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQu
aDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4u
Y3BwOiBBZGRlZCBzdHViLgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFwcGxpY2F0
aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4pOgorCiAyMDExLTAzLTI1ICBKZXNzaWUgQmVybGlu
ICA8amJlcmxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4K
SW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAJ
KHJldmlzaW9uIDgxOTk3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDAsNiArNDAwLDE5IEBAIHN0YXRpYyBKU1Zh
bHVlUmVmIGNsZWFyQXBwbGljYXRpb25DYWNoZUYKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRl
ZmluZWQoY29udGV4dCk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIGFwcGxpY2F0aW9uQ2FjaGVE
aXNrVXNhZ2VGb3JPcmlnaW5DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RS
ZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50
LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7
CisgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VV
bmRlZmluZWQoY29udGV4dCk7CisKKyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gb3JpZ2lu
VXJsKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhj
ZXB0aW9uKSk7CisgICAgQVNTRVJUKCEqZXhjZXB0aW9uKTsKKyAgICAKKyAgICBMYXlvdXRUZXN0
Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVy
Kj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKworICAgIHJldHVybiBKU1ZhbHVl
TWFrZU51bWJlcihjb250ZXh0LCBjb250cm9sbGVyLT5hcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdl
Rm9yT3JpZ2luKG9yaWdpblVybC5nZXQoKSkpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBvcmln
aW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNP
YmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVu
dENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRp
b24pCiB7CiAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2Fz
dDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7
CkBAIC0yMTIwLDYgKzIxMzMsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6CiAgICAgICAgIHsgImFkZFVzZXJTdHlsZVNoZWV0IiwgYWRkVXNlclN0eWxlU2hlZXRD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJhcGlUZXN0TmV3V2luZG93RGF0YUxvYWRCYXNl
VVJMIiwgYXBpVGVzdE5ld1dpbmRvd0RhdGFMb2FkQmFzZVVSTENhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgICAgIHsgImFwaVRlc3RHb1RvQ3VycmVudEJhY2tGb3J3YXJkSXRlbSIsIGFwaVRlc3RHb1Rv
Q3VycmVudEJhY2tGb3J3YXJkSXRlbUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgImFwcGxp
Y2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4iLCBhcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdl
Rm9yT3JpZ2luQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiY2FsbFNob3VsZENsb3NlT25X
ZWJWaWV3IiwgY2FsbFNob3VsZENsb3NlT25XZWJWaWV3Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAiY2xlYXJBbGxBcHBsaWNhdGlvbkNhY2hlcyIsIGNsZWFyQWxsQXBwbGljYXRpb25DYWNo
ZXNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJjbGVhckFsbERhdGFiYXNlcyIsIGNsZWFy
QWxsRGF0YWJhc2VzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRy
ZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAkocmV2aXNpb24gODE5OTcpCisrKyBUb29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02NCw2
ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGV4ZWNDb21tYW5kKEpTU3RyaW5nUmVmIG5hbWUs
IEpTU3RyaW5nUmVmIHZhbHVlKTsKICAgICBib29sIGZpbmRTdHJpbmcoSlNDb250ZXh0UmVmLCBK
U1N0cmluZ1JlZiwgSlNPYmplY3RSZWYgb3B0aW9uc0FycmF5KTsKICAgICBKU1ZhbHVlUmVmIG9y
aWdpbnNXaXRoQXBwbGljYXRpb25DYWNoZShKU0NvbnRleHRSZWYpOworICAgIGxvbmcgbG9uZyBh
cHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luKEpTU3RyaW5nUmVmIG5hbWUpOwogICAg
IGJvb2wgaXNDb21tYW5kRW5hYmxlZChKU1N0cmluZ1JlZiBuYW1lKTsKICAgICB2b2lkIGtlZXBX
ZWJIaXN0b3J5KCk7CiAgICAgSlNWYWx1ZVJlZiBjb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRl
ZEluZm8oSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmKTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAJKHJldmlz
aW9uIDgxOTk3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODQsNiArMTg0LDcgQEAgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbAogICAgIGJpbmRNZXRob2QoImFib3J0TW9k
YWwiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFib3J0TW9kYWwpOwogICAgIGJpbmRNZXRob2Qo
ImFjY2Vzc1N0b3JlZFdlYlNjcmlwdE9iamVjdCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWNj
ZXNzU3RvcmVkV2ViU2NyaXB0T2JqZWN0KTsKICAgICBiaW5kTWV0aG9kKCJhZGREaXNhbGxvd2Vk
VVJMIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjphZGREaXNhbGxvd2VkVVJMKTsKKyAgICBiaW5k
TWV0aG9kKCJhcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luIiwgJkxheW91dFRlc3RD
b250cm9sbGVyOjphcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luKTsKICAgICBiaW5k
TWV0aG9kKCJjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXciLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmNhbGxTaG91bGRDbG9zZU9uV2ViVmlldyk7CiAgICAgYmluZE1ldGhvZCgiY2xlYXJBbGxBcHBs
aWNhdGlvbkNhY2hlcyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2xlYXJBbGxBcHBsaWNhdGlv
bkNhY2hlcyk7CiAgICAgYmluZE1ldGhvZCgiY2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yT3JpZ2lu
IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpjbGVhckFwcGxpY2F0aW9uQ2FjaGVGb3JPcmlnaW4p
OwpAQCAtNzYzLDYgKzc2NCwxMiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpvcmlnaW5z
V2l0aEFwCiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4oY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQg
dG8gc3VwcG9ydCBnZXR0aW5nIGRpc2sgdXNhZ2UgYnkgYWxsIGFwcGxpY2F0aW9uIGNhY2hlIGZv
ciBhbiBvcmlnaW4uCisgICAgcmVzdWx0LT5zZXROdWxsKCk7Cit9CisKIHZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldFNjcm9sbGJhclBvbGljeShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudC4KSW5kZXg6IFRv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuaAkocmV2aXNpb24gODE5OTcpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOTAsNiArMjkwLDggQEAg
cHVibGljOgogICAgIHZvaWQgb3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hlKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICAvLyBTZXRzIHRoZSBhcHBsaWNhdGlvbiBj
YWNoZSBxdW90YSBmb3IgdGhlIGxvY2FsaG9zdCBvcmlnaW4uCiAgICAgdm9pZCBzZXRBcHBsaWNh
dGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
OworICAgIC8vIFJldHVybnMgZGlzayB1c2FnZSBieSBhbGwgYXBwbGljYXRpb24gY2FjaGVzIGZv
ciBhbiBvcmlnaW4uCisgICAgdm9pZCBhcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2lu
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAogICAgIC8vIENsZWFycyBh
bGwgZGF0YWJhc2VzLgogICAgIHZvaWQgY2xlYXJBbGxEYXRhYmFzZXMoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiwgQ3BwVmFyaWFudCopOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xh
eW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCShyZXZpc2lvbiA4MTk5NykKKysr
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTY2Miw2ICs2NjIsMTIgQEAgSlNWYWx1ZVJlZiBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6b3JpZ2lucwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0
KTsKIH0KIAorbG9uZyBsb25nIExheW91dFRlc3RDb250cm9sbGVyOjphcHBsaWNhdGlvbkNhY2hl
RGlza1VzYWdlRm9yT3JpZ2luKEpTQ29udGV4dFJlZiBjb250ZXh0KQoreworICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQKKyAgICByZXR1cm4gMDsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6Y2xlYXJBbGxEYXRhYmFzZXMoKQogewogICAgIHdlYmtpdF9yZW1vdmVfYWxsX3dlYl9kYXRh
YmFzZXMoKTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJv
bGxlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0
VGVzdENvbnRyb2xsZXJNYWMubW0JKHJldmlzaW9uIDgxOTk3KQorKysgVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzUsNiArMTM1LDEzIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNsZWFyQWxsQXBwbGkK
ICAgICBbV2ViQXBwbGljYXRpb25DYWNoZSBkZWxldGVBbGxBcHBsaWNhdGlvbkNhY2hlc107CiB9
CiAKK2xvbmcgbG9uZyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXBwbGljYXRpb25DYWNoZURpc2tV
c2FnZUZvck9yaWdpbihKU1N0cmluZ1JlZiB1cmwpCit7CisgICAgUmV0YWluUHRyPENGU3RyaW5n
UmVmPiB1cmxDRihBZG9wdENGLCBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCB1cmwpKTsKKyAgICBXZWJTZWN1cml0eU9yaWdpbiAqb3JpZ2luID0gW1tXZWJTZWN1cml0
eU9yaWdpbiBhbGxvY10gaW5pdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6KE5TU3RyaW5n
ICopdXJsQ0YuZ2V0KCldXTsKKyAgICByZXR1cm4gW1dlYkFwcGxpY2F0aW9uQ2FjaGUgZGlza1Vz
YWdlRm9yT3JpZ2luOm9yaWdpbl07Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN5
bmNMb2NhbFN0b3JhZ2UoKQogewogICAgIFtbV2ViU3RvcmFnZU1hbmFnZXIgc2hhcmVkV2ViU3Rv
cmFnZU1hbmFnZXJdIHN5bmNMb2NhbFN0b3JhZ2VdOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAJKHJldmlzaW9uIDgxOTk3
KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU2NCw2ICs1NjQsMTIgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0QXBwbGljYXRpbwogICAgIG1fdG9wTG9hZGluZ0ZyYW1lLT5zZWN1cml0eU9yaWdp
bigpLnNldEFwcGxpY2F0aW9uQ2FjaGVRdW90YShxdW90YSk7CiB9CiAKK2xvbmcgbG9uZyBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6YXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbihjb25z
dCBRU3RyaW5nJiBvcmlnaW4pCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBzdXBwb3J0
IGdldHRpbmcgZGlzayB1c2FnZSBieSBhbGwgYXBwbGljYXRpb24gY2FjaGVzIGZvciBhbiBvcmln
aW4uCisgICAgcmV0dXJuIDA7Cit9CisKIFFTdHJpbmdMaXN0IExheW91dFRlc3RDb250cm9sbGVy
OjpvcmlnaW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGUoKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgdG8gZ2V0IG9yaWdpbnMgdGhhdCBoYXZlIGFwcGxpY2F0aW9uIGNhY2hlcy4KSW5kZXg6IFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgJKHJl
dmlzaW9uIDgxOTk3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRy
b2xsZXJRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTIsNiArMTkyLDcgQEAgcHVibGljIHNsb3Rz
OgogICAgIHZvaWQgY2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yT3JpZ2luKGNvbnN0IFFTdHJpbmcm
IHVybCk7CiAgICAgdm9pZCBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQg
bG9uZyBsb25nIHF1b3RhKTsKICAgICBRU3RyaW5nTGlzdCBvcmlnaW5zV2l0aEFwcGxpY2F0aW9u
Q2FjaGUoKTsKKyAgICBsb25nIGxvbmcgYXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdp
bihjb25zdCBRU3RyaW5nJik7IAogCiAgICAgdm9pZCBzZXREYXRhYmFzZVF1b3RhKGludCBzaXpl
KTsKICAgICB2b2lkIGNsZWFyQWxsRGF0YWJhc2VzKCk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVy
VHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAJKHJldmlzaW9u
IDgxOTk3KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVy
V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTY4LDYgKzk2OCwxMiBAQCBKU1ZhbHVlUmVmIExh
eW91dFRlc3RDb250cm9sbGVyOjpvcmlnaW5zCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGNvbnRleHQpOwogfQogCitsb25nIGxvbmcgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFwcGxp
Y2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4oSlNDb250ZXh0UmVmIGNvbnRleHQpCit7Cisg
ICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBnZXQgZGlzayB1c2FnZSBieSBhbGwgYXBwbGljYXRp
b24gY2FjaGVzIGZvciBhbiBvcmlnaW4uCisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmNsZWFyQWxsRGF0YWJhc2VzKCkKIHsKICAgICBDT01QdHI8SVdlYkRh
dGFiYXNlTWFuYWdlcj4gZGF0YWJhc2VNYW5hZ2VyOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gODE5OTcp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBA
QAorMjAxMS0wMy0yNSAgQW50b24gRCdBdXJpYSAgPGFkYXVyaWFAYXBwbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBBcHBsaWNhdGlv
bkNhY2hlIEFQSSB0byBnZXQgZGlzayB1c2FnZSBwZXIgb3JpZ2luCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzEyNworCisgICAgICAgICogaHR0cC90
ZXN0cy9hcHBjYWNoZS9vcmlnaW4tdXNhZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi11c2FnZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2FwcGNhY2hlL3Jlc291cmNlcy9vcmlnaW4tdXNhZ2UtaWZyYW1lLTEuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHBjYWNoZS9yZXNvdXJjZXMvb3JpZ2lu
LXVzYWdlLWlmcmFtZS0xLm1hbmlmZXN0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2Fw
cGNhY2hlL3Jlc291cmNlcy9vcmlnaW4tdXNhZ2UtaWZyYW1lLTIuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9hcHBjYWNoZS9yZXNvdXJjZXMvb3JpZ2luLXVzYWdlLWlmcmFtZS0y
Lm1hbmlmZXN0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICog
cGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6
CisKIDIwMTEtMDMtMjUgIFZpbmNlbnQgU2NoZWliICA8c2NoZWliQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBBdHRlbXB0aW5nIFNMT1cgdG8gcmVzb2x2ZSBmYXN0L2Zvcm1zL2lucHV0LWZpbGUt
ZGlyZWN0b3J5LXVwbG9hZC5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNh
Y2hlL29yaWdpbi11c2FnZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tdXNhZ2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tdXNhZ2UtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACitUaGlzIHRlc3QgY2hlY2tzIHRo
YXQgcGVyLW9yaWdpbiB1c2FnZSBpcyByZXBvcnRlZCBjb3JyZWN0bHkgYnkgbG9hZGluZyB0d28g
aWZyYW1lcyB3aGljaCB1c2UgfjEzSyBlYWNoIGFuZCBxdWVyeWluZyBvcmlnaW4gdXNhZ2UuCisK
K0NsZWFyZWQgYXBwbGljYXRpb24gY2FjaGUKK1BBU1MgLSBjYWNoZWQgaWZyYW1lLTEKK1VzYWdl
IGZvciBvcmlnaW4gYWZ0ZXIgZmlyc3QgZnJhbWU6IDE1NDE5CitQQVNTIC0gY2FjaGVkIGlmcmFt
ZS0yCitVc2FnZSBmb3Igb3JpZ2luIGFmdGVyIHNlY29uZCBmcmFtZTogMzA4NDIKK1JlbW92aW5n
IEFwcGxpY2F0aW9uIENhY2hlIGZvciBodHRwOi8vMTI3LjAuMC4xOjgwMDAKK1VzYWdlIGZvciBv
cmlnaW46IDAKKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4t
dXNhZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hl
L29yaWdpbi11c2FnZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHBjYWNoZS9vcmlnaW4tdXNhZ2UuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MiBA
QAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CisKK3ZhciBkcnRVcmwgPSAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwIjsKKworLy8gSGVscGVycy4KKworZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtZXNzYWdl
ICsgIjxicj4iOworfQorCisvLyBTdGFydCBhbmQgZW5kLgorCitmdW5jdGlvbiBzdGFydFRlc3Qo
KSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5jbGVhckFsbEFwcGxpY2F0aW9uQ2FjaGVzKCk7CisgICAgICAgIGxv
ZygiQ2xlYXJlZCBhcHBsaWNhdGlvbiBjYWNoZSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXBwbGljYXRpb25DYWNoZURlbGVnYXRlQ2FsbGJhY2tzKCk7CisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGFkZEZpcnN0SUZyYW1lKCk7Cit9
CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQor
CisvLyBTdGFnZXMuCisKK2Z1bmN0aW9uIGFkZElGcmFtZVdpdGhDb250aW51YXRpb24oc3JjLCBj
b250aW51YXRpb24pIHsKKyAgICB3aW5kb3cub25tZXNzYWdlID0gY29udGludWF0aW9uOworICAg
IHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICBpZnJh
bWUuc3JjID0gc3JjOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKK30K
KworZnVuY3Rpb24gYWRkRmlyc3RJRnJhbWUoKSB7CisgICAgLy8gRXhwZWN0ZWQgdG8gc3VjY2Vl
ZC4KKyAgICBhZGRJRnJhbWVXaXRoQ29udGludWF0aW9uKCJyZXNvdXJjZXMvb3JpZ2luLXVzYWdl
LWlmcmFtZS0xLmh0bWwiLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICBsb2coZXZlbnQuZGF0
YSk7CisgICAgICAgIGxvZygiVXNhZ2UgZm9yIG9yaWdpbiBhZnRlciBmaXJzdCBmcmFtZTogIiAr
IGxheW91dFRlc3RDb250cm9sbGVyLmFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4o
ZHJ0VXJsKSk7CisgICAgICAgIGFkZFNlY29uZElGcmFtZSgpOworICAgIH0pOworfQorCitmdW5j
dGlvbiBhZGRTZWNvbmRJRnJhbWUoKSB7CisgICAgYWRkSUZyYW1lV2l0aENvbnRpbnVhdGlvbigi
cmVzb3VyY2VzL29yaWdpbi11c2FnZS1pZnJhbWUtMi5odG1sIiwgZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICAgICAgbG9nKGV2ZW50LmRhdGEpOworCisgICAgICAgIGxvZygiVXNhZ2UgZm9yIG9yaWdp
biBhZnRlciBzZWNvbmQgZnJhbWU6ICIgKyBsYXlvdXRUZXN0Q29udHJvbGxlci5hcHBsaWNhdGlv
bkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luKGRydFVybCkpOworCisgICAgICAgIGxvZygiUmVtb3Zp
bmcgQXBwbGljYXRpb24gQ2FjaGUgZm9yIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpOworICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5jbGVhckFwcGxpY2F0aW9uQ2FjaGVGb3JPcmlnaW4oImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCIpOworCisgICAgICAgIGxvZygiVXNhZ2UgZm9yIG9yaWdpbjog
IiArIGxheW91dFRlc3RDb250cm9sbGVyLmFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmln
aW4oImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIpKTsKKworICAgICAgICBmaW5pc2hUZXN0KCk7Cisg
ICAgfSk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzdGFydFRlc3Qo
KSI+Cis8cD5UaGlzIHRlc3QgY2hlY2tzIHRoYXQgcGVyLW9yaWdpbiB1c2FnZSBpcyByZXBvcnRl
ZCBjb3JyZWN0bHkgYnkgbG9hZGluZyB0d28gaWZyYW1lcyB3aGljaCB1c2UgfjEzSyBlYWNoIGFu
ZCBxdWVyeWluZyBvcmlnaW4gdXNhZ2UuPC9wPgorPC9wPgorPHByZSBpZD0iY29uc29sZSI+PC9w
cmU+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNh
Y2hlL3Jlc291cmNlcy9vcmlnaW4tdXNhZ2UtaWZyYW1lLTEuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL3Jlc291cmNlcy9vcmlnaW4tdXNhZ2UtaWZy
YW1lLTEuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2Fj
aGUvcmVzb3VyY2VzL29yaWdpbi11c2FnZS1pZnJhbWUtMS5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDkgQEAKKzxodG1sIG1hbmlmZXN0PSJvcmlnaW4tdXNhZ2UtaWZyYW1lLTEubWFuaWZl
c3QiPgorPHNjcmlwdD4KKy8vIGlmcmFtZS0xIGlzIGV4cGVjdGVkIHRvIHN1Y2NlZWQuCithcHBs
aWNhdGlvbkNhY2hlLm9uY2FjaGVkID0gZnVuY3Rpb24oKSB7IHBhcmVudC5wb3N0TWVzc2FnZSgi
UEFTUyAtIGNhY2hlZCBpZnJhbWUtMSIsICIqIik7IH07CithcHBsaWNhdGlvbkNhY2hlLm9uZXJy
b3IgPSBmdW5jdGlvbigpIHsgcGFyZW50LnBvc3RNZXNzYWdlKCJGQUlMIC0gZXJyb3IgY2FjaGlu
ZyBpZnJhbWUtMSwgZXhwZWN0ZWQgdGhpcyB0byBzdWNjZWVkIiwgIioiKTsgfTsKK2FwcGxpY2F0
aW9uQ2FjaGUub25ub3VwZGF0ZSA9IGZ1bmN0aW9uKCkgeyBwYXJlbnQucG9zdE1lc3NhZ2UoIkZB
SUwgLSBubyB1cGRhdGUgaWZyYW1lLTEsIGFsbCBjYWNoZXMgc2hvdWxkIGhhdmUgYmVlbiBkZWxl
dGVkIGJlZm9yZSB0aGlzIHRlc3QiLCAiKiIpOyB9OworCis8L3NjcmlwdD4KKzwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvcmVzb3VyY2VzL29yaWdpbi11c2Fn
ZS1pZnJhbWUtMS5tYW5pZmVzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcGNhY2hlL3Jlc291cmNlcy9vcmlnaW4tdXNhZ2UtaWZyYW1lLTEubWFuaWZlc3QJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL3Jlc291cmNlcy9vcmln
aW4tdXNhZ2UtaWZyYW1lLTEubWFuaWZlc3QJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNiBAQAor
Q0FDSEUgTUFOSUZFU1QKKworIyBUaGlzIGFkZHMgfjEzSyB0byB0aGUgYXBwIGNhY2hlCisKK0NB
Q0hFOgorYWJlLnBuZwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9yZXNv
dXJjZXMvb3JpZ2luLXVzYWdlLWlmcmFtZS0yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9yZXNvdXJjZXMvb3JpZ2luLXVzYWdlLWlmcmFtZS0yLmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL3Jlc291
cmNlcy9vcmlnaW4tdXNhZ2UtaWZyYW1lLTIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4
IEBACis8aHRtbCBtYW5pZmVzdD0ib3JpZ2luLXVzYWdlLWlmcmFtZS0yLm1hbmlmZXN0Ij4KKzxz
Y3JpcHQ+CisvLyBpZnJhbWUtMiBpcyBleHBlY3RlZCB0byBmYWlsIGR1ZSB0byBleGNlZWRpbmcg
dGhlIG9yaWdpbiBxdW90YS4KK2FwcGxpY2F0aW9uQ2FjaGUub25jYWNoZWQgPSBmdW5jdGlvbigp
IHsgcGFyZW50LnBvc3RNZXNzYWdlKCJQQVNTIC0gY2FjaGVkIGlmcmFtZS0yIiwgIioiKTsgfTsK
K2FwcGxpY2F0aW9uQ2FjaGUub25lcnJvciA9IGZ1bmN0aW9uKCkgeyBwYXJlbnQucG9zdE1lc3Nh
Z2UoIkZBSUwgLSBlcnJvciBjYWNoaW5nIGlmcmFtZS0yIiwgIioiKTsgfTsKK2FwcGxpY2F0aW9u
Q2FjaGUub25ub3VwZGF0ZSA9IGZ1bmN0aW9uKCkgeyBwYXJlbnQucG9zdE1lc3NhZ2UoIkZBSUwg
LSBubyB1cGRhdGUgaWZyYW1lLTIsIGFsbCBjYWNoZXMgc2hvdWxkIGhhdmUgYmVlbiBkZWxldGVk
IGJlZm9yZSB0aGlzIHRlc3QiLCAiKiIpOyB9OworPC9zY3JpcHQ+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL3Jlc291cmNlcy9vcmlnaW4tdXNhZ2UtaWZy
YW1lLTIubWFuaWZlc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBj
YWNoZS9yZXNvdXJjZXMvb3JpZ2luLXVzYWdlLWlmcmFtZS0yLm1hbmlmZXN0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9yZXNvdXJjZXMvb3JpZ2luLXVz
YWdlLWlmcmFtZS0yLm1hbmlmZXN0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYgQEAKK0NBQ0hF
IE1BTklGRVNUCisKKyMgVGhpcyBhZGRzIH4xM0sgdG8gdGhlIGFwcCBjYWNoZQorCitDQUNIRToK
K2FiZS5wbmcKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0
YXRpb25zLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90
ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHJldmlzaW9uIDgxOTk3KQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
NzM3LDYgKzE3MzcsOCBAQCBCVUdDUjI4NDQgU0tJUCA6IGh0dHAvdGVzdHMvYXBwY2FjaGUvbm9u
CiBCVUdXSyBTS0lQIDogaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tZGVsZXRlLmh0bWwgPSBG
QUlMCiAvLyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Z2V0T3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNh
Y2hlIGlzbid0IGltcGxlbWVudGVkCiBCVUdXSyBTS0lQIDogaHR0cC90ZXN0cy9hcHBjYWNoZS9v
cmlnaW5zLXdpdGgtYXBwY2FjaGUuaHRtbCA9IEZBSUwKKy8vIExheW91dFRlc3RDb250cm9sbGVy
OjphcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luIGlzbid0IGltcGxlbWVudGVkIC0g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MTI3CitCVUdXSyBTS0lQ
IDogaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tdXNhZ2UuaHRtbCA9IEZBSUwKIAogLy8gTmV3
IGZhaWx1cmVzIGZyb20gV2ViS2l0IHI1MTU3NwogQlVHQ1IyOTE2NCBXSU4gTElOVVggTUFDIDog
ZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1wbHVnaW5zLmh0bWwgPSBURVhUCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAkocmV2aXNpb24gODE5OTcpCisrKyBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtNDkxLDYgKzQ5MSw4IEBAIGh0
dHAvdGVzdHMvYXBwY2FjaGUvZmFsbGJhY2suaHRtbAogaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmln
aW4tcXVvdGEuaHRtbAogaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tZGVsZXRlLmh0bWwKIGh0
dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2lucy13aXRoLWFwcGNhY2hlLmh0bWwKKyMgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OmFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4gaXNuJ3QgaW1w
bGVtZW50ZWQgLSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcxMjcK
K2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXVzYWdlLmh0bWwKIGh0dHAvdGVzdHMvY29va2ll
cy9kb3VibGUtcXVvdGVkLXZhbHVlLXdpdGgtc2VtaS1jb2xvbi5odG1sCiBodHRwL3Rlc3RzL2xv
YWRpbmcvYmFkLXNjaGVtZS1zdWJmcmFtZS5odG1sCiBodHRwL3Rlc3RzL2xvYWRpbmcvYmFkLXNl
cnZlci1zdWJmcmFtZS5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Nr
aXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVk
CShyZXZpc2lvbiA4MTk5NykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBl
ZAkod29ya2luZyBjb3B5KQpAQCAtMTEzMSw2ICsxMTMxLDggQEAgZmFzdC9wYXJzZXIvbm9zY3Jp
cHQtd2l0aC1qYXZhc2NyaXB0LWRpcwogZmFzdC9wYXJzZXIvbm9zY3JpcHQtd2l0aC1qYXZhc2Ny
aXB0LWVuYWJsZWQuaHRtbAogZmFzdC9yZXBhaW50L25vLWNhcmV0LXJlcGFpbnQtaW4tbm9uLWNv
bnRlbnQtZWRpdGFibGUtZWxlbWVudC5odG1sCiBodHRwL3Rlc3RzL2FwcGNhY2hlL2Rpc2FibGVk
Lmh0bWwKKyMgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VG
b3JPcmlnaW4gaXNuJ3QgaW1wbGVtZW50ZWQgLSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTcxMjcKK2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXVzYWdlLmh0bWwK
IGh0dHAvdGVzdHMvY2FudmFzL3dlYmdsL29yaWdpbi1jbGVhbi1jb25mb3JtYW5jZS5odG1sCiBo
dHRwL3Rlc3RzL25hdmlnYXRpb24vcGluZy1jcm9zcy1vcmlnaW4tZnJvbS1odHRwcy5odG1sCiBo
dHRwL3Rlc3RzL25hdmlnYXRpb24vcGluZy1jcm9zcy1vcmlnaW4uaHRtbApJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9Ta2lwcGVkCShyZXZpc2lvbiA4MTk5NykKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTMyMzIsNiArMzIzMiw4IEBAIGh0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvYmFzaWMtYXV0aC5odG0KIGh0dHAvdGVzdHMvYXBwY2FjaGUvb3Jp
Z2luLWRlbGV0ZS5odG1sCiAjIExheW91dFRlc3RDb250cm9sbGVyOjpnZXRPcmlnaW5zV2l0aEFw
cGxpY2F0aW9uQ2FjaGUgaXMgbm90IGltcGxlbWVudGVkCiBodHRwL3Rlc3RzL2FwcGNhY2hlL29y
aWdpbnMtd2l0aC1hcHBjYWNoZS5odG1sCisjIExheW91dFRlc3RDb250cm9sbGVyOjphcHBsaWNh
dGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luIGlzbid0IGltcGxlbWVudGVkIC0gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MTI3CitodHRwL3Rlc3RzL2FwcGNhY2hl
L29yaWdpbi11c2FnZS5odG1sCiAKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU2NjkxCiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstc2l6ZS1j
aHVua2VkLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86997</attachid>
            <date>2011-03-25 17:24:03 -0700</date>
            <delta_ts>2011-05-10 16:23:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57127-20110325172402.patch</filename>
            <type>text/plain</type>
            <size>24698</size>
            <attacher name="Anton D&apos;Auria">adauria</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgyMDA4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMtMjUgIEFudG9uIEQn
QXVyaWEgIDxhZGF1cmlhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgQXBwbGljYXRpb25DYWNoZSBBUEkgdG8gZ2V0IGRpc2sg
dXNhZ2UgcGVyIG9yaWdpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTcxMjcKKworICAgICAgICBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSBhbHJlYWR5
IHByb3ZpZGVzIGFuIEFQSSB0byBnZXQgcGVyLW9yaWdpbgorICAgICAgICBkaXNrIHVzYWdlLiBU
aGlzIHNob3VsZCBiZSBleHBvc2VkIHRocm91Z2ggV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZQor
ICAgICAgICB0byBub3QgYmUgZGVwZW5kZW50IG9uIHN0b3JhZ2UgaW1wbGVtZW50YXRpb24uCisK
KyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tdXNhZ2UuaHRtbAorCisg
ICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZTo6ZGlz
a1VzYWdlRm9yT3JpZ2luKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZS5oOgorCiAyMDExLTAzLTI1ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgpJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4JKHJldmlzaW9uIDgyMDA4KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTE4MDcsNiArMTgwNyw3IEBAIF9fWk5LN1dlYkNvcmU0
Tm9kZTE2dHJhdmVyc2VOZXh0Tm9kZUVQS1MKICNlbmRpZgogCiAjaWYgRU5BQkxFKE9GRkxJTkVf
V0VCX0FQUExJQ0FUSU9OUykKK19fWk43V2ViQ29yZTE2QXBwbGljYXRpb25DYWNoZTE4ZGlza1Vz
YWdlRm9yT3JpZ2luRVBOU18xNFNlY3VyaXR5T3JpZ2luRQogX19aTjdXZWJDb3JlMTZBcHBsaWNh
dGlvbkNhY2hlMjBkZWxldGVDYWNoZUZvck9yaWdpbkVQTlNfMTRTZWN1cml0eU9yaWdpbkUKIF9f
Wk43V2ViQ29yZTIzQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UxNHF1b3RhRm9yT3JpZ2luRVBLTlNf
MTRTZWN1cml0eU9yaWdpbkVSeAogX19aTjdXZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZTE0c2V0TWF4aW11bVNpemVFeApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hl
L0FwcGxpY2F0aW9uQ2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmNwcAkocmV2aXNpb24gODIwMDgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIwNiw3ICsyMDYsMTQgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlOjpkZWxldGVD
YWNoZUZvck9yaQogICAgICAgICB9CiAgICAgfQogfQotICAgIAorCitpbnQ2NF90IEFwcGxpY2F0
aW9uQ2FjaGU6OmRpc2tVc2FnZUZvck9yaWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQorewor
ICAgIGludDY0X3QgdXNhZ2UgPSAwOworICAgIGNhY2hlU3RvcmFnZSgpLnVzYWdlRm9yT3JpZ2lu
KG9yaWdpbiwgdXNhZ2UpOworICAgIHJldHVybiB1c2FnZTsKK30KKwogI2lmbmRlZiBOREVCVUcK
IHZvaWQgQXBwbGljYXRpb25DYWNoZTo6ZHVtcCgpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmgJKHJldmlzaW9uIDgyMDA4
KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUuaAko
d29ya2luZyBjb3B5KQpAQCAtOTIsNiArOTIsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgc3RhdGlj
IGJvb2wgcmVxdWVzdElzSFRUUE9ySFRUUFNHZXQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAK
KyAgICBzdGF0aWMgaW50NjRfdCBkaXNrVXNhZ2VGb3JPcmlnaW4oU2VjdXJpdHlPcmlnaW4qKTsK
KyAgICAKICAgICBpbnQ2NF90IGVzdGltYXRlZFNpemVJblN0b3JhZ2UoKSBjb25zdCB7IHJldHVy
biBtX2VzdGltYXRlZFNpemVJblN0b3JhZ2U7IH0KIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDgyMDA4KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDMtMjUgIEFudG9uIEQnQXVyaWEg
IDxhZGF1cmlhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgQXBwbGljYXRpb25DYWNoZSBBUEkgdG8gZ2V0IGRpc2sgdXNhZ2Ug
cGVyIG9yaWdpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTcxMjcKKworICAgICAgICBBZGRlZCBNYWMgcG9ydCBBUEkuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQXBwbGljYXRpb25DYWNoZS5tbToKKyAgICAgICAgKCtbV2ViQXBwbGljYXRpb25DYWNo
ZSBkaXNrVXNhZ2VGb3JPcmlnaW46XSk6CisKIDIwMTEtMDMtMjUgIEFuZHkgRXN0ZXMgIDxhZXN0
ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkZWxlIFBldGVyc29uLgpJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxp
Y2F0aW9uQ2FjaGUuaAkocmV2aXNpb24gODIwMDgpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYg
KzM1LDggQEAgQGludGVyZmFjZSBXZWJBcHBsaWNhdGlvbkNhY2hlOiBOU09iamVjdAogKyAobG9u
ZyBsb25nKWRlZmF1bHRPcmlnaW5RdW90YTsKICsgKHZvaWQpc2V0RGVmYXVsdE9yaWdpblF1b3Rh
Oihsb25nIGxvbmcpc2l6ZTsKIAorKyAobG9uZyBsb25nKWRpc2tVc2FnZUZvck9yaWdpbjooV2Vi
U2VjdXJpdHlPcmlnaW4gKilvcmlnaW47CisKICsgKHZvaWQpZGVsZXRlQWxsQXBwbGljYXRpb25D
YWNoZXM7CiArICh2b2lkKWRlbGV0ZUNhY2hlRm9yT3JpZ2luOihXZWJTZWN1cml0eU9yaWdpbiAq
KW9yaWdpbjsKIApJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBw
bGljYXRpb25DYWNoZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlLm1tCShyZXZpc2lvbiA4MjAwOCkKKysrIFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGUubW0JKHdvcmtp
bmcgY29weSkKQEAgLTU4LDYgKzU4LDExIEBAICsgKHZvaWQpc2V0RGVmYXVsdE9yaWdpblF1b3Rh
Oihsb25nIGxvbmcKICAgICBjYWNoZVN0b3JhZ2UoKS5zZXREZWZhdWx0T3JpZ2luUXVvdGEoc2l6
ZSk7CiB9CiAKKysgKGxvbmcgbG9uZylkaXNrVXNhZ2VGb3JPcmlnaW46KFdlYlNlY3VyaXR5T3Jp
Z2luICopb3JpZ2luCit7CisgICAgcmV0dXJuIEFwcGxpY2F0aW9uQ2FjaGU6OmRpc2tVc2FnZUZv
ck9yaWdpbihbb3JpZ2luIF9jb3JlXSk7Cit9CisKICsgKHZvaWQpZGVsZXRlQWxsQXBwbGljYXRp
b25DYWNoZXMKIHsKICAgICBjYWNoZVN0b3JhZ2UoKS5kZWxldGVBbGxFbnRyaWVzKCk7CkluZGV4
OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lv
biA4MjAwOCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMx
IEBACisyMDExLTAzLTI1ICBBbnRvbiBEJ0F1cmlhICA8YWRhdXJpYUBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFwcGxpY2F0
aW9uQ2FjaGUgQVBJIHRvIGdldCBkaXNrIHVzYWdlIHBlciBvcmlnaW4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MTI3CisKKyAgICAgICAgQWRkZWQg
dGVzdCB0aGF0IGxvYWRzIHR3byBmcmFtZXMgd2l0aCB+MTVLYiBpbWFnZSwgY2hlY2tzIHVzYWdl
LAorICAgICAgICBkZWxldGVzIGFwcCBjYWNoZSwgdmVyaWZpZXMgdXNhZ2UgaXMgMC4KKworICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KGFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW5DYWxsYmFjayk6CisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDogQWRkZWQgc3R1Yi4KKyAgICAgICAg
KExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcjo6YXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbik6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIu
aDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsu
Y3BwOiBBZGRlZCBzdHViLgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFwcGxpY2F0
aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21h
Yy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9s
bGVyOjphcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDogQWRkZWQgc3R1Yi4KKyAg
ICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjphcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9y
T3JpZ2luKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxl
clF0Lmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVy
V2luLmNwcDogQWRkZWQgc3R1Yi4KKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjphcHBs
aWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luKToKKwogMjAxMS0wMy0yNSAgQW5keSBFc3Rl
cyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRlbGUgUGV0ZXJz
b24uCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwCShyZXZpc2lvbiA4MjAwOCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAwLDYgKzQwMCwxOSBAQCBzdGF0aWMg
SlNWYWx1ZVJlZiBjbGVhckFwcGxpY2F0aW9uQ2FjaGVGCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtl
VW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBhcHBsaWNhdGlvbkNh
Y2hlRGlza1VzYWdlRm9yT3JpZ2luQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2Jq
ZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRD
b3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9u
KQoreworICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVN
YWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IG9y
aWdpblVSTChBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBhcmd1bWVudHNbMF0s
IGV4Y2VwdGlvbikpOworICAgIEFTU0VSVCghKmV4Y2VwdGlvbik7CisgICAgCisgICAgTGF5b3V0
VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJv
bGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisKKyAgICByZXR1cm4gSlNW
YWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgY29udHJvbGxlci0+YXBwbGljYXRpb25DYWNoZURpc2tV
c2FnZUZvck9yaWdpbihvcmlnaW5VUkwuZ2V0KCkpKTsKK30KKwogc3RhdGljIEpTVmFsdWVSZWYg
b3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hlQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJn
dW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhj
ZXB0aW9uKQogewogICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGlj
X2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVj
dCkpOwpAQCAtMjEyMCw2ICsyMTMzLDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENv
bnRyb2xsZXI6OgogICAgICAgICB7ICJhZGRVc2VyU3R5bGVTaGVldCIsIGFkZFVzZXJTdHlsZVNo
ZWV0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiYXBpVGVzdE5ld1dpbmRvd0RhdGFMb2Fk
QmFzZVVSTCIsIGFwaVRlc3ROZXdXaW5kb3dEYXRhTG9hZEJhc2VVUkxDYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LAogICAgICAgICB7ICJhcGlUZXN0R29Ub0N1cnJlbnRCYWNrRm9yd2FyZEl0ZW0iLCBhcGlUZXN0
R29Ub0N1cnJlbnRCYWNrRm9yd2FyZEl0ZW1DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJh
cHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luIiwgYXBwbGljYXRpb25DYWNoZURpc2tV
c2FnZUZvck9yaWdpbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImNhbGxTaG91bGRDbG9z
ZU9uV2ViVmlldyIsIGNhbGxTaG91bGRDbG9zZU9uV2ViVmlld0NhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgICAgIHsgImNsZWFyQWxsQXBwbGljYXRpb25DYWNoZXMiLCBjbGVhckFsbEFwcGxpY2F0aW9u
Q2FjaGVzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiY2xlYXJBbGxEYXRhYmFzZXMiLCBj
bGVhckFsbERhdGFiYXNlc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCkluZGV4OiBUb29scy9EdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgJKHJldmlzaW9uIDgyMDA4KQorKysgVG9vbHMv
RHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
NjQsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBleGVjQ29tbWFuZChKU1N0cmluZ1JlZiBu
YW1lLCBKU1N0cmluZ1JlZiB2YWx1ZSk7CiAgICAgYm9vbCBmaW5kU3RyaW5nKEpTQ29udGV4dFJl
ZiwgSlNTdHJpbmdSZWYsIEpTT2JqZWN0UmVmIG9wdGlvbnNBcnJheSk7CiAgICAgSlNWYWx1ZVJl
ZiBvcmlnaW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGUoSlNDb250ZXh0UmVmKTsKKyAgICBsb25nIGxv
bmcgYXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbihKU1N0cmluZ1JlZiBuYW1lKTsK
ICAgICBib29sIGlzQ29tbWFuZEVuYWJsZWQoSlNTdHJpbmdSZWYgbmFtZSk7CiAgICAgdm9pZCBr
ZWVwV2ViSGlzdG9yeSgpOwogICAgIEpTVmFsdWVSZWYgY29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zp
c2l0ZWRJbmZvKEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZik7CkluZGV4OiBUb29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCShy
ZXZpc2lvbiA4MjAwOCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg0LDYgKzE4NCw3IEBAIExheW91
dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGwKICAgICBiaW5kTWV0aG9kKCJhYm9y
dE1vZGFsIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjphYm9ydE1vZGFsKTsKICAgICBiaW5kTWV0
aG9kKCJhY2Nlc3NTdG9yZWRXZWJTY3JpcHRPYmplY3QiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmFjY2Vzc1N0b3JlZFdlYlNjcmlwdE9iamVjdCk7CiAgICAgYmluZE1ldGhvZCgiYWRkRGlzYWxs
b3dlZFVSTCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkRGlzYWxsb3dlZFVSTCk7CisgICAg
YmluZE1ldGhvZCgiYXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbiIsICZMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6YXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbik7CiAgICAg
YmluZE1ldGhvZCgiY2FsbFNob3VsZENsb3NlT25XZWJWaWV3IiwgJkxheW91dFRlc3RDb250cm9s
bGVyOjpjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcpOwogICAgIGJpbmRNZXRob2QoImNsZWFyQWxs
QXBwbGljYXRpb25DYWNoZXMiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNsZWFyQWxsQXBwbGlj
YXRpb25DYWNoZXMpOwogICAgIGJpbmRNZXRob2QoImNsZWFyQXBwbGljYXRpb25DYWNoZUZvck9y
aWdpbiIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yT3Jp
Z2luKTsKQEAgLTc2Myw2ICs3NjQsMTIgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6b3Jp
Z2luc1dpdGhBcAogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogfQogCit2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjphcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IHRvIHN1cHBvcnQgZ2V0dGluZyBkaXNrIHVzYWdlIGJ5IGFsbCBhcHBsaWNhdGlvbiBjYWNo
ZSBmb3IgYW4gb3JpZ2luLgorICAgIHJlc3VsdC0+c2V0TnVsbCgpOworfQorCiB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRTY3JvbGxiYXJQb2xpY3koY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQuCkluZGV4
OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmgJKHJldmlzaW9uIDgyMDA4KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjkwLDYgKzI5MCw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIG9yaWdpbnNXaXRoQXBwbGljYXRpb25DYWNoZShjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgLy8gU2V0cyB0aGUgYXBwbGljYXRp
b24gY2FjaGUgcXVvdGEgZm9yIHRoZSBsb2NhbGhvc3Qgb3JpZ2luLgogICAgIHZvaWQgc2V0QXBw
bGljYXRpb25DYWNoZU9yaWdpblF1b3RhKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlh
bnQqKTsKKyAgICAvLyBSZXR1cm5zIGRpc2sgdXNhZ2UgYnkgYWxsIGFwcGxpY2F0aW9uIGNhY2hl
cyBmb3IgYW4gb3JpZ2luLgorICAgIHZvaWQgYXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9y
aWdpbihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKICAgICAvLyBDbGVh
cnMgYWxsIGRhdGFiYXNlcy4KICAgICB2b2lkIGNsZWFyQWxsRGF0YWJhc2VzKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAkocmV2aXNpb24gODIwMDgp
CisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02NjIsNiArNjYyLDEyIEBAIEpTVmFsdWVSZWYgTGF5b3V0VGVz
dENvbnRyb2xsZXI6Om9yaWdpbnMKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29u
dGV4dCk7CiB9CiAKK2xvbmcgbG9uZyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXBwbGljYXRpb25D
YWNoZURpc2tVc2FnZUZvck9yaWdpbihKU1N0cmluZ1JlZiBuYW1lKQoreworICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQKKyAgICByZXR1cm4gMDsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6Y2xlYXJBbGxEYXRhYmFzZXMoKQogewogICAgIHdlYmtpdF9yZW1vdmVfYWxsX3dlYl9kYXRh
YmFzZXMoKTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJv
bGxlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0
VGVzdENvbnRyb2xsZXJNYWMubW0JKHJldmlzaW9uIDgyMDA4KQorKysgVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzUsNiArMTM1LDEzIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNsZWFyQWxsQXBwbGkK
ICAgICBbV2ViQXBwbGljYXRpb25DYWNoZSBkZWxldGVBbGxBcHBsaWNhdGlvbkNhY2hlc107CiB9
CiAKK2xvbmcgbG9uZyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXBwbGljYXRpb25DYWNoZURpc2tV
c2FnZUZvck9yaWdpbihKU1N0cmluZ1JlZiB1cmwpCit7CisgICAgUmV0YWluUHRyPENGU3RyaW5n
UmVmPiB1cmxDRihBZG9wdENGLCBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCB1cmwpKTsKKyAgICBXZWJTZWN1cml0eU9yaWdpbiAqb3JpZ2luID0gW1tXZWJTZWN1cml0
eU9yaWdpbiBhbGxvY10gaW5pdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6KE5TU3RyaW5n
ICopdXJsQ0YuZ2V0KCldXTsKKyAgICByZXR1cm4gW1dlYkFwcGxpY2F0aW9uQ2FjaGUgZGlza1Vz
YWdlRm9yT3JpZ2luOm9yaWdpbl07Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN5
bmNMb2NhbFN0b3JhZ2UoKQogewogICAgIFtbV2ViU3RvcmFnZU1hbmFnZXIgc2hhcmVkV2ViU3Rv
cmFnZU1hbmFnZXJdIHN5bmNMb2NhbFN0b3JhZ2VdOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAJKHJldmlzaW9uIDgyMDA4
KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTU2NCw2ICs1NjQsMTIgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0QXBwbGljYXRpbwogICAgIG1fdG9wTG9hZGluZ0ZyYW1lLT5zZWN1cml0eU9yaWdp
bigpLnNldEFwcGxpY2F0aW9uQ2FjaGVRdW90YShxdW90YSk7CiB9CiAKK2xvbmcgbG9uZyBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6YXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbihjb25z
dCBRU3RyaW5nJiBvcmlnaW4pCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBzdXBwb3J0
IGdldHRpbmcgZGlzayB1c2FnZSBieSBhbGwgYXBwbGljYXRpb24gY2FjaGVzIGZvciBhbiBvcmln
aW4uCisgICAgcmV0dXJuIDA7Cit9CisKIFFTdHJpbmdMaXN0IExheW91dFRlc3RDb250cm9sbGVy
OjpvcmlnaW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGUoKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQgdG8gZ2V0IG9yaWdpbnMgdGhhdCBoYXZlIGFwcGxpY2F0aW9uIGNhY2hlcy4KSW5kZXg6IFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgJKHJl
dmlzaW9uIDgyMDA4KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRy
b2xsZXJRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTIsNiArMTkyLDcgQEAgcHVibGljIHNsb3Rz
OgogICAgIHZvaWQgY2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yT3JpZ2luKGNvbnN0IFFTdHJpbmcm
IHVybCk7CiAgICAgdm9pZCBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQg
bG9uZyBsb25nIHF1b3RhKTsKICAgICBRU3RyaW5nTGlzdCBvcmlnaW5zV2l0aEFwcGxpY2F0aW9u
Q2FjaGUoKTsKKyAgICBsb25nIGxvbmcgYXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdp
bihjb25zdCBRU3RyaW5nJik7IAogCiAgICAgdm9pZCBzZXREYXRhYmFzZVF1b3RhKGludCBzaXpl
KTsKICAgICB2b2lkIGNsZWFyQWxsRGF0YWJhc2VzKCk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVy
VHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAJKHJldmlzaW9u
IDgyMDA4KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVy
V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTY4LDYgKzk2OCwxMiBAQCBKU1ZhbHVlUmVmIExh
eW91dFRlc3RDb250cm9sbGVyOjpvcmlnaW5zCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGNvbnRleHQpOwogfQogCitsb25nIGxvbmcgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFwcGxp
Y2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4oSlNTdHJpbmdSZWYgbmFtZSkKK3sKKyAgICAv
LyBGSVhNRTogSW1wbGVtZW50IHRvIGdldCBkaXNrIHVzYWdlIGJ5IGFsbCBhcHBsaWNhdGlvbiBj
YWNoZXMgZm9yIGFuIG9yaWdpbi4KKyAgICByZXR1cm4gMDsKK30KKwogdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6Y2xlYXJBbGxEYXRhYmFzZXMoKQogewogICAgIENPTVB0cjxJV2ViRGF0YWJh
c2VNYW5hZ2VyPiBkYXRhYmFzZU1hbmFnZXI7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4MjAwOCkKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisy
MDExLTAzLTI1ICBBbnRvbiBEJ0F1cmlhICA8YWRhdXJpYUBhcHBsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFwcGxpY2F0aW9uQ2Fj
aGUgQVBJIHRvIGdldCBkaXNrIHVzYWdlIHBlciBvcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MTI3CisKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2FwcGNhY2hlL29yaWdpbi11c2FnZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXVzYWdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvYXBwY2FjaGUvcmVzb3VyY2VzL29yaWdpbi11c2FnZS1pZnJhbWUtMS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcGNhY2hlL3Jlc291cmNlcy9vcmlnaW4tdXNh
Z2UtaWZyYW1lLTEubWFuaWZlc3Q6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwY2Fj
aGUvcmVzb3VyY2VzL29yaWdpbi11c2FnZS1pZnJhbWUtMi5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2FwcGNhY2hlL3Jlc291cmNlcy9vcmlnaW4tdXNhZ2UtaWZyYW1lLTIubWFu
aWZlc3Q6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRp
b25zLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMtd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKwog
MjAxMS0wMy0yNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgcGx1
Z2lucy9lbWJlZC1wcmVmZXJzLXBsdWdpbnMtZm9yLWltYWdlcy5odG1sIGZhaWxzIG9uIFdpbmRv
d3MuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi11c2FnZS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNo
ZS9vcmlnaW4tdXNhZ2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tdXNhZ2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDEwIEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgcGVyLW9yaWdpbiB1c2Fn
ZSBpcyByZXBvcnRlZCBjb3JyZWN0bHkgYnkgbG9hZGluZyB0d28gaWZyYW1lcyB3aGljaCB1c2Ug
fjEzSyBlYWNoIGFuZCBxdWVyeWluZyBvcmlnaW4gdXNhZ2UuCisKK0NsZWFyZWQgYXBwbGljYXRp
b24gY2FjaGUKK1BBU1MgLSBjYWNoZWQgaWZyYW1lLTEKK1VzYWdlIGZvciBodHRwOi8vMTI3LjAu
MC4xOjgwMDAgYWZ0ZXIgZmlyc3QgZnJhbWU6IDE1NDE5CitQQVNTIC0gY2FjaGVkIGlmcmFtZS0y
CitVc2FnZSBmb3IgaHR0cDovLzEyNy4wLjAuMTo4MDAwIGFmdGVyIHNlY29uZCBmcmFtZTogMzA4
NDIKK1JlbW92aW5nIEFwcGxpY2F0aW9uIENhY2hlIGZvciBodHRwOi8vMTI3LjAuMC4xOjgwMDAK
K1VzYWdlIGZvciBodHRwOi8vMTI3LjAuMC4xOjgwMDA6IDAKKwpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tdXNhZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi11c2FnZS5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tdXNhZ2UuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CisK
K3ZhciBkcnRVUkwgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKworLy8gSGVscGVycy4KKwor
ZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
c29sZSIpLmlubmVySFRNTCArPSBtZXNzYWdlICsgIjxicj4iOworfQorCisvLyBTdGFydCBhbmQg
ZW5kLgorCitmdW5jdGlvbiBzdGFydFRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5jbGVhckFsbEFwcGxp
Y2F0aW9uQ2FjaGVzKCk7CisgICAgICAgIGxvZygiQ2xlYXJlZCBhcHBsaWNhdGlvbiBjYWNoZSIp
OworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXBwbGljYXRpb25DYWNoZURlbGVn
YXRlQ2FsbGJhY2tzKCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0K
KworICAgIGFkZEZpcnN0SUZyYW1lKCk7Cit9CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoKSB7Cisg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCisvLyBTdGFnZXMuCisKK2Z1bmN0aW9uIGFkZElG
cmFtZVdpdGhDb250aW51YXRpb24oc3JjLCBjb250aW51YXRpb24pIHsKKyAgICB3aW5kb3cub25t
ZXNzYWdlID0gY29udGludWF0aW9uOworICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpZnJhbWUiKTsKKyAgICBpZnJhbWUuc3JjID0gc3JjOworICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKK30KKworZnVuY3Rpb24gYWRkRmlyc3RJRnJhbWUoKSB7
CisgICAgLy8gRXhwZWN0ZWQgdG8gc3VjY2VlZC4KKyAgICBhZGRJRnJhbWVXaXRoQ29udGludWF0
aW9uKCJyZXNvdXJjZXMvb3JpZ2luLXVzYWdlLWlmcmFtZS0xLmh0bWwiLCBmdW5jdGlvbihldmVu
dCkgeworICAgICAgICBsb2coZXZlbnQuZGF0YSk7CisgICAgICAgIGxvZygiVXNhZ2UgZm9yICIg
KyBkcnRVUkwgKyAiIGFmdGVyIGZpcnN0IGZyYW1lOiAiICsgbGF5b3V0VGVzdENvbnRyb2xsZXIu
YXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbihkcnRVUkwpKTsKKyAgICAgICAgYWRk
U2Vjb25kSUZyYW1lKCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIGFkZFNlY29uZElGcmFtZSgp
IHsKKyAgICBhZGRJRnJhbWVXaXRoQ29udGludWF0aW9uKCJyZXNvdXJjZXMvb3JpZ2luLXVzYWdl
LWlmcmFtZS0yLmh0bWwiLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICBsb2coZXZlbnQuZGF0
YSk7CisKKyAgICAgICAgbG9nKCJVc2FnZSBmb3IgIiArIGRydFVSTCArICIgYWZ0ZXIgc2Vjb25k
IGZyYW1lOiAiICsgbGF5b3V0VGVzdENvbnRyb2xsZXIuYXBwbGljYXRpb25DYWNoZURpc2tVc2Fn
ZUZvck9yaWdpbihkcnRVUkwpKTsKKworICAgICAgICBsb2coIlJlbW92aW5nIEFwcGxpY2F0aW9u
IENhY2hlIGZvciAiICsgZHJ0VVJMKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuY2xl
YXJBcHBsaWNhdGlvbkNhY2hlRm9yT3JpZ2luKGRydFVSTCk7CisKKyAgICAgICAgbG9nKCJVc2Fn
ZSBmb3IgIiArIGRydFVSTCArICI6ICIgKyBsYXlvdXRUZXN0Q29udHJvbGxlci5hcHBsaWNhdGlv
bkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luKGRydFVSTCkpOworCisgICAgICAgIGZpbmlzaFRlc3Qo
KTsKKyAgICB9KTsKK30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InN0YXJ0
VGVzdCgpIj4KKzxwPlRoaXMgdGVzdCBjaGVja3MgdGhhdCBwZXItb3JpZ2luIHVzYWdlIGlzIHJl
cG9ydGVkIGNvcnJlY3RseSBieSBsb2FkaW5nIHR3byBpZnJhbWVzIHdoaWNoIHVzZSB+MTNLIGVh
Y2ggYW5kIHF1ZXJ5aW5nIG9yaWdpbiB1c2FnZS48L3A+Cis8L3A+Cis8cHJlIGlkPSJjb25zb2xl
Ij48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMv
YXBwY2FjaGUvcmVzb3VyY2VzL29yaWdpbi11c2FnZS1pZnJhbWUtMS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvcmVzb3VyY2VzL29yaWdpbi11c2Fn
ZS1pZnJhbWUtMS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHBjYWNoZS9yZXNvdXJjZXMvb3JpZ2luLXVzYWdlLWlmcmFtZS0xLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsOSBAQAorPGh0bWwgbWFuaWZlc3Q9Im9yaWdpbi11c2FnZS1pZnJhbWUtMS5t
YW5pZmVzdCI+Cis8c2NyaXB0PgorLy8gaWZyYW1lLTEgaXMgZXhwZWN0ZWQgdG8gc3VjY2VlZC4K
K2FwcGxpY2F0aW9uQ2FjaGUub25jYWNoZWQgPSBmdW5jdGlvbigpIHsgcGFyZW50LnBvc3RNZXNz
YWdlKCJQQVNTIC0gY2FjaGVkIGlmcmFtZS0xIiwgIioiKTsgfTsKK2FwcGxpY2F0aW9uQ2FjaGUu
b25lcnJvciA9IGZ1bmN0aW9uKCkgeyBwYXJlbnQucG9zdE1lc3NhZ2UoIkZBSUwgLSBlcnJvciBj
YWNoaW5nIGlmcmFtZS0xLCBleHBlY3RlZCB0aGlzIHRvIHN1Y2NlZWQiLCAiKiIpOyB9OworYXBw
bGljYXRpb25DYWNoZS5vbm5vdXBkYXRlID0gZnVuY3Rpb24oKSB7IHBhcmVudC5wb3N0TWVzc2Fn
ZSgiRkFJTCAtIG5vIHVwZGF0ZSBpZnJhbWUtMSwgYWxsIGNhY2hlcyBzaG91bGQgaGF2ZSBiZWVu
IGRlbGV0ZWQgYmVmb3JlIHRoaXMgdGVzdCIsICIqIik7IH07CisKKzwvc2NyaXB0PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9yZXNvdXJjZXMvb3JpZ2lu
LXVzYWdlLWlmcmFtZS0xLm1hbmlmZXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvYXBwY2FjaGUvcmVzb3VyY2VzL29yaWdpbi11c2FnZS1pZnJhbWUtMS5tYW5pZmVzdAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvcmVzb3VyY2Vz
L29yaWdpbi11c2FnZS1pZnJhbWUtMS5tYW5pZmVzdAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2
IEBACitDQUNIRSBNQU5JRkVTVAorCisjIFRoaXMgYWRkcyB+MTNLIHRvIHRoZSBhcHAgY2FjaGUK
KworQ0FDSEU6CithYmUucG5nCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hl
L3Jlc291cmNlcy9vcmlnaW4tdXNhZ2UtaWZyYW1lLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL3Jlc291cmNlcy9vcmlnaW4tdXNhZ2UtaWZyYW1l
LTIuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUv
cmVzb3VyY2VzL29yaWdpbi11c2FnZS1pZnJhbWUtMi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDggQEAKKzxodG1sIG1hbmlmZXN0PSJvcmlnaW4tdXNhZ2UtaWZyYW1lLTIubWFuaWZlc3Qi
PgorPHNjcmlwdD4KKy8vIGlmcmFtZS0yIGlzIGV4cGVjdGVkIHRvIGZhaWwgZHVlIHRvIGV4Y2Vl
ZGluZyB0aGUgb3JpZ2luIHF1b3RhLgorYXBwbGljYXRpb25DYWNoZS5vbmNhY2hlZCA9IGZ1bmN0
aW9uKCkgeyBwYXJlbnQucG9zdE1lc3NhZ2UoIlBBU1MgLSBjYWNoZWQgaWZyYW1lLTIiLCAiKiIp
OyB9OworYXBwbGljYXRpb25DYWNoZS5vbmVycm9yID0gZnVuY3Rpb24oKSB7IHBhcmVudC5wb3N0
TWVzc2FnZSgiRkFJTCAtIGVycm9yIGNhY2hpbmcgaWZyYW1lLTIiLCAiKiIpOyB9OworYXBwbGlj
YXRpb25DYWNoZS5vbm5vdXBkYXRlID0gZnVuY3Rpb24oKSB7IHBhcmVudC5wb3N0TWVzc2FnZSgi
RkFJTCAtIG5vIHVwZGF0ZSBpZnJhbWUtMiwgYWxsIGNhY2hlcyBzaG91bGQgaGF2ZSBiZWVuIGRl
bGV0ZWQgYmVmb3JlIHRoaXMgdGVzdCIsICIqIik7IH07Cis8L3NjcmlwdD4KKzwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvcmVzb3VyY2VzL29yaWdpbi11c2Fn
ZS1pZnJhbWUtMi5tYW5pZmVzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcGNhY2hlL3Jlc291cmNlcy9vcmlnaW4tdXNhZ2UtaWZyYW1lLTIubWFuaWZlc3QJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL3Jlc291cmNlcy9vcmln
aW4tdXNhZ2UtaWZyYW1lLTIubWFuaWZlc3QJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNiBAQAor
Q0FDSEUgTUFOSUZFU1QKKworIyBUaGlzIGFkZHMgfjEzSyB0byB0aGUgYXBwIGNhY2hlCisKK0NB
Q0hFOgorYWJlLnBuZwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9l
eHBlY3RhdGlvbnMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAkocmV2aXNpb24gODIwMDgpCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTE3MzIsNiArMTczMiw4IEBAIEJVR0NSMjg0NCBTS0lQIDogaHR0cC90ZXN0cy9hcHBjYWNo
ZS9ub24KIEJVR1dLIFNLSVAgOiBodHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1kZWxldGUuaHRt
bCA9IEZBSUwKIC8vIExheW91dFRlc3RDb250cm9sbGVyOjpnZXRPcmlnaW5zV2l0aEFwcGxpY2F0
aW9uQ2FjaGUgaXNuJ3QgaW1wbGVtZW50ZWQKIEJVR1dLIFNLSVAgOiBodHRwL3Rlc3RzL2FwcGNh
Y2hlL29yaWdpbnMtd2l0aC1hcHBjYWNoZS5odG1sID0gRkFJTAorLy8gTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4gaXNuJ3QgaW1wbGVtZW50
ZWQgLSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcxMjcKK0JVR1dL
IFNLSVAgOiBodHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi11c2FnZS5odG1sID0gRkFJTAogCiAv
LyBOZXcgZmFpbHVyZXMgZnJvbSBXZWJLaXQgcjUxNTc3CiBCVUdDUjI5MTY0IFdJTiBMSU5VWCBN
QUMgOiBmYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1lLXBsdWdpbnMuaHRtbCA9IFRFWFQKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCShyZXZpc2lvbiA4MjAwOCkKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC00OTEsNiArNDkxLDgg
QEAgaHR0cC90ZXN0cy9hcHBjYWNoZS9mYWxsYmFjay5odG1sCiBodHRwL3Rlc3RzL2FwcGNhY2hl
L29yaWdpbi1xdW90YS5odG1sCiBodHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi1kZWxldGUuaHRt
bAogaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW5zLXdpdGgtYXBwY2FjaGUuaHRtbAorIyBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6YXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbiBpc24n
dCBpbXBsZW1lbnRlZCAtIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
NzEyNworaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tdXNhZ2UuaHRtbAogaHR0cC90ZXN0cy9j
b29raWVzL2RvdWJsZS1xdW90ZWQtdmFsdWUtd2l0aC1zZW1pLWNvbG9uLmh0bWwKIGh0dHAvdGVz
dHMvbG9hZGluZy9iYWQtc2NoZW1lLXN1YmZyYW1lLmh0bWwKIGh0dHAvdGVzdHMvbG9hZGluZy9i
YWQtc2VydmVyLXN1YmZyYW1lLmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Nr
aXBwZWQJKHJldmlzaW9uIDgyMDA4KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9T
a2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xMTMxLDYgKzExMzEsOCBAQCBmYXN0L3BhcnNlci9u
b3NjcmlwdC13aXRoLWphdmFzY3JpcHQtZGlzCiBmYXN0L3BhcnNlci9ub3NjcmlwdC13aXRoLWph
dmFzY3JpcHQtZW5hYmxlZC5odG1sCiBmYXN0L3JlcGFpbnQvbm8tY2FyZXQtcmVwYWludC1pbi1u
b24tY29udGVudC1lZGl0YWJsZS1lbGVtZW50Lmh0bWwKIGh0dHAvdGVzdHMvYXBwY2FjaGUvZGlz
YWJsZWQuaHRtbAorIyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXBwbGljYXRpb25DYWNoZURpc2tV
c2FnZUZvck9yaWdpbiBpc24ndCBpbXBsZW1lbnRlZCAtIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01NzEyNworaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tdXNhZ2Uu
aHRtbAogaHR0cC90ZXN0cy9jYW52YXMvd2ViZ2wvb3JpZ2luLWNsZWFuLWNvbmZvcm1hbmNlLmh0
bWwKIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9waW5nLWNyb3NzLW9yaWdpbi1mcm9tLWh0dHBzLmh0
bWwKIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9waW5nLWNyb3NzLW9yaWdpbi5odG1sCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1NraXBwZWQJKHJldmlzaW9uIDgyMDA4KQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMzIzMiw2ICszMjMyLDggQEAgaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC9iYXNpYy1hdXRoLmh0bQogaHR0cC90ZXN0cy9hcHBjYWNo
ZS9vcmlnaW4tZGVsZXRlLmh0bWwKICMgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmdldE9yaWdpbnNX
aXRoQXBwbGljYXRpb25DYWNoZSBpcyBub3QgaW1wbGVtZW50ZWQKIGh0dHAvdGVzdHMvYXBwY2Fj
aGUvb3JpZ2lucy13aXRoLWFwcGNhY2hlLmh0bWwKKyMgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFw
cGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4gaXNuJ3QgaW1wbGVtZW50ZWQgLSBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcxMjcKK2h0dHAvdGVzdHMvYXBw
Y2FjaGUvb3JpZ2luLXVzYWdlLmh0bWwKIAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTY2OTEKIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1z
aXplLWNodW5rZWQuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93039</attachid>
            <date>2011-05-10 16:23:13 -0700</date>
            <delta_ts>2011-05-10 17:27:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57127-20110510162311.patch</filename>
            <type>text/plain</type>
            <size>24010</size>
            <attacher name="Anton D&apos;Auria">adauria</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg2MTkwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDUtMTAgIEFudG9uIEQn
QXVyaWEgIDxhZGF1cmlhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTdG9yYWdlVHJhY2tlciBzaG91bGQgcmVwb3J0IGFjdHVhbCBs
b2NhbCBzdG9yYWdlIHVzYWdlIG9uIGRpc2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYwNTU4CisKKyAgICAgICAgVGVzdHM6IHN0b3JhZ2UvZG9tc3Rv
cmFnZS9sb2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNrZXIvc3RvcmFnZS10cmFja2VyLTYtY3JlYXRl
Lmh0bWwKKyAgICAgICAgICAgICAgIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3Rv
cmFnZXRyYWNrZXIvc3RvcmFnZS10cmFja2VyLTctdXNhZ2UuaHRtbAorCisgICAgICAgIFVzZSBT
UUxpdGVGaWxlU3lzdGVtOjpnZXREYXRhYmFzZUZpbGVTaXplIHRvIGdldCBhY3R1YWwgdXNhZ2Ug
YnkKKyAgICAgICAgYW4gb3JpZ2luJ3MgbG9jYWwgc3RvcmFnZSBkYi4gRmFjdG9yZWQgb3V0IGNv
ZGUgdGhhdCByZXRyaWV2ZXMKKyAgICAgICAgcGF0aCBvZiBsb2NhbCBzdG9yYWdlIGRiLgorCisg
ICAgICAgICogV2ViQ29yZS5leHAuaW46IFNvcnRlZCBhbHBoYWJldGljYWxseSBTdG9yYWdlVHJh
Y2tlcidzIG1hbmdsZWQKKyAgICAgICAgZnVuY3Rpb24gbmFtZXMuCisgICAgICAgICogc3RvcmFn
ZS9TdG9yYWdlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6
c3luY0RlbGV0ZU9yaWdpbik6IFVzZXMgaGVscGVyIGZ1bmN0aW9uCisgICAgICAgIHRvIGdldCBw
YXRoIG9mIG9yaWdpbidzIGRiCisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tlcjo6ZGF0
YWJhc2VQYXRoRm9yT3JpZ2luKTogTmV3IGhlbHBlciBmdW5jdGlvbi4KKyAgICAgICAgdGhhdCBn
ZXRzIHRoZSBwYXRoIG9mIGFuIG9yaWdpbidzIGxvY2FsIHN0b3JhZ2UgZGIgZnJvbSBTdG9yYWdl
VHJhY2tlci4KKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VUcmFja2VyOjpkaXNrVXNhZ2VGb3JP
cmlnaW4pOiBOZXcgQVBJLgorICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaDoKKwog
MjAxMS0wNS0xMCAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IE5hdGUgQ2hhcGluLgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHJl
dmlzaW9uIDg2MTkwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcg
Y29weSkKQEAgLTE0MDIsMTMgKzE0MDIsMTQgQEAgX3drU2lnbmFsQ0ZSZWFkU3RyZWFtSGFzQnl0
ZXMKIF93a1NpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZwogCiAjaWYgRU5BQkxFKERP
TV9TVE9SQUdFKQotX19aTjdXZWJDb3JlMTRTdG9yYWdlVHJhY2tlcjE3aW5pdGlhbGl6ZVRyYWNr
ZXJFUktOM1dURjZTdHJpbmdFCi1fX1pON1dlYkNvcmUxNFN0b3JhZ2VUcmFja2VyMTZkZWxldGVB
bGxPcmlnaW5zRXYKLV9fWk43V2ViQ29yZTE0U3RvcmFnZVRyYWNrZXIxMmRlbGV0ZU9yaWdpbkVQ
TlNfMTRTZWN1cml0eU9yaWdpbkUKLV9fWk43V2ViQ29yZTE0U3RvcmFnZVRyYWNrZXI3dHJhY2tl
ckV2CiBfX1pON1dlYkNvcmUxNFN0b3JhZ2VUcmFja2VyN29yaWdpbnNFUk4zV1RGNlZlY3RvcklO
UzFfNlJlZlB0cklOU18xNFNlY3VyaXR5T3JpZ2luRUVFTG0wRUVFCitfX1pON1dlYkNvcmUxNFN0
b3JhZ2VUcmFja2VyN3RyYWNrZXJFdgogX19aTjdXZWJDb3JlMTRTdG9yYWdlVHJhY2tlcjlzZXRD
bGllbnRFUE5TXzIwU3RvcmFnZVRyYWNrZXJDbGllbnRFCitfX1pON1dlYkNvcmUxNFN0b3JhZ2VU
cmFja2VyMTJkZWxldGVPcmlnaW5FUE5TXzE0U2VjdXJpdHlPcmlnaW5FCitfX1pON1dlYkNvcmUx
NFN0b3JhZ2VUcmFja2VyMTZkZWxldGVBbGxPcmlnaW5zRXYKIF9fWk43V2ViQ29yZTE0U3RvcmFn
ZVRyYWNrZXIxNnN5bmNMb2NhbFN0b3JhZ2VFdgorX19aTjdXZWJDb3JlMTRTdG9yYWdlVHJhY2tl
cjE3aW5pdGlhbGl6ZVRyYWNrZXJFUktOM1dURjZTdHJpbmdFCitfX1pON1dlYkNvcmUxNFN0b3Jh
Z2VUcmFja2VyMThkaXNrVXNhZ2VGb3JPcmlnaW5FUE5TXzE0U2VjdXJpdHlPcmlnaW5FCiBfX1pO
N1dlYkNvcmUxNFN0b3JhZ2VUcmFja2VyMzJzeW5jRmlsZVN5c3RlbUFuZFRyYWNrZXJEYXRhYmFz
ZUV2CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVHJhY2tl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVHJhY2tl
ci5jcHAJKHJldmlzaW9uIDg2MTkwKQorKysgU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
VHJhY2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1MywyMCArNDUzLDcgQEAgdm9pZCBTdG9y
YWdlVHJhY2tlcjo6c3luY0RlbGV0ZU9yaWdpbihjbwogICAgIGlmICghbV9kYXRhYmFzZS5pc09w
ZW4oKSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIC8vIEdldCBvcmlnaW4ncyBkYiBmaWxl
IHBhdGgsIGRlbGV0ZSBlbnRyeSBpbiB0cmFja2VyJ3MgZGIsIHRoZW4gZGVsZXRlIGRiIGZpbGUu
Ci0gICAgU1FMaXRlU3RhdGVtZW50IHBhdGhTdGF0ZW1lbnQobV9kYXRhYmFzZSwgIlNFTEVDVCBw
YXRoIEZST00gT3JpZ2lucyBXSEVSRSBvcmlnaW49PyIpOwotICAgIGlmIChwYXRoU3RhdGVtZW50
LnByZXBhcmUoKSAhPSBTUUxSZXN1bHRPaykgewotICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0
byBwcmVwYXJlIHNlbGVjdGlvbiBvZiBwYXRoIGZvciBvcmlnaW4gJyVzJyIsIG9yaWdpbklkZW50
aWZpZXIuYXNjaWkoKS5kYXRhKCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIHBhdGhT
dGF0ZW1lbnQuYmluZFRleHQoMSwgb3JpZ2luSWRlbnRpZmllcik7Ci0gICAgaW50IHJlc3VsdCA9
IHBhdGhTdGF0ZW1lbnQuc3RlcCgpOwotICAgIGlmIChyZXN1bHQgIT0gU1FMUmVzdWx0Um93KSB7
Ci0gICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIGZpbmQgb3JpZ2luICclcycgaW4gT3JpZ2lu
cyB0YWJsZSIsIG9yaWdpbklkZW50aWZpZXIuYXNjaWkoKS5kYXRhKCkpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotICAgIAotICAgIFN0cmluZyBwYXRoID0gcGF0aFN0YXRlbWVudC5nZXRDb2x1
bW5UZXh0KDApOworICAgIFN0cmluZyBwYXRoID0gZGF0YWJhc2VQYXRoRm9yT3JpZ2luKG9yaWdp
bklkZW50aWZpZXIpOwogCiAgICAgQVNTRVJUKCFwYXRoLmlzRW1wdHkoKSk7CiAgICAgCkBAIC01
NTgsNyArNTQ1LDQyIEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnNldElzQWN0aXZlKGJvb2wgZmwK
IHsKICAgICBtX2lzQWN0aXZlID0gZmxhZzsKIH0KKyAgICAKK1N0cmluZyBTdG9yYWdlVHJhY2tl
cjo6ZGF0YWJhc2VQYXRoRm9yT3JpZ2luKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcikK
K3sKKyAgICBBU1NFUlQoIW1fZGF0YWJhc2VHdWFyZC50cnlMb2NrKCkpOworICAgIEFTU0VSVCht
X2lzQWN0aXZlKTsKKyAgICAKKyAgICBpZiAoIW1fZGF0YWJhc2UuaXNPcGVuKCkpCisgICAgICAg
IHJldHVybiBTdHJpbmcoKTsKKyAgICAKKyAgICBTUUxpdGVTdGF0ZW1lbnQgcGF0aFN0YXRlbWVu
dChtX2RhdGFiYXNlLCAiU0VMRUNUIHBhdGggRlJPTSBPcmlnaW5zIFdIRVJFIG9yaWdpbj0/Iik7
CisgICAgaWYgKHBhdGhTdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTFJlc3VsdE9rKSB7CisgICAg
ICAgIExPR19FUlJPUigiVW5hYmxlIHRvIHByZXBhcmUgc2VsZWN0aW9uIG9mIHBhdGggZm9yIG9y
aWdpbiAnJXMnIiwgb3JpZ2luSWRlbnRpZmllci5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKKyAgICB9CisgICAgcGF0aFN0YXRlbWVudC5iaW5kVGV4dCgxLCBvcmln
aW5JZGVudGlmaWVyKTsKKyAgICBpbnQgcmVzdWx0ID0gcGF0aFN0YXRlbWVudC5zdGVwKCk7Cisg
ICAgaWYgKHJlc3VsdCAhPSBTUUxSZXN1bHRSb3cpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsK
IAorICAgIHJldHVybiBwYXRoU3RhdGVtZW50LmdldENvbHVtblRleHQoMCk7Cit9CisgICAgCits
b25nIGxvbmcgU3RvcmFnZVRyYWNrZXI6OmRpc2tVc2FnZUZvck9yaWdpbihTZWN1cml0eU9yaWdp
biogb3JpZ2luKQoreworICAgIGlmICghbV9pc0FjdGl2ZSkKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICBNdXRleExvY2tlciBsb2NrKG1fZGF0YWJhc2VHdWFyZCk7CisKKyAgICBTdHJpbmcgcGF0
aCA9IGRhdGFiYXNlUGF0aEZvck9yaWdpbihvcmlnaW4tPmRhdGFiYXNlSWRlbnRpZmllcigpKTsK
KyAgICBpZiAocGF0aC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJu
IFNRTGl0ZUZpbGVTeXN0ZW06OmdldERhdGFiYXNlRmlsZVNpemUocGF0aCk7Cit9CisgICAgCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoRE9NX1NUT1JBR0UpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5oCShyZXZpc2lvbiA4NjE5
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtNTcsNyArNTcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVPcmlnaW4oU2Vj
dXJpdHlPcmlnaW4qKTsKICAgICB2b2lkIGRlbGV0ZU9yaWdpbihjb25zdCBTdHJpbmcmIG9yaWdp
bklkZW50aWZpZXIpOwogICAgIHZvaWQgb3JpZ2lucyhWZWN0b3I8UmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiA+JiByZXN1bHQpOwotCisgICAgbG9uZyBsb25nIGRpc2tVc2FnZUZvck9yaWdpbihTZWN1
cml0eU9yaWdpbiopOworICAgIAogICAgIHZvaWQgY2FuY2VsRGVsZXRpbmdPcmlnaW4oY29uc3Qg
U3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKTsKICAgICAKICAgICB2b2lkIHNldENsaWVudChTdG9y
YWdlVHJhY2tlckNsaWVudCopOwpAQCAtODIsNiArODMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
c2V0U3RvcmFnZURpcmVjdG9yeVBhdGgoY29uc3QgU3RyaW5nJik7CiAKICAgICB2b2lkIGRlbGV0
ZVRyYWNrZXJGaWxlcygpOworICAgIFN0cmluZyBkYXRhYmFzZVBhdGhGb3JPcmlnaW4oY29uc3Qg
U3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKTsKIAogICAgIGJvb2wgY2FuRGVsZXRlT3JpZ2luKGNv
bnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcik7CiAgICAgdm9pZCB3aWxsRGVsZXRlT3JpZ2lu
KGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA4NjE5MCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDExLTAzLTI1ICBBbnRvbiBEJ0F1cmlhICA8YWRhdXJp
YUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIEFwcGxpY2F0aW9uQ2FjaGUgQVBJIHRvIGdldCBkaXNrIHVzYWdlIHBlciBvcmln
aW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MTI3
CisKKyAgICAgICAgQWRkZWQgTWFjIHBvcnQgQVBJLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQXBwbGljYXRpb25DYWNoZS5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkFw
cGxpY2F0aW9uQ2FjaGUubW06CisgICAgICAgICgrW1dlYkFwcGxpY2F0aW9uQ2FjaGUgZGlza1Vz
YWdlRm9yT3JpZ2luOl0pOgorCiAyMDExLTA1LTEwICBCZXRoIERha2luICA8YmRha2luQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvbWFjL1N0b3JhZ2UvV2ViU3RvcmFnZU1hbmFnZXIubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlci5tbQkocmV2aXNpb24gODYx
OTApCisrKyBTb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dlYlN0b3JhZ2VNYW5hZ2VyLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC03NSw2ICs3NSwxMSBAQCAtICh2b2lkKWRlbGV0ZU9yaWdpbjooV2Vi
U2VjdXJpdHlPcmlnaW4gCiAgICAgU3RvcmFnZVRyYWNrZXI6OnRyYWNrZXIoKS5kZWxldGVPcmln
aW4oW29yaWdpbiBfY29yZV0pOwogfQogCistICh1bnNpZ25lZCBsb25nIGxvbmcpZGlza1VzYWdl
Rm9yT3JpZ2luOihXZWJTZWN1cml0eU9yaWdpbiAqKW9yaWdpbgoreworICAgIHJldHVybiBTdG9y
YWdlVHJhY2tlcjo6dHJhY2tlcigpLmRpc2tVc2FnZUZvck9yaWdpbihbb3JpZ2luIF9jb3JlXSk7
Cit9CisKIC0gKHZvaWQpc3luY0xvY2FsU3RvcmFnZQogewogICAgIFN0b3JhZ2VUcmFja2VyOjp0
cmFja2VyKCkuc3luY0xvY2FsU3RvcmFnZSgpOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvU3Rv
cmFnZS9XZWJTdG9yYWdlTWFuYWdlclByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L21hYy9TdG9yYWdlL1dlYlN0b3JhZ2VNYW5hZ2VyUHJpdmF0ZS5oCShyZXZpc2lvbiA4NjE5
MCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1N0b3JhZ2UvV2ViU3RvcmFnZU1hbmFnZXJQcml2YXRl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAgQGludGVyZmFjZSBXZWJTdG9yYWdl
TWFuYWdlciA6IE5TT2JqZWN0CiAKIC0gKHZvaWQpZGVsZXRlQWxsT3JpZ2luczsKIC0gKHZvaWQp
ZGVsZXRlT3JpZ2luOihXZWJTZWN1cml0eU9yaWdpbiAqKW9yaWdpbjsKKy0gKHVuc2lnbmVkIGxv
bmcgbG9uZylkaXNrVXNhZ2VGb3JPcmlnaW46KFdlYlNlY3VyaXR5T3JpZ2luICopb3JpZ2luOwog
CiAtICh2b2lkKXN5bmNMb2NhbFN0b3JhZ2U7CiAtICh2b2lkKXN5bmNGaWxlU3lzdGVtQW5kVHJh
Y2tlckRhdGFiYXNlOwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L0NoYW5nZUxvZwkocmV2aXNpb24gODYxOTApCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwyOCBAQAorMjAxMS0wNS0xMCAgQW50b24gRCdBdXJpYSAgPGFkYXVy
aWFAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFN0b3JhZ2VUcmFja2VyIHNob3VsZCByZXBvcnQgYWN0dWFsIGxvY2FsIHN0b3JhZ2Ug
dXNhZ2Ugb24gZGlzaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjA1NTgKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKGxvY2FsU3RvcmFnZURpc2tVc2FnZUZvck9yaWdpbkNhbGxiYWNr
KToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAg
KExheW91dFRlc3RDb250cm9sbGVyOjpsb2NhbFN0b3JhZ2VEaXNrVXNhZ2VGb3JPcmlnaW4pOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNw
cDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpsb2NhbFN0b3JhZ2VEaXNrVXNhZ2VG
b3JPcmlnaW4pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJv
bGxlck1hYy5tbToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpsb2NhbFN0b3JhZ2VE
aXNrVXNhZ2VGb3JPcmlnaW4pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmxvY2Fs
U3RvcmFnZURpc2tVc2FnZUZvck9yaWdpbik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQv
TGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9M
YXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxl
cjo6bG9jYWxTdG9yYWdlRGlza1VzYWdlRm9yT3JpZ2luKToKKwogMjAxMS0wNS0xMCAgRGF2aWQg
TGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2hpbmlj
aGlybyBIYW1hamkuCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwCShyZXZpc2lvbiA4NjE5MCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgzLDYgKzQ4MywxOSBA
QCBzdGF0aWMgSlNWYWx1ZVJlZiBkZWxldGVMb2NhbFN0b3JhZ2VGb3JPCiAgICAgcmV0dXJuIEpT
VmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBsb2Nh
bFN0b3JhZ2VEaXNrVXNhZ2VGb3JPcmlnaW5DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwg
SlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1
bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pCit7CisgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNf
Y2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0
KSk7CisKKyAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCisgICAgICAgIHJldHVybiBKU1ZhbHVl
TWFrZVVuZGVmaW5lZChjb250ZXh0KTsKKworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBv
cmlnaW5VUkwoQWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzBd
LCBleGNlcHRpb24pKTsKKyAgICBBU1NFUlQoISpleGNlcHRpb24pOworCisgICAgcmV0dXJuIEpT
VmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIGNvbnRyb2xsZXItPmxvY2FsU3RvcmFnZURpc2tVc2Fn
ZUZvck9yaWdpbihvcmlnaW5VUkwuZ2V0KCkpKTsKK30KKwogc3RhdGljIEpTVmFsdWVSZWYgb3Jp
Z2luc1dpdGhMb2NhbFN0b3JhZ2VDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmpl
Y3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENv
dW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
CiB7CiAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxM
YXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CkBA
IC0yMzcxLDYgKzIzODQsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6CiAgICAgICAgIHsgInN5bmNMb2NhbFN0b3JhZ2UiLCBzeW5jTG9jYWxTdG9yYWdlQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwgICAgICAgICAgICAgICAgCiAgICAgICAgIHsgIm9ic2VydmVTdG9yYWdlVHJh
Y2tlck5vdGlmaWNhdGlvbnMiLCBvYnNlcnZlU3RvcmFnZVRyYWNrZXJOb3RpZmljYXRpb25zQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwgICAgICAgIAogICAgICAgICB7ICJkZWxldGVMb2NhbFN0b3JhZ2VGb3JP
cmlnaW4iLCBkZWxldGVMb2NhbFN0b3JhZ2VGb3JPcmlnaW5DYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAg
ICAgICB7ICJsb2NhbFN0b3JhZ2VEaXNrVXNhZ2VGb3JPcmlnaW4iLCBsb2NhbFN0b3JhZ2VEaXNr
VXNhZ2VGb3JPcmlnaW5DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJvcmlnaW5zV2l0aExv
Y2FsU3RvcmFnZSIsIG9yaWdpbnNXaXRoTG9jYWxTdG9yYWdlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAic2V0U2hvdWxkUGFpbnRCcm9rZW5JbWFnZSIsIHNldFNob3VsZFBhaW50QnJva2Vu
SW1hZ2VDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzaGFkb3dQc2V1ZG9JZCIsIHNoYWRv
d1BzZXVkb0lkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xh
eW91dFRlc3RDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuaAkocmV2aXNpb24gODYxOTApCisrKyBUb29scy9EdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMzAsNiAr
MzMwLDcgQEAgcHVibGljOgogICAgIEpTVmFsdWVSZWYgb3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2Uo
SlNDb250ZXh0UmVmKTsKICAgICB2b2lkIGRlbGV0ZUFsbExvY2FsU3RvcmFnZSgpOwogICAgIHZv
aWQgZGVsZXRlTG9jYWxTdG9yYWdlRm9yT3JpZ2luKEpTU3RyaW5nUmVmIG9yaWdpbklkZW50aWZp
ZXIpOworICAgIGxvbmcgbG9uZyBsb2NhbFN0b3JhZ2VEaXNrVXNhZ2VGb3JPcmlnaW4oSlNTdHJp
bmdSZWYgb3JpZ2luSWRlbnRpZmllcik7CiAgICAgdm9pZCBvYnNlcnZlU3RvcmFnZVRyYWNrZXJO
b3RpZmljYXRpb25zKHVuc2lnbmVkIG51bWJlcik7CiAgICAgdm9pZCBzeW5jTG9jYWxTdG9yYWdl
KCk7CiAKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDg2MTkwKQorKysgVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMDUsNiArMjA1LDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250
cm9sbAogICAgIGJpbmRNZXRob2QoInNldFVzZURhc2hib2FyZENvbXBhdGliaWxpdHlNb2RlIiwg
JkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRVc2VEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZSk7
CiAgICAgYmluZE1ldGhvZCgic3RvcmVXZWJTY3JpcHRPYmplY3QiLCAmTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnN0b3JlV2ViU2NyaXB0T2JqZWN0KTsKICAgICBiaW5kTWV0aG9kKCJkZWxldGVBbGxM
b2NhbFN0b3JhZ2UiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmRlbGV0ZUFsbExvY2FsU3RvcmFn
ZSk7CisgICAgYmluZE1ldGhvZCgibG9jYWxTdG9yYWdlRGlza1VzYWdlRm9yT3JpZ2luIiwgJkxh
eW91dFRlc3RDb250cm9sbGVyOjpsb2NhbFN0b3JhZ2VEaXNrVXNhZ2VGb3JPcmlnaW4pOwogICAg
IGJpbmRNZXRob2QoIm9yaWdpbnNXaXRoTG9jYWxTdG9yYWdlIiwgJkxheW91dFRlc3RDb250cm9s
bGVyOjpvcmlnaW5zV2l0aExvY2FsU3RvcmFnZSk7CiAgICAgYmluZE1ldGhvZCgiZGVsZXRlTG9j
YWxTdG9yYWdlRm9yT3JpZ2luIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkZWxldGVMb2NhbFN0
b3JhZ2VGb3JPcmlnaW4pOwogICAgIGJpbmRNZXRob2QoIm9ic2VydmVTdG9yYWdlVHJhY2tlck5v
dGlmaWNhdGlvbnMiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6Om9ic2VydmVTdG9yYWdlVHJhY2tl
ck5vdGlmaWNhdGlvbnMpOwpAQCAtMTc1MCw2ICsxNzUxLDExIEBAIHZvaWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmRlbGV0ZUFsbExvY2EKICAgICAvLyBOb3QgSW1wbGVtZW50ZWQKIH0KIAordm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bG9jYWxTdG9yYWdlRGlza1VzYWdlRm9yT3JpZ2luKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KikKK3sKKyAgICAvLyBO
b3QgSW1wbGVtZW50ZWQKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6b3JpZ2luc1dp
dGhMb2NhbFN0b3JhZ2UoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlh
bnQqKQogewogICAgIC8vIE5vdCBJbXBsZW1lbnRlZApJbmRleDogVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCShyZXZpc2lvbiA4
NjE5MCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2MCw2ICszNjAsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBkZWxldGVBbGxMb2NhbFN0b3JhZ2UoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCopOwogICAgIHZvaWQgb3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZGVsZXRlTG9jYWxTdG9yYWdlRm9yT3JpZ2lu
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGxvY2FsU3Rv
cmFnZURpc2tVc2FnZUZvck9yaWdpbihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
Kik7CiAgICAgdm9pZCBvYnNlcnZlU3RvcmFnZVRyYWNrZXJOb3RpZmljYXRpb25zKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIHN5bmNMb2NhbFN0b3JhZ2Uo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCkluZGV4OiBUb29scy9EdW1w
UmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAJKHJl
dmlzaW9uIDg2MTkwKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250
cm9sbGVyR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYwLDYgKzY2MCwxMiBAQCB2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjpjbGVhckFwcGxpY2F0CiAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0byBzdXBwb3J0IGRlbGV0aW5nIGFsbCBhcHBsaWNhdGlvbiBjYWNoZXMgZm9yIGFuIG9yaWdp
bi4KIH0KIAorbG9uZyBsb25nIExheW91dFRlc3RDb250cm9sbGVyOjpsb2NhbFN0b3JhZ2VEaXNr
VXNhZ2VGb3JPcmlnaW4oSlNTdHJpbmdSZWYgb3JpZ2luSWRlbnRpZmllcikKK3sKKyAgICAvLyBG
SVhNRTogSW1wbGVtZW50IHRvIHN1cHBvcnQgZ2V0dGluZyBkaXNrIHVzYWdlIGluIGJ5dGVzIGZv
ciBhbiBvcmlnaW4uCisgICAgcmV0dXJuIDA7Cit9CisKIEpTVmFsdWVSZWYgTGF5b3V0VGVzdENv
bnRyb2xsZXI6Om9yaWdpbnNXaXRoQXBwbGljYXRpb25DYWNoZShKU0NvbnRleHRSZWYgY29udGV4
dCkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRvIGdldCBvcmlnaW5zIHRoYXQgY29udGFp
biBhcHBsaWNhdGlvbiBjYWNoZXMuCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5
b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCShyZXZpc2lvbiA4NjE5MCkKKysrIFRv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTQwLDYgKzE0MCwxMyBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpz
eW5jTG9jYWxTdG9yCiAgICAgW1tXZWJTdG9yYWdlTWFuYWdlciBzaGFyZWRXZWJTdG9yYWdlTWFu
YWdlcl0gc3luY0xvY2FsU3RvcmFnZV07CiB9CiAKK2xvbmcgbG9uZyBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6bG9jYWxTdG9yYWdlRGlza1VzYWdlRm9yT3JpZ2luKEpTU3RyaW5nUmVmIHVybCkKK3sK
KyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHVybENGKEFkb3B0Q0YsIEpTU3RyaW5nQ29weUNG
U3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIHVybCkpOworICAgIFdlYlNlY3VyaXR5T3JpZ2lu
ICpvcmlnaW4gPSBbW1dlYlNlY3VyaXR5T3JpZ2luIGFsbG9jXSBpbml0V2l0aFVSTDpbTlNVUkwg
VVJMV2l0aFN0cmluZzooTlNTdHJpbmcgKil1cmxDRi5nZXQoKV1dOworICAgIHJldHVybiBbW1dl
YlN0b3JhZ2VNYW5hZ2VyIHNoYXJlZFdlYlN0b3JhZ2VNYW5hZ2VyXSBkaXNrVXNhZ2VGb3JPcmln
aW46b3JpZ2luXTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6b2JzZXJ2ZVN0b3Jh
Z2VUcmFja2VyTm90aWZpY2F0aW9ucyh1bnNpZ25lZCBudW1iZXIpCiB7CiAgICAgW3N0b3JhZ2VE
ZWxlZ2F0ZSBsb2dOb3RpZmljYXRpb25zOm51bWJlciBjb250cm9sbGVyOnRoaXNdOwpJbmRleDog
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5j
cHAJKHJldmlzaW9uIDg2MTkwKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVz
dENvbnRyb2xsZXJRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2NCw2ICs1NjQsMTIgQEAgdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2xlYXJBcHBsaWNhdAogICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQgdG8gc3VwcG9ydCBkZWxldGluZyBhbGwgYXBwbGljYXRpb24gY2FjaGVzIGZvciBhbiBv
cmlnaW4uCiB9CiAKK2xvbmcgbG9uZyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bG9jYWxTdG9yYWdl
RGlza1VzYWdlRm9yT3JpZ2luKGNvbnN0IFFTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpCit7Cisg
ICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBzdXBwb3J0IGdldHRpbmcgZGlzayB1c2FnZSBpbiBi
eXRlcyBmb3IgYW4gb3JpZ2luLgorICAgIHJldHVybiAwOworfQorCiB2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjpzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBs
b25nIHF1b3RhKQogewogICAgIGlmICghbV90b3BMb2FkaW5nRnJhbWUpCkluZGV4OiBUb29scy9E
dW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCShyZXZpc2lv
biA4NjE5MCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuaAkod29ya2luZyBjb3B5KQpAQCAtMjY2LDYgKzI2Niw3IEBAIHB1YmxpYyBzbG90czoKICAg
ICB2b2lkIG9yaWdpbnNXaXRoTG9jYWxTdG9yYWdlKCk7CiAgICAgdm9pZCBkZWxldGVBbGxMb2Nh
bFN0b3JhZ2UoKTsKICAgICB2b2lkIGRlbGV0ZUxvY2FsU3RvcmFnZUZvck9yaWdpbihjb25zdCBR
U3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKTsKKyAgICBsb25nIGxvbmcgbG9jYWxTdG9yYWdlRGlz
a1VzYWdlRm9yT3JpZ2luKGNvbnN0IFFTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpOwogICAgIHZv
aWQgb2JzZXJ2ZVN0b3JhZ2VUcmFja2VyTm90aWZpY2F0aW9ucyh1bnNpZ25lZCBudW1iZXIpOwog
ICAgIHZvaWQgc3luY0xvY2FsU3RvcmFnZSgpOwogCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJl
ZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAJKHJldmlzaW9uIDg2
MTkwKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2lu
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUzNyw2ICsxNTM3LDEyIEBAIEpTVmFsdWVSZWYgTGF5
b3V0VGVzdENvbnRyb2xsZXI6Om9yaWdpbnMKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmlu
ZWQoY29udGV4dCk7CiB9CiAKK2xvbmcgbG9uZyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bG9jYWxT
dG9yYWdlRGlza1VzYWdlRm9yT3JpZ2luKEpTU3RyaW5nUmVmIG9yaWdpbklkZW50aWZpZXIpCit7
CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBzdXBwb3J0IGdldHRpbmcgbG9jYWwgc3RvcmFn
ZSBkaXNrIHVzYWdlIGZvciBhbiBvcmlnaW4uCisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OmRlbGV0ZUxvY2FsU3RvcmFnZUZvck9yaWdpbihKU1N0cmluZ1Jl
ZiBVUkwpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudC4KSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDg2
MTkwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTEtMDUtMTAgIEFudG9uIEQnQXVyaWEgIDxhZGF1cmlhQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9yYWdlVHJh
Y2tlciBzaG91bGQgcmVwb3J0IGFjdHVhbCBsb2NhbCBzdG9yYWdlIHVzYWdlIG9uIGRpc2sKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNTU4CisKKyAg
ICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0b3JhZ2V0cmFja2VyL3N0
b3JhZ2UtdHJhY2tlci02LWNyZWF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0
b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNrZXIvc3RvcmFnZS10cmFj
a2VyLTYtY3JlYXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9s
b2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNrZXIvc3RvcmFnZS10cmFja2VyLTctdXNhZ2UtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdl
L3N0b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci03LXVzYWdlLmh0bWw6IEFkZGVkLgorCiAy
MDExLTA1LTA1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFrLgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNi1j
cmVhdGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9t
c3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNrZXIvc3RvcmFnZS10cmFja2VyLTYtY3Jl
YXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9t
c3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNrZXIvc3RvcmFnZS10cmFja2VyLTYtY3Jl
YXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMSBAQAorT3JpZ2luIGlk
ZW50aWZpZXI6ICdmaWxlX18wJworU3RvcmFnZVRyYWNrZXIgdGVzdCAtIHdyaXRlIGxvY2FsIHN0
b3JhZ2UgZm9yIHRoaXMgb3JpZ2luLiBTaG91bGQgYmUgY2FsbGVkIGFmdGVyIHN0b3JhZ2UtdHJh
Y2tlci01LWRlbGV0ZS1vbmUuaHRtbC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1RoaXMgdGVzdCBzaG91bGQgaGF2ZSBubyB2aXNpYmxlIG91dHB1dCBvbiBzdWNjZXNzLgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExh
eW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNrZXIv
c3RvcmFnZS10cmFja2VyLTYtY3JlYXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRy
YWNrZXItNi1jcmVhdGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uv
ZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNrZXIvc3RvcmFnZS10cmFja2VyLTYt
Y3JlYXRlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDcgQEAKKzxodG1sPgorPGhlYWQ+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uLy4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LWZ1bmN0aW9uLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiU3RvcmFnZVRyYWNrZXIgdGVz
dCAtIHdyaXRlIGxvY2FsIHN0b3JhZ2UgZm9yIHRoaXMgb3JpZ2luLiBTaG91bGQgYmUgY2FsbGVk
IGFmdGVyIHN0b3JhZ2UtdHJhY2tlci01LWRlbGV0ZS1vbmUuaHRtbC4iKTsKKworaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisgICAgCitmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaWYgKCF3aW5kb3cubG9jYWxT
dG9yYWdlKSB7CisgICAgICAgIHRlc3RGYWlsZWQoImxvY2FsU3RvcmFnZSBET0VTIE5PVCBleGlz
dCIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIGRlYnVnKCJUaGlzIHRlc3Qg
c2hvdWxkIGhhdmUgbm8gdmlzaWJsZSBvdXRwdXQgb24gc3VjY2Vzcy4iKTsKKworICAgIGlmIChs
YXlvdXRUZXN0Q29udHJvbGxlci5vcmlnaW5zV2l0aExvY2FsU3RvcmFnZSgpLmxlbmd0aCA+IDAp
IHsKKyAgICAgICAgLy8gQW4gb3JpZ2luIGFscmVhZHkgZXhpc3RzIHNvIHdlIGNhbiBleGl0Lgor
ICAgICAgICB0ZXN0RmFpbGVkKCJBbiBvcmlnaW4gYWxyZWFkeSBleGlzdGVkIHdpdGggbG9jYWwg
c3RvcmFnZS4iKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnN5bmNMb2NhbFN0b3Jh
Z2UoKTsKKyAgICAgICAgbG9jYWxTdG9yYWdlLnNvbWVPdGhlckRhdGEgPSAnd3JpdGVtZU1vcmUn
OworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vYnNlcnZlU3RvcmFnZVRyYWNrZXJOb3Rp
ZmljYXRpb25zKDEpOworICAgIH0KK30KKwordGVzdCgpOwkKKword2luZG93LnN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7Citpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxz
dG9yYWdlL3N0b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci03LXVzYWdlLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9y
YWdlL3N0b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci03LXVzYWdlLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3Jh
Z2Uvc3RvcmFnZXRyYWNrZXIvc3RvcmFnZS10cmFja2VyLTctdXNhZ2UtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExIEBACitUZXN0IEFQSSB0aGF0IHJlcG9ydHMgbG9jYWwg
c3RvcmFnZSBkaXNrIHVzYWdlIGJ5IG9yaWdpbi4gTk9URTogdGhpcyB0ZXN0IERFUEVORFMgb24g
c3RvcmFnZS10cmFja2VyLTYtY3JlYXRlLmh0bWwgdG8gY3JlYXRlIGxvY2FsIHN0b3JhZ2UgZm9y
IHRoZSAnZmlsZTovLycgb3JpZ2luLiBJZiB0aGlzIHRlc3QgcnVucyBpbiBhIHNlcGFyYXRlIERS
VCBpbnN0YW5jZSBmcm9tIHN0b3JhZ2UtdHJhY2tlci02LWNyZWF0ZS5odG1sLCBpdCBtYXkgRkFJ
TCBpZiB0aGVyZSBpcyBubyBsb2NhbCBzdG9yYWdlIQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5vcmlnaW5zV2l0aExvY2FsU3RvcmFn
ZSgpLnRvU3RyaW5nKCkgaXMgImZpbGVfXzAiCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVyLmxv
Y2FsU3RvcmFnZURpc2tVc2FnZUZvck9yaWdpbignZmlsZTovLycpID4gNjEwMCBpcyB0cnVlCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDog
TGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tl
ci9zdG9yYWdlLXRyYWNrZXItNy11c2FnZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNrZXIvc3RvcmFnZS10
cmFja2VyLTctdXNhZ2UuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uv
ZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNrZXIvc3RvcmFnZS10cmFja2VyLTct
dXNhZ2UuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNSBAQAorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IEFQSSB0aGF0IHJlcG9y
dHMgbG9jYWwgc3RvcmFnZSBkaXNrIHVzYWdlIGJ5IG9yaWdpbi4gTk9URTogdGhpcyB0ZXN0IERF
UEVORFMgb24gc3RvcmFnZS10cmFja2VyLTYtY3JlYXRlLmh0bWwgdG8gY3JlYXRlIGxvY2FsIHN0
b3JhZ2UgZm9yIHRoZSAnZmlsZTovLycgb3JpZ2luLiBJZiB0aGlzIHRlc3QgcnVucyBpbiBhIHNl
cGFyYXRlIERSVCBpbnN0YW5jZSBmcm9tIHN0b3JhZ2UtdHJhY2tlci02LWNyZWF0ZS5odG1sLCBp
dCBtYXkgRkFJTCBpZiB0aGVyZSBpcyBubyBsb2NhbCBzdG9yYWdlISIpOworCitmdW5jdGlvbiB0
ZXN0KCkKK3sKKyAgICBpZiAoIXdpbmRvdy5sb2NhbFN0b3JhZ2UpIHsKKyAgICAgICAgdGVzdEZh
aWxlZCgibG9jYWxTdG9yYWdlIERPRVMgTk9UIGV4aXN0Iik7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXIub3JpZ2luc1dpdGhMb2NhbFN0b3Jh
Z2UoKS5sZW5ndGggPiAwKSB7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibGF5b3V0
VGVzdENvbnRyb2xsZXIub3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKS50b1N0cmluZygpIiwgImZp
bGVfXzAiKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJsYXlvdXRUZXN0Q29udHJvbGxlci5sb2Nh
bFN0b3JhZ2VEaXNrVXNhZ2VGb3JPcmlnaW4oJ2ZpbGU6Ly8nKSA+IDYxMDAiKTsKKyAgICB9IGVs
c2UgeworICAgICAgICB0ZXN0RmFpbGVkKCJSYW4gd2l0aCBubyBvcmlnaW5zIHdpdGggbG9jYWwg
c3RvcmFnZS4iKTsKKyAgICB9CisKK30KKwordGVzdCgpOwkKKword2luZG93LnN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7Citpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93054</attachid>
            <date>2011-05-10 17:27:14 -0700</date>
            <delta_ts>2011-05-10 17:34:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57127-20110510172713.patch</filename>
            <type>text/plain</type>
            <size>25347</size>
            <attacher name="Anton D&apos;Auria">adauria</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg2MTk4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDUtMTAgIEFudG9uIEQn
QXVyaWEgIDxhZGF1cmlhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgQXBwbGljYXRpb25DYWNoZSBBUEkgdG8gZ2V0IGRpc2sg
dXNhZ2UgcGVyIG9yaWdpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTcxMjcKKworICAgICAgICBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSBhbHJlYWR5
IHByb3ZpZGVzIGFuIEFQSSB0byBnZXQgcGVyLW9yaWdpbgorICAgICAgICBkaXNrIHVzYWdlLiBU
aGlzIHNob3VsZCBiZSBleHBvc2VkIHRocm91Z2ggV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZQor
ICAgICAgICB0byBub3QgYmUgZGVwZW5kZW50IG9uIHN0b3JhZ2UgaW1wbGVtZW50YXRpb24uCisK
KyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tdXNhZ2UuaHRtbAorCisg
ICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZTo6ZGlz
a1VzYWdlRm9yT3JpZ2luKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZS5oOgorCiAyMDExLTA1LTEwICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdt
YWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByODYxOTUuCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gODYxOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMTgzMSw2ICsxODMxLDcgQEAgX19aTks3
V2ViQ29yZTROb2RlMTZ0cmF2ZXJzZU5leHROb2RlRVBLUwogI2VuZGlmCiAKICNpZiBFTkFCTEUo
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorX19aTjdXZWJDb3JlMTZBcHBsaWNhdGlvbkNhY2hl
MThkaXNrVXNhZ2VGb3JPcmlnaW5FUE5TXzE0U2VjdXJpdHlPcmlnaW5FCiBfX1pON1dlYkNvcmUx
NkFwcGxpY2F0aW9uQ2FjaGUyMGRlbGV0ZUNhY2hlRm9yT3JpZ2luRVBOU18xNFNlY3VyaXR5T3Jp
Z2luRQogX19aTjdXZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTE0cXVvdGFGb3JPcmln
aW5FUEtOU18xNFNlY3VyaXR5T3JpZ2luRVJ4CiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlMTRzZXRNYXhpbXVtU2l6ZUV4CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUuY3BwCShyZXZpc2lvbiA4NjE5OCkK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjA2LDcgKzIwNiwxNCBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGU6
OmRlbGV0ZUNhY2hlRm9yT3JpCiAgICAgICAgIH0KICAgICB9CiB9Ci0gICAgCisKK2ludDY0X3Qg
QXBwbGljYXRpb25DYWNoZTo6ZGlza1VzYWdlRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmln
aW4pCit7CisgICAgaW50NjRfdCB1c2FnZSA9IDA7CisgICAgY2FjaGVTdG9yYWdlKCkudXNhZ2VG
b3JPcmlnaW4ob3JpZ2luLCB1c2FnZSk7CisgICAgcmV0dXJuIHVzYWdlOworfQorCiAjaWZuZGVm
IE5ERUJVRwogdm9pZCBBcHBsaWNhdGlvbkNhY2hlOjpkdW1wKCkKIHsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUuaAkocmV2aXNp
b24gODYxOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5Miw4IEBAIHB1YmxpYzoKICAgICAKICAg
ICBzdGF0aWMgYm9vbCByZXF1ZXN0SXNIVFRQT3JIVFRQU0dldChjb25zdCBSZXNvdXJjZVJlcXVl
c3QmKTsKIAorICAgIHN0YXRpYyBpbnQ2NF90IGRpc2tVc2FnZUZvck9yaWdpbihTZWN1cml0eU9y
aWdpbiopOworICAgIAogICAgIGludDY0X3QgZXN0aW1hdGVkU2l6ZUluU3RvcmFnZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZXN0aW1hdGVkU2l6ZUluU3RvcmFnZTsgfQogCiBwcml2YXRlOgpJbmRleDog
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwkocmV2aXNpb24gODYxOTgpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0wNS0xMCAgQW50b24g
RCdBdXJpYSAgPGFkYXVyaWFAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBBcHBsaWNhdGlvbkNhY2hlIEFQSSB0byBnZXQgZGlz
ayB1c2FnZSBwZXIgb3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NzEyNworCisgICAgICAgIEFkZGVkIE1hYyBwb3J0IEFQSS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGUuaDoKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlLm1tOgorICAgICAgICAoK1tXZWJBcHBsaWNh
dGlvbkNhY2hlIGRpc2tVc2FnZUZvck9yaWdpbjpdKToKKwogMjAxMS0wNS0xMCAgQmV0aCBEYWtp
biAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNh
Y2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
QXBwbGljYXRpb25DYWNoZS5oCShyZXZpc2lvbiA4NjE5OCkKKysrIFNvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MzUsNiArMzUsOCBAQCBAaW50ZXJmYWNlIFdlYkFwcGxpY2F0aW9uQ2FjaGU6IE5TT2JqZWN0CiAr
IChsb25nIGxvbmcpZGVmYXVsdE9yaWdpblF1b3RhOwogKyAodm9pZClzZXREZWZhdWx0T3JpZ2lu
UXVvdGE6KGxvbmcgbG9uZylzaXplOwogCisrIChsb25nIGxvbmcpZGlza1VzYWdlRm9yT3JpZ2lu
OihXZWJTZWN1cml0eU9yaWdpbiAqKW9yaWdpbjsKKwogKyAodm9pZClkZWxldGVBbGxBcHBsaWNh
dGlvbkNhY2hlczsKICsgKHZvaWQpZGVsZXRlQ2FjaGVGb3JPcmlnaW46KFdlYlNlY3VyaXR5T3Jp
Z2luICopb3JpZ2luOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJBcHBsaWNhdGlvbkNhY2hlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGUubW0JKHJldmlzaW9uIDg2MTk4KQorKysg
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZS5tbQko
d29ya2luZyBjb3B5KQpAQCAtNTgsNiArNTgsMTEgQEAgKyAodm9pZClzZXREZWZhdWx0T3JpZ2lu
UXVvdGE6KGxvbmcgbG9uZwogICAgIGNhY2hlU3RvcmFnZSgpLnNldERlZmF1bHRPcmlnaW5RdW90
YShzaXplKTsKIH0KIAorKyAobG9uZyBsb25nKWRpc2tVc2FnZUZvck9yaWdpbjooV2ViU2VjdXJp
dHlPcmlnaW4gKilvcmlnaW4KK3sKKyAgICByZXR1cm4gQXBwbGljYXRpb25DYWNoZTo6ZGlza1Vz
YWdlRm9yT3JpZ2luKFtvcmlnaW4gX2NvcmVdKTsKK30KKwogKyAodm9pZClkZWxldGVBbGxBcHBs
aWNhdGlvbkNhY2hlcwogewogICAgIGNhY2hlU3RvcmFnZSgpLmRlbGV0ZUFsbEVudHJpZXMoKTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHJldmlzaW9uIDg2MTk4KQor
KysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBA
IC01MjI4LDYgKzUyMjgsOCBAQCAtIChCT09MKWlzR3JhbW1hckNoZWNraW5nRW5hYmxlZAogLy8g
RklYTUU6IFRoaXMgbWV0aG9kIHNob3VsZCBiZSBtZXJnZWQgaW50byBXZWJWaWV3RWRpdGluZyB3
aGVuIHdlJ3JlIG5vdCBpbiBBUEkgZnJlZXplCiAtICh2b2lkKXNldEdyYW1tYXJDaGVja2luZ0Vu
YWJsZWQ6KEJPT0wpZmxhZwogeworICAgIHJldHVybjsKKyAgICAKICAgICBpZiAoZ3JhbW1hckNo
ZWNraW5nRW5hYmxlZCA9PSBmbGFnKQogICAgICAgICByZXR1cm47CiAgICAgCkluZGV4OiBUb29s
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4NjE5
OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisy
MDExLTA1LTEwICBBbnRvbiBEJ0F1cmlhICA8YWRhdXJpYUBhcHBsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFwcGxpY2F0aW9uQ2Fj
aGUgQVBJIHRvIGdldCBkaXNrIHVzYWdlIHBlciBvcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MTI3CisKKyAgICAgICAgQWRkZWQgdGVzdCB0
aGF0IGxvYWRzIHR3byBmcmFtZXMgd2l0aCB+MTVLYiBpbWFnZSwgY2hlY2tzIHVzYWdlLAorICAg
ICAgICBkZWxldGVzIGFwcCBjYWNoZSwgdmVyaWZpZXMgdXNhZ2UgaXMgMC4KKworICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKGFwcGxp
Y2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW5DYWxsYmFjayk6CisgICAgICAgIChMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDogQWRkZWQgc3R1Yi4KKyAgICAgICAgKExheW91
dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgIChMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6YXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbik6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOiBB
ZGRlZCBzdHViLgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFwcGxpY2F0aW9uQ2Fj
aGVEaXNrVXNhZ2VGb3JPcmlnaW4pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlv
dXRUZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjph
cHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luKToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDogQWRkZWQgc3R1Yi4KKyAgICAgICAg
KExheW91dFRlc3RDb250cm9sbGVyOjphcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2lu
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNw
cDogQWRkZWQgc3R1Yi4KKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjphcHBsaWNhdGlv
bkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luKToKKwogMjAxMS0wNS0xMCAgRW5yaWNhIENhc3VjY2kg
IDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEJldGggRGFraW4uCklu
ZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCShy
ZXZpc2lvbiA4NjE5OCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIwLDYgKzQyMCwxOSBAQCBzdGF0aWMgSlNWYWx1
ZVJlZiBjbGVhckFwcGxpY2F0aW9uQ2FjaGVGCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBhcHBsaWNhdGlvbkNhY2hlRGlz
a1VzYWdlRm9yT3JpZ2luQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorewor
ICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOworCisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IG9yaWdpblVS
TChBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2Vw
dGlvbikpOworICAgIEFTU0VSVCghKmV4Y2VwdGlvbik7CisgICAgCisgICAgTGF5b3V0VGVzdENv
bnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+
KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisKKyAgICByZXR1cm4gSlNWYWx1ZU1h
a2VOdW1iZXIoY29udGV4dCwgY29udHJvbGxlci0+YXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZv
ck9yaWdpbihvcmlnaW5VUkwuZ2V0KCkpKTsKK30KKwogc3RhdGljIEpTVmFsdWVSZWYgb3JpZ2lu
c1dpdGhBcHBsaWNhdGlvbkNhY2hlQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2Jq
ZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRD
b3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9u
KQogewogICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8
TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwpA
QCAtMjIyMSw2ICsyMjM0LDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OgogICAgICAgICB7ICJhZGRVc2VyU3R5bGVTaGVldCIsIGFkZFVzZXJTdHlsZVNoZWV0Q2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiYXBpVGVzdE5ld1dpbmRvd0RhdGFMb2FkQmFzZVVS
TCIsIGFwaVRlc3ROZXdXaW5kb3dEYXRhTG9hZEJhc2VVUkxDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJhcGlUZXN0R29Ub0N1cnJlbnRCYWNrRm9yd2FyZEl0ZW0iLCBhcGlUZXN0R29Ub0N1
cnJlbnRCYWNrRm9yd2FyZEl0ZW1DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJhcHBsaWNh
dGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luIiwgYXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZv
ck9yaWdpbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImNhbGxTaG91bGRDbG9zZU9uV2Vi
VmlldyIsIGNhbGxTaG91bGRDbG9zZU9uV2ViVmlld0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAg
IHsgImNsZWFyQWxsQXBwbGljYXRpb25DYWNoZXMiLCBjbGVhckFsbEFwcGxpY2F0aW9uQ2FjaGVz
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiY2xlYXJBbGxEYXRhYmFzZXMiLCBjbGVhckFs
bERhdGFiYXNlc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmgJKHJldmlzaW9uIDg2MTk4KQorKysgVG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNjQsNiAr
NjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBleGVjQ29tbWFuZChKU1N0cmluZ1JlZiBuYW1lLCBK
U1N0cmluZ1JlZiB2YWx1ZSk7CiAgICAgYm9vbCBmaW5kU3RyaW5nKEpTQ29udGV4dFJlZiwgSlNT
dHJpbmdSZWYsIEpTT2JqZWN0UmVmIG9wdGlvbnNBcnJheSk7CiAgICAgSlNWYWx1ZVJlZiBvcmln
aW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGUoSlNDb250ZXh0UmVmKTsKKyAgICBsb25nIGxvbmcgYXBw
bGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbihKU1N0cmluZ1JlZiBuYW1lKTsKICAgICBi
b29sIGlzQ29tbWFuZEVuYWJsZWQoSlNTdHJpbmdSZWYgbmFtZSk7CiAgICAgdm9pZCBrZWVwV2Vi
SGlzdG9yeSgpOwogICAgIEpTVmFsdWVSZWYgY29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJ
bmZvKEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZik7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lv
biA4NjE5OCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkxLDYgKzE5MSw3IEBAIExheW91dFRlc3RD
b250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGwKICAgICBiaW5kTWV0aG9kKCJhYm9ydE1vZGFs
IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjphYm9ydE1vZGFsKTsKICAgICBiaW5kTWV0aG9kKCJh
Y2Nlc3NTdG9yZWRXZWJTY3JpcHRPYmplY3QiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFjY2Vz
c1N0b3JlZFdlYlNjcmlwdE9iamVjdCk7CiAgICAgYmluZE1ldGhvZCgiYWRkRGlzYWxsb3dlZFVS
TCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkRGlzYWxsb3dlZFVSTCk7CisgICAgYmluZE1l
dGhvZCgiYXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbiIsICZMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6YXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbik7CiAgICAgYmluZE1l
dGhvZCgiY2FsbFNob3VsZENsb3NlT25XZWJWaWV3IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpj
YWxsU2hvdWxkQ2xvc2VPbldlYlZpZXcpOwogICAgIGJpbmRNZXRob2QoImNsZWFyQWxsQXBwbGlj
YXRpb25DYWNoZXMiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNsZWFyQWxsQXBwbGljYXRpb25D
YWNoZXMpOwogICAgIGJpbmRNZXRob2QoImNsZWFyQXBwbGljYXRpb25DYWNoZUZvck9yaWdpbiIs
ICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yT3JpZ2luKTsK
QEAgLTgzOSw2ICs4NDAsMTIgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6b3JpZ2luc1dp
dGhBcAogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjphcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRv
IHN1cHBvcnQgZ2V0dGluZyBkaXNrIHVzYWdlIGJ5IGFsbCBhcHBsaWNhdGlvbiBjYWNoZSBmb3Ig
YW4gb3JpZ2luLgorICAgIHJlc3VsdC0+c2V0TnVsbCgpOworfQorCiB2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjpzZXRTY3JvbGxiYXJQb2xpY3koY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3Bw
VmFyaWFudCogcmVzdWx0KQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQuCkluZGV4OiBUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
LmgJKHJldmlzaW9uIDg2MTk4KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5
b3V0VGVzdENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjk1LDYgKzI5NSw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIG9yaWdpbnNXaXRoQXBwbGljYXRpb25DYWNoZShjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgLy8gU2V0cyB0aGUgYXBwbGljYXRpb24gY2Fj
aGUgcXVvdGEgZm9yIHRoZSBsb2NhbGhvc3Qgb3JpZ2luLgogICAgIHZvaWQgc2V0QXBwbGljYXRp
b25DYWNoZU9yaWdpblF1b3RhKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsK
KyAgICAvLyBSZXR1cm5zIGRpc2sgdXNhZ2UgYnkgYWxsIGFwcGxpY2F0aW9uIGNhY2hlcyBmb3Ig
YW4gb3JpZ2luLgorICAgIHZvaWQgYXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbihj
b25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKICAgICAvLyBDbGVhcnMgYWxs
IGRhdGFiYXNlcy4KICAgICB2b2lkIGNsZWFyQWxsRGF0YWJhc2VzKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYsIENwcFZhcmlhbnQqKTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlv
dXRUZXN0Q29udHJvbGxlckd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAkocmV2aXNpb24gODYxOTgpCisrKyBU
b29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02NjYsNiArNjY2LDEyIEBAIEpTVmFsdWVSZWYgTGF5b3V0VGVzdENvbnRy
b2xsZXI6Om9yaWdpbnMKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7
CiB9CiAKK2xvbmcgbG9uZyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXBwbGljYXRpb25DYWNoZURp
c2tVc2FnZUZvck9yaWdpbihKU1N0cmluZ1JlZiBuYW1lKQoreworICAgIC8vIEZJWE1FOiBpbXBs
ZW1lbnQKKyAgICByZXR1cm4gMDsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2xl
YXJBbGxEYXRhYmFzZXMoKQogewogICAgIHdlYmtpdF9yZW1vdmVfYWxsX3dlYl9kYXRhYmFzZXMo
KTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1h
Yy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENv
bnRyb2xsZXJNYWMubW0JKHJldmlzaW9uIDg2MTk4KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMzUsNiAr
MTM1LDEzIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNsZWFyQWxsQXBwbGkKICAgICBb
V2ViQXBwbGljYXRpb25DYWNoZSBkZWxldGVBbGxBcHBsaWNhdGlvbkNhY2hlc107CiB9CiAKK2xv
bmcgbG9uZyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZv
ck9yaWdpbihKU1N0cmluZ1JlZiB1cmwpCit7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiB1
cmxDRihBZG9wdENGLCBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCB1
cmwpKTsKKyAgICBXZWJTZWN1cml0eU9yaWdpbiAqb3JpZ2luID0gW1tXZWJTZWN1cml0eU9yaWdp
biBhbGxvY10gaW5pdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6KE5TU3RyaW5nICopdXJs
Q0YuZ2V0KCldXTsKKyAgICByZXR1cm4gW1dlYkFwcGxpY2F0aW9uQ2FjaGUgZGlza1VzYWdlRm9y
T3JpZ2luOm9yaWdpbl07Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN5bmNMb2Nh
bFN0b3JhZ2UoKQogewogICAgIFtbV2ViU3RvcmFnZU1hbmFnZXIgc2hhcmVkV2ViU3RvcmFnZU1h
bmFnZXJdIHN5bmNMb2NhbFN0b3JhZ2VdOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
TGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRl
clRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAJKHJldmlzaW9uIDg2MTk4KQorKysg
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTU3MSw2ICs1NzEsMTIgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0QXBwbGljYXRpbwogICAgIG1fdG9wTG9hZGluZ0ZyYW1lLT5zZWN1cml0eU9yaWdpbigpLnNl
dEFwcGxpY2F0aW9uQ2FjaGVRdW90YShxdW90YSk7CiB9CiAKK2xvbmcgbG9uZyBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6YXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbihjb25zdCBRU3Ry
aW5nJiBvcmlnaW4pCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0byBzdXBwb3J0IGdldHRp
bmcgZGlzayB1c2FnZSBieSBhbGwgYXBwbGljYXRpb24gY2FjaGVzIGZvciBhbiBvcmlnaW4uCisg
ICAgcmV0dXJuIDA7Cit9CisKIFFTdHJpbmdMaXN0IExheW91dFRlc3RDb250cm9sbGVyOjpvcmln
aW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGUoKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdG8g
Z2V0IG9yaWdpbnMgdGhhdCBoYXZlIGFwcGxpY2F0aW9uIGNhY2hlcy4KSW5kZXg6IFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgJKHJldmlzaW9u
IDg2MTk4KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJR
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOTMsNiArMTkzLDcgQEAgcHVibGljIHNsb3RzOgogICAg
IHZvaWQgY2xlYXJBcHBsaWNhdGlvbkNhY2hlRm9yT3JpZ2luKGNvbnN0IFFTdHJpbmcmIHVybCk7
CiAgICAgdm9pZCBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBs
b25nIHF1b3RhKTsKICAgICBRU3RyaW5nTGlzdCBvcmlnaW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGUo
KTsKKyAgICBsb25nIGxvbmcgYXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbihjb25z
dCBRU3RyaW5nJik7IAogCiAgICAgdm9pZCBzZXREYXRhYmFzZVF1b3RhKGludCBzaXplKTsKICAg
ICB2b2lkIGNsZWFyQWxsRGF0YWJhc2VzKCk7CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS93
aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAJKHJldmlzaW9uIDg2MTk4
KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtOTk1LDYgKzk5NSwxMiBAQCBKU1ZhbHVlUmVmIExheW91dFRl
c3RDb250cm9sbGVyOjpvcmlnaW5zCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOwogfQogCitsb25nIGxvbmcgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFwcGxpY2F0aW9u
Q2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4oSlNTdHJpbmdSZWYgbmFtZSkKK3sKKyAgICAvLyBGSVhN
RTogSW1wbGVtZW50IHRvIGdldCBkaXNrIHVzYWdlIGJ5IGFsbCBhcHBsaWNhdGlvbiBjYWNoZXMg
Zm9yIGFuIG9yaWdpbi4KKyAgICByZXR1cm4gMDsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6Y2xlYXJBbGxEYXRhYmFzZXMoKQogewogICAgIENPTVB0cjxJV2ViRGF0YWJhc2VNYW5h
Z2VyPiBkYXRhYmFzZU1hbmFnZXI7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4NjE5OCkKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDExLTAz
LTI1ICBBbnRvbiBEJ0F1cmlhICA8YWRhdXJpYUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFwcGxpY2F0aW9uQ2FjaGUgQVBJ
IHRvIGdldCBkaXNrIHVzYWdlIHBlciBvcmlnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MTI3CisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcGNh
Y2hlL29yaWdpbi11c2FnZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvYXBwY2FjaGUvb3JpZ2luLXVzYWdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvYXBwY2FjaGUvcmVzb3VyY2VzL29yaWdpbi11c2FnZS1pZnJhbWUtMS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcGNhY2hlL3Jlc291cmNlcy9vcmlnaW4tdXNhZ2UtaWZy
YW1lLTEubWFuaWZlc3Q6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwY2FjaGUvcmVz
b3VyY2VzL29yaWdpbi11c2FnZS1pZnJhbWUtMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2FwcGNhY2hlL3Jlc291cmNlcy9vcmlnaW4tdXNhZ2UtaWZyYW1lLTIubWFuaWZlc3Q6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4
dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMtd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKwogMjAxMS0w
NS0xMCAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYXZpZCBMZXZpbi4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUv
b3JpZ2luLXVzYWdlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcGNhY2hlL29yaWdpbi11c2FnZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi11c2FnZS1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCBw
ZXItb3JpZ2luIHVzYWdlIGlzIHJlcG9ydGVkIGNvcnJlY3RseSBieSBsb2FkaW5nIHR3byBpZnJh
bWVzIHdoaWNoIHVzZSB+MTVLIGVhY2ggYW5kIHF1ZXJ5aW5nIG9yaWdpbiB1c2FnZS4KKworQ2xl
YXJlZCBhcHBsaWNhdGlvbiBjYWNoZQorUEFTUyAtIGNhY2hlZCBpZnJhbWUtMQorVXNhZ2UgZm9y
IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBhZnRlciBmaXJzdCBmcmFtZSBpcyBiZXR3ZWVuIDE1MDAw
IGFuZCAxNjAwMCBieXRlczogdHJ1ZQorUEFTUyAtIGNhY2hlZCBpZnJhbWUtMgorVXNhZ2UgZm9y
IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBhZnRlciBzZWNvbmQgZnJhbWUgaXMgYmV0d2VlbiAzMDAw
MCBhbmQgMzEwMDAgYnl0ZXM6IHRydWUKK1JlbW92aW5nIEFwcGxpY2F0aW9uIENhY2hlIGZvciBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAKK1VzYWdlIGZvciBodHRwOi8vMTI3LjAuMC4xOjgwMDA6IDAK
KwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tdXNhZ2UuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdpbi11
c2FnZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNo
ZS9vcmlnaW4tdXNhZ2UuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MyBAQAorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQ+CisKK3ZhciBkcnRVUkwgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IjsKKworLy8gSGVscGVycy4KKworZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSBtZXNzYWdlICsgIjxicj4i
OworfQorCisvLyBTdGFydCBhbmQgZW5kLgorCitmdW5jdGlvbiBzdGFydFRlc3QoKSB7CisgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jbGVhckFsbEFwcGxpY2F0aW9uQ2FjaGVzKCk7CisgICAgICAgIGxvZygiQ2xlYXJl
ZCBhcHBsaWNhdGlvbiBjYWNoZSIpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXBwbGljYXRpb25DYWNoZURlbGVnYXRlQ2FsbGJhY2tzKCk7CisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGFkZEZpcnN0SUZyYW1lKCk7Cit9CisKK2Z1bmN0
aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCisvLyBTdGFn
ZXMuCisKK2Z1bmN0aW9uIGFkZElGcmFtZVdpdGhDb250aW51YXRpb24oc3JjLCBjb250aW51YXRp
b24pIHsKKyAgICB3aW5kb3cub25tZXNzYWdlID0gY29udGludWF0aW9uOworICAgIHZhciBpZnJh
bWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICBpZnJhbWUuc3JjID0g
c3JjOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKK30KKworZnVuY3Rp
b24gYWRkRmlyc3RJRnJhbWUoKSB7CisgICAgLy8gRXhwZWN0ZWQgdG8gc3VjY2VlZC4KKyAgICBh
ZGRJRnJhbWVXaXRoQ29udGludWF0aW9uKCJyZXNvdXJjZXMvb3JpZ2luLXVzYWdlLWlmcmFtZS0x
Lmh0bWwiLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICBsb2coZXZlbnQuZGF0YSk7CisgICAg
ICAgIHZhciB1c2FnZSA9IGxheW91dFRlc3RDb250cm9sbGVyLmFwcGxpY2F0aW9uQ2FjaGVEaXNr
VXNhZ2VGb3JPcmlnaW4oZHJ0VVJMKTsKKyAgICAgICAgbG9nKCJVc2FnZSBmb3IgIiArIGRydFVS
TCArICIgYWZ0ZXIgZmlyc3QgZnJhbWUgaXMgYmV0d2VlbiAxNTAwMCBhbmQgMTYwMDAgYnl0ZXM6
ICIgKyAoKHVzYWdlID4gMTUwMDApICYmICh1c2FnZSA8IDE2MDAwKSkpOworICAgICAgICBhZGRT
ZWNvbmRJRnJhbWUoKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gYWRkU2Vjb25kSUZyYW1lKCkg
eworICAgIGFkZElGcmFtZVdpdGhDb250aW51YXRpb24oInJlc291cmNlcy9vcmlnaW4tdXNhZ2Ut
aWZyYW1lLTIuaHRtbCIsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGxvZyhldmVudC5kYXRh
KTsKKyAgICAgICAgdmFyIHVzYWdlID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuYXBwbGljYXRpb25D
YWNoZURpc2tVc2FnZUZvck9yaWdpbihkcnRVUkwpOworICAgICAgICBsb2coIlVzYWdlIGZvciAi
ICsgZHJ0VVJMICsgIiBhZnRlciBzZWNvbmQgZnJhbWUgaXMgYmV0d2VlbiAzMDAwMCBhbmQgMzEw
MDAgYnl0ZXM6ICIgKyAoKHVzYWdlID4gMzAwMDApICYmICh1c2FnZSA8IDMxMDAwKSkpOworCisg
ICAgICAgIGxvZygiUmVtb3ZpbmcgQXBwbGljYXRpb24gQ2FjaGUgZm9yICIgKyBkcnRVUkwpOwor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5jbGVhckFwcGxpY2F0aW9uQ2FjaGVGb3JPcmln
aW4oZHJ0VVJMKTsKKworICAgICAgICBsb2coIlVzYWdlIGZvciAiICsgZHJ0VVJMICsgIjogIiAr
IGxheW91dFRlc3RDb250cm9sbGVyLmFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4o
ZHJ0VVJMKSk7CisKKyAgICAgICAgZmluaXNoVGVzdCgpOworICAgIH0pOworfQorCis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgorPHA+VGhpcyB0ZXN0IGNo
ZWNrcyB0aGF0IHBlci1vcmlnaW4gdXNhZ2UgaXMgcmVwb3J0ZWQgY29ycmVjdGx5IGJ5IGxvYWRp
bmcgdHdvIGlmcmFtZXMgd2hpY2ggdXNlIH4xNUsgZWFjaCBhbmQgcXVlcnlpbmcgb3JpZ2luIHVz
YWdlLjwvcD4KKzwvcD4KKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPC9ib2R5PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9yZXNvdXJjZXMvb3JpZ2lu
LXVzYWdlLWlmcmFtZS0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHBjYWNoZS9yZXNvdXJjZXMvb3JpZ2luLXVzYWdlLWlmcmFtZS0xLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL3Jlc291cmNlcy9vcmlnaW4t
dXNhZ2UtaWZyYW1lLTEuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACis8aHRtbCBt
YW5pZmVzdD0ib3JpZ2luLXVzYWdlLWlmcmFtZS0xLm1hbmlmZXN0Ij4KKzxzY3JpcHQ+CisvLyBp
ZnJhbWUtMSBpcyBleHBlY3RlZCB0byBzdWNjZWVkLgorYXBwbGljYXRpb25DYWNoZS5vbmNhY2hl
ZCA9IGZ1bmN0aW9uKCkgeyBwYXJlbnQucG9zdE1lc3NhZ2UoIlBBU1MgLSBjYWNoZWQgaWZyYW1l
LTEiLCAiKiIpOyB9OworYXBwbGljYXRpb25DYWNoZS5vbmVycm9yID0gZnVuY3Rpb24oKSB7IHBh
cmVudC5wb3N0TWVzc2FnZSgiRkFJTCAtIGVycm9yIGNhY2hpbmcgaWZyYW1lLTEsIGV4cGVjdGVk
IHRoaXMgdG8gc3VjY2VlZCIsICIqIik7IH07CithcHBsaWNhdGlvbkNhY2hlLm9ubm91cGRhdGUg
PSBmdW5jdGlvbigpIHsgcGFyZW50LnBvc3RNZXNzYWdlKCJGQUlMIC0gbm8gdXBkYXRlIGlmcmFt
ZS0xLCBhbGwgY2FjaGVzIHNob3VsZCBoYXZlIGJlZW4gZGVsZXRlZCBiZWZvcmUgdGhpcyB0ZXN0
IiwgIioiKTsgfTsKKworPC9zY3JpcHQ+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcGNhY2hlL3Jlc291cmNlcy9vcmlnaW4tdXNhZ2UtaWZyYW1lLTEubWFuaWZlc3QK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9yZXNvdXJjZXMv
b3JpZ2luLXVzYWdlLWlmcmFtZS0xLm1hbmlmZXN0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9yZXNvdXJjZXMvb3JpZ2luLXVzYWdlLWlmcmFtZS0xLm1h
bmlmZXN0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYgQEAKK0NBQ0hFIE1BTklGRVNUCisKKyMg
VGhpcyBhZGRzIH4xM0sgdG8gdGhlIGFwcCBjYWNoZQorCitDQUNIRToKK2FiZS5wbmcKSW5kZXg6
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvcmVzb3VyY2VzL29yaWdpbi11c2FnZS1p
ZnJhbWUtMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2Fj
aGUvcmVzb3VyY2VzL29yaWdpbi11c2FnZS1pZnJhbWUtMi5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9yZXNvdXJjZXMvb3JpZ2luLXVzYWdlLWlm
cmFtZS0yLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOCBAQAorPGh0bWwgbWFuaWZlc3Q9
Im9yaWdpbi11c2FnZS1pZnJhbWUtMi5tYW5pZmVzdCI+Cis8c2NyaXB0PgorLy8gaWZyYW1lLTIg
aXMgZXhwZWN0ZWQgdG8gZmFpbCBkdWUgdG8gZXhjZWVkaW5nIHRoZSBvcmlnaW4gcXVvdGEuCith
cHBsaWNhdGlvbkNhY2hlLm9uY2FjaGVkID0gZnVuY3Rpb24oKSB7IHBhcmVudC5wb3N0TWVzc2Fn
ZSgiUEFTUyAtIGNhY2hlZCBpZnJhbWUtMiIsICIqIik7IH07CithcHBsaWNhdGlvbkNhY2hlLm9u
ZXJyb3IgPSBmdW5jdGlvbigpIHsgcGFyZW50LnBvc3RNZXNzYWdlKCJGQUlMIC0gZXJyb3IgY2Fj
aGluZyBpZnJhbWUtMiIsICIqIik7IH07CithcHBsaWNhdGlvbkNhY2hlLm9ubm91cGRhdGUgPSBm
dW5jdGlvbigpIHsgcGFyZW50LnBvc3RNZXNzYWdlKCJGQUlMIC0gbm8gdXBkYXRlIGlmcmFtZS0y
LCBhbGwgY2FjaGVzIHNob3VsZCBoYXZlIGJlZW4gZGVsZXRlZCBiZWZvcmUgdGhpcyB0ZXN0Iiwg
IioiKTsgfTsKKzwvc2NyaXB0PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHBjYWNoZS9yZXNvdXJjZXMvb3JpZ2luLXVzYWdlLWlmcmFtZS0yLm1hbmlmZXN0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvcmVzb3VyY2VzL29yaWdp
bi11c2FnZS1pZnJhbWUtMi5tYW5pZmVzdAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwY2FjaGUvcmVzb3VyY2VzL29yaWdpbi11c2FnZS1pZnJhbWUtMi5tYW5pZmVz
dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2IEBACitDQUNIRSBNQU5JRkVTVAorCisjIFRoaXMg
YWRkcyB+MTNLIHRvIHRoZSBhcHAgY2FjaGUKKworQ0FDSEU6CithYmUucG5nCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
CShyZXZpc2lvbiA4NjE5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTgwMyw2ICsxODAzLDggQEAgQlVH
Q1IyODQ0IFNLSVAgOiBodHRwL3Rlc3RzL2FwcGNhY2hlL25vbgogQlVHV0sgU0tJUCA6IGh0dHAv
dGVzdHMvYXBwY2FjaGUvb3JpZ2luLWRlbGV0ZS5odG1sID0gRkFJTAogLy8gTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmdldE9yaWdpbnNXaXRoQXBwbGljYXRpb25DYWNoZSBpc24ndCBpbXBsZW1lbnRl
ZAogQlVHV0sgU0tJUCA6IGh0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2lucy13aXRoLWFwcGNhY2hl
Lmh0bWwgPSBGQUlMCisvLyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXBwbGljYXRpb25DYWNoZURp
c2tVc2FnZUZvck9yaWdpbiBpc24ndCBpbXBsZW1lbnRlZCAtIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01NzEyNworQlVHV0sgU0tJUCA6IGh0dHAvdGVzdHMvYXBwY2Fj
aGUvb3JpZ2luLXVzYWdlLmh0bWwgPSBGQUlMCiAKIC8vIE5ldyBmYWlsdXJlcyBmcm9tIFdlYktp
dCByNTE1NzcKIEJVR0NSMjkxNjQgV0lOIExJTlVYIE1BQyA6IGZhc3QvZnJhbWVzL3NhbmRib3hl
ZC1pZnJhbWUtcGx1Z2lucy5odG1sID0gVEVYVApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQJKHJldmlzaW9uIDg2MTk4KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQJ
KHdvcmtpbmcgY29weSkKQEAgLTUxMCw2ICs1MTAsOCBAQCBodHRwL3Rlc3RzL2FwcGNhY2hlL2Zh
bGxiYWNrLmh0bWwKIGh0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXF1b3RhLmh0bWwKIGh0dHAv
dGVzdHMvYXBwY2FjaGUvb3JpZ2luLWRlbGV0ZS5odG1sCiBodHRwL3Rlc3RzL2FwcGNhY2hlL29y
aWdpbnMtd2l0aC1hcHBjYWNoZS5odG1sCisjIExheW91dFRlc3RDb250cm9sbGVyOjphcHBsaWNh
dGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luIGlzbid0IGltcGxlbWVudGVkIC0gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MTI3CitodHRwL3Rlc3RzL2FwcGNhY2hl
L29yaWdpbi11c2FnZS5odG1sCiBodHRwL3Rlc3RzL2Nvb2tpZXMvZG91YmxlLXF1b3RlZC12YWx1
ZS13aXRoLXNlbWktY29sb24uaHRtbAogaHR0cC90ZXN0cy9sb2FkaW5nL2JhZC1zY2hlbWUtc3Vi
ZnJhbWUuaHRtbAogaHR0cC90ZXN0cy9sb2FkaW5nL2JhZC1zZXJ2ZXItc3ViZnJhbWUuaHRtbApJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZAkocmV2aXNpb24gODYxOTgpCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAg
LTk1Niw2ICs5NTYsOCBAQCBmYXN0L3BhcnNlci9ub3NjcmlwdC13aXRoLWphdmFzY3JpcHQtZW5h
CiBmYXN0L3JlcGFpbnQvbm8tY2FyZXQtcmVwYWludC1pbi1ub24tY29udGVudC1lZGl0YWJsZS1l
bGVtZW50Lmh0bWwKIGZhc3QvdGV4dC96ZXJvLWZvbnQtc2l6ZS5odG1sCiBodHRwL3Rlc3RzL2Fw
cGNhY2hlL2Rpc2FibGVkLmh0bWwKKyMgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFwcGxpY2F0aW9u
Q2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4gaXNuJ3QgaW1wbGVtZW50ZWQgLSBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcxMjcKK2h0dHAvdGVzdHMvYXBwY2FjaGUvb3Jp
Z2luLXVzYWdlLmh0bWwKIGh0dHAvdGVzdHMvY2FudmFzL3dlYmdsL29yaWdpbi1jbGVhbi1jb25m
b3JtYW5jZS5odG1sCiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3BpbmcuaHRtbAogaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3BpbmctY3Jvc3Mtb3JpZ2luLWZyb20taHR0cHMuaHRtbApJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCShyZXZpc2lvbiA4NjE5OCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTIzNjUsNiArMjM2NSw4IEBA
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYmFzaWMtYXV0aC5odG0KIGh0dHAvdGVzdHMvYXBw
Y2FjaGUvb3JpZ2luLWRlbGV0ZS5odG1sCiAjIExheW91dFRlc3RDb250cm9sbGVyOjpnZXRPcmln
aW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGUgaXMgbm90IGltcGxlbWVudGVkCiBodHRwL3Rlc3RzL2Fw
cGNhY2hlL29yaWdpbnMtd2l0aC1hcHBjYWNoZS5odG1sCisjIExheW91dFRlc3RDb250cm9sbGVy
OjphcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luIGlzbid0IGltcGxlbWVudGVkIC0g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MTI3CitodHRwL3Rlc3Rz
L2FwcGNhY2hlL29yaWdpbi11c2FnZS5odG1sCiAKICMgTmVlZHMgcmViYXNlbGluZQogZmFzdC9k
b20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1lbGVtZW50Lmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93055</attachid>
            <date>2011-05-10 17:34:58 -0700</date>
            <delta_ts>2011-05-10 18:47:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57127-20110510173457.patch</filename>
            <type>text/plain</type>
            <size>24845</size>
            <attacher name="Anton D&apos;Auria">adauria</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg2MTk4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDUtMTAgIEFudG9uIEQn
QXVyaWEgIDxhZGF1cmlhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgQXBwbGljYXRpb25DYWNoZSBBUEkgdG8gZ2V0IGRpc2sg
dXNhZ2UgcGVyIG9yaWdpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTcxMjcKKworICAgICAgICBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSBhbHJlYWR5
IHByb3ZpZGVzIGFuIEFQSSB0byBnZXQgcGVyLW9yaWdpbgorICAgICAgICBkaXNrIHVzYWdlLiBU
aGlzIHNob3VsZCBiZSBleHBvc2VkIHRocm91Z2ggV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZQor
ICAgICAgICB0byBub3QgYmUgZGVwZW5kZW50IG9uIHN0b3JhZ2UgaW1wbGVtZW50YXRpb24uCisK
KyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tdXNhZ2UuaHRtbAorCisg
ICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZTo6ZGlz
a1VzYWdlRm9yT3JpZ2luKToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZS5oOgorCiAyMDExLTA1LTEwICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdt
YWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByODYxOTUuCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gODYxOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMTgzMSw2ICsxODMxLDcgQEAgX19aTks3
V2ViQ29yZTROb2RlMTZ0cmF2ZXJzZU5leHROb2RlRVBLUwogI2VuZGlmCiAKICNpZiBFTkFCTEUo
T0ZGTElORV9XRUJfQVBQTElDQVRJT05TKQorX19aTjdXZWJDb3JlMTZBcHBsaWNhdGlvbkNhY2hl
MThkaXNrVXNhZ2VGb3JPcmlnaW5FUE5TXzE0U2VjdXJpdHlPcmlnaW5FCiBfX1pON1dlYkNvcmUx
NkFwcGxpY2F0aW9uQ2FjaGUyMGRlbGV0ZUNhY2hlRm9yT3JpZ2luRVBOU18xNFNlY3VyaXR5T3Jp
Z2luRQogX19aTjdXZWJDb3JlMjNBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTE0cXVvdGFGb3JPcmln
aW5FUEtOU18xNFNlY3VyaXR5T3JpZ2luRVJ4CiBfX1pON1dlYkNvcmUyM0FwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlMTRzZXRNYXhpbXVtU2l6ZUV4CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUuY3BwCShyZXZpc2lvbiA4NjE5OCkK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjA2LDcgKzIwNiwxNCBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGU6
OmRlbGV0ZUNhY2hlRm9yT3JpCiAgICAgICAgIH0KICAgICB9CiB9Ci0gICAgCisKK2ludDY0X3Qg
QXBwbGljYXRpb25DYWNoZTo6ZGlza1VzYWdlRm9yT3JpZ2luKFNlY3VyaXR5T3JpZ2luKiBvcmln
aW4pCit7CisgICAgaW50NjRfdCB1c2FnZSA9IDA7CisgICAgY2FjaGVTdG9yYWdlKCkudXNhZ2VG
b3JPcmlnaW4ob3JpZ2luLCB1c2FnZSk7CisgICAgcmV0dXJuIHVzYWdlOworfQorCiAjaWZuZGVm
IE5ERUJVRwogdm9pZCBBcHBsaWNhdGlvbkNhY2hlOjpkdW1wKCkKIHsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGUuaAkocmV2aXNp
b24gODYxOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5Miw4IEBAIHB1YmxpYzoKICAgICAKICAg
ICBzdGF0aWMgYm9vbCByZXF1ZXN0SXNIVFRQT3JIVFRQU0dldChjb25zdCBSZXNvdXJjZVJlcXVl
c3QmKTsKIAorICAgIHN0YXRpYyBpbnQ2NF90IGRpc2tVc2FnZUZvck9yaWdpbihTZWN1cml0eU9y
aWdpbiopOworICAgIAogICAgIGludDY0X3QgZXN0aW1hdGVkU2l6ZUluU3RvcmFnZSgpIGNvbnN0
IHsgcmV0dXJuIG1fZXN0aW1hdGVkU2l6ZUluU3RvcmFnZTsgfQogCiBwcml2YXRlOgpJbmRleDog
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwkocmV2aXNpb24gODYxOTgpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0wNS0xMCAgQW50b24g
RCdBdXJpYSAgPGFkYXVyaWFAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBBcHBsaWNhdGlvbkNhY2hlIEFQSSB0byBnZXQgZGlz
ayB1c2FnZSBwZXIgb3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NzEyNworCisgICAgICAgIEFkZGVkIE1hYyBwb3J0IEFQSS4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGUuaDoKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlLm1tOgorICAgICAgICAoK1tXZWJBcHBsaWNh
dGlvbkNhY2hlIGRpc2tVc2FnZUZvck9yaWdpbjpdKToKKwogMjAxMS0wNS0xMCAgQmV0aCBEYWtp
biAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNh
Y2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
QXBwbGljYXRpb25DYWNoZS5oCShyZXZpc2lvbiA4NjE5OCkKKysrIFNvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MzUsNiArMzUsOCBAQCBAaW50ZXJmYWNlIFdlYkFwcGxpY2F0aW9uQ2FjaGU6IE5TT2JqZWN0CiAr
IChsb25nIGxvbmcpZGVmYXVsdE9yaWdpblF1b3RhOwogKyAodm9pZClzZXREZWZhdWx0T3JpZ2lu
UXVvdGE6KGxvbmcgbG9uZylzaXplOwogCisrIChsb25nIGxvbmcpZGlza1VzYWdlRm9yT3JpZ2lu
OihXZWJTZWN1cml0eU9yaWdpbiAqKW9yaWdpbjsKKwogKyAodm9pZClkZWxldGVBbGxBcHBsaWNh
dGlvbkNhY2hlczsKICsgKHZvaWQpZGVsZXRlQ2FjaGVGb3JPcmlnaW46KFdlYlNlY3VyaXR5T3Jp
Z2luICopb3JpZ2luOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJBcHBsaWNhdGlvbkNhY2hlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGUubW0JKHJldmlzaW9uIDg2MTk4KQorKysg
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZS5tbQko
d29ya2luZyBjb3B5KQpAQCAtNTgsNiArNTgsMTEgQEAgKyAodm9pZClzZXREZWZhdWx0T3JpZ2lu
UXVvdGE6KGxvbmcgbG9uZwogICAgIGNhY2hlU3RvcmFnZSgpLnNldERlZmF1bHRPcmlnaW5RdW90
YShzaXplKTsKIH0KIAorKyAobG9uZyBsb25nKWRpc2tVc2FnZUZvck9yaWdpbjooV2ViU2VjdXJp
dHlPcmlnaW4gKilvcmlnaW4KK3sKKyAgICByZXR1cm4gQXBwbGljYXRpb25DYWNoZTo6ZGlza1Vz
YWdlRm9yT3JpZ2luKFtvcmlnaW4gX2NvcmVdKTsKK30KKwogKyAodm9pZClkZWxldGVBbGxBcHBs
aWNhdGlvbkNhY2hlcwogewogICAgIGNhY2hlU3RvcmFnZSgpLmRlbGV0ZUFsbEVudHJpZXMoKTsK
SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDg2MTk4KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMzEgQEAKKzIwMTEtMDUtMTAgIEFudG9uIEQnQXVyaWEgIDxhZGF1cmlhQGFwcGxlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgQXBw
bGljYXRpb25DYWNoZSBBUEkgdG8gZ2V0IGRpc2sgdXNhZ2UgcGVyIG9yaWdpbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcxMjcKKworICAgICAgICBB
ZGRlZCB0ZXN0IHRoYXQgbG9hZHMgdHdvIGZyYW1lcyB3aXRoIH4xNUtiIGltYWdlLCBjaGVja3Mg
dXNhZ2UsCisgICAgICAgIGRlbGV0ZXMgYXBwIGNhY2hlLCB2ZXJpZmllcyB1c2FnZSBpcyAwLgor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoYXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbkNhbGxiYWNrKToKKyAgICAg
ICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOiBBZGRlZCBzdHViLgorICAg
ICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAg
ICAgKExheW91dFRlc3RDb250cm9sbGVyOjphcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3Jp
Z2luKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxl
ckd0ay5jcHA6IEFkZGVkIHN0dWIuCisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXBw
bGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbik6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4pOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwOiBBZGRlZCBzdHVi
LgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNh
Z2VGb3JPcmlnaW4pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250
cm9sbGVyUXQuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRy
b2xsZXJXaW4uY3BwOiBBZGRlZCBzdHViLgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4pOgorCiAyMDExLTA1LTEwICBFbnJp
Y2EgQ2FzdWNjaSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQmV0
aCBEYWtpbi4KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAJKHJldmlzaW9uIDg2MTk4KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjAsNiArNDIwLDE5IEBAIHN0
YXRpYyBKU1ZhbHVlUmVmIGNsZWFyQXBwbGljYXRpb25DYWNoZUYKICAgICByZXR1cm4gSlNWYWx1
ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIGFwcGxpY2F0
aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW5DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwg
SlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1
bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pCit7CisgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQorICAgICAgICByZXR1cm4gSlNW
YWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gb3JpZ2luVVJMKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50
c1swXSwgZXhjZXB0aW9uKSk7CisgICAgQVNTRVJUKCEqZXhjZXB0aW9uKTsKKyAgICAKKyAgICBM
YXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RD
b250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKworICAgIHJldHVy
biBKU1ZhbHVlTWFrZU51bWJlcihjb250ZXh0LCBjb250cm9sbGVyLT5hcHBsaWNhdGlvbkNhY2hl
RGlza1VzYWdlRm9yT3JpZ2luKG9yaWdpblVSTC5nZXQoKSkpOworfQorCiBzdGF0aWMgSlNWYWx1
ZVJlZiBvcmlnaW5zV2l0aEFwcGxpY2F0aW9uQ2FjaGVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVf
dCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCiB7CiAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBz
dGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlz
T2JqZWN0KSk7CkBAIC0yMjIxLDYgKzIyMzQsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6CiAgICAgICAgIHsgImFkZFVzZXJTdHlsZVNoZWV0IiwgYWRkVXNlclN0
eWxlU2hlZXRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJhcGlUZXN0TmV3V2luZG93RGF0
YUxvYWRCYXNlVVJMIiwgYXBpVGVzdE5ld1dpbmRvd0RhdGFMb2FkQmFzZVVSTENhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCiAgICAgICAgIHsgImFwaVRlc3RHb1RvQ3VycmVudEJhY2tGb3J3YXJkSXRlbSIsIGFw
aVRlc3RHb1RvQ3VycmVudEJhY2tGb3J3YXJkSXRlbUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAg
IHsgImFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4iLCBhcHBsaWNhdGlvbkNhY2hl
RGlza1VzYWdlRm9yT3JpZ2luQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiY2FsbFNob3Vs
ZENsb3NlT25XZWJWaWV3IiwgY2FsbFNob3VsZENsb3NlT25XZWJWaWV3Q2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAiY2xlYXJBbGxBcHBsaWNhdGlvbkNhY2hlcyIsIGNsZWFyQWxsQXBwbGlj
YXRpb25DYWNoZXNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJjbGVhckFsbERhdGFiYXNl
cyIsIGNsZWFyQWxsRGF0YWJhc2VzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKSW5kZXg6IFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAkocmV2aXNpb24gODYxOTgpCisrKyBU
b29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC02NCw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGV4ZWNDb21tYW5kKEpTU3RyaW5n
UmVmIG5hbWUsIEpTU3RyaW5nUmVmIHZhbHVlKTsKICAgICBib29sIGZpbmRTdHJpbmcoSlNDb250
ZXh0UmVmLCBKU1N0cmluZ1JlZiwgSlNPYmplY3RSZWYgb3B0aW9uc0FycmF5KTsKICAgICBKU1Zh
bHVlUmVmIG9yaWdpbnNXaXRoQXBwbGljYXRpb25DYWNoZShKU0NvbnRleHRSZWYpOworICAgIGxv
bmcgbG9uZyBhcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luKEpTU3RyaW5nUmVmIG5h
bWUpOwogICAgIGJvb2wgaXNDb21tYW5kRW5hYmxlZChKU1N0cmluZ1JlZiBuYW1lKTsKICAgICB2
b2lkIGtlZXBXZWJIaXN0b3J5KCk7CiAgICAgSlNWYWx1ZVJlZiBjb21wdXRlZFN0eWxlSW5jbHVk
aW5nVmlzaXRlZEluZm8oSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmKTsKSW5kZXg6IFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5j
cHAJKHJldmlzaW9uIDg2MTk4KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTEsNiArMTkxLDcgQEAg
TGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbAogICAgIGJpbmRNZXRob2Qo
ImFib3J0TW9kYWwiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFib3J0TW9kYWwpOwogICAgIGJp
bmRNZXRob2QoImFjY2Vzc1N0b3JlZFdlYlNjcmlwdE9iamVjdCIsICZMYXlvdXRUZXN0Q29udHJv
bGxlcjo6YWNjZXNzU3RvcmVkV2ViU2NyaXB0T2JqZWN0KTsKICAgICBiaW5kTWV0aG9kKCJhZGRE
aXNhbGxvd2VkVVJMIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjphZGREaXNhbGxvd2VkVVJMKTsK
KyAgICBiaW5kTWV0aG9kKCJhcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luIiwgJkxh
eW91dFRlc3RDb250cm9sbGVyOjphcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luKTsK
ICAgICBiaW5kTWV0aG9kKCJjYWxsU2hvdWxkQ2xvc2VPbldlYlZpZXciLCAmTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmNhbGxTaG91bGRDbG9zZU9uV2ViVmlldyk7CiAgICAgYmluZE1ldGhvZCgiY2xl
YXJBbGxBcHBsaWNhdGlvbkNhY2hlcyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2xlYXJBbGxB
cHBsaWNhdGlvbkNhY2hlcyk7CiAgICAgYmluZE1ldGhvZCgiY2xlYXJBcHBsaWNhdGlvbkNhY2hl
Rm9yT3JpZ2luIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpjbGVhckFwcGxpY2F0aW9uQ2FjaGVG
b3JPcmlnaW4pOwpAQCAtODM5LDYgKzg0MCwxMiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVy
OjpvcmlnaW5zV2l0aEFwCiAgICAgcmVzdWx0LT5zZXROdWxsKCk7CiB9CiAKK3ZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4oY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgdG8gc3VwcG9ydCBnZXR0aW5nIGRpc2sgdXNhZ2UgYnkgYWxsIGFwcGxpY2F0aW9u
IGNhY2hlIGZvciBhbiBvcmlnaW4uCisgICAgcmVzdWx0LT5zZXROdWxsKCk7Cit9CisKIHZvaWQg
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFNjcm9sbGJhclBvbGljeShjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudC4K
SW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuaAkocmV2aXNpb24gODYxOTgpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOTUsNiAr
Mjk1LDggQEAgcHVibGljOgogICAgIHZvaWQgb3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hlKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICAvLyBTZXRzIHRoZSBhcHBs
aWNhdGlvbiBjYWNoZSBxdW90YSBmb3IgdGhlIGxvY2FsaG9zdCBvcmlnaW4uCiAgICAgdm9pZCBz
ZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3Bw
VmFyaWFudCopOworICAgIC8vIFJldHVybnMgZGlzayB1c2FnZSBieSBhbGwgYXBwbGljYXRpb24g
Y2FjaGVzIGZvciBhbiBvcmlnaW4uCisgICAgdm9pZCBhcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdl
Rm9yT3JpZ2luKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAogICAgIC8v
IENsZWFycyBhbGwgZGF0YWJhc2VzLgogICAgIHZvaWQgY2xlYXJBbGxEYXRhYmFzZXMoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCShyZXZpc2lvbiA4
NjE5OCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0
ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2Niw2ICs2NjYsMTIgQEAgSlNWYWx1ZVJlZiBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6b3JpZ2lucwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChjb250ZXh0KTsKIH0KIAorbG9uZyBsb25nIExheW91dFRlc3RDb250cm9sbGVyOjphcHBsaWNh
dGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luKEpTU3RyaW5nUmVmIG5hbWUpCit7CisgICAgLy8g
RklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiAwOworfQorCiB2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjpjbGVhckFsbERhdGFiYXNlcygpCiB7CiAgICAgd2Via2l0X3JlbW92ZV9hbGxfd2Vi
X2RhdGFiYXNlcygpOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RD
b250cm9sbGVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9M
YXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQkocmV2aXNpb24gODYxOTgpCisrKyBUb29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0JKHdvcmtpbmcgY29weSkK
QEAgLTEzNSw2ICsxMzUsMTMgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2xlYXJBbGxB
cHBsaQogICAgIFtXZWJBcHBsaWNhdGlvbkNhY2hlIGRlbGV0ZUFsbEFwcGxpY2F0aW9uQ2FjaGVz
XTsKIH0KIAorbG9uZyBsb25nIExheW91dFRlc3RDb250cm9sbGVyOjphcHBsaWNhdGlvbkNhY2hl
RGlza1VzYWdlRm9yT3JpZ2luKEpTU3RyaW5nUmVmIHVybCkKK3sKKyAgICBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+IHVybENGKEFkb3B0Q0YsIEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIHVybCkpOworICAgIFdlYlNlY3VyaXR5T3JpZ2luICpvcmlnaW4gPSBbW1dlYlNl
Y3VyaXR5T3JpZ2luIGFsbG9jXSBpbml0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzooTlNT
dHJpbmcgKil1cmxDRi5nZXQoKV1dOworICAgIHJldHVybiBbV2ViQXBwbGljYXRpb25DYWNoZSBk
aXNrVXNhZ2VGb3JPcmlnaW46b3JpZ2luXTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c3luY0xvY2FsU3RvcmFnZSgpCiB7CiAgICAgW1tXZWJTdG9yYWdlTWFuYWdlciBzaGFyZWRX
ZWJTdG9yYWdlTWFuYWdlcl0gc3luY0xvY2FsU3RvcmFnZV07CkluZGV4OiBUb29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAkocmV2aXNpb24g
ODYxOTgpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcxLDYgKzU3MSwxMiBAQCB2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjpzZXRBcHBsaWNhdGlvCiAgICAgbV90b3BMb2FkaW5nRnJhbWUtPnNlY3VyaXR5
T3JpZ2luKCkuc2V0QXBwbGljYXRpb25DYWNoZVF1b3RhKHF1b3RhKTsKIH0KIAorbG9uZyBsb25n
IExheW91dFRlc3RDb250cm9sbGVyOjphcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2lu
KGNvbnN0IFFTdHJpbmcmIG9yaWdpbikKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRvIHN1
cHBvcnQgZ2V0dGluZyBkaXNrIHVzYWdlIGJ5IGFsbCBhcHBsaWNhdGlvbiBjYWNoZXMgZm9yIGFu
IG9yaWdpbi4KKyAgICByZXR1cm4gMDsKK30KKwogUVN0cmluZ0xpc3QgTGF5b3V0VGVzdENvbnRy
b2xsZXI6Om9yaWdpbnNXaXRoQXBwbGljYXRpb25DYWNoZSgpCiB7CiAgICAgLy8gRklYTUU6IElt
cGxlbWVudCB0byBnZXQgb3JpZ2lucyB0aGF0IGhhdmUgYXBwbGljYXRpb24gY2FjaGVzLgpJbmRl
eDogVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQu
aAkocmV2aXNpb24gODYxOTgpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0
Q29udHJvbGxlclF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5Myw2ICsxOTMsNyBAQCBwdWJsaWMg
c2xvdHM6CiAgICAgdm9pZCBjbGVhckFwcGxpY2F0aW9uQ2FjaGVGb3JPcmlnaW4oY29uc3QgUVN0
cmluZyYgdXJsKTsKICAgICB2b2lkIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNp
Z25lZCBsb25nIGxvbmcgcXVvdGEpOwogICAgIFFTdHJpbmdMaXN0IG9yaWdpbnNXaXRoQXBwbGlj
YXRpb25DYWNoZSgpOworICAgIGxvbmcgbG9uZyBhcHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9y
T3JpZ2luKGNvbnN0IFFTdHJpbmcmKTsgCiAKICAgICB2b2lkIHNldERhdGFiYXNlUXVvdGEoaW50
IHNpemUpOwogICAgIHZvaWQgY2xlYXJBbGxEYXRhYmFzZXMoKTsKSW5kZXg6IFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAkocmV2
aXNpb24gODYxOTgpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRy
b2xsZXJXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OTUsNiArOTk1LDEyIEBAIEpTVmFsdWVS
ZWYgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om9yaWdpbnMKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VV
bmRlZmluZWQoY29udGV4dCk7CiB9CiAKK2xvbmcgbG9uZyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
YXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbihKU1N0cmluZ1JlZiBuYW1lKQorewor
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdG8gZ2V0IGRpc2sgdXNhZ2UgYnkgYWxsIGFwcGxpY2F0
aW9uIGNhY2hlcyBmb3IgYW4gb3JpZ2luLgorICAgIHJldHVybiAwOworfQorCiB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpjbGVhckFsbERhdGFiYXNlcygpCiB7CiAgICAgQ09NUHRyPElXZWJE
YXRhYmFzZU1hbmFnZXI+IGRhdGFiYXNlTWFuYWdlcjsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDg2MTk4
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTEtMDMtMjUgIEFudG9uIEQnQXVyaWEgIDxhZGF1cmlhQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgQXBwbGljYXRp
b25DYWNoZSBBUEkgdG8gZ2V0IGRpc2sgdXNhZ2UgcGVyIG9yaWdpbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcxMjcKKworICAgICAgICAqIGh0dHAv
dGVzdHMvYXBwY2FjaGUvb3JpZ2luLXVzYWdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tdXNhZ2UuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9hcHBjYWNoZS9yZXNvdXJjZXMvb3JpZ2luLXVzYWdlLWlmcmFtZS0xLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwY2FjaGUvcmVzb3VyY2VzL29yaWdp
bi11c2FnZS1pZnJhbWUtMS5tYW5pZmVzdDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9h
cHBjYWNoZS9yZXNvdXJjZXMvb3JpZ2luLXVzYWdlLWlmcmFtZS0yLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvYXBwY2FjaGUvcmVzb3VyY2VzL29yaWdpbi11c2FnZS1pZnJhbWUt
Mi5tYW5pZmVzdDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorICAgICAgICAq
IHBsYXRmb3JtL21hYy13azIvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVk
OgorCiAyMDExLTA1LTEwICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHBjYWNoZS9vcmlnaW4tdXNhZ2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXVzYWdlLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXVzYWdl
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorVGhpcyB0ZXN0IGNo
ZWNrcyB0aGF0IHBlci1vcmlnaW4gdXNhZ2UgaXMgcmVwb3J0ZWQgY29ycmVjdGx5IGJ5IGxvYWRp
bmcgdHdvIGlmcmFtZXMgd2hpY2ggdXNlIH4xNUsgZWFjaCBhbmQgcXVlcnlpbmcgb3JpZ2luIHVz
YWdlLgorCitDbGVhcmVkIGFwcGxpY2F0aW9uIGNhY2hlCitQQVNTIC0gY2FjaGVkIGlmcmFtZS0x
CitVc2FnZSBmb3IgaHR0cDovLzEyNy4wLjAuMTo4MDAwIGFmdGVyIGZpcnN0IGZyYW1lIGlzIGJl
dHdlZW4gMTUwMDAgYW5kIDE2MDAwIGJ5dGVzOiB0cnVlCitQQVNTIC0gY2FjaGVkIGlmcmFtZS0y
CitVc2FnZSBmb3IgaHR0cDovLzEyNy4wLjAuMTo4MDAwIGFmdGVyIHNlY29uZCBmcmFtZSBpcyBi
ZXR3ZWVuIDMwMDAwIGFuZCAzMTAwMCBieXRlczogdHJ1ZQorUmVtb3ZpbmcgQXBwbGljYXRpb24g
Q2FjaGUgZm9yIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMAorVXNhZ2UgZm9yIGh0dHA6Ly8xMjcuMC4w
LjE6ODAwMDogMAorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL29yaWdp
bi11c2FnZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2Fj
aGUvb3JpZ2luLXVzYWdlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcGNhY2hlL29yaWdpbi11c2FnZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcz
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKwordmFyIGRydFVSTCA9ICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiOworCisvLyBIZWxwZXJzLgorCitmdW5jdGlvbiBsb2cobWVzc2FnZSkgewor
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MICs9IG1lc3Nh
Z2UgKyAiPGJyPiI7Cit9CisKKy8vIFN0YXJ0IGFuZCBlbmQuCisKK2Z1bmN0aW9uIHN0YXJ0VGVz
dCgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmNsZWFyQWxsQXBwbGljYXRpb25DYWNoZXMoKTsKKyAgICAgICAg
bG9nKCJDbGVhcmVkIGFwcGxpY2F0aW9uIGNhY2hlIik7CisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBcHBsaWNhdGlvbkNhY2hlRGVsZWdhdGVDYWxsYmFja3MoKTsKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgYWRkRmlyc3RJRnJhbWUoKTsK
K30KKworZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9
CisKKy8vIFN0YWdlcy4KKworZnVuY3Rpb24gYWRkSUZyYW1lV2l0aENvbnRpbnVhdGlvbihzcmMs
IGNvbnRpbnVhdGlvbikgeworICAgIHdpbmRvdy5vbm1lc3NhZ2UgPSBjb250aW51YXRpb247Cisg
ICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAgIGlm
cmFtZS5zcmMgPSBzcmM7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOwor
fQorCitmdW5jdGlvbiBhZGRGaXJzdElGcmFtZSgpIHsKKyAgICAvLyBFeHBlY3RlZCB0byBzdWNj
ZWVkLgorICAgIGFkZElGcmFtZVdpdGhDb250aW51YXRpb24oInJlc291cmNlcy9vcmlnaW4tdXNh
Z2UtaWZyYW1lLTEuaHRtbCIsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGxvZyhldmVudC5k
YXRhKTsKKyAgICAgICAgdmFyIHVzYWdlID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuYXBwbGljYXRp
b25DYWNoZURpc2tVc2FnZUZvck9yaWdpbihkcnRVUkwpOworICAgICAgICBsb2coIlVzYWdlIGZv
ciAiICsgZHJ0VVJMICsgIiBhZnRlciBmaXJzdCBmcmFtZSBpcyBiZXR3ZWVuIDE1MDAwIGFuZCAx
NjAwMCBieXRlczogIiArICgodXNhZ2UgPiAxNTAwMCkgJiYgKHVzYWdlIDwgMTYwMDApKSk7Cisg
ICAgICAgIGFkZFNlY29uZElGcmFtZSgpOworICAgIH0pOworfQorCitmdW5jdGlvbiBhZGRTZWNv
bmRJRnJhbWUoKSB7CisgICAgYWRkSUZyYW1lV2l0aENvbnRpbnVhdGlvbigicmVzb3VyY2VzL29y
aWdpbi11c2FnZS1pZnJhbWUtMi5odG1sIiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgbG9n
KGV2ZW50LmRhdGEpOworICAgICAgICB2YXIgdXNhZ2UgPSBsYXlvdXRUZXN0Q29udHJvbGxlci5h
cHBsaWNhdGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luKGRydFVSTCk7CisgICAgICAgIGxvZygi
VXNhZ2UgZm9yICIgKyBkcnRVUkwgKyAiIGFmdGVyIHNlY29uZCBmcmFtZSBpcyBiZXR3ZWVuIDMw
MDAwIGFuZCAzMTAwMCBieXRlczogIiArICgodXNhZ2UgPiAzMDAwMCkgJiYgKHVzYWdlIDwgMzEw
MDApKSk7CisKKyAgICAgICAgbG9nKCJSZW1vdmluZyBBcHBsaWNhdGlvbiBDYWNoZSBmb3IgIiAr
IGRydFVSTCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmNsZWFyQXBwbGljYXRpb25D
YWNoZUZvck9yaWdpbihkcnRVUkwpOworCisgICAgICAgIGxvZygiVXNhZ2UgZm9yICIgKyBkcnRV
UkwgKyAiOiAiICsgbGF5b3V0VGVzdENvbnRyb2xsZXIuYXBwbGljYXRpb25DYWNoZURpc2tVc2Fn
ZUZvck9yaWdpbihkcnRVUkwpKTsKKworICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgfSk7Cit9
CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzdGFydFRlc3QoKSI+Cis8cD5U
aGlzIHRlc3QgY2hlY2tzIHRoYXQgcGVyLW9yaWdpbiB1c2FnZSBpcyByZXBvcnRlZCBjb3JyZWN0
bHkgYnkgbG9hZGluZyB0d28gaWZyYW1lcyB3aGljaCB1c2UgfjE1SyBlYWNoIGFuZCBxdWVyeWlu
ZyBvcmlnaW4gdXNhZ2UuPC9wPgorPC9wPgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8L2Jv
ZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL3Jlc291
cmNlcy9vcmlnaW4tdXNhZ2UtaWZyYW1lLTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcGNhY2hlL3Jlc291cmNlcy9vcmlnaW4tdXNhZ2UtaWZyYW1lLTEuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvcmVzb3Vy
Y2VzL29yaWdpbi11c2FnZS1pZnJhbWUtMS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkg
QEAKKzxodG1sIG1hbmlmZXN0PSJvcmlnaW4tdXNhZ2UtaWZyYW1lLTEubWFuaWZlc3QiPgorPHNj
cmlwdD4KKy8vIGlmcmFtZS0xIGlzIGV4cGVjdGVkIHRvIHN1Y2NlZWQuCithcHBsaWNhdGlvbkNh
Y2hlLm9uY2FjaGVkID0gZnVuY3Rpb24oKSB7IHBhcmVudC5wb3N0TWVzc2FnZSgiUEFTUyAtIGNh
Y2hlZCBpZnJhbWUtMSIsICIqIik7IH07CithcHBsaWNhdGlvbkNhY2hlLm9uZXJyb3IgPSBmdW5j
dGlvbigpIHsgcGFyZW50LnBvc3RNZXNzYWdlKCJGQUlMIC0gZXJyb3IgY2FjaGluZyBpZnJhbWUt
MSwgZXhwZWN0ZWQgdGhpcyB0byBzdWNjZWVkIiwgIioiKTsgfTsKK2FwcGxpY2F0aW9uQ2FjaGUu
b25ub3VwZGF0ZSA9IGZ1bmN0aW9uKCkgeyBwYXJlbnQucG9zdE1lc3NhZ2UoIkZBSUwgLSBubyB1
cGRhdGUgaWZyYW1lLTEsIGFsbCBjYWNoZXMgc2hvdWxkIGhhdmUgYmVlbiBkZWxldGVkIGJlZm9y
ZSB0aGlzIHRlc3QiLCAiKiIpOyB9OworCis8L3NjcmlwdD4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMvYXBwY2FjaGUvcmVzb3VyY2VzL29yaWdpbi11c2FnZS1pZnJhbWUt
MS5tYW5pZmVzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hl
L3Jlc291cmNlcy9vcmlnaW4tdXNhZ2UtaWZyYW1lLTEubWFuaWZlc3QJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL3Jlc291cmNlcy9vcmlnaW4tdXNhZ2Ut
aWZyYW1lLTEubWFuaWZlc3QJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNiBAQAorQ0FDSEUgTUFO
SUZFU1QKKworIyBUaGlzIGFkZHMgfjEzSyB0byB0aGUgYXBwIGNhY2hlCisKK0NBQ0hFOgorYWJl
LnBuZwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9yZXNvdXJjZXMvb3Jp
Z2luLXVzYWdlLWlmcmFtZS0yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHBjYWNoZS9yZXNvdXJjZXMvb3JpZ2luLXVzYWdlLWlmcmFtZS0yLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcGNhY2hlL3Jlc291cmNlcy9vcmln
aW4tdXNhZ2UtaWZyYW1lLTIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4IEBACis8aHRt
bCBtYW5pZmVzdD0ib3JpZ2luLXVzYWdlLWlmcmFtZS0yLm1hbmlmZXN0Ij4KKzxzY3JpcHQ+Cisv
LyBpZnJhbWUtMiBpcyBleHBlY3RlZCB0byBmYWlsIGR1ZSB0byBleGNlZWRpbmcgdGhlIG9yaWdp
biBxdW90YS4KK2FwcGxpY2F0aW9uQ2FjaGUub25jYWNoZWQgPSBmdW5jdGlvbigpIHsgcGFyZW50
LnBvc3RNZXNzYWdlKCJQQVNTIC0gY2FjaGVkIGlmcmFtZS0yIiwgIioiKTsgfTsKK2FwcGxpY2F0
aW9uQ2FjaGUub25lcnJvciA9IGZ1bmN0aW9uKCkgeyBwYXJlbnQucG9zdE1lc3NhZ2UoIkZBSUwg
LSBlcnJvciBjYWNoaW5nIGlmcmFtZS0yIiwgIioiKTsgfTsKK2FwcGxpY2F0aW9uQ2FjaGUub25u
b3VwZGF0ZSA9IGZ1bmN0aW9uKCkgeyBwYXJlbnQucG9zdE1lc3NhZ2UoIkZBSUwgLSBubyB1cGRh
dGUgaWZyYW1lLTIsIGFsbCBjYWNoZXMgc2hvdWxkIGhhdmUgYmVlbiBkZWxldGVkIGJlZm9yZSB0
aGlzIHRlc3QiLCAiKiIpOyB9OworPC9zY3JpcHQ+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcGNhY2hlL3Jlc291cmNlcy9vcmlnaW4tdXNhZ2UtaWZyYW1lLTIubWFu
aWZlc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9yZXNv
dXJjZXMvb3JpZ2luLXVzYWdlLWlmcmFtZS0yLm1hbmlmZXN0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHBjYWNoZS9yZXNvdXJjZXMvb3JpZ2luLXVzYWdlLWlmcmFt
ZS0yLm1hbmlmZXN0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYgQEAKK0NBQ0hFIE1BTklGRVNU
CisKKyMgVGhpcyBhZGRzIH4xM0sgdG8gdGhlIGFwcCBjYWNoZQorCitDQUNIRToKK2FiZS5wbmcK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQJKHJldmlzaW9uIDg2MTk4KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xODAzLDYgKzE4
MDMsOCBAQCBCVUdDUjI4NDQgU0tJUCA6IGh0dHAvdGVzdHMvYXBwY2FjaGUvbm9uCiBCVUdXSyBT
S0lQIDogaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tZGVsZXRlLmh0bWwgPSBGQUlMCiAvLyBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6Z2V0T3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hlIGlzbid0
IGltcGxlbWVudGVkCiBCVUdXSyBTS0lQIDogaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW5zLXdp
dGgtYXBwY2FjaGUuaHRtbCA9IEZBSUwKKy8vIExheW91dFRlc3RDb250cm9sbGVyOjphcHBsaWNh
dGlvbkNhY2hlRGlza1VzYWdlRm9yT3JpZ2luIGlzbid0IGltcGxlbWVudGVkIC0gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MTI3CitCVUdXSyBTS0lQIDogaHR0cC90
ZXN0cy9hcHBjYWNoZS9vcmlnaW4tdXNhZ2UuaHRtbCA9IEZBSUwKIAogLy8gTmV3IGZhaWx1cmVz
IGZyb20gV2ViS2l0IHI1MTU3NwogQlVHQ1IyOTE2NCBXSU4gTElOVVggTUFDIDogZmFzdC9mcmFt
ZXMvc2FuZGJveGVkLWlmcmFtZS1wbHVnaW5zLmh0bWwgPSBURVhUCkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvU2tpcHBlZAkocmV2aXNpb24gODYxOTgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtNTEwLDYgKzUxMCw4IEBAIGh0dHAvdGVzdHMv
YXBwY2FjaGUvZmFsbGJhY2suaHRtbAogaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tcXVvdGEu
aHRtbAogaHR0cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tZGVsZXRlLmh0bWwKIGh0dHAvdGVzdHMv
YXBwY2FjaGUvb3JpZ2lucy13aXRoLWFwcGNhY2hlLmh0bWwKKyMgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4gaXNuJ3QgaW1wbGVtZW50ZWQg
LSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcxMjcKK2h0dHAvdGVz
dHMvYXBwY2FjaGUvb3JpZ2luLXVzYWdlLmh0bWwKIGh0dHAvdGVzdHMvY29va2llcy9kb3VibGUt
cXVvdGVkLXZhbHVlLXdpdGgtc2VtaS1jb2xvbi5odG1sCiBodHRwL3Rlc3RzL2xvYWRpbmcvYmFk
LXNjaGVtZS1zdWJmcmFtZS5odG1sCiBodHRwL3Rlc3RzL2xvYWRpbmcvYmFkLXNlcnZlci1zdWJm
cmFtZS5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCShyZXZpc2lv
biA4NjE5OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZAkod29ya2lu
ZyBjb3B5KQpAQCAtOTU2LDYgKzk1Niw4IEBAIGZhc3QvcGFyc2VyL25vc2NyaXB0LXdpdGgtamF2
YXNjcmlwdC1lbmEKIGZhc3QvcmVwYWludC9uby1jYXJldC1yZXBhaW50LWluLW5vbi1jb250ZW50
LWVkaXRhYmxlLWVsZW1lbnQuaHRtbAogZmFzdC90ZXh0L3plcm8tZm9udC1zaXplLmh0bWwKIGh0
dHAvdGVzdHMvYXBwY2FjaGUvZGlzYWJsZWQuaHRtbAorIyBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
YXBwbGljYXRpb25DYWNoZURpc2tVc2FnZUZvck9yaWdpbiBpc24ndCBpbXBsZW1lbnRlZCAtIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzEyNworaHR0cC90ZXN0cy9h
cHBjYWNoZS9vcmlnaW4tdXNhZ2UuaHRtbAogaHR0cC90ZXN0cy9jYW52YXMvd2ViZ2wvb3JpZ2lu
LWNsZWFuLWNvbmZvcm1hbmNlLmh0bWwKIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcGlu
Zy5odG1sCiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcGluZy1jcm9zcy1vcmlnaW4tZnJvbS1odHRw
cy5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJKHJldmlzaW9uIDg2MTk4KQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMjM2NSw2
ICsyMzY1LDggQEAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9iYXNpYy1hdXRoLmh0bQogaHR0
cC90ZXN0cy9hcHBjYWNoZS9vcmlnaW4tZGVsZXRlLmh0bWwKICMgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmdldE9yaWdpbnNXaXRoQXBwbGljYXRpb25DYWNoZSBpcyBub3QgaW1wbGVtZW50ZWQKIGh0
dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2lucy13aXRoLWFwcGNhY2hlLmh0bWwKKyMgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OmFwcGxpY2F0aW9uQ2FjaGVEaXNrVXNhZ2VGb3JPcmlnaW4gaXNuJ3QgaW1w
bGVtZW50ZWQgLSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTcxMjcK
K2h0dHAvdGVzdHMvYXBwY2FjaGUvb3JpZ2luLXVzYWdlLmh0bWwKIAogIyBOZWVkcyByZWJhc2Vs
aW5lCiBmYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLWVsZW1lbnQuaHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>