<?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>27707</bug_id>
          
          <creation_ts>2009-07-27 05:08:19 -0700</creation_ts>
          <short_desc>[WML] History handling / page cache / loading is buggy and depends on several hacks</short_desc>
          <delta_ts>2009-07-27 10:04:53 -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>
          
          <blocked>20393</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>staikos</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>134891</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-07-27 05:08:19 -0700</bug_when>
    <thetext>As the summary says the whole WML loading / page cache / history handling is flawed.
It depends on several hacks in FrameLoader / WMLGoElement / WMLCardElement / WMLPageState.

* There should be no need to track the history length on our own
* &lt;go&gt; / &lt;a&gt; / &lt;anchor&gt; / &lt;do&gt; / &lt;prev&gt; shouldn&apos;t need to deal with the FrameLoader directly (currently setting setForceReloadWmlDeck()
* FrameLoader needs to detect WML documents and handle them approriate (always reload, no caching, etc.) The tricky part is detecting our layout tests which embed WML content in a XHTML document (which is really &apos;hacky&apos;, but needed for our automatic testing facilities).

Fixing these issues should stabilize the loading area between running the layout tests standalone in DRT and using WML docs directly.
Uploading a patch with new testcases soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134934</commentid>
    <comment_count>1</comment_count>
      <attachid>33553</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-07-27 09:46:27 -0700</bug_when>
    <thetext>Created attachment 33553
Initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134937</commentid>
    <comment_count>2</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-07-27 10:04:53 -0700</bug_when>
    <thetext>Landed in r46418.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33553</attachid>
            <date>2009-07-27 09:46:27 -0700</date>
            <delta_ts>2009-07-27 09:57:12 -0700</delta_ts>
            <desc>Initial patch</desc>
            <filename>bug-27707-20090727184622.patch</filename>
            <type>text/plain</type>
            <size>25269</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NjQxNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjggQEAKKzIwMDktMDctMjcgIE5pa29sYXMgWmltbWVybWFubiAgPG5pa29sYXMu
emltbWVybWFubkB0b3JjaG1vYmlsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgW1dNTF0gSGlzdG9yeSBoYW5kbGluZyAvIHBhZ2UgY2FjaGUg
LyBsb2FkaW5nIGlzIGJ1Z2d5IGFuZCBkZXBlbmRzIG9uIHNldmVyYWwgaGFja3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NzA3CisKKyAgICAgICAg
UmVkZXNpZ24gV01MIGhpc3RvcnkvbG9hZGluZyBoYW5kbGluZy4gSW4gZGV0YWlsOgorCisgICAg
ICAgIC0gUmVtb3ZlIEZyYW1lTG9hZGVyOjpzZXRGb3JjZVJlbG9hZFdtbERlY2soKS4gV01MIHVz
ZWQgdG8gZm9yY2UgYSBzcGVjaWFsIGxvYWRpbmcgYmVoYXZpb3VyCisgICAgICAgICAgYnkgY2Fs
bGluZyB0aGlzIG1ldGhvZCBmcm9tIFdNTEdvRWxlbWVudCAmIGZyaWVuZHMgLSBpbnN0ZWFkIHRl
YWNoIEZyYW1lTG9hZGVyIHRvIGRldGVjdAorICAgICAgICAgIFdNTCBjb250ZW50IGl0c2VsZi4K
KworICAgICAgICAgIFdNTCBjb250ZW50IGlzIHVzdWFsbHkgYSBzdGFuZGFsb25lIFdNTCBkb2N1
bWVudCAoaXNXTUxEb2N1bWVudCgpPXRydWUpIG9yIGFzIHNwZWNpYWwgY2FzZQorICAgICAgICAg
IGFuIFhIVE1MIGRvY3VtZW50IHdoaWNoIGVtYmVkcyBhIFdNTCBkb2N1bWVudCAodGhhdCdzIHRo
ZSB3YXkgdGhlIFdNTCBsYXlvdXQgdGVzdHMgd29yaykuCisgICAgICAgICAgRm9yY2UgV01MIGxv
YWRpbmcgYmVoYXZpb3VyIGV2ZW4gZm9yIFhIVE1MIGRvY3VtZW50IHdoaWNoIGVtYmVkIFdNTCBk
b2N1bWVudHMuIFRoaXMgb25seQorICAgICAgICAgIGFwcGxpZXMgdG8gb3VyIGxheW91dCB0ZXN0
cywgbm90IGZvciBhbnkgcmVhbCB3b3JsZCBzaXRlLiBUaG91Z2ggaXQgZ2l2ZXMgdXMgYSBwZXJm
ZWN0CisgICAgICAgICAgd2F5IHRvIHRlc3QgdGhlIFdNTCBsb2FkaW5nIGNvZGUgZXZlbiB3aGVu
IHdlJ3JlIG5vdCBvcGVyYXRpbmcgb24gYSBzdGFuZGFsb25lIFdNTCBkb2N1bWVudC4KKworICAg
ICAgICAgIFdoZW5ldmVyIGEgV01MQ2FyZEVsZW1lbnQgaXMgaW5zZXJ0ZWQgaW50byB0aGUgZG9j
dW1lbnQgaXQgd2lsbCBjaGVjayB3aGV0ZXIgaXQncyBpbnNlcnRlZAorICAgICAgICAgIGluIGEg
c3RhbmRhbG9uZSBXTUwgZG9jdW1lbnQgb3Igd2hldGVyIHRoZSBtYWluIGZyYW1lIGRvY3VtZW50
IGlzIGRpZmZlcmVudC4gSWYgaXQgZGlmZmVycworICAgICAgICAgIHRoZSBtYWluIGZyYW1lIGRv
Y3VtZW50cycgImNvbnRhaW5zV01MQ29udGVudCIgcHJvcGVydHkgaXMgc2V0IHRvIHRydWUuCisK
KyAgICAgICAgICAtPiBNYWtlIEZyYW1lTG9hZGVyOjpzaG91bGRSZWxvYWQoKSB1c2UgdGhlIG5l
dyBmcmFtZUNvbnRhaW5zV01MQ29udGVudCgpIG1ldGhvZCwgd2hpY2gKKyAgICAgICAgICAgICBj
aGVja3MgaWYgdGhlIGFzc29jaWF0ZWQgZnJhbWUgZG9jdW1lbnQgaXMgYSBXTUwgZG9jdW1lbnQg
b3Igd2hldGVyIGl0IGNvbnRhaW5zIFdNTCBjb250ZW50LgorCisgICAgICAgIC0gQ2hhbmdlIEZy
YW1lTG9hZGVyOjpsb2FkSXRlbSgpIHRvIHVzZSB0aGUgbmV3IGZyYW1lQ29udGFpbnNXTUxDb250
ZW50KCkgbWV0aG9kIGZvciAnc2hvdWxkU2Nyb2xsJworICAgICAgICAgIGRldGVjdGlvbi4gV01M
IGRvY3VtZW50cyAob3IgdGhvc2UgY29udGFpbmluZyBXTUwgY29udGVudCkgYWx3YXlzIHdhbnQg
bmV3IGxvYWRzIGV2ZW4gZm9yIGluLXBhZ2UKKyAgICAgICAgICBuYXZpZ2F0aW9uLiBObyAic2Ny
b2xsIHRvIGFuY2hvciIgbWVjaGFuaXNtIHNob3VsZCBhcHBseS4KKworICAgICAgICAtIE1vZGlm
eSBGcmFtZUxvYWRlcjo6Y2FuQ2FjaGVQYWdlQ29udGFpbmluZ1RoaXNGcmFtZSgpIHRvIGNoZWNr
IGZvciAhZnJhbWVDb250YWluc1dNTENvbnRlbnQoKS4KKyAgICAgICAgICBXTUwgcGFnZXMgc2hv
dWxkIG5ldmVyIGJlIGNhY2hlZCwgcG90ZW50aWFsIHNlY3VyaXR5IHByb2JsZW0gZHVlIHRoZSB1
c2Ugb2YgdmFyaWFibGVzIChwZXIgc3BlYykuCisKKyAgICAgICAgQWRkIHR3byBuZXcgV01MIHRl
c3RzIHdoaWNoIHdlcmUgYnJva2VuIGJlZm9yZSwgdGVzdGluZyBvbmVudGVyZm9yd2FyZC9vbmVu
dGVyYmFja3dhcmQgZXZlbnQgaGFuZGxpbmcKKyAgICAgICAgYW5kIGhpc3RvcnkgbmF2aWdhdGlv
biAoPHByZXYvPiB0YXNrKS4KKworICAgICAgICBUZXN0czogd21sL2VudGVyLWNhcmQtd2l0aC1l
dmVudHMuaHRtbAorICAgICAgICAgICAgICAgd21sL2VudGVyLWZpcnN0LWNhcmQtd2l0aC1ldmVu
dHMuaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDogSW5pdGlhbGl6ZSBuZXcgJ21f
Y29udGFpbnNXTUxDb250ZW50JyBwcm9wZXJ0eS4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
OjpEb2N1bWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6IEFkZCBuZXcgaGVscGVyIG1l
dGhvZHMgYW5kICdtX2NvbnRhaW5zV01MQ29udGVudCIgdmFyaWFibGUgKGV4cGxhaW5lZCBhYm92
ZSkuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Q29udGFpbnNXTUxDb250ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpjb250YWluc1dNTENvbnRlbnQpOgorICAgICAg
ICAqIGhpc3RvcnkvQmFja0ZvcndhcmRMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tG
b3J3YXJkTGlzdDo6Y2xlYXJXTUxQYWdlSGlzdG9yeSk6IFJlbmFtZWQgZnJvbSBjbGVhcldtbFBh
Z2VIaXN0b3J5KCkgJiBzbGlnaHQgY2xlYW51cC4KKyAgICAgICAgKiBoaXN0b3J5L0JhY2tGb3J3
YXJkTGlzdC5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6IFJld29yayBXTUwg
bG9hZGluZyBiZWhhdmlvdXIgKGV4cGxhaW5lZCBhYm92ZSkuCisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlcjo6RnJhbWVMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6ZnJhbWVDb250YWlu
c1dNTENvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNhbkNhY2hlUGFn
ZUNvbnRhaW5pbmdUaGlzRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnNo
b3VsZFJlbG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZEl0ZW0pOgor
ICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAqIHdtbC9XTUxDYXJkRWxl
bWVudC5jcHA6IAorICAgICAgICAoV2ViQ29yZTo6V01MQ2FyZEVsZW1lbnQ6OmhhbmRsZUludHJp
bnNpY0V2ZW50SWZOZWVkZWQpOiBObyBuZWVkIGFueW1vcmUgdG8gbWFudWFsbHkgdHJhY2sgaGlz
dG9yeSBsZW5ndGguCisgICAgICAgIChXZWJDb3JlOjpXTUxDYXJkRWxlbWVudDo6aW5zZXJ0ZWRJ
bnRvRG9jdW1lbnQpOiBIYW5kbGUgc2V0dGluZyBjb250YWluc1dNTENvbnRlbnQgb24gdGhlIG1h
aW4gZnJhbWUgZG9jdW1lbnQuCisgICAgICAgICogd21sL1dNTEdvRWxlbWVudC5jcHA6IAorICAg
ICAgICAoV2ViQ29yZTo6V01MR29FbGVtZW50OjpleGVjdXRlVGFzayk6IFJlbW92ZSBjYWxsIHRv
IEZyYW1lTG9hZGVyOjpzZXRGb3JjZVJlbG9hZFdtbERlY2soKQorICAgICAgICAqIHdtbC9XTUxQ
YWdlU3RhdGUuY3BwOiBSZW1vdmUgJ21faGlzdG9yeUxlbmd0aCcgLSBubyBuZWVkIGFueW1vcmUg
dG8gdHJhY2sgaGlzdG9yeSBsZW5ndGggb24gb3VyIG93bi4KKyAgICAgICAgKFdlYkNvcmU6OldN
TFBhZ2VTdGF0ZTo6V01MUGFnZVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldNTFBhZ2VTdGF0
ZTo6ZHVtcCk6CisgICAgICAgIChXZWJDb3JlOjpXTUxQYWdlU3RhdGU6OnJlc2V0KToKKyAgICAg
ICAgKiB3bWwvV01MUGFnZVN0YXRlLmg6CisKIDIwMDktMDctMjcgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jlbi4K
SW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDQ2NDE3KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzUsNiArMzM1LDkgQEAgRG9jdW1lbnQ6OkRvY3VtZW50
KEZyYW1lKiBmcmFtZSwgYm9vbCBpcwogICAgICwgbV9oYXNPcGVuRGF0YWJhc2VzKGZhbHNlKQog
I2VuZGlmCiAgICAgLCBtX3VzaW5nR2VvbG9jYXRpb24oZmFsc2UpCisjaWYgRU5BQkxFKFdNTCkK
KyAgICAsIG1fY29udGFpbnNXTUxDb250ZW50KGZhbHNlKQorI2VuZGlmCiB7CiAgICAgbV9kb2N1
bWVudC5yZXNldFNraXBwaW5nUmVmKHRoaXMpOwogCkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDQ2NDE3
KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTAzNCw2ICsx
MDM0LDkgQEAgcHVibGljOgogICAgIGJvb2wgdXNpbmdHZW9sb2NhdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fdXNpbmdHZW9sb2NhdGlvbjsgfTsKIAogI2lmIEVOQUJMRShXTUwpCisgICAgdm9pZCBz
ZXRDb250YWluc1dNTENvbnRlbnQoYm9vbCB2YWx1ZSkgeyBtX2NvbnRhaW5zV01MQ29udGVudCA9
IHZhbHVlOyB9CisgICAgYm9vbCBjb250YWluc1dNTENvbnRlbnQoKSBjb25zdCB7IHJldHVybiBt
X2NvbnRhaW5zV01MQ29udGVudDsgfQorCiAgICAgdm9pZCByZXNldFdNTFBhZ2VTdGF0ZSgpOwog
ICAgIHZvaWQgaW5pdGlhbGl6ZVdNTFBhZ2VTdGF0ZSgpOwogI2VuZGlmCkBAIC0xMTE2LDYgKzEx
MTksMTAgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIAogICAgIGJvb2wgbV91c2luZ0dlb2xvY2F0
aW9uOworCisjaWYgRU5BQkxFKFdNTCkKKyAgICBib29sIG1fY29udGFpbnNXTUxDb250ZW50Owor
I2VuZGlmCiB9OwogCiBpbmxpbmUgYm9vbCBEb2N1bWVudDo6aGFzRWxlbWVudFdpdGhJZChBdG9t
aWNTdHJpbmdJbXBsKiBpZCkgY29uc3QKSW5kZXg6IFdlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2Fy
ZExpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZExpc3Qu
Y3BwCShyZXZpc2lvbiA0NjQxNykKKysrIFdlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZExpc3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjYsMTEgKzI2NiwxMCBAQCBib29sIEJhY2tGb3J3YXJk
TGlzdDo6Y29udGFpbnNJdGVtKEhpc3RvCiB9CiAKICNpZiBFTkFCTEUoV01MKQotdm9pZCBCYWNr
Rm9yd2FyZExpc3Q6OmNsZWFyV21sUGFnZUhpc3RvcnkoKQordm9pZCBCYWNrRm9yd2FyZExpc3Q6
OmNsZWFyV01MUGFnZUhpc3RvcnkoKQogewotICAgIFBhc3NSZWZQdHI8SGlzdG9yeUl0ZW0+IGN1
ciA9IGN1cnJlbnRJdGVtKCk7Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9lbnRy
aWVzLnNpemUoKTsgKytpKQorICAgIGludCBzaXplID0gbV9lbnRyaWVzLnNpemUoKTsKKyAgICBm
b3IgKGludCBpID0gMDsgaSA8IHNpemU7ICsraSkKICAgICAgICAgcGFnZUNhY2hlKCktPnJlbW92
ZShtX2VudHJpZXNbaV0uZ2V0KCkpOwogCiAgICAgbV9lbnRyaWVzLmNsZWFyKCk7CkluZGV4OiBX
ZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9o
aXN0b3J5L0JhY2tGb3J3YXJkTGlzdC5oCShyZXZpc2lvbiA0NjQxNykKKysrIFdlYkNvcmUvaGlz
dG9yeS9CYWNrRm9yd2FyZExpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtOTcsNyArOTcsNyBAQCBw
dWJsaWM6IAogICAgIEhpc3RvcnlJdGVtVmVjdG9yJiBlbnRyaWVzKCk7CiAgICAgCiAjaWYgRU5B
QkxFKFdNTCkKLSAgICB2b2lkIGNsZWFyV21sUGFnZUhpc3RvcnkoKTsKKyAgICB2b2lkIGNsZWFy
V01MUGFnZUhpc3RvcnkoKTsKICNlbmRpZgogCiBwcml2YXRlOgpJbmRleDogV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAkocmV2aXNpb24gNDY0MTcpCisrKyBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI3MSw5ICsyNzEsNiBAQCBGcmFtZUxvYWRlcjo6RnJhbWVM
b2FkZXIoRnJhbWUqIGZyYW1lLCBGCiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9kaWREaXNwYXRj
aERpZENvbW1pdExvYWQoZmFsc2UpCiAjZW5kaWYKLSNpZiBFTkFCTEUoV01MKQotICAgICwgbV9m
b3JjZVJlbG9hZFdtbERlY2soZmFsc2UpCi0jZW5kaWYKIHsKIH0KIApAQCAtMTc4Myw2ICsxNzgw
LDE3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmFkZERhdGEoY29uc3QgY2hhciogYnkKICAgICB3cml0
ZShieXRlcywgbGVuZ3RoKTsKIH0KIAorI2lmIEVOQUJMRShXTUwpCitzdGF0aWMgaW5saW5lIGJv
b2wgZnJhbWVDb250YWluc1dNTENvbnRlbnQoRnJhbWUqIGZyYW1lKQoreworICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IGZyYW1lID8gZnJhbWUtPmRvY3VtZW50KCkgOiAwOworICAgIGlmICghZG9j
dW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBkb2N1bWVudC0+Y29u
dGFpbnNXTUxDb250ZW50KCkgfHwgZG9jdW1lbnQtPmlzV01MRG9jdW1lbnQoKTsKK30KKyNlbmRp
ZgorCiBib29sIEZyYW1lTG9hZGVyOjpjYW5DYWNoZVBhZ2VDb250YWluaW5nVGhpc0ZyYW1lKCkK
IHsKICAgICByZXR1cm4gbV9kb2N1bWVudExvYWRlcgpAQCAtMTgxMSw2ICsxODE5LDkgQEAgYm9v
bCBGcmFtZUxvYWRlcjo6Y2FuQ2FjaGVQYWdlQ29udGFpbmluZwogICAgICAgICAmJiAhbV9kb2N1
bWVudExvYWRlci0+YXBwbGljYXRpb25DYWNoZSgpCiAgICAgICAgICYmICFtX2RvY3VtZW50TG9h
ZGVyLT5jYW5kaWRhdGVBcHBsaWNhdGlvbkNhY2hlR3JvdXAoKQogI2VuZGlmCisjaWYgRU5BQkxF
KFdNTCkKKyAgICAgICAgJiYgIWZyYW1lQ29udGFpbnNXTUxDb250ZW50KG1fZnJhbWUpCisjZW5k
aWYKICAgICAgICAgJiYgbV9jbGllbnQtPmNhbkNhY2hlUGFnZSgpCiAgICAgICAgIDsKIH0KQEAg
LTI5NjMsMTggKzI5NzQsMTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2xpZW50UmVkaXJlY3RlZChj
b25zdAogICAgIG1fcXVpY2tSZWRpcmVjdENvbWluZyA9IGxvY2tCYWNrRm9yd2FyZExpc3QgJiYg
bV9kb2N1bWVudExvYWRlciAmJiAhbV9pc0V4ZWN1dGluZ0phdmFTY3JpcHRGb3JtQWN0aW9uOwog
fQogCi0jaWYgRU5BQkxFKFdNTCkKLXZvaWQgRnJhbWVMb2FkZXI6OnNldEZvcmNlUmVsb2FkV21s
RGVjayhib29sIHJlbG9hZCkKLXsKLSAgICBtX2ZvcmNlUmVsb2FkV21sRGVjayA9IHJlbG9hZDsK
LX0KLSNlbmRpZgotCiBib29sIEZyYW1lTG9hZGVyOjpzaG91bGRSZWxvYWQoY29uc3QgS1VSTCYg
Y3VycmVudFVSTCwgY29uc3QgS1VSTCYgZGVzdGluYXRpb25VUkwpCiB7CiAjaWYgRU5BQkxFKFdN
TCkKLSAgICAvLyBBcyBmb3IgV01MIGRlY2ssIHNvbWV0aW1lcyBpdCdzIHN1cHBvc2VkIHRvIGJl
IHJlbG9hZGVkIGV2ZW4gaWYgdGhlIHNhbWUgVVJMIHdpdGggZnJhZ21lbnQKLSAgICBpZiAobV9m
b3JjZVJlbG9hZFdtbERlY2spCisgICAgLy8gQWxsIFdNTCBkZWNrcyBhcmUgc3VwcG9zZWQgdG8g
YmUgcmVsb2FkZWQsIGV2ZW4gd2l0aGluIHRoZSBzYW1lIFVSTCBmcmFnbWVudAorICAgIGlmIChm
cmFtZUNvbnRhaW5zV01MQ29udGVudChtX2ZyYW1lKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAj
ZW5kaWYKIApAQCAtNDQyOSw3ICs0NDMzLDggQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZEl0ZW0o
SGlzdG9yeUl0ZW0qIAogICAgIGJvb2wgc2hvdWxkU2Nyb2xsID0gIWZvcm1EYXRhICYmICEobV9j
dXJyZW50SGlzdG9yeUl0ZW0gJiYgbV9jdXJyZW50SGlzdG9yeUl0ZW0tPmZvcm1EYXRhKCkpICYm
IHVybHNNYXRjaEl0ZW0oaXRlbSk7CiAKICNpZiBFTkFCTEUoV01MKQotICAgIGlmIChtX2ZyYW1l
LT5kb2N1bWVudCgpLT5pc1dNTERvY3VtZW50KCkpCisgICAgLy8gQWxsIFdNTCBkZWNrcyBzaG91
bGQgZ28gdGhyb3VnaCB0aGUgcmVhbCBsb2FkIG1lY2hhbmlzbSwgbm90IHRoZSBzY3JvbGwtdG8t
YW5jaG9yIGNvZGUKKyAgICBpZiAoZnJhbWVDb250YWluc1dNTENvbnRlbnQobV9mcmFtZSkpCiAg
ICAgICAgIHNob3VsZFNjcm9sbCA9IGZhbHNlOwogI2VuZGlmCiAKSW5kZXg6IFdlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuaAkocmV2aXNpb24gNDY0MTcpCisrKyBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwg
MjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDggVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0
dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBU
b3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1v
YmlsZS5jb20vKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMzYsMTAgKzIz
Niw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIGRpZEZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dCgpOwogCi0jaWYgRU5BQkxFKFdNTCkKLSAgICAgICAgdm9pZCBzZXRG
b3JjZVJlbG9hZFdtbERlY2soYm9vbCk7Ci0jZW5kaWYKLQogICAgICAgICB2b2lkIGxvYWRlZFJl
c291cmNlRnJvbU1lbW9yeUNhY2hlKGNvbnN0IENhY2hlZFJlc291cmNlKik7CiAgICAgICAgIHZv
aWQgdGVsbENsaWVudEFib3V0UGFzdE1lbW9yeUNhY2hlTG9hZHMoKTsKIApAQCAtNjI1LDEwICs2
MjEsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWZuZGVmIE5ERUJVRwogICAgICAgICBib29s
IG1fZGlkRGlzcGF0Y2hEaWRDb21taXRMb2FkOwogI2VuZGlmCi0KLSNpZiBFTkFCTEUoV01MKQot
ICAgICAgICBib29sIG1fZm9yY2VSZWxvYWRXbWxEZWNrOwotI2VuZGlmCiAgICAgfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS93bWwvV01MQ2FyZEVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTENhcmRFbGVtZW50LmNwcAkocmV2aXNpb24g
NDY0MTcpCisrKyBXZWJDb3JlL3dtbC9XTUxDYXJkRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJNYXBw
ZWRBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJOb2RlTGlzdC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIK
ICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIldNTERvY3VtZW50LmgiCiAjaW5j
bHVkZSAiV01MRG9FbGVtZW50LmgiCkBAIC0xMzEsMjAgKzEzMiwyMSBAQCB2b2lkIFdNTENhcmRF
bGVtZW50OjpoYW5kbGVJbnRyaW5zaWNFdmVuCiAgICAgRnJhbWVMb2FkZXIqIGxvYWRlciA9IGZy
YW1lLT5sb2FkZXIoKTsKICAgICBpZiAoIWxvYWRlcikKICAgICAgICAgcmV0dXJuOwotICAgIAot
ICAgIGludCBjdXJyZW50SGlzdG9yeUxlbmd0aCA9IGxvYWRlci0+Z2V0SGlzdG9yeUxlbmd0aCgp
OwotICAgIGludCBsYXN0SGlzdG9yeUxlbmd0aCA9IHBhZ2VTdGF0ZS0+aGlzdG9yeUxlbmd0aCgp
OwogCiAgICAgLy8gQ2FsY3VsYXRlIHRoZSBlbnRyeSBtZXRob2Qgb2YgY3VycmVudCBjYXJkIAog
ICAgIFdNTEludHJpbnNpY0V2ZW50VHlwZSBldmVudFR5cGUgPSBXTUxJbnRyaW5zaWNFdmVudFVu
a25vd247Ci0gICAgaWYgKGxhc3RIaXN0b3J5TGVuZ3RoID4gY3VycmVudEhpc3RvcnlMZW5ndGgp
CisKKyAgICBzd2l0Y2ggKGxvYWRlci0+bG9hZFR5cGUoKSkgeworICAgIGNhc2UgRnJhbWVMb2Fk
VHlwZVJlbG9hZDoKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGcmFtZUxvYWRUeXBlQmFjazoK
ICAgICAgICAgZXZlbnRUeXBlID0gV01MSW50cmluc2ljRXZlbnRPbkVudGVyQmFja3dhcmQ7Ci0g
ICAgZWxzZSBpZiAobGFzdEhpc3RvcnlMZW5ndGggPCBjdXJyZW50SGlzdG9yeUxlbmd0aCkKKyAg
ICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKICAgICAgICAgZXZlbnRUeXBlID0gV01MSW50cmlu
c2ljRXZlbnRPbkVudGVyRm9yd2FyZDsKKyAgICAgICAgYnJlYWs7CisgICAgfQogCi0gICAgLy8g
U3luY2hyb25pemUgaGlzdG9yeSBsZW5ndGggd2l0aCBXTUxQYWdlU3RhdGUKLSAgICBwYWdlU3Rh
dGUtPnNldEhpc3RvcnlMZW5ndGgoY3VycmVudEhpc3RvcnlMZW5ndGgpOwotIAogICAgIC8vIEZp
Z3VyZSBvdXQgdGFyZ2V0IGV2ZW50IGhhbmRsZXIKICAgICBXTUxJbnRyaW5zaWNFdmVudEhhbmRs
ZXIqIGV2ZW50SGFuZGxlciA9IHRoaXMtPmV2ZW50SGFuZGxlcigpOwogICAgIGJvb2wgaGFzSW50
cmluc2ljRXZlbnQgPSBmYWxzZTsKQEAgLTI0MSwxMyArMjQzLDI1IEBAIHZvaWQgV01MQ2FyZEVs
ZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXQKIHZvaWQgV01MQ2FyZEVsZW1lbnQ6Omluc2VydGVk
SW50b0RvY3VtZW50KCkKIHsKICAgICBXTUxFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgp
OworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHRoaXMtPmRvY3VtZW50KCk7CiAKICAgICAvLyBU
aGUgZmlyc3QgY2FyZCBpbnNlcnRlZCBpbnRvIGEgZG9jdW1lbnQsIGlzIHZpc2libGUgYnkgZGVm
YXVsdC4KICAgICBpZiAoIW1faXNWaXNpYmxlKSB7Ci0gICAgICAgIFJlZlB0cjxOb2RlTGlzdD4g
bm9kZUxpc3QgPSBkb2N1bWVudCgpLT5nZXRFbGVtZW50c0J5VGFnTmFtZSgiY2FyZCIpOworICAg
ICAgICBSZWZQdHI8Tm9kZUxpc3Q+IG5vZGVMaXN0ID0gZG9jdW1lbnQtPmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJjYXJkIik7CiAgICAgICAgIGlmIChub2RlTGlzdCAmJiBub2RlTGlzdC0+bGVuZ3Ro
KCkgPT0gMSAmJiBub2RlTGlzdC0+aXRlbSgwKSA9PSB0aGlzKQogICAgICAgICAgICAgbV9pc1Zp
c2libGUgPSB0cnVlOwogICAgIH0KKworICAgIC8vIEZvciB0aGUgV01MIGxheW91dCB0ZXN0cyB3
ZSBlbWJlZCBXTUwgY29udGVudCBpbiBhIFhIVE1MIGRvY3VtZW50LiBOYXZpZ2F0aW5nIHRvIGRp
ZmZlcmVudCBjYXJkcworICAgIC8vIHdpdGhpbiB0aGUgc2FtZSBkZWNrIGhhcyBhIGRpZmZlcmVu
dCBiZWhhdmlvdXIgaW4gSFRNTCB0aGFuIGluIFdNTC4gSFRNTCB3YW50cyB0byAic2Nyb2xsIHRv
IGFuY2hvciIKKyAgICAvLyAoc2VlIEZyYW1lTG9hZGVyKSBidXQgV01MIHdhbnRzIGEgcmVsb2Fk
LiBOb3RpZnkgdGhlIHJvb3QgZG9jdW1lbnQgb2YgdGhlIGxheW91dCB0ZXN0IHRoYXQgd2Ugd2Fu
dAorICAgIC8vIHRvIG1pbWljIFdNTCBiZWhhdmlvdXIuIFRoaXMgaXMgcmF0aGVyIHRyaWNreSwg
YnV0IGhhcyBiZWVuIHRlc3RlZCBleHRlbnNpdmVseS4gVXN1YWxseSBpdCdzIG5vdCBwb3NzaWJs
ZQorICAgIC8vIGF0IGFsbCB0byBlbWJlZCBXTUwgaW4gSFRNTCwgaXQncyBub3QgZGVzaWduZWQg
dGhhdCB3YXksIHdlJ3JlIGp1c3QgImFidXNpbmciIGl0IGZvciBkeW5hbWljYWxseSBjcmVhdGVk
IGxheW91dCB0ZXN0cy4KKyAgICBpZiAoZG9jdW1lbnQtPnBhZ2UoKSAmJiBkb2N1bWVudC0+cGFn
ZSgpLT5tYWluRnJhbWUoKSkgeworICAgICAgICBEb2N1bWVudCogcm9vdERvY3VtZW50ID0gZG9j
dW1lbnQtPnBhZ2UoKS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgICAgIGlmIChyb290
RG9jdW1lbnQgJiYgcm9vdERvY3VtZW50ICE9IGRvY3VtZW50KQorICAgICAgICAgICAgcm9vdERv
Y3VtZW50LT5zZXRDb250YWluc1dNTENvbnRlbnQodHJ1ZSk7CisgICAgfQogfQogCiBSZW5kZXJP
YmplY3QqIFdNTENhcmRFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEs
IFJlbmRlclN0eWxlKiBzdHlsZSkgCkluZGV4OiBXZWJDb3JlL3dtbC9XTUxHb0VsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTEdvRWxlbWVudC5jcHAJKHJldmlzaW9uIDQ2
NDE3KQorKysgV2ViQ29yZS93bWwvV01MR29FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qKgotICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1vYmlsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKICAqCiAgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpA
QCAtMTAyLDkgKzEwMiw2IEBAIHZvaWQgV01MR29FbGVtZW50OjpleGVjdXRlVGFzayhFdmVudCop
CiAgICAgLy8gRklYTUU6ICduZXdjb250ZXh0JyBoYW5kbGluZyBub3QgaW1wbGVtZW50ZWQgZm9y
IGV4dGVybmFsIGNhcmRzCiAgICAgYm9vbCBpblNhbWVEZWNrID0gZG9jLT51cmwoKS5wYXRoKCkg
PT0gdXJsLnBhdGgoKTsKICAgICBpZiAoaW5TYW1lRGVjayAmJiB1cmwuaGFzUmVmKCkpIHsKLSAg
ICAgICAgLy8gRm9yY2UgZnJhbWUgbG9hZGVyIHRvIGxvYWQgdGhlIFVSTCB3aXRoIGZyYWdtZW50
IGlkZW50aWZpZXIKLSAgICAgICAgbG9hZGVyLT5zZXRGb3JjZVJlbG9hZFdtbERlY2sodHJ1ZSk7
Ci0KICAgICAgICAgaWYgKFdNTENhcmRFbGVtZW50KiBjYXJkID0gV01MQ2FyZEVsZW1lbnQ6OmZp
bmROYW1lZENhcmRJbkRvY3VtZW50KGRvYywgdXJsLnJlZigpKSkgewogICAgICAgICAgICAgaWYg
KGNhcmQtPmlzTmV3Q29udGV4dCgpKQogICAgICAgICAgICAgICAgIHBhZ2VTdGF0ZS0+cmVzZXQo
KTsKSW5kZXg6IFdlYkNvcmUvd21sL1dNTFBhZ2VTdGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS93bWwvV01MUGFnZVN0YXRlLmNwcAkocmV2aXNpb24gNDY0MTcpCisrKyBXZWJDb3JlL3dt
bC9XTUxQYWdlU3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwOCBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQotICoKKyAqIENvcHlyaWdodCAoQykgMjAw
OCwgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3
dy50b3JjaG1vYmlsZS5jb20vKQogICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMDcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI1LDYgKzI0LDcgQEAKICNp
ZiBFTkFCTEUoV01MKQogI2luY2x1ZGUgIldNTFBhZ2VTdGF0ZS5oIgogCisjaW5jbHVkZSAiQ1N0
cmluZy5oIgogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2lu
Y2x1ZGUgIlBhZ2UuaCIKQEAgLTMzLDcgKzMzLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBX
TUxQYWdlU3RhdGU6OldNTFBhZ2VTdGF0ZShQYWdlKiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2Up
Ci0gICAgLCBtX2hpc3RvcnlMZW5ndGgoMCkKICAgICAsIG1fYWN0aXZlQ2FyZCgwKQogICAgICwg
bV9oYXNEZWNrQWNjZXNzKGZhbHNlKQogewpAQCAtNDQsMTcgKzQzLDI3IEBAIFdNTFBhZ2VTdGF0
ZTo6fldNTFBhZ2VTdGF0ZSgpCiAgICAgbV92YXJpYWJsZXMuY2xlYXIoKTsKIH0KIAorI2lmbmRl
ZiBOREVCVUcKKy8vIERlYnVnZ2luZyBoZWxwZXIgZm9yIHVzZSB3aXRoaW4gZ2RiCit2b2lkIFdN
TFBhZ2VTdGF0ZTo6ZHVtcCgpCit7CisgICAgV01MVmFyaWFibGVNYXA6Oml0ZXJhdG9yIGl0ID0g
bV92YXJpYWJsZXMuYmVnaW4oKTsKKyAgICBXTUxWYXJpYWJsZU1hcDo6aXRlcmF0b3IgZW5kID0g
bV92YXJpYWJsZXMuZW5kKCk7CisKKyAgICBmcHJpbnRmKHN0ZGVyciwgIkR1bXBpbmcgV01MUGFn
ZVN0YXRlICh0aGlzPSVwKSBhc3NvY2lhdGVkIHdpdGggUGFnZSAocGFnZT0lcCkuLi5cbiIsIHRo
aXMsIG1fcGFnZSk7CisgICAgZm9yICg7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgZnByaW50
ZihzdGRlcnIsICJcdC0+IG5hbWU6ICclcydcdHZhbHVlOiAnJXMnXG4iLCAoKml0KS5maXJzdC5s
YXRpbjEoKS5kYXRhKCksICgqaXQpLnNlY29uZC5sYXRpbjEoKS5kYXRhKCkpOworfQorI2VuZGlm
CisKIHZvaWQgV01MUGFnZVN0YXRlOjpyZXNldCgpCiB7Ci0gICAgLy8gcmVtb3ZlIGFsbCB0aGUg
dmFyaWFibGVzIGluIHRoZSBjdXJyZW50IGJyb3dzZXIgY29udGV4dAorICAgIC8vIFJlbW92ZSBh
bGwgdGhlIHZhcmlhYmxlcwogICAgIG1fdmFyaWFibGVzLmNsZWFyKCk7CiAKLSAgICAvLyBjbGVh
ciB0aGUgbmF2aWdhdGlvbiBoaXN0b3J5IHN0YXRlIAotICAgIGlmIChtX3BhZ2UpCi0gICAgICAg
IG1fcGFnZS0+YmFja0ZvcndhcmRMaXN0KCktPmNsZWFyV21sUGFnZUhpc3RvcnkoKTsKLQotICAg
IC8vIHJlc2V0IGltcGxlbWVudGF0aW9uLXNwZWNmaWMgc3RhdGUgaWYgVUEgaGFzCi0gICAgbV9o
aXN0b3J5TGVuZ3RoID0gMDsKKyAgICAvLyBDbGVhciB0aGUgbmF2aWdhdGlvbiBoaXN0b3J5IHN0
YXRlIAorICAgIGlmIChCYWNrRm9yd2FyZExpc3QqIGxpc3QgPSBtX3BhZ2UgPyBtX3BhZ2UtPmJh
Y2tGb3J3YXJkTGlzdCgpIDogMCkKKyAgICAgICAgbGlzdC0+Y2xlYXJXTUxQYWdlSGlzdG9yeSgp
OwogfQogCiBib29sIFdNTFBhZ2VTdGF0ZTo6c2V0TmVlZENoZWNrRGVja0FjY2Vzcyhib29sIG5l
ZWQpCkluZGV4OiBXZWJDb3JlL3dtbC9XTUxQYWdlU3RhdGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3dtbC9XTUxQYWdlU3RhdGUuaAkocmV2aXNpb24gNDY0MTcpCisrKyBXZWJDb3JlL3dtbC9X
TUxQYWdlU3RhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksMTAgQEAgcHVibGljOgog
ICAgIFdNTFBhZ2VTdGF0ZShQYWdlKik7CiAgICAgdmlydHVhbCB+V01MUGFnZVN0YXRlKCk7CiAK
KyNpZm5kZWYgTkRFQlVHCisgICAgdm9pZCBkdW1wKCk7CisjZW5kaWYKKwogICAgIC8vIHJlc2V0
IHRoZSBicm93c2VyIGNvbnRleHQgd2hlbiAnbmV3Y29udGV4dCcgYXR0cmlidXRlCiAgICAgLy8g
b2YgY2FyZCBlbGVtZW50IGlzIHBlcmZvcm1lZCBhcyBwYXJ0IG9mIGdvIHRhc2sKICAgICB2b2lk
IHJlc2V0KCk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NjQxNykKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDA5LTA3LTI3ICBOaWtvbGFz
IFppbW1lcm1hbm4gIDxuaWtvbGFzLnppbW1lcm1hbm5AdG9yY2htb2JpbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtXTUxdIEhpc3Rvcnkg
aGFuZGxpbmcgLyBwYWdlIGNhY2hlIC8gbG9hZGluZyBpcyBidWdneSBhbmQgZGVwZW5kcyBvbiBz
ZXZlcmFsIGhhY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNzcwNworCisgICAgICAgIEFkZCB0d28gbmV3IFdNTCBsYXlvdXQgdGVzdHMgYWZ0ZXIg
cmVkZXNpZ25pbmcgV01MIGhpc3RvcnkvbG9hZGluZyBoYW5kbGluZy4KKworICAgICAgICAqIHdt
bC9lbnRlci1jYXJkLXdpdGgtZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
d21sL2VudGVyLWNhcmQtd2l0aC1ldmVudHMuaHRtbDogQWRkZWQuCisgICAgICAgICogd21sL2Vu
dGVyLWZpcnN0LWNhcmQtd2l0aC1ldmVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3bWwvZW50ZXItZmlyc3QtY2FyZC13aXRoLWV2ZW50cy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiB3bWwvcmVzb3VyY2VzL1dNTFRlc3RDYXNlLmpzOgorICAgICAgICAqIHdtbC9yZXNvdXJjZXMv
ZW50ZXItY2FyZC13aXRoLWV2ZW50cy5qczogQWRkZWQuCisgICAgICAgIChzZXR1cFRlc3REb2N1
bWVudCk6CisgICAgICAgIChwcmVwYXJlVGVzdCk6CisgICAgICAgIChleGVjdXRlVGVzdCk6Cisg
ICAgICAgICogd21sL3Jlc291cmNlcy9lbnRlci1jYXJkLXdpdGgtZXZlbnRzLndtbDogQWRkZWQu
CisgICAgICAgICogd21sL3Jlc291cmNlcy9lbnRlci1maXJzdC1jYXJkLXdpdGgtZXZlbnRzLmpz
OiBBZGRlZC4KKyAgICAgICAgKHNldHVwVGVzdERvY3VtZW50KToKKyAgICAgICAgKHByZXBhcmVU
ZXN0KToKKyAgICAgICAgKGV4ZWN1dGVUZXN0KToKKyAgICAgICAgKiB3bWwvcmVzb3VyY2VzL2Vu
dGVyLWZpcnN0LWNhcmQtd2l0aC1ldmVudHMud21sOiBBZGRlZC4KKwogMjAwOS0wNy0yNyAgSmFu
IE1pY2hhZWwgQWxvbnpvICA8am1hbG9uem9Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgZmFz
dC9jYW52YXMvaW1hZ2UtcGF0dGVybi1yb3RhdGUuaHRtbCB0byBTa2lwcGVkIGFzIGl0IG5lZWRz
CkluZGV4OiBMYXlvdXRUZXN0cy93bWwvZW50ZXItY2FyZC13aXRoLWV2ZW50cy1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd21sL2VudGVyLWNhcmQtd2l0aC1ldmVudHMt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvd21sL2VudGVyLWNhcmQt
d2l0aC1ldmVudHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACitX
TUwgbGF5b3V0IHRlc3RzIC0gdXNpbmcgWEhUTUwgc2NyaXB0aW5nCisKKworVGVzdHMgZW50ZXJp
bmcgY2FyZHMgaW4gZm9yd2FyZCBhbmQgYmFja3dhcmQgZGlyZWN0aW9ucyB0aGF0IGhhdmUgaW50
cmluc2ljIGV2ZW50cyBzZXQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKy0tLS0tLS0t
CitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK1Rl
c3QgMi8yIFBBU1NFRC4KSW5kZXg6IExheW91dFRlc3RzL3dtbC9lbnRlci1jYXJkLXdpdGgtZXZl
bnRzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd21sL2VudGVyLWNhcmQtd2l0aC1l
dmVudHMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3dtbC9lbnRlci1jYXJkLXdp
dGgtZXZlbnRzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQ+dmFyIHJlbGF0aXZlUGF0aFRvTGF5b3V0VGVzdHMgPSAiLi4iOzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9XTUxUZXN0Q2FzZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aDE+V01MIGxheW91dCB0ZXN0cyAtIHVzaW5nIFhIVE1M
IHNjcmlwdGluZzwvaDE+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9lbnRlci1jYXJkLXdpdGgtZXZlbnRz
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3dtbC9l
bnRlci1maXJzdC1jYXJkLXdpdGgtZXZlbnRzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy93bWwvZW50ZXItZmlyc3QtY2FyZC13aXRoLWV2ZW50cy1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy93bWwvZW50ZXItZmlyc3QtY2FyZC13aXRoLWV2
ZW50cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTcgQEAKK1dNTCBsYXlv
dXQgdGVzdHMgLSB1c2luZyBYSFRNTCBzY3JpcHRpbmcKKworCitUZXN0cyBlbnRlcmluZyBmaXJz
dCBjYXJkIGJhY2t3YXJkcyB0aGF0IGhhcyBpbnRyaW5zaWMgZXZlbnRzIHNldAorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwh
LS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQorVGVzdCAyLzIgUEFTU0VELgpJbmRleDogTGF5b3V0
VGVzdHMvd21sL2VudGVyLWZpcnN0LWNhcmQtd2l0aC1ldmVudHMuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy93bWwvZW50ZXItZmlyc3QtY2FyZC13aXRoLWV2ZW50cy5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvd21sL2VudGVyLWZpcnN0LWNhcmQtd2l0aC1ldmVudHMu
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgor
PHNjcmlwdD52YXIgcmVsYXRpdmVQYXRoVG9MYXlvdXRUZXN0cyA9ICIuLiI7PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL1dNTFRlc3RDYXNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxoMT5XTUwgbGF5b3V0IHRlc3RzIC0gdXNpbmcgWEhUTUwgc2NyaXB0aW5n
PC9oMT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2VudGVyLWZpcnN0LWNhcmQtd2l0aC1ldmVudHMuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd21sL3Jlc291
cmNlcy9XTUxUZXN0Q2FzZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93bWwvcmVzb3Vy
Y2VzL1dNTFRlc3RDYXNlLmpzCShyZXZpc2lvbiA0NjQxNykKKysrIExheW91dFRlc3RzL3dtbC9y
ZXNvdXJjZXMvV01MVGVzdENhc2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTksNyArOSw3IEBAIGZ1
bmN0aW9uIGNyZWF0ZVdNTEVsZW1lbnQobmFtZSkgewogICAgIHJldHVybiB0ZXN0RG9jdW1lbnQu
Y3JlYXRlRWxlbWVudE5TKHdtbE5TLCAid21sOiIgKyBuYW1lKTsKIH0KIAotZnVuY3Rpb24gY3Jl
YXRlV01MVGVzdENhc2UodGVzdERlc2NyaXB0aW9uLCBzdWJzdGl0dXRlc1ZhcmlhYmxlcywgdGVz
dE5hbWUsIGV4ZWN1dGVJbW1lZGlhdGVseSkgeworZnVuY3Rpb24gY3JlYXRlV01MVGVzdENhc2Uo
dGVzdERlc2NyaXB0aW9uLCBzdWJzdGl0dXRlc1ZhcmlhYmxlcywgdGVzdE5hbWUsIGV4ZWN1dGVJ
bW1lZGlhdGVseSwgbmVlZHNSZXNldCkgewogICAgIC8vIFNldHVwIGRlZmF1bHQgdGVzdCBvcHRp
b25zCiAgICAgaWYgKHN1YnN0aXR1dGVzVmFyaWFibGVzID09IG51bGwpIHsKICAgICAgICAgc3Vi
c3RpdHV0ZXNWYXJpYWJsZXMgPSB0cnVlOwpAQCAtMjMsMTIgKzIzLDE4IEBAIGZ1bmN0aW9uIGNy
ZWF0ZVdNTFRlc3RDYXNlKHRlc3REZXNjcmlwdGkKICAgICAgICAgZXhlY3V0ZUltbWVkaWF0ZWx5
ID0gdHJ1ZTsKICAgICB9CiAKKyAgICAvLyBTb21lIHRlc3RzIG1heSB3YW50IHRvIGhhbmRsZSBy
ZXNldHRpbmcgdGhlIHBhZ2Ugc3RhdGUgdGhlbXNlbHZlcworICAgIGlmIChuZWVkc1Jlc2V0ID09
IG51bGwpIHsKKyAgICAgICAgbmVlZHNSZXNldCA9IHRydWU7CisgICAgfQorCiAgICAgLy8gSW5p
dGlhbGl6ZSBKUyB0ZXN0CiAgICAgZGVzY3JpcHRpb24odGVzdERlc2NyaXB0aW9uKTsKICAgICBi
b2R5RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF07CiAK
ICAgICAvLyBDbGVhciB2YXJpYWJsZSBzdGF0ZSAmIGhpc3RvcnkKLSAgICBkb2N1bWVudC5yZXNl
dFdNTFBhZ2VTdGF0ZSgpOworICAgIGlmIChuZWVkc1Jlc2V0KQorICAgICAgICBkb2N1bWVudC5y
ZXNldFdNTFBhZ2VTdGF0ZSgpOwogCiAgICAgLy8gU2V0dXAgRFJUIHNwZWNpZmljIHNldHRpbmdz
CiAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewpJbmRleDogTGF5b3V0VGVz
dHMvd21sL3Jlc291cmNlcy9lbnRlci1jYXJkLXdpdGgtZXZlbnRzLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3dtbC9yZXNvdXJjZXMvZW50ZXItY2FyZC13aXRoLWV2ZW50cy5qcwkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3dtbC9yZXNvdXJjZXMvZW50ZXItY2FyZC13aXRoLWV2
ZW50cy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNCBAQAorLy8vIFtOYW1lXSBlbnRlci1j
YXJkLXdpdGgtZXZlbnRzLmpzCisKK2NyZWF0ZVdNTFRlc3RDYXNlKCJUZXN0cyBlbnRlcmluZyBj
YXJkcyBpbiBmb3J3YXJkIGFuZCBiYWNrd2FyZCBkaXJlY3Rpb25zIHRoYXQgaGF2ZSBpbnRyaW5z
aWMgZXZlbnRzIHNldCIsIGZhbHNlLCAicmVzb3VyY2VzL2VudGVyLWNhcmQtd2l0aC1ldmVudHMu
d21sIiwgZmFsc2UpOworCit2YXIgcmFuT25jZSA9IGZhbHNlOworCitmdW5jdGlvbiBzZXR1cFRl
c3REb2N1bWVudCgpIHsKKyAgICAvLyBuby1vcAorfQorCitmdW5jdGlvbiBwcmVwYXJlVGVzdCgp
IHsKKyAgICBzdGFydFRlc3QoMjUsIDE1KTsKK30KKworZnVuY3Rpb24gZXhlY3V0ZVRlc3QoKSB7
CisgICAgaWYgKHJhbk9uY2UpCisgICAgICAgIGNvbXBsZXRlVGVzdCgpOworICAgIGVsc2Ugewor
ICAgICAgICByYW5PbmNlID0gdHJ1ZTsKKyAgICAgICAgc3RhcnRUZXN0KDI1LCAxNSk7CisgICAg
fQorfQorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3Rz
L3dtbC9yZXNvdXJjZXMvZW50ZXItY2FyZC13aXRoLWV2ZW50cy53bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvd21sL3Jlc291cmNlcy9lbnRlci1jYXJkLXdpdGgtZXZlbnRzLndtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3dtbC9yZXNvdXJjZXMvZW50ZXItY2FyZC13aXRoLWV2
ZW50cy53bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjYgQEAKKzw/eG1sIHZlcnNpb249IjEu
MCI/Pg0KKzwhRE9DVFlQRSB3bWwgUFVCTElDICItLy9XQVBGT1JVTS8vRFREIFdNTCAxLjMvL0VO
IiAiaHR0cDovL3d3dy53YXBmb3J1bS5vcmcvRFREL3dtbDEzLmR0ZCI+DQorPHdtbD4NCisgICAg
PGNhcmQgaWQ9ImNhcmQxIj4NCisgICAgICAgIDxhIGhyZWY9IiNjYXJkMiI+TmV4dCBDYXJkPC9h
Pg0KKyAgICA8L2NhcmQ+DQorDQorICAgIDxjYXJkIGlkPSJjYXJkMiIgb25lbnRlcmJhY2t3YXJk
PSIjY2FyZDQiPg0KKyAgICAgICAgPG9uZXZlbnQgdHlwZT0ib25lbnRlcmZvcndhcmQiPg0KKyAg
ICAgICAgICAgIDxnbyBocmVmPSIjY2FyZDMiLz4NCisgICAgICAgIDwvb25ldmVudD4NCisgICAg
ICAgIFRlc3QgRkFJTEVELiAoVGhpcyBjYXJkIGlzIE5FVkVSIHZpc2libGUgdG8gdGhlIHVzZXIp
DQorICAgIDwvY2FyZD4NCisNCisgICAgPGNhcmQgaWQ9ImNhcmQzIj4NCisgICAgICAgIDxhbmNo
b3I+DQorICAgICAgICAgICAgPHByZXYvPg0KKyAgICAgICAgICAgIE5leHQgVGVzdA0KKyAgICAg
ICAgPC9hbmNob3I+DQorICAgICAgICBUZXN0IDEvMiBQQVNTRUQuDQorICAgIDwvY2FyZD4NCisN
CisgICAgPGNhcmQgaWQ9ImNhcmQ0Ij4NCisgICAgICAgIFRlc3QgMi8yIFBBU1NFRC4NCisgICAg
PC9jYXJkPg0KKzwvd21sPg0KSW5kZXg6IExheW91dFRlc3RzL3dtbC9yZXNvdXJjZXMvZW50ZXIt
Zmlyc3QtY2FyZC13aXRoLWV2ZW50cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93bWwv
cmVzb3VyY2VzL2VudGVyLWZpcnN0LWNhcmQtd2l0aC1ldmVudHMuanMJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy93bWwvcmVzb3VyY2VzL2VudGVyLWZpcnN0LWNhcmQtd2l0aC1ldmVudHMu
anMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjMgQEAKKy8vLyBbTmFtZV0gZW50ZXItZmlyc3Qt
Y2FyZC13aXRoLWV2ZW50cy5qcworCitjcmVhdGVXTUxUZXN0Q2FzZSgiVGVzdHMgZW50ZXJpbmcg
Zmlyc3QgY2FyZCBiYWNrd2FyZHMgdGhhdCBoYXMgaW50cmluc2ljIGV2ZW50cyBzZXQiLCBmYWxz
ZSwgInJlc291cmNlcy9lbnRlci1maXJzdC1jYXJkLXdpdGgtZXZlbnRzLndtbCIsIGZhbHNlLCBm
YWxzZSk7CisKK3ZhciByYW5PbmNlID0gZmFsc2U7Cit2YXIgcmVzdWx0SW5kaWNhdG9yRWxlbWVu
dDsKKworZnVuY3Rpb24gc2V0dXBUZXN0RG9jdW1lbnQoKSB7CisgICAgcmVzdWx0SW5kaWNhdG9y
RWxlbWVudCA9IHRlc3REb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0SW5kaWNhdG9yIik7
Cit9CisKK2Z1bmN0aW9uIHByZXBhcmVUZXN0KCkgeworICAgIGlmIChyZXN1bHRJbmRpY2F0b3JF
bGVtZW50LnRleHRDb250ZW50ID09ICJET05FIikKKyAgICAgICAgY29tcGxldGVUZXN0KCk7Cisg
ICAgZWxzZQorICAgICAgICBleGVjdXRlVGVzdCgpOworfQorCitmdW5jdGlvbiBleGVjdXRlVGVz
dCgpIHsKKyAgICBzdGFydFRlc3QoMjUsIDE1KTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy93bWwvcmVzb3VyY2VzL2VudGVyLWZpcnN0LWNh
cmQtd2l0aC1ldmVudHMud21sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dtbC9yZXNvdXJj
ZXMvZW50ZXItZmlyc3QtY2FyZC13aXRoLWV2ZW50cy53bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy93bWwvcmVzb3VyY2VzL2VudGVyLWZpcnN0LWNhcmQtd2l0aC1ldmVudHMud21sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI1IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4NCis8IURP
Q1RZUEUgd21sIFBVQkxJQyAiLS8vV0FQRk9SVU0vL0RURCBXTUwgMS4zLy9FTiIgImh0dHA6Ly93
d3cud2FwZm9ydW0ub3JnL0RURC93bWwxMy5kdGQiPg0KKzx3bWw+DQorICAgIDxjYXJkIGlkPSJj
YXJkMSI+DQorICAgICAgICA8b25ldmVudCB0eXBlPSJvbmVudGVyYmFja3dhcmQiPg0KKyAgICAg
ICAgICAgIDxnbyBocmVmPSIjY2FyZDMiPg0KKyAgICAgICAgICAgICAgICA8c2V0dmFyIG5hbWU9
InJlc3VsdCIgdmFsdWU9IkRPTkUiLz4NCisgICAgICAgICAgICA8L2dvPg0KKyAgICAgICAgPC9v
bmV2ZW50Pg0KKyAgICAgICAgPGEgaHJlZj0iI2NhcmQyIj5OZXh0IFRlc3Q8L2E+DQorICAgIDwv
Y2FyZD4NCisNCisgICAgPGNhcmQgaWQ9ImNhcmQyIj4NCisgICAgICAgIDxhbmNob3I+DQorICAg
ICAgICAgICAgPHByZXYvPg0KKyAgICAgICAgICAgIE5leHQgVGVzdA0KKyAgICAgICAgPC9hbmNo
b3I+DQorICAgICAgICBUZXN0IDEvMiBQQVNTRUQuDQorICAgIDwvY2FyZD4NCisNCisgICAgPGNh
cmQgaWQ9ImNhcmQzIj4NCisgICAgICAgIFRlc3QgMi8yIFBBU1NFRC4NCisgICAgICAgIDxwIHN0
eWxlPSJkaXNwbGF5OiBub25lIiBpZD0icmVzdWx0SW5kaWNhdG9yIj4kcmVzdWx0PC9wPg0KKyAg
ICA8L2NhcmQ+DQorPC93bWw+
</data>
<flag name="review"
          id="17817"
          type_id="1"
          status="+"
          setter="staikos"
    />
          </attachment>
      

    </bug>

</bugzilla>