<?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>30458</bug_id>
          
          <creation_ts>2009-10-16 14:13:54 -0700</creation_ts>
          <short_desc>Implement &lt;a ping&gt;</short_desc>
          <delta_ts>2010-09-23 13:17:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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="John Abd-El-Malek">jam</reporter>
          <assigned_to name="Nate Chapin">japhet</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>emacemac7</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>155226</commentid>
    <comment_count>0</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2009-10-16 14:13:54 -0700</bug_when>
    <thetext>Creating a bug from the webkit-dev discussion.  It seems there&apos;s consensus on doing this.  The main reasons are that without a robust way to handle tracking, ad networks and other sites are resorting to redirects and busy loops in unload handlers after image loads.  This hurts the user since it slows down their navigation and consumes battery on mobile/laptop devices.  Adding ping doesn&apos;t reduce the privacy, since it&apos;s something that&apos;s already done using hacks.  This should improve privacy since user agents can then expose options to the user to disable this feature, just like for referral headers.

This is part of HTML5: http://www.whatwg.org/specs/web-apps/current-work/#hyperlink-auditing

Note: once we do this, there are a few people who think we should implement window.sendPing() as well.  The reasons are that &lt;a ping&gt; won&apos;t work for iframes, which is how it&apos;s used by ad networks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155260</commentid>
    <comment_count>1</comment_count>
    <who name="John Abd-El-Malek">jam</who>
    <bug_when>2009-10-16 14:52:56 -0700</bug_when>
    <thetext>The webkit-dev thread: https://lists.webkit.org/pipermail/webkit-dev/2009-September/thread.html#9925</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283107</commentid>
    <comment_count>2</comment_count>
      <attachid>68406</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-09-22 11:52:40 -0700</bug_when>
    <thetext>Created attachment 68406
ping support (disabled by default)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283166</commentid>
    <comment_count>3</comment_count>
      <attachid>68406</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-09-22 12:40:55 -0700</bug_when>
    <thetext>Comment on attachment 68406
ping support (disabled by default)

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283368</commentid>
    <comment_count>4</comment_count>
      <attachid>68406</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-09-22 16:51:44 -0700</bug_when>
    <thetext>Comment on attachment 68406
ping support (disabled by default)

Clearing cq+ because it won&apos;t land before I leave for the day.  Will land tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283389</commentid>
    <comment_count>5</comment_count>
      <attachid>68406</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-09-22 17:33:08 -0700</bug_when>
    <thetext>Comment on attachment 68406
ping support (disabled by default)

+        * WebKit.order:

You needn&apos;t modify this. Only Apple uses this file, and we update it when we need to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283872</commentid>
    <comment_count>6</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-09-23 12:55:18 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/68166</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283890</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-23 13:17:13 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/68166 might have broken GTK Linux 32-bit Debug
The following changes are on the blame list:
http://trac.webkit.org/changeset/68163
http://trac.webkit.org/changeset/68164
http://trac.webkit.org/changeset/68165
http://trac.webkit.org/changeset/68166
http://trac.webkit.org/changeset/68167
http://trac.webkit.org/changeset/68168
http://trac.webkit.org/changeset/68169</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68406</attachid>
            <date>2010-09-22 11:52:40 -0700</date>
            <delta_ts>2010-09-22 17:33:08 -0700</delta_ts>
            <desc>ping support (disabled by default)</desc>
            <filename>ping.txt</filename>
            <type>text/plain</type>
            <size>40201</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAJKHJldmlzaW9uIDY4
MDUzKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yODksNCArMjg5LDkgQEAKICAgICBtX3NldHRpbmdzLT5zZXRNZW1vcnlJbmZv
RW5hYmxlZChlbmFibGVkKTsKIH0KIAordm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldEh5cGVybGlu
a0F1ZGl0aW5nRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAgbV9zZXR0aW5ncy0+c2V0SHlw
ZXJsaW5rQXVkaXRpbmdFbmFibGVkKGVuYWJsZWQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAkocmV2aXNpb24gNjgw
NTMpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCSh3b3JraW5nIGNv
cHkpCkBAIC04OSw2ICs4OSw3IEBACiAgICAgdmlydHVhbCB2b2lkIHNldEFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlZDJk
Q2FudmFzRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TWVtb3J5SW5mb0VuYWJs
ZWQoYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIHNldEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZChi
b29sKTsKIAogcHJpdmF0ZToKICAgICBXZWJDb3JlOjpTZXR0aW5ncyogbV9zZXR0aW5nczsKSW5k
ZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNjgwNTMpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDktMjIgIE5hdGUgQ2hh
cGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgaHlwZXJsaW5rIGF1ZGl0aW5nIHNldHRpbmdzIChpLmUu
LCA8YSBwaW5nPikuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zMDQ1OAorCisgICAgICAgICogcHVibGljL1dlYlNldHRpbmdzLmg6CisgICAgICAgICog
c3JjL1dlYlNldHRpbmdzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1w
bDo6c2V0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkKToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGlu
Z3NJbXBsLmg6CisKIDIwMTAtMDktMjIgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpJbmRleDogV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAkocmV2aXNpb24gNjgwNTMpCisrKyBXZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlNldHRpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTkzLDYgKzkzLDcgQEAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoYm9vbCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChib29s
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldE1lbW9yeUluZm9FbmFibGVkKGJvb2wpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkKGJvb2wpID0gMDsK
IAogcHJvdGVjdGVkOgogICAgIH5XZWJTZXR0aW5ncygpIHsgfQpJbmRleDogV2ViS2l0L3F0L0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA2ODA1
MykKKysrIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBA
QAorMjAxMC0wOS0yMiAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBoeXBlcmxpbmsg
YXVkaXRpbmcgc2V0dGluZ3MgKGkuZS4sIDxhIHBpbmc+KS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNDU4CisKKyAgICAgICAgKiBBcGkvcXdlYnNl
dHRpbmdzLmNwcDoKKyAgICAgICAgKFFXZWJTZXR0aW5nc1ByaXZhdGU6OmFwcGx5KToKKyAgICAg
ICAgKFFXZWJTZXR0aW5nczo6UVdlYlNldHRpbmdzKToKKyAgICAgICAgKiBBcGkvcXdlYnNldHRp
bmdzLmg6CisKIDIwMTAtMDktMjIgIEJhbGF6cyBLZWxlbWVuICA8a2JAaW5mLnUtc3plZ2VkLmh1
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgpJbmRl
eDogV2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQv
QXBpL3F3ZWJzZXR0aW5ncy5oCShyZXZpc2lvbiA2ODA1MykKKysrIFdlYktpdC9xdC9BcGkvcXdl
YnNldHRpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDcgKzc1LDggQEAKICAgICAgICAgVGls
ZWRCYWNraW5nU3RvcmVFbmFibGVkLAogICAgICAgICBGcmFtZUZsYXR0ZW5pbmdFbmFibGVkLAog
ICAgICAgICBTaXRlU3BlY2lmaWNRdWlya3NFbmFibGVkLAotICAgICAgICBXZWJHTEVuYWJsZWQK
KyAgICAgICAgV2ViR0xFbmFibGVkLAorICAgICAgICBIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQK
ICAgICB9OwogICAgIGVudW0gV2ViR3JhcGhpYyB7CiAgICAgICAgIE1pc3NpbmdJbWFnZUdyYXBo
aWMsCkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3ZWJzZXR0aW5ncy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L3F0L0FwaS9xd2Vic2V0dGluZ3MuY3BwCShyZXZpc2lvbiA2ODA1MykKKysrIFdlYktp
dC9xdC9BcGkvcXdlYnNldHRpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc0LDYgKzE3NCwx
MSBAQAogCiAgICAgICAgIHNldHRpbmdzLT5zZXRXZWJHTEVuYWJsZWQodmFsdWUpOwogI2VuZGlm
CisKKyAgICAgICAgdmFsdWUgPSBhdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6SHlwZXJs
aW5rQXVkaXRpbmdFbmFibGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xv
YmFsLT5hdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6SHlwZXJsaW5rQXVkaXRpbmdFbmFi
bGVkKSk7CisKKyAgICAgICAgc2V0dGluZ3MtPnNldEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCh2
YWx1ZSk7CiAgCiAgICAgICAgIHZhbHVlID0gYXR0cmlidXRlcy52YWx1ZShRV2ViU2V0dGluZ3M6
OkphdmFzY3JpcHRDYW5PcGVuV2luZG93cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2xvYmFsLT5hdHRyaWJ1dGVzLnZhbHVlKFFXZWJTZXR0aW5nczo6SmF2YXNjcmlw
dENhbk9wZW5XaW5kb3dzKSk7CkBAIC00OTUsNiArNTAwLDcgQEAKICAgICBkLT5hdHRyaWJ1dGVz
Lmluc2VydChRV2ViU2V0dGluZ3M6OkxvY2FsQ29udGVudENhbkFjY2Vzc0ZpbGVVcmxzLCB0cnVl
KTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6OkFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdFbmFibGVkLCB0cnVlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0
dGluZ3M6OldlYkdMRW5hYmxlZCwgZmFsc2UpOworICAgIGQtPmF0dHJpYnV0ZXMuaW5zZXJ0KFFX
ZWJTZXR0aW5nczo6SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkLCBmYWxzZSk7CiAgICAgZC0+YXR0
cmlidXRlcy5pbnNlcnQoUVdlYlNldHRpbmdzOjpUaWxlZEJhY2tpbmdTdG9yZUVuYWJsZWQsIGZh
bHNlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGluZ3M6OkZyYW1lRmxhdHRl
bmluZ0VuYWJsZWQsIGZhbHNlKTsKICAgICBkLT5hdHRyaWJ1dGVzLmluc2VydChRV2ViU2V0dGlu
Z3M6OlNpdGVTcGVjaWZpY1F1aXJrc0VuYWJsZWQsIHRydWUpOwpJbmRleDogV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcAkocmV2aXNpb24gNjgwNTMpCisrKyBXZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwOCw2ICsx
MDgsNyBAQAogICAgIGdib29sZWFuIGVuYWJsZV9wYWdlX2NhY2hlOwogICAgIGdib29sZWFuIGF1
dG9fcmVzaXplX3dpbmRvdzsKICAgICBnYm9vbGVhbiBlbmFibGVfamF2YV9hcHBsZXQ7CisgICAg
Z2Jvb2xlYW4gZW5hYmxlX2h5cGVybGlua19hdWRpdGluZzsKIH07CiAKICNkZWZpbmUgV0VCS0lU
X1dFQl9TRVRUSU5HU19HRVRfUFJJVkFURShvYmopIChHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZB
VEUoKG9iaiksIFdFQktJVF9UWVBFX1dFQl9TRVRUSU5HUywgV2ViS2l0V2ViU2V0dGluZ3NQcml2
YXRlKSkKQEAgLTE1OCw2ICsxNTksNyBAQAogICAgIFBST1BfRU5BQkxFX1BBR0VfQ0FDSEUsCiAg
ICAgUFJPUF9BVVRPX1JFU0laRV9XSU5ET1csCiAgICAgUFJPUF9FTkFCTEVfSkFWQV9BUFBMRVQK
KyAgICBQUk9QX0VOQUJMRV9IWVBFUkxJTktfQVVESVRJTkcKIH07CiAKIC8vIENyZWF0ZSBhIGRl
ZmF1bHQgdXNlciBhZ2VudCBzdHJpbmcKQEAgLTg2Myw2ICs4NjUsMjEgQEAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSVUUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFn
cykpOwogCisgICAgLyoqCisgICAgKiBXZWJLaXRXZWJTZXR0aW5nczplbmFibGUtaHlwZXJsaW5r
LWF1ZGl0aW5nOgorICAgICoKKyAgICAqIEVuYWJsZSBvciBkaXNhYmxlIHN1cHBvcnQgZm9yIDxh
IHBpbmc+LgorICAgICoKKyAgICAqIFNpbmNlOiAxLjEuMjIKKyAgICAqLworICAgIGdfb2JqZWN0
X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdF9jbGFzcywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFBST1BfRU5BQkxFX0hZUEVSTElOS19BVURJVElORywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKCJlbmFi
bGUtaHlwZXJsaW5rLWF1ZGl0aW5nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkVuYWJsZSBIeXBlcmxpbmsgQXVkaXRpbmciKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF8oIldoZXRoZXIgPGEgcGluZz4gc2hvdWxkIGJlIGFibGUgdG8gc2VuZCBwaW5ncyIpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRkFM
U0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmbGFncykpOworCiAgICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKGtsYXNzLCBzaXpl
b2YoV2ViS2l0V2ViU2V0dGluZ3NQcml2YXRlKSk7CiB9CiAKQEAgLTEwODMsNiArMTEwMCw5IEBA
CiAgICAgY2FzZSBQUk9QX0VOQUJMRV9KQVZBX0FQUExFVDoKICAgICAgICAgcHJpdi0+ZW5hYmxl
X2phdmFfYXBwbGV0ID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSk7CiAgICAgICAgIGJyZWFr
OworICAgIGNhc2UgUFJPUF9FTkFCTEVfSFlQRVJMSU5LX0FVRElUSU5HOgorICAgICAgICBwcml2
LT5lbmFibGVfaHlwZXJsaW5rX2F1ZGl0aW5nID0gZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSk7
CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5W
QUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKICAgICAgICAgYnJlYWs7
CkBAIC0xMjI0LDYgKzEyNDQsOSBAQAogICAgIGNhc2UgUFJPUF9FTkFCTEVfSkFWQV9BUFBMRVQ6
CiAgICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHByaXYtPmVuYWJsZV9qYXZhX2Fw
cGxldCk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9FTkFCTEVfSFlQRVJMSU5LX0FV
RElUSU5HOgorICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCBwcml2LT5lbmFibGVf
aHlwZXJsaW5rX2F1ZGl0aW5nKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNw
ZWMpOwogICAgICAgICBicmVhazsKQEAgLTEyOTcsNiArMTMyMCw3IEBACiAgICAgICAgICAgICAg
ICAgICJlbmFibGUtcGFnZS1jYWNoZSIsIHByaXYtPmVuYWJsZV9wYWdlX2NhY2hlLAogICAgICAg
ICAgICAgICAgICAiYXV0by1yZXNpemUtd2luZG93IiwgcHJpdi0+YXV0b19yZXNpemVfd2luZG93
LAogICAgICAgICAgICAgICAgICAiZW5hYmxlLWphdmEtYXBwbGV0IiwgcHJpdi0+ZW5hYmxlX2ph
dmFfYXBwbGV0LAorICAgICAgICAgICAgICAgICAiZW5hYmxlLWh5cGVybGluay1hdWRpdGluZyIs
IHByaXYtPmVuYWJsZV9oeXBlcmxpbmtfYXVkaXRpbmcsCiAgICAgICAgICAgICAgICAgIE5VTEwp
KTsKIAogICAgIHJldHVybiBjb3B5OwpJbmRleDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
dmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5j
cHAJKHJldmlzaW9uIDY4MDUzKQorKysgV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI4NTMsNyArMjg1Myw3IEBACiAgICAgICAgIGphdmFTY3Jp
cHRDYW5BY2Nlc3NDbGlwYm9hcmQsIGVuYWJsZU9mZmxpbmVXZWJBcHBDYWNoZSwKICAgICAgICAg
ZW5hYmxlVW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkksIGVuYWJsZUZpbGVBY2Nlc3NGcm9tRmls
ZVVSSSwKICAgICAgICAgZW5hYmxlRE9NUGFzdGUsIHRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50
cywKLSAgICAgICAgZW5hYmxlU2l0ZVNwZWNpZmljUXVpcmtzLCB1c2VQYWdlQ2FjaGUsIGVuYWJs
ZUphdmFBcHBsZXQ7CisgICAgICAgIGVuYWJsZVNpdGVTcGVjaWZpY1F1aXJrcywgdXNlUGFnZUNh
Y2hlLCBlbmFibGVKYXZhQXBwbGV0LCBlbmFibGVIeXBlcmxpbmtBdWRpdGluZzsKIAogICAgIFdl
YktpdEVkaXRpbmdCZWhhdmlvciBlZGl0aW5nQmVoYXZpb3I7CiAKQEAgLTI4OTAsNiArMjg5MCw3
IEBACiAgICAgICAgICAgICAgICAgICJlbmFibGUtc2l0ZS1zcGVjaWZpYy1xdWlya3MiLCAmZW5h
YmxlU2l0ZVNwZWNpZmljUXVpcmtzLAogICAgICAgICAgICAgICAgICAiZW5hYmxlLXBhZ2UtY2Fj
aGUiLCAmdXNlUGFnZUNhY2hlLAogICAgICAgICAgICAgICAgICAiZW5hYmxlLWphdmEtYXBwbGV0
IiwgJmVuYWJsZUphdmFBcHBsZXQsCisgICAgICAgICAgICAgICAgICJlbmFibGUtaHlwZXJsaW5r
LWF1ZGl0aW5nIiwgJmVuYWJsZUh5cGVybGlua0F1ZGl0aW5nLAogICAgICAgICAgICAgICAgICBO
VUxMKTsKIAogICAgIHNldHRpbmdzLT5zZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZShkZWZhdWx0
RW5jb2RpbmcpOwpAQCAtMjkyNSw2ICsyOTI2LDcgQEAKICAgICBzZXR0aW5ncy0+c2V0TmVlZHNT
aXRlU3BlY2lmaWNRdWlya3MoZW5hYmxlU2l0ZVNwZWNpZmljUXVpcmtzKTsKICAgICBzZXR0aW5n
cy0+c2V0VXNlc1BhZ2VDYWNoZSh1c2VQYWdlQ2FjaGUpOwogICAgIHNldHRpbmdzLT5zZXRKYXZh
RW5hYmxlZChlbmFibGVKYXZhQXBwbGV0KTsKKyAgICBzZXR0aW5ncy0+c2V0SHlwZXJsaW5rQXVk
aXRpbmdFbmFibGVkKGVuYWJsZUh5cGVybGlua0F1ZGl0aW5nKTsKIAogICAgIFBhZ2UqIHBhZ2Ug
PSBjb3JlKHdlYlZpZXcpOwogICAgIGlmIChwYWdlKQpAQCAtMzAzNiw2ICszMDM4LDggQEAKICAg
ICAgICAgc2V0dGluZ3MtPnNldFVzZXNQYWdlQ2FjaGUoZ192YWx1ZV9nZXRfYm9vbGVhbigmdmFs
dWUpKTsKICAgICBlbHNlIGlmIChuYW1lID09IGdfaW50ZXJuX3N0cmluZygiZW5hYmxlLWphdmEt
YXBwbGV0IikpCiAgICAgICAgIHNldHRpbmdzLT5zZXRKYXZhRW5hYmxlZChnX3ZhbHVlX2dldF9i
b29sZWFuKCZ2YWx1ZSkpOworICAgIGVsc2UgaWYgKG5hbWUgPT0gZ19pbnRlcm5fc3RyaW5nKCJl
bmFibGUtaHlwZXJsaW5rLWF1ZGl0aW5nIikpCisgICAgICAgIHNldHRpbmdzLT5zZXRIeXBlcmxp
bmtBdWRpdGluZ0VuYWJsZWQoZ192YWx1ZV9nZXRfYm9vbGVhbigmdmFsdWUpKTsKICAgICBlbHNl
IGlmICghZ19vYmplY3RfY2xhc3NfZmluZF9wcm9wZXJ0eShHX09CSkVDVF9HRVRfQ0xBU1Mod2Vi
U2V0dGluZ3MpLCBuYW1lKSkKICAgICAgICAgZ193YXJuaW5nKCJVbmV4cGVjdGVkIHNldHRpbmcg
JyVzJyIsIG5hbWUpOwogICAgIGdfdmFsdWVfdW5zZXQoJnZhbHVlKTsKSW5kZXg6IFdlYktpdC9n
dGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hhbmdlTG9nCShyZXZpc2lv
biA2ODA1MykKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTAtMDktMjIgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgaHlw
ZXJsaW5rIGF1ZGl0aW5nIHNldHRpbmdzIChpLmUuLCA8YSBwaW5nPikuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDQ1OAorCisgICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfc2V0dGluZ3Nf
Y2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX3NldF9wcm9wZXJ0eSk6
CisgICAgICAgICh3ZWJraXRfd2ViX3NldHRpbmdzX2dldF9wcm9wZXJ0eSk6CisgICAgICAgICh3
ZWJraXRfd2ViX3NldHRpbmdzX2NvcHkpOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3
LmNwcDoKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld191cGRhdGVfc2V0dGluZ3MpOgorICAgICAg
ICAod2Via2l0X3dlYl92aWV3X3NldHRpbmdzX25vdGlmeSk6CisKIDIwMTAtMDktMjIgIE1hcnRp
biBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFhhbiBMb3Blei4KSW5kZXg6IFdlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgJKHJldmlzaW9uIDY4MDUzKQorKysgV2Vi
S2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MjYsNiArNDI2LDkg
QEAKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0TWVtb3J5SW5mb0Vu
YWJsZWQoQk9PTCk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIG1lbW9y
eUluZm9FbmFibGVkKEJPT0wqKTsKIAorICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBoeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQoQk9PTCopOworICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBzZXRIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQoQk9PTCk7CisK
ICAgICAvLyBXZWJQcmVmZXJlbmNlcwogCiAgICAgLy8gVGhpcyBtZXRob2QgYWNjZXNzZXMgYSBk
aWZmZXJlbnQgcHJlZmVyZW5jZSBrZXkgdGhhbiBkZXZlbG9wZXJFeHRyYXNFbmFibGVkLgpJbmRl
eDogV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9DaGFuZ2VM
b2cJKHJldmlzaW9uIDY4MDUzKQorKysgV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wOS0yMiAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBoeXBlcmxpbmsgYXVkaXRpbmcgc2V0dGluZ3MgKGkuZS4sIDxhIHBpbmc+KS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNDU4CisKKyAg
ICAgICAgKiBJbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5pZGw6CisgICAgICAgICogV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOgorICAg
ICAgICAoV2ViUHJlZmVyZW5jZXM6OmluaXRpYWxpemVEZWZhdWx0U2V0dGluZ3MpOgorICAgICAg
ICAoV2ViUHJlZmVyZW5jZXM6Omh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCk6CisgICAgICAgIChX
ZWJQcmVmZXJlbmNlczo6c2V0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkKToKKyAgICAgICAgKiBX
ZWJQcmVmZXJlbmNlcy5oOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmll
dzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKToKKwogMjAxMC0wOS0yMiAgQmFsYXpzIEtlbGVt
ZW4gIDxrYkBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBS
b2hkZSBDaHJpc3RpYW5zZW4uCkluZGV4OiBXZWJLaXQvd2luL1dlYlZpZXcuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC93aW4vV2ViVmlldy5jcHAJKHJldmlzaW9uIDY4MDUzKQorKysgV2ViS2l0
L3dpbi9XZWJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDc3Myw2ICs0NzczLDExIEBACiAg
ICAgICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy0+c2V0TWVtb3J5SW5mb0VuYWJsZWQoZW5h
YmxlZCk7CiAKKyAgICBociA9IHByZWZzUHJpdmF0ZS0+aHlwZXJsaW5rQXVkaXRpbmdFbmFibGVk
KCZlbmFibGVkKTsKKyAgICBpZiAoRkFJTEVEKGhyKSkKKyAgICAgICAgcmV0dXJuIGhyOworICAg
IHNldHRpbmdzLT5zZXRIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQoZW5hYmxlZCk7CisKICAgICBp
ZiAoIW1fY2xvc2VXaW5kb3dUaW1lcikKICAgICAgICAgbV9tYWluRnJhbWUtPmludmFsaWRhdGUo
KTsgLy8gRklYTUUKIApJbmRleDogV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCShy
ZXZpc2lvbiA2ODA1MykKKysrIFdlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTY2LDYgKzY2LDcgQEAKICNkZWZpbmUgV2ViS2l0VXNlc1BhZ2VD
YWNoZVByZWZlcmVuY2VLZXkgIldlYktpdFVzZXNQYWdlQ2FjaGVQcmVmZXJlbmNlS2V5IgogI2Rl
ZmluZSBXZWJLaXRDYWNoZU1vZGVsUHJlZmVyZW5jZUtleSAiV2ViS2l0Q2FjaGVNb2RlbFByZWZl
cmVuY2VLZXkiCiAjZGVmaW5lIFdlYktpdExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aFByZWZlcmVu
Y2VLZXkgIldlYktpdExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aCIKKyNkZWZpbmUgV2ViS2l0SHlw
ZXJsaW5rQXVkaXRpbmdFbmFibGVkUHJlZmVyZW5jZUtleSAiV2ViS2l0SHlwZXJsaW5rQXVkaXRp
bmdFbmFibGVkIgogCiAvLyBUaGVzZSBhcmUgcHJpdmF0ZSBib3RoIGJlY2F1c2UgY2FsbGVycyBz
aG91bGQgYmUgdXNpbmcgdGhlIGNvdmVyIG1ldGhvZHMgYW5kIGJlY2F1c2UgdGhlCiAvLyBjb3Zl
ciBtZXRob2RzIHRoZW1zZWx2ZXMgYXJlIHByaXZhdGUuCkluZGV4OiBXZWJLaXQvd2luL1dlYlBy
ZWZlcmVuY2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNw
cAkocmV2aXNpb24gNjgwNTMpCisrKyBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjY0LDYgKzI2NCw3IEBACiAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUo
ZGVmYXVsdHMsIENGU1RSKFdlYktpdEROU1ByZWZldGNoaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkp
LCBrQ0ZCb29sZWFuVHJ1ZSk7CiAKICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywg
Q0ZTVFIoV2ViS2l0TWVtb3J5SW5mb0VuYWJsZWRQcmVmZXJlbmNlS2V5KSwga0NGQm9vbGVhbkZh
bHNlKTsKKyAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShkZWZhdWx0cywgQ0ZTVFIoV2ViS2l0SHlw
ZXJsaW5rQXVkaXRpbmdFbmFibGVkUHJlZmVyZW5jZUtleSksIGtDRkJvb2xlYW5GYWxzZSk7CiAK
ICAgICBkZWZhdWx0U2V0dGluZ3MgPSBkZWZhdWx0czsKIH0KQEAgLTExNDgsNyArMTE0OSwyMCBA
QAogICAgIHJldHVybiBTX09LOwogfQogCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlBy
ZWZlcmVuY2VzOjpoeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQoCisgICAgLyogW2luXSAqLyBCT09M
KiBlbmFibGVkKQoreworICAgICplbmFibGVkID0gYm9vbFZhbHVlRm9yS2V5KENGU1RSKFdlYktp
dEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZFByZWZlcmVuY2VLZXkpKTsKKyAgICByZXR1cm4gU19P
SzsKK30KIAorSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJQcmVmZXJlbmNlczo6c2V0SHlw
ZXJsaW5rQXVkaXRpbmdFbmFibGVkKAorICAgIC8qIFtyZXR2YWxdW291dF0gKi8gQk9PTCBlbmFi
bGVkKQoreworICAgIHNldEJvb2xWYWx1ZShDRlNUUihXZWJLaXRIeXBlcmxpbmtBdWRpdGluZ0Vu
YWJsZWRQcmVmZXJlbmNlS2V5KSwgZW5hYmxlZCk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViUHJlZmVyZW5jZXM6OmNvb2tpZVN0b3JhZ2VBY2Nl
cHRQb2xpY3koIAogICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIFdlYktpdENvb2tpZVN0b3Jh
Z2VBY2NlcHRQb2xpY3kgKmFjY2VwdFBvbGljeSApCiB7CkluZGV4OiBXZWJLaXQvd2luL0ludGVy
ZmFjZXMvSVdlYlByZWZlcmVuY2VzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL0ludGVy
ZmFjZXMvSVdlYlByZWZlcmVuY2VzLmlkbAkocmV2aXNpb24gNjgwNTMpCisrKyBXZWJLaXQvd2lu
L0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTk4LDQg
KzE5OCw3IEBACiAKICAgICBIUkVTVUxUIGVkaXRpbmdCZWhhdmlvcihbb3V0LCByZXR2YWxdIFdl
YktpdEVkaXRpbmdCZWhhdmlvciogZWRpdGluZ0JlaGF2aW9yKTsKICAgICBIUkVTVUxUIHNldEVk
aXRpbmdCZWhhdmlvcihbaW5dIFdlYktpdEVkaXRpbmdCZWhhdmlvciBiZWhhdmlvcik7CisKKyAg
ICBIUkVTVUxUIGh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZChCT09MICpoeXBlcmxpbmtBdWRpdGlu
Z0VuYWJsZWQpOworICAgIEhSRVNVTFQgc2V0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkKEJPT0wg
aHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkKTsKIH0KSW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2ODA1MykKKysr
IFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIw
MTAtMDktMjIgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgaHlwZXJsaW5rIGF1ZGl0
aW5nIHNldHRpbmdzIChpLmUuLCA8YSBwaW5nPikuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDQ1OAorCisgICAgICAgICogV2ViS2l0Lm9yZGVyOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6CisgICAgICAgICog
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5p
dGlhbGl6ZV0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRNZW1vcnlJbmZvRW5hYmxl
ZDpdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgaHlwZXJsaW5rQXVkaXRpbmdFbmFibGVk
XSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNldEh5cGVybGlua0F1ZGl0aW5nRW5hYmxl
ZDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAg
ICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXND
aGFuZ2VkTm90aWZpY2F0aW9uOl0pOgorCiAyMDEwLTA5LTIyICBCYWxhenMgS2VsZW1lbiAgPGti
QGluZi51LXN6ZWdlZC5odT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENo
cmlzdGlhbnNlbi4KSW5kZXg6IFdlYktpdC9tYWMvV2ViS2l0Lm9yZGVyCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9tYWMvV2ViS2l0Lm9yZGVyCShyZXZpc2lvbiA2ODA1MykKKysrIFdlYktpdC9tYWMv
V2ViS2l0Lm9yZGVyCSh3b3JraW5nIGNvcHkpCkBAIC0yODQsNiArMjg0LDcgQEAKIC1bV2ViUHJl
ZmVyZW5jZXMoV2ViUHJpdmF0ZSkgcGx1Z2luQWxsb3dlZFJ1blRpbWVdCiAtW1dlYlByZWZlcmVu
Y2VzKFdlYlByaXZhdGUpIHdlYkdMRW5hYmxlZF0KIC1bV2ViUHJlZmVyZW5jZXMoV2ViUHJpdmF0
ZSkgbWVtb3J5SW5mb0VuYWJsZWRdCistW1dlYlByZWZlcmVuY2VzKFdlYlByaXZhdGUpIGh5cGVy
bGlua0F1ZGl0aW5nRW5hYmxlZF0KIC1bV2ViUHJlZmVyZW5jZXMoV2ViUHJpdmF0ZSkgaXNGcmFt
ZUZsYXR0ZW5pbmdFbmFibGVkXQogLVtXZWJWaWV3IHNldE1haW50YWluc0JhY2tGb3J3YXJkTGlz
dDpdCiAtW1dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTpdCkBAIC0xODg1LDYgKzE4ODYsNyBAQAogLVtX
ZWJQcmVmZXJlbmNlcyhXZWJQcml2YXRlKSBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxl
ZDpdCiAtW1dlYlByZWZlcmVuY2VzKFdlYlByaXZhdGUpIHNldFdlYkdMRW5hYmxlZDpdCiAtW1dl
YlByZWZlcmVuY2VzKFdlYlByaXZhdGUpIHNldE1lbW9yeUluZm9FbmFibGVkOl0KKy1bV2ViUHJl
ZmVyZW5jZXMoV2ViUHJpdmF0ZSkgc2V0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkOl0KICtbV2Vi
UGx1Z2luRGF0YWJhc2Ugc2V0QWRkaXRpb25hbFdlYlBsdWdJblBhdGhzOl0KIC1bV2ViRGVmYXVs
dFVJRGVsZWdhdGUgd2ViVmlldzpkaWREcmF3UmVjdDpdCiAtW1dlYlZpZXcoV2ViUHJpdmF0ZSkg
X3NldFBvc3RzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ05vdGlmaWNhdGlvbnM6XQpJbmRleDogV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAkocmV2aXNpb24gNjgwNTMp
CisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE5Niw2ICsxOTYsOSBAQAogLSAoQk9PTCltZW1vcnlJbmZvRW5hYmxlZDsKIC0g
KHZvaWQpc2V0TWVtb3J5SW5mb0VuYWJsZWQ6KEJPT0wpZW5hYmxlZDsKIAorLSAoQk9PTCloeXBl
cmxpbmtBdWRpdGluZ0VuYWJsZWQ7CistICh2b2lkKXNldEh5cGVybGlua0F1ZGl0aW5nRW5hYmxl
ZDooQk9PTCllbmFibGVkOworCiAvLyBPdGhlciBwcml2YXRlIG1ldGhvZHMKIC0gKHZvaWQpX3Bv
c3RQcmVmZXJlbmNlc0NoYW5nZXNOb3RpZmljYXRpb247CiArIChXZWJQcmVmZXJlbmNlcyAqKV9n
ZXRJbnN0YW5jZUZvcklkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllcjsKSW5kZXg6IFdl
YktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgJKHJldmlzaW9u
IDY4MDUzKQorKysgV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNiArMTAwLDcgQEAKICNkZWZpbmUgV2ViS2l0RE5TUHJl
ZmV0Y2hpbmdFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdEROU1ByZWZldGNoaW5nRW5hYmxl
ZCIKICNkZWZpbmUgV2ViS2l0RnVsbFNjcmVlbkVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0
RnVsbFNjcmVlbkVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdE1lbW9yeUluZm9FbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdE1lbW9yeUluZm9FbmFibGVkIgorI2RlZmluZSBXZWJLaXRIeXBlcmxp
bmtBdWRpdGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0SHlwZXJsaW5rQXVkaXRpbmdF
bmFibGVkIgogCiAvLyBUaGVzZSBhcmUgcHJpdmF0ZSBib3RoIGJlY2F1c2UgY2FsbGVycyBzaG91
bGQgYmUgdXNpbmcgdGhlIGNvdmVyIG1ldGhvZHMgYW5kIGJlY2F1c2UgdGhlCiAvLyBjb3ZlciBt
ZXRob2RzIHRoZW1zZWx2ZXMgYXJlIHByaXZhdGUuCkluZGV4OiBXZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQko
cmV2aXNpb24gNjgwNTMpCisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTQ2Myw2ICsxNDYzLDcgQEAKICAgICBzZXR0aW5ncy0+c2V0RnVsbFNjcmVl
bkVuYWJsZWQoW3ByZWZlcmVuY2VzIGZ1bGxTY3JlZW5FbmFibGVkXSk7CiAjZW5kaWYKICAgICBz
ZXR0aW5ncy0+c2V0TWVtb3J5SW5mb0VuYWJsZWQoW3ByZWZlcmVuY2VzIG1lbW9yeUluZm9FbmFi
bGVkXSk7CisgICAgc2V0dGluZ3MtPnNldEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZChbcHJlZmVy
ZW5jZXMgaHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkXSk7CiAgICAgc2V0dGluZ3MtPnNldFVzZVBy
ZUhUTUw1UGFyc2VyUXVpcmtzKHNob3VsZFVzZVByZUhUTUw1UGFyc2VyUXVpcmtzKHByZWZlcmVu
Y2VzKSk7CiAKICAgICAvLyBBcHBsaWNhdGlvbiBDYWNoZSBQcmVmZXJlbmNlcyBhcmUgc3RvcmVk
IG9uIHRoZSBnbG9iYWwgY2FjaGUgc3RvcmFnZSBtYW5hZ2VyLCBub3QgaW4gU2V0dGluZ3MuCklu
ZGV4OiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCShyZXZpc2lvbiA2ODA1MykKKysr
IFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MzY4LDYgKzM2OCw3IEBACiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCAg
V2ViS2l0RE5TUHJlZmV0Y2hpbmdFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVt
YmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRGdWxsU2NyZWVuRW5hYmxlZFByZWZlcmVu
Y2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgV2ViS2l0TWVt
b3J5SW5mb0VuYWJsZWRQcmVmZXJlbmNlS2V5LAorICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0
aEJvb2w6Tk9dLCAgIFdlYktpdEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZFByZWZlcmVuY2VLZXks
CiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgV2ViS2l0VXNlUHJlSFRN
TDVQYXJzZXJRdWlya3NLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoTG9uZ0xvbmc6
V2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6Om5vUXVvdGEoKV0sIFdlYktpdEFwcGxp
Y2F0aW9uQ2FjaGVUb3RhbFF1b3RhLAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aExvbmdM
b25nOldlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpub1F1b3RhKCldLCBXZWJLaXRB
cHBsaWNhdGlvbkNhY2hlRGVmYXVsdE9yaWdpblF1b3RhLApAQCAtMTMzMiw2ICsxMzMzLDE2IEBA
CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRNZW1vcnlJbmZvRW5h
YmxlZFByZWZlcmVuY2VLZXldOwogfQogCistIChCT09MKWh5cGVybGlua0F1ZGl0aW5nRW5hYmxl
ZAoreworICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdEh5cGVybGlua0F1
ZGl0aW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCistICh2b2lkKXNldEh5cGVybGlua0F1
ZGl0aW5nRW5hYmxlZDooQk9PTClmbGFnCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFn
IGZvcktleTpXZWJLaXRIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30K
KwogLSAoV2ViS2l0RWRpdGluZ0JlaGF2aW9yKWVkaXRpbmdCZWhhdmlvcgogewogICAgIHJldHVy
biBzdGF0aWNfY2FzdDxXZWJLaXRFZGl0aW5nQmVoYXZpb3I+KFtzZWxmIF9pbnRlZ2VyVmFsdWVG
b3JLZXk6V2ViS2l0RWRpdGluZ0JlaGF2aW9yUHJlZmVyZW5jZUtleV0pOwpJbmRleDogV2ViQ29y
ZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDY4
MDUzKQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyOCBA
QAorMjAxMC0wOS0yMiAgTmF0ZSBDaGFwaW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgSW1wbGVt
ZW50IDxhIHBpbmc+IChkaXNhYmxlZCBieSBkZWZhdWx0KS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwNDU4CisgICAgICAgIAorICAgICAgICBUZXN0
czogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BpbmctY3Jvc3Mtb3JpZ2luLWZyb20taHR0cHMuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BpbmctY3Jvc3Mtb3JpZ2lu
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9waW5nLXNhbWUtb3Jp
Z2luLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OnNlbmRQaW5ncyk6CisgICAgICAgICog
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5h
bWVzLmluOgorICAgICAgICAqIGxvYWRlci9QaW5nTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBpbmdMb2FkZXI6OnNlbmRQaW5nKTogU2V0IHBpbmctc3BlY2lmaWMgaGVhZGVycy4KKyAg
ICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OlBpbmdMb2FkZXIpOgorICAgICAgICAqIGxvYWRl
ci9QaW5nTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjp0aW1lb3V0KTog
RW5zdXJlIHBpbmdzIGV2ZW50dWFsbHkgdGltZW91dCwgc2luY2UKKyAgICAgICAgICAgIHRoZSBu
b3JtYWwgY2FuY2VsIG1lY2hhbmlzbSBjYW4ndCBzdG9wIHRoZW0uCisgICAgICAgICogcGFnZS9T
ZXR0aW5ncy5jcHA6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOiBBZGQgaHlwZXJsaW5rQXVk
aXRpbmdFbmFibGVkLgorCiAyMDEwLTA5LTIyICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25A
aWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCkluZGV4OiBXZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aAkocmV2aXNpb24gNjgwNTMpCisrKyBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAkod29ya2luZyBj
b3B5KQpAQCAtMzMwLDYgKzMzMCw5IEBACiAgICAgICAgIHZvaWQgc2V0VXNlUHJlSFRNTDVQYXJz
ZXJRdWlya3MoYm9vbCBmbGFnKSB7IG1fdXNlUHJlSFRNTDVQYXJzZXJRdWlya3MgPSBmbGFnOyB9
CiAgICAgICAgIGJvb2wgdXNlUHJlSFRNTDVQYXJzZXJRdWlya3MoKSBjb25zdCB7IHJldHVybiBt
X3VzZVByZUhUTUw1UGFyc2VyUXVpcmtzOyB9CiAKKyAgICAgICAgdm9pZCBzZXRIeXBlcmxpbmtB
dWRpdGluZ0VuYWJsZWQoYm9vbCBmbGFnKSB7IG1faHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkID0g
ZmxhZzsgfQorICAgICAgICBib29sIGh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1faHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkOyB9CisKICAgICBwcml2YXRlOgogICAg
ICAgICBQYWdlKiBtX3BhZ2U7CiAKQEAgLTQxNyw2ICs0MjAsNyBAQAogICAgICAgICBib29sIG1f
bWVtb3J5SW5mb0VuYWJsZWQ6IDE7CiAgICAgICAgIGJvb2wgbV9pbnRlcmFjdGl2ZUZvcm1WYWxp
ZGF0aW9uOiAxOwogICAgICAgICBib29sIG1fdXNlUHJlSFRNTDVQYXJzZXJRdWlya3M6IDE7Cisg
ICAgICAgIGJvb2wgbV9oeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQgOiAxOwogCiAjaWYgVVNFKFNB
RkFSSV9USEVNRSkKICAgICAgICAgc3RhdGljIGJvb2wgZ1Nob3VsZFBhaW50TmF0aXZlQ29udHJv
bHM7CkluZGV4OiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGFnZS9TZXR0aW5ncy5jcHAJKHJldmlzaW9uIDY4MDUzKQorKysgV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ3LDYgKzE0Nyw3IEBACiAgICAgLCBtX21l
bW9yeUluZm9FbmFibGVkKGZhbHNlKQogICAgICwgbV9pbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9u
KGZhbHNlKQogICAgICwgbV91c2VQcmVIVE1MNVBhcnNlclF1aXJrcyhmYWxzZSkKKyAgICAsIG1f
aHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkKGZhbHNlKQogewogICAgIC8vIEEgRnJhbWUgbWF5IG5v
dCBoYXZlIGJlZW4gY3JlYXRlZCB5ZXQsIHNvIHdlIGluaXRpYWxpemUgdGhlIEF0b21pY1N0cmlu
ZyAKICAgICAvLyBoYXNoIGJlZm9yZSB0cnlpbmcgdG8gdXNlIGl0LgpJbmRleDogV2ViQ29yZS9o
dG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRN
TEFuY2hvckVsZW1lbnQuY3BwCShyZXZpc2lvbiA2ODA1MykKKysrIFdlYkNvcmUvaHRtbC9IVE1M
QW5jaG9yRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNs
dWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUg
IlBhZ2UuaCIKKyNpbmNsdWRlICJQaW5nTG9hZGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2Uu
aCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBA
IC0xNDcsNiArMTQ4LDcgQEAKICAgICAgICAgICAgIFN0cmluZyB1cmwgPSBkZXByZWNhdGVkUGFy
c2VVUkwoZ2V0QXR0cmlidXRlKGhyZWZBdHRyKSk7CiAgICAgICAgICAgICBhcHBlbmRTZXJ2ZXJN
YXBNb3VzZVBvc2l0aW9uKHVybCwgZXZlbnQpOwogICAgICAgICAgICAgaGFuZGxlTGlua0NsaWNr
KGV2ZW50LCBkb2N1bWVudCgpLCB1cmwsIGdldEF0dHJpYnV0ZSh0YXJnZXRBdHRyKSwgaGFzUmVs
KFJlbGF0aW9uTm9SZWZlcnJlcikpOworICAgICAgICAgICAgc2VuZFBpbmdzKGRvY3VtZW50KCkt
PmNvbXBsZXRlVVJMKHVybCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKQEAg
LTQ2NSw2ICs0NjcsMTYgQEAKICAgICByZXR1cm4gaXNMaW5rKCkgJiYgdHJlYXRMaW5rQXNMaXZl
Rm9yRXZlbnRUeXBlKG1fd2FzU2hpZnRLZXlEb3duT25Nb3VzZURvd24gPyBNb3VzZUV2ZW50V2l0
aFNoaWZ0S2V5IDogTW91c2VFdmVudFdpdGhvdXRTaGlmdEtleSk7CiB9CiAKK3ZvaWQgSFRNTEFu
Y2hvckVsZW1lbnQ6OnNlbmRQaW5ncyhjb25zdCBLVVJMJiBkZXN0aW5hdGlvblVSTCkKK3sKKyAg
ICBpZiAoIWhhc0F0dHJpYnV0ZShwaW5nQXR0cikgfHwgIWRvY3VtZW50KCktPnNldHRpbmdzKCkt
Pmh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBTcGFj
ZVNwbGl0U3RyaW5nIHBpbmdVUkxzKGdldEF0dHJpYnV0ZShwaW5nQXR0ciksIHRydWUpOworICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaW5nVVJMcy5zaXplKCk7IGkrKykKKyAgICAgICAg
UGluZ0xvYWRlcjo6c2VuZFBpbmcoZG9jdW1lbnQoKS0+ZnJhbWUoKSwgZG9jdW1lbnQoKS0+Y29t
cGxldGVVUkwocGluZ1VSTHNbaV0pLCBkZXN0aW5hdGlvblVSTCk7Cit9CisKIEhUTUxBbmNob3JF
bGVtZW50OjpFdmVudFR5cGUgSFRNTEFuY2hvckVsZW1lbnQ6OmV2ZW50VHlwZShFdmVudCogZXZl
bnQpCiB7CiAgICAgaWYgKCFldmVudC0+aXNNb3VzZUV2ZW50KCkpCkluZGV4OiBXZWJDb3JlL2h0
bWwvSFRNTEFuY2hvckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEFu
Y2hvckVsZW1lbnQuaAkocmV2aXNpb24gNjgwNTMpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSw4IEBACiAgICAgdmlydHVh
bCBzaG9ydCB0YWJJbmRleCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBkcmFnZ2FibGUoKSBj
b25zdDsKIAorICAgIHZvaWQgc2VuZFBpbmdzKGNvbnN0IEtVUkwmIGRlc3RpbmF0aW9uVVJMKTsK
KwogICAgIGVudW0gRXZlbnRUeXBlIHsKICAgICAgICAgTW91c2VFdmVudFdpdGhvdXRTaGlmdEtl
eSwKICAgICAgICAgTW91c2VFdmVudFdpdGhTaGlmdEtleSwKSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MQXR0cmlidXRlTmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBdHRy
aWJ1dGVOYW1lcy5pbgkocmV2aXNpb24gNjgwNTMpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEF0dHJp
YnV0ZU5hbWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yMjksNiArMjI5LDcgQEAKIHBhdHRlcm4K
IHBsYWNlaG9sZGVyCiBwbHVnaW51cmwKK3BpbmcKIHBvc3RlcgogcHJlY2lzaW9uCiBwcmVsb2Fk
CkluZGV4OiBXZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAkocmV2aXNpb24gNjgwNTMpCisrKyBXZWJDb3JlL2xv
YWRlci9QaW5nTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBpbmdMb2FkZXIuaCIKIAorI2luY2x1ZGUgIkZv
cm1EYXRhLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZS5o
IgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCkBAIC02MCw5ICs2MSw0MCBAQAogICAgIFVO
VVNFRF9QQVJBTShsZWFrZWRQaW5nTG9hZGVyKTsKIH0KIAorLy8gaHR0cDovL3d3dy53aGF0d2cu
b3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvbGlua3MuaHRtbCNoeXBl
cmxpbmstYXVkaXRpbmcKK3ZvaWQgUGluZ0xvYWRlcjo6c2VuZFBpbmcoRnJhbWUqIGZyYW1lLCBj
b25zdCBLVVJMJiBwaW5nVVJMLCBjb25zdCBLVVJMJiBkZXN0aW5hdGlvblVSTCkKK3sKKyAgICBS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChwaW5nVVJMKTsKKyAgICByZXF1ZXN0LnNldFRhcmdldFR5
cGUoUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1N1YnJlc291cmNlKTsKKyAgICByZXF1ZXN0LnNl
dEhUVFBNZXRob2QoIlBPU1QiKTsKKyAgICByZXF1ZXN0LnNldEhUVFBDb250ZW50VHlwZSgidGV4
dC9waW5nIik7CisgICAgcmVxdWVzdC5zZXRIVFRQQm9keShGb3JtRGF0YTo6Y3JlYXRlKCJQSU5H
IikpOworICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKCJDYWNoZS1Db250cm9sIiwgIm1h
eC1hZ2U9MCIpOworICAgIGZyYW1lLT5sb2FkZXIoKS0+YWRkRXh0cmFGaWVsZHNUb1N1YnJlc291
cmNlUmVxdWVzdChyZXF1ZXN0KTsKKworICAgIFNlY3VyaXR5T3JpZ2luKiBzb3VyY2VPcmlnaW4g
PSBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKKyAgICBSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IHBpbmdPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHBpbmdVUkwpOwor
ICAgIEZyYW1lTG9hZGVyOjphZGRIVFRQT3JpZ2luSWZOZWVkZWQocmVxdWVzdCwgc291cmNlT3Jp
Z2luLT50b1N0cmluZygpKTsKKyAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZCgiUGluZy1U
byIsIGRlc3RpbmF0aW9uVVJMKTsKKyAgICBpZiAoc291cmNlT3JpZ2luLT5pc1NhbWVTY2hlbWVI
b3N0UG9ydChwaW5nT3JpZ2luLmdldCgpKSkKKyAgICAgICAgcmVxdWVzdC5zZXRIVFRQSGVhZGVy
RmllbGQoIlBpbmctRnJvbSIsIGZyYW1lLT5kb2N1bWVudCgpLT51cmwoKSk7CisgICAgZWxzZSBp
ZiAoIVNlY3VyaXR5T3JpZ2luOjpzaG91bGRIaWRlUmVmZXJyZXIocGluZ1VSTCwgZnJhbWUtPmxv
YWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCkpKQorICAgICAgICByZXF1ZXN0LnNldEhUVFBSZWZl
cnJlcihmcmFtZS0+bG9hZGVyKCktPm91dGdvaW5nUmVmZXJyZXIoKSk7CisgICAgT3duUHRyPFBp
bmdMb2FkZXI+IHBpbmdMb2FkZXIgPSBhZG9wdFB0cihuZXcgUGluZ0xvYWRlcihmcmFtZSwgcmVx
dWVzdCkpOworICAgIAorICAgIC8vIExlYWsgdGhlIHBpbmcgbG9hZGVyLCBzaW5jZSBpdCB3aWxs
IGtpbGwgaXRzZWxmIGFzIHNvb24gYXMgaXQgcmVjZWl2ZXMgYSByZXNwb25zZS4KKyAgICBQaW5n
TG9hZGVyKiBsZWFrZWRQaW5nTG9hZGVyID0gcGluZ0xvYWRlci5sZWFrUHRyKCk7CisgICAgVU5V
U0VEX1BBUkFNKGxlYWtlZFBpbmdMb2FkZXIpOworfQorCiBQaW5nTG9hZGVyOjpQaW5nTG9hZGVy
KEZyYW1lKiBmcmFtZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQorICAgIDogbV90
aW1lb3V0KHRoaXMsICZQaW5nTG9hZGVyOjp0aW1lb3V0KQogewogICAgIG1faGFuZGxlID0gUmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZShmcmFtZS0+bG9hZGVyKCktPm5ldHdvcmtpbmdDb250ZXh0KCks
IHJlcXVlc3QsIHRoaXMsIGZhbHNlLCBmYWxzZSk7CisKKyAgICAvLyBJZiB0aGUgc2VydmVyIG5l
dmVyIHJlc3BvbmRzLCBGcmFtZUxvYWRlciB3b24ndCBiZSBhYmxlIHRvIGNhbmNlbCB0aGlzIGxv
YWQgYW5kCisgICAgLy8gd2UnbGwgc2l0IGhlcmUgd2FpdGluZyBmb3JldmVyLiBTZXQgYSB2ZXJ5
IGdlbmVyb3VzIHRpbWVvdXQsIGp1c3QgaW4gY2FzZS4KKyAgICBtX3RpbWVvdXQuc3RhcnRPbmVT
aG90KDYwMDAwKTsKIH0KIAogUGluZ0xvYWRlcjo6flBpbmdMb2FkZXIoKQpJbmRleDogV2ViQ29y
ZS9sb2FkZXIvUGluZ0xvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL1BpbmdM
b2FkZXIuaAkocmV2aXNpb24gNjgwNTMpCisrKyBXZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNkZWZpbmUgUGluZ0xvYWRlcl9oCiAK
ICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgorI2luY2x1ZGUgIlRpbWVyLmgiCiAj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCkBA
IC01Miw2ICs1Myw3IEBACiBjbGFzcyBQaW5nTG9hZGVyIDogcHJpdmF0ZSBSZXNvdXJjZUhhbmRs
ZUNsaWVudCwgcHVibGljIE5vbmNvcHlhYmxlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBs
b2FkSW1hZ2UoRnJhbWUqLCBjb25zdCBLVVJMJiB1cmwpOworICAgIHN0YXRpYyB2b2lkIHNlbmRQ
aW5nKEZyYW1lKiwgY29uc3QgS1VSTCYgcGluZ1VSTCwgY29uc3QgS1VSTCYgZGVzdGluYXRpb25V
UkwpOwogCiAgICAgflBpbmdMb2FkZXIoKTsKIApAQCAtNjIsOCArNjQsMTAgQEAKICAgICB2b2lk
IGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCkgeyBkZWxl
dGUgdGhpczsgfQogICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRv
dWJsZSkgeyBkZWxldGUgdGhpczsgfQogICAgIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSos
IGNvbnN0IFJlc291cmNlRXJyb3ImKSB7IGRlbGV0ZSB0aGlzOyB9CisgICAgdm9pZCB0aW1lb3V0
KFRpbWVyPFBpbmdMb2FkZXI+KikgeyBkZWxldGUgdGhpczsgfQogCiAgICAgUmVmUHRyPFJlc291
cmNlSGFuZGxlPiBtX2hhbmRsZTsKKyAgICBUaW1lcjxQaW5nTG9hZGVyPiBtX3RpbWVvdXQ7CiB9
OwogCiB9CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGluZy1jcm9z
cy1vcmlnaW4tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi9waW5nLWNyb3NzLW9yaWdpbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGluZy1jcm9zcy1vcmlnaW4t
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUgQEAKK1Bpbmcgc2VudCBzdWNj
ZXNzZnVsbHkNCitDT05URU5UX1RZUEU6IHRleHQvcGluZw0KK0hUVFBfUElOR19UTzogaHR0cDov
LzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcmVzb3VyY2VzL2NoZWNrLXBpbmcucGhwDQorSFRU
UF9SRUZFUkVSOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9waW5nLWNyb3NzLW9y
aWdpbi5odG1sDQorUkVRVUVTVF9NRVRIT0Q6IFBPU1QNSW5kZXg6IExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9waW5nLWNyb3NzLW9yaWdpbi5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9waW5nLWNyb3NzLW9yaWdpbi5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BpbmctY3Jv
c3Mtb3JpZ2luLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzEgQEAKKzxodG1sPjxoZWFk
PgorPHRpdGxlPlBpbmc8L3RpdGxlPgorPHNjcmlwdD4KKwordmFyIHRlc3RDYWxsZWQgPSBmYWxz
ZTsKKworZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBpZiAoIXRlc3RDYWxsZWQpIHsKKyAgICAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQiLCAx
KTsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICAgICAgfQorICAgICAgICB0ZXN0Q2FsbGVkID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgdmFyIGEgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiYSIpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
byhhLm9mZnNldExlZnQgKyAyLCBhLm9mZnNldFRvcCArIDIpOworICAgICAgICBldmVudFNlbmRl
ci5tb3VzZURvd24oKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIH0KK30K
KworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKTsiPgorPGltZyBzcmM9
InJlc291cmNlcy9kZWxldGUtcGluZy5waHAiIG9ubG9hZD0idGVzdCgpOyIgb25lcnJvcj0idGVz
dCgpOyI+PC9pbWc+Cis8YSBpZD0iYSIgaHJlZj0icmVzb3VyY2VzL2NoZWNrLXBpbmcucGhwIiBw
aW5nPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvc2F2ZS1waW5n
LnBocCI+TmF2aWdhdGUgYW5kIHNlbmQgcGluZzwvYT4KKzwvYm9keT48L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGluZy1jcm9zcy1vcmlnaW4tZnJvbS1o
dHRwcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL3BpbmctY3Jvc3Mtb3JpZ2luLWZyb20taHR0cHMtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BpbmctY3Jvc3Mt
b3JpZ2luLWZyb20taHR0cHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQg
QEAKK1Bpbmcgc2VudCBzdWNjZXNzZnVsbHkNCitDT05URU5UX1RZUEU6IHRleHQvcGluZw0KK0hU
VFBfUElOR19UTzogaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9uYXZpZ2F0aW9uL3Jlc291cmNlcy9j
aGVjay1waW5nLnBocA0KK1JFUVVFU1RfTUVUSE9EOiBQT1NUDUluZGV4OiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25hdmlnYXRpb24vcGluZy1jcm9zcy1vcmlnaW4tZnJvbS1odHRwcy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9waW5nLWNyb3Nz
LW9yaWdpbi1mcm9tLWh0dHBzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vcGluZy1jcm9zcy1vcmlnaW4tZnJvbS1odHRwcy5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8aHRtbD48aGVhZD4KKzx0aXRsZT5QaW5nPC90aXRs
ZT4KKzxzY3JpcHQ+CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworfQorCitpZiAobG9jYXRpb24ucHJvdG9jb2wgIT0gImh0dHBz
OiIpCisgICAgbG9jYXRpb24gPSAiaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9uYXZpZ2F0aW9uL3Bp
bmctY3Jvc3Mtb3JpZ2luLmh0bWwiCis8L3NjcmlwdD4KKzwvaGVhZD48L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3NhdmUtcGluZy5waHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNl
cy9zYXZlLXBpbmcucGhwCShyZXZpc2lvbiA2ODA1MykKKysrIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvc2F2ZS1waW5nLnBocAkod29ya2luZyBjb3B5KQpAQCAt
MSw0ICsxLDEwIEBACiA8P3BocAogJHBpbmdGaWxlID0gZm9wZW4oInBpbmcudHh0IiwgJ3cnKTsK
KyRodHRwSGVhZGVycyA9ICRfU0VSVkVSOwora3NvcnQoJGh0dHBIZWFkZXJzLCBTT1JUX1NUUklO
Ryk7Citmb3JlYWNoICgkaHR0cEhlYWRlcnMgYXMgJG5hbWUgPT4gJHZhbHVlKSB7CisgICAgaWYg
KCRuYW1lID09PSAiQ09OVEVOVF9UWVBFIiB8fCAkbmFtZSA9PT0gIkhUVFBfUkVGRVJFUiIgfHwg
JG5hbWUgPT09ICJIVFRQX1BJTkdfVE8iIHx8ICRuYW1lID09PSAiSFRUUF9QSU5HX0ZST00iIHx8
ICRuYW1lID09PSAiUkVRVUVTVF9NRVRIT0QiKQorICAgICAgICBmd3JpdGUoJHBpbmdGaWxlLCAi
JG5hbWU6ICR2YWx1ZVxuIik7Cit9CiBmY2xvc2UoJHBpbmdGaWxlKTsKID8+CkluZGV4OiBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2NoZWNrLXBpbmcucGhwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMv
Y2hlY2stcGluZy5waHAJKHJldmlzaW9uIDY4MDUzKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9jaGVjay1waW5nLnBocAkod29ya2luZyBjb3B5KQpAQCAt
OCwxMSArOCwxOCBAQAogICAgIHJldHVybjsKIH0KIAorZWNobyAiPGh0bWw+PGJvZHk+XG4iOwor
ZWNobyAiUGluZyBzZW50IHN1Y2Nlc3NmdWxseTxicj5cbiI7CiskcGluZ0ZpbGUgPSBmb3Blbigi
cGluZy50eHQiLCAncicpOword2hpbGUgKCFmZW9mKCRwaW5nRmlsZSkpIHsKKyAgICBlY2hvIHJ0
cmltKGZnZXRzKCRwaW5nRmlsZSkpOworICAgIGVjaG8gIjxicj5cbiI7Cit9CitmY2xvc2UoJHBp
bmdGaWxlKTsKIHVubGluaygicGluZy50eHQiKTsKLQotZWNobyAiUEFTU1xuIjsKIGVjaG8gIjxz
Y3JpcHQ+XG4iOwogZWNobyAiaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcilcbiI7CiBl
Y2hvICIgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpO1xuIjsKIGVjaG8gIjwv
c2NyaXB0PiI7CitlY2hvICI8L2JvZHk+PC9odG1sPiI7CiA/PgpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ltYWdlLWxvYWQtaW4tdW5sb2FkLWhhbmRsZXItZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9p
bWFnZS1sb2FkLWluLXVubG9hZC1oYW5kbGVyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjgwNTMp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vaW1hZ2UtbG9hZC1pbi11bmxv
YWQtaGFuZGxlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMiArMSw0IEBACi1t
YWluIGZyYW1lIC0gaGFzIDEgb251bmxvYWQgaGFuZGxlcihzKQotUEFTUworbWFpbiBmcmFtZSAt
IGhhcyAxIG9udW5sb2FkIGhhbmRsZXIocykNCitQaW5nIHNlbnQgc3VjY2Vzc2Z1bGx5DQorSFRU
UF9SRUZFUkVSOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9pbWFnZS1sb2FkLWlu
LXVubG9hZC1oYW5kbGVyLmh0bWwNCitSRVFVRVNUX01FVEhPRDogR0VUDQpJbmRleDogTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bpbmctc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9waW5nLXNh
bWUtb3JpZ2luLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9waW5nLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw1IEBACitQaW5nIHNlbnQgc3VjY2Vzc2Z1bGx5DQorQ09OVEVOVF9UWVBF
OiB0ZXh0L3BpbmcNCitIVFRQX1BJTkdfRlJPTTogaHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmln
YXRpb24vcGluZy1zYW1lLW9yaWdpbi5odG1sDQorSFRUUF9QSU5HX1RPOiBodHRwOi8vMTI3LjAu
MC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvY2hlY2stcGluZy5waHANCitSRVFVRVNUX01F
VEhPRDogUE9TVA1JbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bpbmct
c2FtZS1vcmlnaW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcGluZy1zYW1lLW9yaWdpbi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bpbmctc2FtZS1vcmlnaW4uaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwzMSBAQAorPGh0bWw+PGhlYWQ+Cis8dGl0bGU+UGluZzwvdGl0bGU+Cis8
c2NyaXB0PgorCit2YXIgdGVzdENhbGxlZCA9IGZhbHNlOworCitmdW5jdGlvbiB0ZXN0KCkgewor
ICAgIGlmICghdGVzdENhbGxlZCkgeworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldl
YktpdEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCIsIDEpOworICAgICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB9CisgICAgICAgIHRlc3RDYWxs
ZWQgPSB0cnVlOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5ldmVu
dFNlbmRlcikgeworICAgICAgICB2YXIgYSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhIik7
CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGEub2Zmc2V0TGVmdCArIDIsIGEub2Zm
c2V0VG9wICsgMik7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICBl
dmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgfQorfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0idGVzdCgpOyI+Cis8aW1nIHNyYz0icmVzb3VyY2VzL2RlbGV0ZS1waW5nLnBo
cCIgb25sb2FkPSJ0ZXN0KCk7IiBvbmVycm9yPSJ0ZXN0KCk7Ij48L2ltZz4KKzxhIGlkPSJhIiBo
cmVmPSJyZXNvdXJjZXMvY2hlY2stcGluZy5waHAiIHBpbmc9InJlc291cmNlcy9zYXZlLXBpbmcu
cGhwIj5OYXZpZ2F0ZSBhbmQgc2VuZCBwaW5nPC9hPgorPC9ib2R5PjwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDY4MDUzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDktMjIgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgIAor
ICAgICAgICBUZXN0cyBmb3IgPGEgcGluZz4sIHBsdXMgYSByZXdyaXRlIG9mIHRoZSBvdGhlciB0
ZXN0IG9mIHNpbWlsYXIKKyAgICAgICAgbG9hZCBmdW5jdGlvbmFsaXR5IChpbWFnZS1sb2FkLWlu
LXVubG9hZC1oYW5kbGVyLmh0bWwpLiBBbGwgdGhlc2UgdGVzdHMKKyAgICAgICAgbm93IGR1bXAg
dGhlaXIgaW50ZXJlc3RpbmcgaHR0cCBoZWFkZXJzIChjb250ZW50IHR5cGUsIHJlcXVlc3QgbWV0
aG9kLAorICAgICAgICByZWZlcnJlciwgYW5kIHBpbmctc3BlY2lmaWMgaGVhZGVycykuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDQ1OAorCisgICAg
ICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ltYWdlLWxvYWQtaW4tdW5sb2FkLWhhbmRsZXIt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9waW5nLWNyb3Nz
LW9yaWdpbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdh
dGlvbi9waW5nLWNyb3NzLW9yaWdpbi1mcm9tLWh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BpbmctY3Jvc3Mtb3JpZ2luLWZyb20taHR0
cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BpbmctY3Jv
c3Mtb3JpZ2luLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9w
aW5nLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3Bpbmctc2FtZS1vcmlnaW4uaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9jaGVjay1waW5nLnBocDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3NhdmUtcGluZy5waHA6CisKIDIwMTAtMDkt
MjIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBbGV4ZXkgUHJvc2t1cnlha292LgpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcAkocmV2aXNpb24gNjgwNTMp
CisrKyBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMCw2ICsxMDAsNyBAQAogI2VuZGlmCiAKICAgICB0YWJz
VG9MaW5rcyA9IGZhbHNlOworICAgIGh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCA9IGZhbHNlOwog
fQogCiB2b2lkIFdlYlByZWZlcmVuY2VzOjphcHBseVRvKFdlYlZpZXcqIHdlYlZpZXcpCkBAIC0x
MzksNiArMTQwLDcgQEAKICAgICBzZXR0aW5ncy0+c2V0V2ViU2VjdXJpdHlFbmFibGVkKHdlYlNl
Y3VyaXR5RW5hYmxlZCk7CiAgICAgc2V0dGluZ3MtPnNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJv
bUZpbGVVUkxzKGFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKTsKICAgICBzZXR0aW5n
cy0+c2V0RWRpdGluZ0JlaGF2aW9yKGVkaXRpbmdCZWhhdmlvcik7CisgICAgc2V0dGluZ3MtPnNl
dEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZChoeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQpOwogICAg
IC8vIExheW91dFRlc3RzIHdlcmUgd3JpdHRlbiB3aXRoIFNhZmFyaSBNYWMgaW4gbWluZCB3aGlj
aCBkb2VzIG5vdCBhbGxvdwogICAgIC8vIHRhYmJpbmcgdG8gbGlua3MgYnkgZGVmYXVsdC4KICAg
ICB3ZWJWaWV3LT5zZXRUYWJzVG9MaW5rcyh0YWJzVG9MaW5rcyk7CkluZGV4OiBXZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwCShyZXZpc2lvbiA2ODA1MykKKysrIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTI1MSw2ICsxMjUxLDggQEAKICAgICAgICAgcHJlZnMtPnRhYnNUb0xpbmtzID0gY3BwVmFyaWFu
dFRvQm9vbCh2YWx1ZSk7CiAgICAgZWxzZSBpZiAoa2V5ID09ICJXZWJLaXRXZWJHTEVuYWJsZWQi
KQogICAgICAgICBwcmVmcy0+ZXhwZXJpbWVudGFsV2ViR0xFbmFibGVkID0gY3BwVmFyaWFudFRv
Qm9vbCh2YWx1ZSk7CisgICAgZWxzZSBpZiAoa2V5ID09ICJXZWJLaXRIeXBlcmxpbmtBdWRpdGlu
Z0VuYWJsZWQiKQorICAgICAgICBwcmVmcy0+aHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkID0gY3Bw
VmFyaWFudFRvQm9vbCh2YWx1ZSk7CiAgICAgZWxzZSB7CiAgICAgICAgIHN0cmluZyBtZXNzYWdl
KCJJbnZhbGlkIG5hbWUgZm9yIHByZWZlcmVuY2U6ICIpOwogICAgICAgICBtZXNzYWdlLmFwcGVu
ZChrZXkpOwpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJl
ZmVyZW5jZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9XZWJQcmVmZXJlbmNlcy5oCShyZXZpc2lvbiA2ODA1MykKKysrIFdlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTc1LDYgKzc1LDcgQEAKICAgICBib29sIGFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxz
OwogICAgIFdlYktpdDo6V2ViU2V0dGluZ3M6OkVkaXRpbmdCZWhhdmlvciBlZGl0aW5nQmVoYXZp
b3I7CiAgICAgYm9vbCB0YWJzVG9MaW5rczsKKyAgICBib29sIGh5cGVybGlua0F1ZGl0aW5nRW5h
YmxlZDsKIAogICAgIFdlYlByZWZlcmVuY2VzKCkgeyByZXNldCgpOyB9CiAgICAgdm9pZCByZXNl
dCgpOwpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRy
b2xsZXJRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
TGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAJKHJldmlzaW9uIDY4MDUzKQorKysgV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTU5MSw2ICs1OTEsOCBAQAogICAgICAgICBzZXR0aW5ncy0+c2V0QXR0cmlidXRl
KFFXZWJTZXR0aW5nczo6UGx1Z2luc0VuYWJsZWQsIHZhbHVlLnRvQm9vbCgpKTsKICAgICBlbHNl
IGlmIChuYW1lID09ICJXZWJLaXRXZWJHTEVuYWJsZWQiKQogICAgICAgICBzZXR0aW5ncy0+c2V0
QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6V2ViR0xFbmFibGVkLCB2YWx1ZS50b0Jvb2woKSk7Cisg
ICAgZWxzZSBpZiAobmFtZSA9PSAiV2ViS2l0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkIikKKyAg
ICAgICAgc2V0dGluZ3MtPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6Okh5cGVybGlua0F1ZGl0
aW5nRW5hYmxlZCwgdmFsdWUudG9Cb29sKCkpOwogICAgIGVsc2UKICAgICAgICAgcHJpbnRmKCJF
UlJPUjogTGF5b3V0VGVzdENvbnRyb2xsZXI6Om92ZXJyaWRlUHJlZmVyZW5jZSgpIGRvZXMgbm90
IHN1cHBvcnQgdGhlICclcycgcHJlZmVyZW5jZVxuIiwKICAgICAgICAgICAgIG5hbWUudG9MYXRp
bjEoKS5kYXRhKCkpOwpJbmRleDogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBS
ZW5kZXJUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9n
dGsvRHVtcFJlbmRlclRyZWUuY3BwCShyZXZpc2lvbiA2ODA1MykKKysrIFdlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMz
Niw2ICszMzYsNyBAQAogICAgICAgICAgICAgICAgICAiYXV0by1yZXNpemUtd2luZG93IiwgVFJV
RSwKICAgICAgICAgICAgICAgICAgImVuYWJsZS1qYXZhLWFwcGxldCIsIEZBTFNFLAogICAgICAg
ICAgICAgICAgICAiZW5hYmxlLXBsdWdpbnMiLCBUUlVFLAorICAgICAgICAgICAgICAgICAiZW5h
YmxlLWh5cGVybGluay1hdWRpdGluZyIsIEZBTFNFLAogICAgICAgICAgICAgICAgICAiZWRpdGlu
Zy1iZWhhdmlvciIsIFdFQktJVF9FRElUSU5HX0JFSEFWSU9SX01BQywKICAgICAgICAgICAgICAg
ICAgTlVMTCk7CiAKSW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXRUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY4MDUzKQorKysgV2ViS2l0VG9vbHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDktMjIgIE5hdGUg
Q2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBbGxvdyBEUlQgdG8gdG9nZ2xlIGh5cGVybGluayBhdWRp
dGluZyAoaS5lLiwgPGEgcGluZz4pLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzA0NTgKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVy
OjpvdmVycmlkZVByZWZlcmVuY2UpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpyZXNldCk6Cisg
ICAgICAgIChXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9n
dGsvRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocmVzZXREZWZhdWx0c1RvQ29uc2lzdGVu
dFZhbHVlcyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xs
ZXJRdC5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6b3ZlcnJpZGVQcmVmZXJl
bmNlKToKKwogMjAxMC0wOS0yMiAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgRml4IHdlYmtpdC1wYXRjaCBmYWlsdXJlLXJlYXNvbiBub3cgdGhhdCBidWlsZC53ZWJr
aXQub3JnIGhhcyBiZWVuCg==
</data>
<flag name="review"
          id="57920"
          type_id="1"
          status="+"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>