<?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>21458</bug_id>
          
          <creation_ts>2008-10-07 19:19:48 -0700</creation_ts>
          <short_desc>Improve image comparison algorithm in ImageDiff</short_desc>
          <delta_ts>2008-10-22 19:11:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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="Pierre-Olivier Latour">pol</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mitz</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>94505</commentid>
    <comment_count>0</comment_count>
    <who name="Pierre-Olivier Latour">pol</who>
    <bug_when>2008-10-07 19:19:48 -0700</bug_when>
    <thetext>We would like to improve the image comparison algorithm in ImageDiff:
- provide a new comparison algorithm that is more tolerant to &quot;acceptable&quot; failures (i.e. very small differences in font rendering, which --threshold is not really good at handling)
- generate normalized intensity only diff images
- have this new behavior be opt-in through a new option for backward compatibility</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94592</commentid>
    <comment_count>1</comment_count>
    <who name="">mitz</who>
    <bug_when>2008-10-08 12:39:59 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; - generate normalized intensity only diff images

I think we should consider dropping diff image generation and do it on demand using &lt;canvas&gt; imageData API. This would allow the user to adjust contrast, invert, threshold etc. after the fact. See also bug 11959.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94615</commentid>
    <comment_count>2</comment_count>
    <who name="Pierre-Olivier Latour">pol</who>
    <bug_when>2008-10-08 14:24:46 -0700</bug_when>
    <thetext>&gt; I think we should consider dropping diff image generation and do it on demand
&gt; using &lt;canvas&gt; imageData API. This would allow the user to adjust contrast,
&gt; invert, threshold etc. after the fact. See also bug 11959.

This makes a lot of sense, but seems to be quite a bit of work. This specific bug is just to improve the current situation so we can move ahead with using pixel testing in our workflow.

I&apos;ll drop the patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94664</commentid>
    <comment_count>3</comment_count>
    <who name="Pierre-Olivier Latour">pol</who>
    <bug_when>2008-10-08 18:46:27 -0700</bug_when>
    <thetext>Current behavior:
WebKitTools/Scripts/run-webkit-tests --pixel --threshold 0 LayoutTests/fast/repaint
21.45s total testing time
44 test cases (44%) succeeded
56 test cases (56%) had incorrect layout

New behavior (faster):
WebKitTools/Scripts/run-webkit-tests --pixel --alternate-difference --threshold 0 LayoutTests/fast/repaint
18.60s total testing time
44 test cases (44%) succeeded
56 test cases (56%) had incorrect layout

New behavior taking advantage of more flexible tolerance (ignore differences less than &quot;threshold&quot; percents):
WebKitTools/Scripts/run-webkit-tests --pixel --alternate-difference --threshold 0.1 LayoutTests/fast/repaint
17.16s total testing time
91 test cases (91%) succeeded
9 test cases (9%) had incorrect layout

In the latest usage mode, we managed to avoid almost all &quot;false negatives&quot; (tests that failed because of font rendering), although we have a few &quot;false positives&quot; (tests that have differences not due to font rendering but passed because they were really small):
fast/repaint/box-shadow-dynamic.html (0.04%)
fast/repaint/overflow-scroll-delete-diffs.html (0.10%)
fast/repaint/selection-gap-overflow-scroll-diffs.html (0.04%)
fast/repaint/table-cell-collapsed-border.html (0.01%)

Suggestions needed for:
- better name than &quot;--alternate-difference&quot; for the new option in the script
- better name than &quot;--alternate&quot; for the new option in the tool
- better phrasing for updated usage of the script

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94668</commentid>
    <comment_count>4</comment_count>
      <attachid>24212</attachid>
    <who name="Pierre-Olivier Latour">pol</who>
    <bug_when>2008-10-08 19:05:52 -0700</bug_when>
    <thetext>Created attachment 24212
Revision 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>94909</commentid>
    <comment_count>5</comment_count>
      <attachid>24272</attachid>
    <who name="Pierre-Olivier Latour">pol</who>
    <bug_when>2008-10-10 13:07:51 -0700</bug_when>
    <thetext>Created attachment 24272
Revision 2

After discussing with Darin, he pointed out this behavior, if better, shouldn&apos;t be opt-in, but the default. So here&apos;s a new patch with the old behavior gone and cleaned up code as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96279</commentid>
    <comment_count>6</comment_count>
    <who name="Pierre-Olivier Latour">pol</who>
    <bug_when>2008-10-22 19:11:55 -0700</bug_when>
    <thetext>Because of interdependencies, this patch will be merged with the master one at https://bugs.webkit.org/show_bug.cgi?id=21322</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24212</attachid>
            <date>2008-10-08 19:05:52 -0700</date>
            <delta_ts>2008-10-10 13:07:51 -0700</delta_ts>
            <desc>Revision 1</desc>
            <filename>PATCH_FILE.txt</filename>
            <type>text/plain</type>
            <size>14499</size>
            <attacher name="Pierre-Olivier Latour">pol</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAxYmQwMWM1Li4wZTdmNzQyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDgtMTAt
MDggIFBpZXJyZS1PbGl2aWVyIExhdG91ciAgPHBvbEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZXMgYW4gb3B0LWluIG5l
dyBjb21wYXJpc29uIGFsZ29yaXRobSB0aGF0IGlzIG1vcmUgdG9sZXJhbnQgdG8gImFjY2VwdGFi
bGUiIGZhaWx1cmVzCisgICAgICAgIGFuZCBwcm9kdWNlcyBub3JtYWxpemVkIGludGVuc2l0eSBv
bmx5IGRpZmZlcmVuY2UgaW1hZ2VzLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMTQ1OAorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2cvSW1h
Z2VEaWZmQ0cuY3BwOgorICAgICAgICAocmVsZWFzZU1hbGxvY0J1ZmZlcik6CisgICAgICAgIChj
b21wYXJlSW1hZ2VzTmV3KToKKyAgICAgICAgKGNyZWF0ZURpZmZlcmVuY2VCaXRtYXApOgorICAg
ICAgICAoY29tcGFyZUltYWdlc09sZCk6CisgICAgICAgIChpbWFnZUhhc0FscGhhKToKKyAgICAg
ICAgKG1haW4pOgorICAgICAgICAqIFNjcmlwdHMvcnVuLXdlYmtpdC10ZXN0czoKKwogMjAwOC0x
MC0wNyAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBzdXJl
IHNob3J0IGZ1bmN0aW9ucyBnZXQgaW5jbHVkZWQgaW4gQ2hhbmdlTG9nIG91dHB1dCBmb3IgZ2l0
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jZy9JbWFnZURpZmZDRy5j
cHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jZy9JbWFnZURpZmZDRy5jcHAKaW5kZXgg
YzM5MzkxMy4uNTBjOWU2ZSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2cvSW1hZ2VEaWZmQ0cuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2NnL0lt
YWdlRGlmZkNHLmNwcApAQCAtNzIsMjcgKzcyLDEwOCBAQCBzdGF0aWMgUmV0YWluUHRyPENHSW1h
Z2VSZWY+IGNyZWF0ZUltYWdlRnJvbVN0ZGluKGludCBieXRlc1JlbWFpbmluZykKICAgICByZXR1
cm4gUmV0YWluUHRyPENHSW1hZ2VSZWY+KEFkb3B0Q0YsIENHSW1hZ2VDcmVhdGVXaXRoUE5HRGF0
YVByb3ZpZGVyKGRhdGFQcm92aWRlci5nZXQoKSwgMCwgZmFsc2UsIGtDR1JlbmRlcmluZ0ludGVu
dERlZmF1bHQpKTsKIH0KIAotLy8gR2VuZXJhdGVzIGFuIFJHQkE4IGJpdG1hcCBpbiB0aGUgcmVm
ZXJlbmNlIGltYWdlIGNvbG9yc3BhY2UgY29udGFpbmluZyB0aGUgZGlmZmVyZW5jZXMgYmV0d2Vl
biB0aGUgMiBpbWFnZXMKLXN0YXRpYyBSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPiBjcmVhdGVEaWZm
ZXJlbmNlQml0bWFwKENHSW1hZ2VSZWYgdGVzdEltYWdlLCBDR0ltYWdlUmVmIHJlZmVyZW5jZUlt
YWdlKQorc3RhdGljIHZvaWQgcmVsZWFzZU1hbGxvY0J1ZmZlcih2b2lkKiBpbmZvLCBjb25zdCB2
b2lkKiBkYXRhLCBzaXplX3Qgc2l6ZSkKIHsKLSAgICAvLyB3ZSBtdXN0IGhhdmUgYm90aCBpbWFn
ZXMgdG8gdGFrZSBkaWZmCi0gICAgaWYgKCF0ZXN0SW1hZ2UgfHwgIXJlZmVyZW5jZUltYWdlKSB7
Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAidGVzdCBvciByZWZlcmVuY2UgaW1hZ2UgaXMgbWlz
c2luZyEiKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgLy8gd2UgbXVzdCBoYXZl
IGJvdGggaW1hZ2VzIGJlIHRoZSBzYW1lIGRpbWVuc2lvbnMKLSAgICBpZiAoKENHSW1hZ2VHZXRX
aWR0aCh0ZXN0SW1hZ2UpICE9IENHSW1hZ2VHZXRXaWR0aChyZWZlcmVuY2VJbWFnZSkpIHx8IChD
R0ltYWdlR2V0SGVpZ2h0KHRlc3RJbWFnZSkgIT0gQ0dJbWFnZUdldEhlaWdodChyZWZlcmVuY2VJ
bWFnZSkpKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAidGVzdCBhbmQgcmVmZXJlbmNlIGlt
YWdlIGRpbWVuc2lvbnMgZG9uJ3QgbWF0Y2ghIik7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0K
KyAgICBmcmVlKCh2b2lkKilkYXRhKTsKK30KIAotICAgIC8vIHdlIG11c3QgaGF2ZSBib3RoIGlt
YWdlcyBpbiB0aGUgc2FtZSBjb2xvcnNwYWNlCi0gICAgaWYgKCFDRkVxdWFsKENHSW1hZ2VHZXRD
b2xvclNwYWNlKHRlc3RJbWFnZSksIENHSW1hZ2VHZXRDb2xvclNwYWNlKHJlZmVyZW5jZUltYWdl
KSkpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJ0ZXN0IGFuZCByZWZlcmVuY2UgaW1hZ2Ug
Y29sb3JzcGFjZXMgZG9uJ3QgbWF0Y2ghIik7Ci0gICAgICAgIHJldHVybiAwOworc3RhdGljIGZs
b2F0IGNvbXBhcmVJbWFnZXNOZXcoQ0dJbWFnZVJlZiBiYXNlSW1hZ2UsIENHSW1hZ2VSZWYgaW1h
Z2UsIENHSW1hZ2VSZWYqIGRpZmZJbWFnZSwgZmxvYXQgdGhyZXNob2xkKQoreworICAgIGZsb2F0
IHJlc3VsdCA9IDEwMC4wZjsKKyAgICBzaXplX3Qgd2lkdGggPSBDR0ltYWdlR2V0V2lkdGgoYmFz
ZUltYWdlKTsKKyAgICBzaXplX3QgaGVpZ2h0ID0gQ0dJbWFnZUdldEhlaWdodChiYXNlSW1hZ2Up
OworICAgIENHQ29sb3JTcGFjZVJlZiBjb2xvcnNwYWNlID0gQ0dJbWFnZUdldENvbG9yU3BhY2Uo
YmFzZUltYWdlKTsKKyAgICAKKyAgICBzaXplX3Qgcm93Qnl0ZXMgPSB3aWR0aCAqIDQ7CisgICAg
dm9pZCAqYmFzZUJ1ZmZlciA9IGNhbGxvYyhoZWlnaHQsIHJvd0J5dGVzKTsKKyAgICB2b2lkICpi
dWZmZXIgPSBjYWxsb2MoaGVpZ2h0LCByb3dCeXRlcyk7CisgICAgQ0dDb250ZXh0UmVmIGJhc2VD
b250ZXh0ID0gKGJhc2VCdWZmZXIgPyBDR0JpdG1hcENvbnRleHRDcmVhdGUoYmFzZUJ1ZmZlciwg
d2lkdGgsIGhlaWdodCwgOCwgcm93Qnl0ZXMsIGNvbG9yc3BhY2UsIGtDR0ltYWdlQWxwaGFQcmVt
dWx0aXBsaWVkTGFzdCB8IGtDR0JpdG1hcEJ5dGVPcmRlcjMyQmlnKSA6IDApOworICAgIENHQ29u
dGV4dFJlZiBjb250ZXh0ID0gKGJ1ZmZlciA/IENHQml0bWFwQ29udGV4dENyZWF0ZShidWZmZXIs
IHdpZHRoLCBoZWlnaHQsIDgsIHJvd0J5dGVzLCBjb2xvcnNwYWNlLCBrQ0dJbWFnZUFscGhhUHJl
bXVsdGlwbGllZExhc3QgfCBrQ0dCaXRtYXBCeXRlT3JkZXIzMkJpZykgOiAwKTsKKyAgICAKKyAg
ICBpZiAoYmFzZUNvbnRleHQgJiYgY29udGV4dCkgeworICAgICAgICB2b2lkICpkaWZmQnVmZmVy
ID0gMDsKKyAgICAgICAgaWYgKGRpZmZJbWFnZSkKKyAgICAgICAgICAgIGRpZmZCdWZmZXIgPSBt
YWxsb2Mod2lkdGggKiBoZWlnaHQpOworICAgICAgICAKKyAgICAgICAgQ0dDb250ZXh0RHJhd0lt
YWdlKGJhc2VDb250ZXh0LCBDR1JlY3RNYWtlKDAsIDAsIHdpZHRoLCBoZWlnaHQpLCBiYXNlSW1h
Z2UpOworICAgICAgICBDR0NvbnRleHREcmF3SW1hZ2UoY29udGV4dCwgQ0dSZWN0TWFrZSgwLCAw
LCB3aWR0aCwgaGVpZ2h0KSwgaW1hZ2UpOworICAgICAgICAKKyAgICAgICAgLy8gQ29tcGFyZSB0
aGUgY29udGVudCBvZiB0aGUgMiBiaXRtYXBzCisgICAgICAgIGZsb2F0IGNvdW50ID0gMC4wZjsK
KyAgICAgICAgZmxvYXQgZGlmZmVyZW5jZSA9IDAuMGY7CisgICAgICAgIGZsb2F0IG1heCA9IDAu
MGY7CisgICAgICAgIHVuc2lnbmVkIGNoYXIgKmJhc2VQaXhlbCA9ICh1bnNpZ25lZCBjaGFyKili
YXNlQnVmZmVyOworICAgICAgICB1bnNpZ25lZCBjaGFyICpwaXhlbCA9ICh1bnNpZ25lZCBjaGFy
KilidWZmZXI7CisgICAgICAgIHVuc2lnbmVkIGNoYXIgKmRpZmYgPSAodW5zaWduZWQgY2hhciop
ZGlmZkJ1ZmZlcjsKKyAgICAgICAgZm9yIChzaXplX3QgeSA9IDA7IHkgPCBoZWlnaHQ7ICsreSkg
eworICAgICAgICAgICAgZm9yIChzaXplX3QgeCA9IDA7IHggPCB3aWR0aDsgKyt4KSB7CisgICAg
ICAgICAgICAgICAgZmxvYXQgcmVkID0gKChmbG9hdClwaXhlbFswXSAtIChmbG9hdCliYXNlUGl4
ZWxbMF0pIC8gc3RkOjptYXgoMjU1LjBmIC0gKGZsb2F0KWJhc2VQaXhlbFswXSwgKGZsb2F0KWJh
c2VQaXhlbFswXSk7CisgICAgICAgICAgICAgICAgZmxvYXQgZ3JlZW4gPSAoKGZsb2F0KXBpeGVs
WzFdIC0gKGZsb2F0KWJhc2VQaXhlbFsxXSkgLyBzdGQ6Om1heCgyNTUuMGYgLSAoZmxvYXQpYmFz
ZVBpeGVsWzFdLCAoZmxvYXQpYmFzZVBpeGVsWzFdKTsKKyAgICAgICAgICAgICAgICBmbG9hdCBi
bHVlID0gKChmbG9hdClwaXhlbFsyXSAtIChmbG9hdCliYXNlUGl4ZWxbMl0pIC8gc3RkOjptYXgo
MjU1LjBmIC0gKGZsb2F0KWJhc2VQaXhlbFsyXSwgKGZsb2F0KWJhc2VQaXhlbFsyXSk7CisgICAg
ICAgICAgICAgICAgZmxvYXQgYWxwaGEgPSAoKGZsb2F0KXBpeGVsWzNdIC0gKGZsb2F0KWJhc2VQ
aXhlbFszXSkgLyBzdGQ6Om1heCgyNTUuMGYgLSAoZmxvYXQpYmFzZVBpeGVsWzNdLCAoZmxvYXQp
YmFzZVBpeGVsWzNdKTsKKyAgICAgICAgICAgICAgICBmbG9hdCBkaXN0YW5jZSA9IHNxcnRmKHJl
ZCAqIHJlZCArIGdyZWVuICogZ3JlZW4gKyBibHVlICogYmx1ZSArIGFscGhhICogYWxwaGEpIC8g
Mi4wZjsKKyAgICAgICAgICAgICAgICBpZiAoZGlzdGFuY2UgPj0gMS4wZiAvIDI1NS4wZikgewor
ICAgICAgICAgICAgICAgICAgICBjb3VudCArPSAxLjBmOworICAgICAgICAgICAgICAgICAgICBk
aWZmZXJlbmNlICs9IGRpc3RhbmNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAKKyAgICAgICAgICAgICAgICBpZiAoZGlmZkJ1ZmZlcikgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoZGlzdGFuY2UgPiBtYXgpCisgICAgICAgICAgICAgICAgICAgICAgICBtYXggPSBkaXN0
YW5jZTsKKyAgICAgICAgICAgICAgICAgICAgKmRpZmYrKyA9ICh1bnNpZ25lZCBjaGFyKShkaXN0
YW5jZSAqIDI1NS4wZik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgIGJhc2VQaXhlbCArPSA0OworICAgICAgICAgICAgICAgIHBpeGVsICs9IDQ7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIENvbXB1dGUg
dGhlIGRpZmZlcmVuY2UgYXMgYSBwZXJjZW50YWdlIGNvbWJpbmluZyBib3RoIHRoZSBudW1iZXIg
b2YgZGlmZmVyZW50IHBpeGVscyBhbmQgdGhlaXIgZGlmZmVyZW5jZSBhbW91bnQKKyAgICAgICAg
aWYgKGNvdW50ID4gMC4wZikgeworICAgICAgICAgICAgcmVzdWx0ID0gKGNvdW50IC8gKChmbG9h
dCl3aWR0aCAqIChmbG9hdCloZWlnaHQpKSAqIChkaWZmZXJlbmNlIC8gY291bnQpOworICAgICAg
ICAgICAgcmVzdWx0ID0gMTAwLjBmICogcmVzdWx0OworICAgICAgICAgICAgaWYgKHJlc3VsdCA8
PSB0aHJlc2hvbGQpCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gMC4wZjsKKyAgICAgICAgfQor
ICAgICAgICBlbHNlCisgICAgICAgICAgICByZXN1bHQgPSAwLjBmOworICAgICAgICAKKyAgICAg
ICAgLy8gR2VuZXJhdGUgdGhlIGRpZmYgaW1hZ2UKKyAgICAgICAgaWYgKGRpZmZCdWZmZXIpIHsK
KyAgICAgICAgICAgIGlmIChtYXggPCAxLjBmKSB7CisgICAgICAgICAgICAgICAgZGlmZiA9ICh1
bnNpZ25lZCBjaGFyKilkaWZmQnVmZmVyOworICAgICAgICAgICAgICAgIGZvcihzaXplX3QgcCA9
IDA7IHAgPCBoZWlnaHQgKiB3aWR0aDsgKytwLCArK2RpZmYpCisgICAgICAgICAgICAgICAgKmRp
ZmYgPSAoZmxvYXQpKmRpZmYgLyBtYXg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIENHRGF0YVByb3ZpZGVyUmVmIHByb3ZpZGVyID0gQ0dEYXRhUHJvdmlkZXJDcmVh
dGVXaXRoRGF0YSgwLCBkaWZmQnVmZmVyLCB3aWR0aCAqIGhlaWdodCwgcmVsZWFzZU1hbGxvY0J1
ZmZlcik7CisgICAgICAgICAgICBpZiAocHJvdmlkZXIpIHsKKyAgICAgICAgICAgICAgICBDR0Nv
bG9yU3BhY2VSZWYgZGlmZkNvbG9yc3BhY2UgPSBDR0NvbG9yU3BhY2VDcmVhdGVXaXRoTmFtZShr
Q0dDb2xvclNwYWNlR2VuZXJpY0dyYXkpOworICAgICAgICAgICAgICAgICpkaWZmSW1hZ2UgPSBD
R0ltYWdlQ3JlYXRlKHdpZHRoLCBoZWlnaHQsIDgsIDgsIHdpZHRoLCBkaWZmQ29sb3JzcGFjZSwg
MCwgcHJvdmlkZXIsIDAsIGZhbHNlLCBrQ0dSZW5kZXJpbmdJbnRlbnREZWZhdWx0KTsKKyAgICAg
ICAgICAgICAgICBDR0NvbG9yU3BhY2VSZWxlYXNlKGRpZmZDb2xvcnNwYWNlKTsKKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBDR0RhdGFQcm92aWRlclJlbGVhc2UocHJvdmlkZXIp
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGZyZWUo
ZGlmZkJ1ZmZlcik7CisgICAgICAgIH0KICAgICB9CisgICAgCisgICAgaWYgKGJhc2VDb250ZXh0
KQorICAgICAgICBDR0NvbnRleHRSZWxlYXNlKGJhc2VDb250ZXh0KTsKKyAgICBpZiAoY29udGV4
dCkKKyAgICAgICAgQ0dDb250ZXh0UmVsZWFzZShjb250ZXh0KTsKKyAgICBpZiAoYmFzZUJ1ZmZl
cikKKyAgICAgICAgZnJlZShiYXNlQnVmZmVyKTsKKyAgICBpZiAoYnVmZmVyKQorICAgICAgICBm
cmVlKGJ1ZmZlcik7CisgICAgCisgICAgcmV0dXJuIHJlc3VsdDsKK30KIAorLy8gR2VuZXJhdGVz
IGFuIFJHQkE4IGJpdG1hcCBpbiB0aGUgcmVmZXJlbmNlIGltYWdlIGNvbG9yc3BhY2UgY29udGFp
bmluZyB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgMiBpbWFnZXMKK3N0YXRpYyBSZXRhaW5Q
dHI8Q0dDb250ZXh0UmVmPiBjcmVhdGVEaWZmZXJlbmNlQml0bWFwKENHSW1hZ2VSZWYgdGVzdElt
YWdlLCBDR0ltYWdlUmVmIHJlZmVyZW5jZUltYWdlKQorewogICAgIHN0YXRpYyBDRk11dGFibGVE
YXRhUmVmIGRhdGEgPSBDRkRhdGFDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAp
OwogICAgIHNpemVfdCByb3dCeXRlcyA9ICg0ICogQ0dJbWFnZUdldFdpZHRoKHJlZmVyZW5jZUlt
YWdlKSArIDYzKSAmIH42MzsgLy8gVXNlIGEgbXVsdGlwbGUgb2YgNjQgYnl0ZXMgdG8gaW1wcm92
ZSBDRyBwZXJmb3JtYW5jZQogICAgIENGRGF0YVNldExlbmd0aChkYXRhLCBDR0ltYWdlR2V0SGVp
Z2h0KHJlZmVyZW5jZUltYWdlKSAqIHJvd0J5dGVzKTsKQEAgLTE0MCwzMSArMjIxLDIzIEBAIHN0
YXRpYyBmbG9hdCBjb21wdXRlUGVyY2VudGFnZURpZmZlcmVudChDR0NvbnRleHRSZWYgZGlmZkJp
dG1hcCwgdW5zaWduZWQgdGhyZXNoCiAgICAgcmV0dXJuIChkaWZmZXJlbmNlcyAqIDEwMC5mKSAv
IHRvdGFsUGl4ZWxzOwogfQogCi1zdGF0aWMgdm9pZCBjb21wYXJlSW1hZ2VzKENHSW1hZ2VSZWYg
dGVzdEltYWdlLCBDR0ltYWdlUmVmIHJlZmVyZW5jZUltYWdlLCB1bnNpZ25lZCB0aHJlc2hvbGQp
CitzdGF0aWMgZmxvYXQgY29tcGFyZUltYWdlc09sZChDR0ltYWdlUmVmIGJhc2VJbWFnZSwgQ0dJ
bWFnZVJlZiBpbWFnZSwgQ0dJbWFnZVJlZiogZGlmZkltYWdlLCBmbG9hdCB0aHJlc2hvbGQpCiB7
Ci0gICAgLy8gcHJlcGFyZSB0aGUgZGlmZmVyZW5jZSBibGVuZCB0byBjaGVjayBmb3IgcGl4ZWwg
dmFyaWF0aW9ucwotICAgIFJldGFpblB0cjxDR0NvbnRleHRSZWY+IGRpZmZCaXRtYXAgPSBjcmVh
dGVEaWZmZXJlbmNlQml0bWFwKHRlc3RJbWFnZSwgcmVmZXJlbmNlSW1hZ2UpOwotCi0gICAgZmxv
YXQgcGVyY2VudGFnZSA9IGNvbXB1dGVQZXJjZW50YWdlRGlmZmVyZW50KGRpZmZCaXRtYXAuZ2V0
KCksIHRocmVzaG9sZCk7Ci0KLSAgICBwZXJjZW50YWdlID0gKGZsb2F0KSgoaW50KShwZXJjZW50
YWdlICogMTAwLjBmKSkgLyAxMDAuMGY7IC8vIHJvdW5kIHRvIDIgZGVjaW1hbCBwbGFjZXMKLQot
ICAgIC8vIHNlbmQgbWVzc2FnZSB0byBsZXQgdGhlbSBrbm93IGlmIGFuIGltYWdlIHdhcyB3cm9u
ZwotICAgIGlmIChwZXJjZW50YWdlID4gMC4wZikgewotICAgICAgICAvLyBzaW5jZSB0aGUgZGlm
ZiBtaWdodCBhY3R1YWxseSBzaG93IHNvbWV0aGluZywgc2VuZCBpdCB0byBzdGRvdXQKLSAgICAg
ICAgaWYgKGRpZmZCaXRtYXApIHsKLSAgICAgICAgICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBp
bWFnZShBZG9wdENGLCBDR0JpdG1hcENvbnRleHRDcmVhdGVJbWFnZShkaWZmQml0bWFwLmdldCgp
KSk7Ci0gICAgICAgICAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJlZj4gaW1hZ2VEYXRhKEFk
b3B0Q0YsIENGRGF0YUNyZWF0ZU11dGFibGUoMCwgMCkpOwotICAgICAgICAgICAgUmV0YWluUHRy
PENHSW1hZ2VEZXN0aW5hdGlvblJlZj4gaW1hZ2VEZXN0KEFkb3B0Q0YsIENHSW1hZ2VEZXN0aW5h
dGlvbkNyZWF0ZVdpdGhEYXRhKGltYWdlRGF0YS5nZXQoKSwga1VUVHlwZVBORywgMSwgMCkpOwot
ICAgICAgICAgICAgQ0dJbWFnZURlc3RpbmF0aW9uQWRkSW1hZ2UoaW1hZ2VEZXN0LmdldCgpLCBp
bWFnZS5nZXQoKSwgMCk7Ci0gICAgICAgICAgICBDR0ltYWdlRGVzdGluYXRpb25GaW5hbGl6ZShp
bWFnZURlc3QuZ2V0KCkpOwotICAgICAgICAgICAgcHJpbnRmKCJDb250ZW50LUxlbmd0aDogJWx1
XG4iLCBDRkRhdGFHZXRMZW5ndGgoaW1hZ2VEYXRhLmdldCgpKSk7Ci0gICAgICAgICAgICBmd3Jp
dGUoQ0ZEYXRhR2V0Qnl0ZVB0cihpbWFnZURhdGEuZ2V0KCkpLCAxLCBDRkRhdGFHZXRMZW5ndGgo
aW1hZ2VEYXRhLmdldCgpKSwgc3Rkb3V0KTsKLSAgICAgICAgfQorICAgIFJldGFpblB0cjxDR0Nv
bnRleHRSZWY+IGRpZmZCaXRtYXAgPSBjcmVhdGVEaWZmZXJlbmNlQml0bWFwKGltYWdlLCBiYXNl
SW1hZ2UpOworICAgIAorICAgIGZsb2F0IHBlcmNlbnRhZ2UgPSBjb21wdXRlUGVyY2VudGFnZURp
ZmZlcmVudChkaWZmQml0bWFwLmdldCgpLCAodW5zaWduZWQpdGhyZXNob2xkKTsKKyAgICAKKyAg
ICBpZiAocGVyY2VudGFnZSA+IDAuMGYpCisgICAgICAgICpkaWZmSW1hZ2UgPSBDR0JpdG1hcENv
bnRleHRDcmVhdGVJbWFnZShkaWZmQml0bWFwLmdldCgpKTsKICAgICAgICAgCi0gICAgICAgIGZw
cmludGYoc3Rkb3V0LCAiZGlmZjogJTAxLjJmJSUgZmFpbGVkXG4iLCBwZXJjZW50YWdlKTsKLSAg
ICB9IGVsc2UKLSAgICAgICAgZnByaW50ZihzdGRvdXQsICJkaWZmOiAlMDEuMmYlJSBwYXNzZWRc
biIsIHBlcmNlbnRhZ2UpOworICAgIHJldHVybiBwZXJjZW50YWdlOworfQorCitzdGF0aWMgaW5s
aW5lIGJvb2wgaW1hZ2VIYXNBbHBoYShDR0ltYWdlUmVmIGltYWdlKQoreworICAgIENHSW1hZ2VB
bHBoYUluZm8gICAgICAgICAgICBpbmZvID0gQ0dJbWFnZUdldEFscGhhSW5mbyhpbWFnZSk7Cisg
ICAgCisgICAgcmV0dXJuIChpbmZvID49IGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkTGFzdCkg
JiYgKGluZm8gPD0ga0NHSW1hZ2VBbHBoYUZpcnN0KTsKIH0KIAogaW50IG1haW4oaW50IGFyZ2Ms
IGNvbnN0IGNoYXIqIGFyZ3ZbXSkKQEAgLTE3NCwxNiArMjQ3LDIxIEBAIGludCBtYWluKGludCBh
cmdjLCBjb25zdCBjaGFyKiBhcmd2W10pCiAgICAgX3NldG1vZGUoMSwgX09fQklOQVJZKTsKICNl
bmRpZgogCi0gICAgdW5zaWduZWQgdGhyZXNob2xkID0gMDsKLQorICAgIGZsb2F0IHRocmVzaG9s
ZCA9IDAuMGY7CisgICAgYm9vbCBhbHRlcm5hdGUgPSBmYWxzZTsKKyAgICAKICAgICBmb3IgKGlu
dCBpID0gMTsgaSA8IGFyZ2M7ICsraSkgewogICAgICAgICBpZiAoIXN0cmNtcChhcmd2W2ldLCAi
LXQiKSB8fCAhc3RyY21wKGFyZ3ZbaV0sICItLXRocmVzaG9sZCIpKSB7CiAgICAgICAgICAgICBp
ZiAoaSA+PSBhcmdjIC0gMSkKICAgICAgICAgICAgICAgICBleGl0KDEpOwotICAgICAgICAgICAg
dGhyZXNob2xkID0gc3RydG9sKGFyZ3ZbaSArIDFdLCAwLCAwKTsKKyAgICAgICAgICAgIHRocmVz
aG9sZCA9IHN0cnRvZihhcmd2W2kgKyAxXSwgMCk7CiAgICAgICAgICAgICArK2k7CiAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgfQorICAgICAgICBpZiAoIXN0cmNtcChhcmd2W2ldLCAi
LS1hbHRlcm5hdGUiKSkgeworICAgICAgICAgICAgYWx0ZXJuYXRlID0gdHJ1ZTsKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICB9CiAgICAgfQogCiAgICAgY2hhciBidWZmZXJbMjA0OF07
CkBAIC0yMDksNyArMjg3LDM3IEBAIGludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyKiBhcmd2
W10pCiAgICAgICAgIH0KIAogICAgICAgICBpZiAoYWN0dWFsSW1hZ2UgJiYgYmFzZWxpbmVJbWFn
ZSkgewotICAgICAgICAgICAgY29tcGFyZUltYWdlcyhhY3R1YWxJbWFnZS5nZXQoKSwgYmFzZWxp
bmVJbWFnZS5nZXQoKSwgdGhyZXNob2xkKTsKKyAgICAgICAgICAgIENHSW1hZ2VSZWYgZGlmZklt
YWdlID0gMDsKKyAgICAgICAgICAgIGZsb2F0IGRpZmZlcmVuY2U7CisgICAgICAgICAgICAKKyAg
ICAgICAgICAgIGlmICgoQ0dJbWFnZUdldFdpZHRoKGFjdHVhbEltYWdlLmdldCgpKSAhPSBDR0lt
YWdlR2V0V2lkdGgoYmFzZWxpbmVJbWFnZS5nZXQoKSkpIHx8IChDR0ltYWdlR2V0SGVpZ2h0KGFj
dHVhbEltYWdlLmdldCgpKSAhPSBDR0ltYWdlR2V0SGVpZ2h0KGJhc2VsaW5lSW1hZ2UuZ2V0KCkp
KSB8fCAhQ0ZFcXVhbChDR0ltYWdlR2V0Q29sb3JTcGFjZShhY3R1YWxJbWFnZS5nZXQoKSksIENH
SW1hZ2VHZXRDb2xvclNwYWNlKGJhc2VsaW5lSW1hZ2UuZ2V0KCkpKSB8fCAoaW1hZ2VIYXNBbHBo
YShhY3R1YWxJbWFnZS5nZXQoKSkgIT0gaW1hZ2VIYXNBbHBoYShiYXNlbGluZUltYWdlLmdldCgp
KSkpIHsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInRlc3QgYW5kIHJlZmVyZW5j
ZSBpbWFnZSBoYXZlIGRpZmZlcmVudCBwcm9wZXJ0aWVzISIpOworICAgICAgICAgICAgICAgIGRp
ZmZlcmVuY2UgPSAxMDAuMGY7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgICAgICBpZihhbHRlcm5hdGUpCisgICAgICAgICAgICAgICAgICAgIGRpZmZlcmVu
Y2UgPSBjb21wYXJlSW1hZ2VzTmV3KGFjdHVhbEltYWdlLmdldCgpLCBiYXNlbGluZUltYWdlLmdl
dCgpLCAmZGlmZkltYWdlLCB0aHJlc2hvbGQpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgZGlmZmVyZW5jZSA9IGNvbXBhcmVJbWFnZXNPbGQoYWN0dWFsSW1hZ2Uu
Z2V0KCksIGJhc2VsaW5lSW1hZ2UuZ2V0KCksICZkaWZmSW1hZ2UsIHRocmVzaG9sZCk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRpZmZlcmVuY2UgPSBjZWlsZihk
aWZmZXJlbmNlICogMTAwLjBmKSAvIDEwMC4wZjsgLy8gcm91bmQgdG8gMiBkZWNpbWFsIHBsYWNl
cworICAgICAgICAgICAgaWYgKGRpZmZlcmVuY2UgPiAwLjBmKSB7CisgICAgICAgICAgICAgICAg
aWYgKGRpZmZJbWFnZSkgeworICAgICAgICAgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxl
RGF0YVJlZj4gaW1hZ2VEYXRhKEFkb3B0Q0YsIENGRGF0YUNyZWF0ZU11dGFibGUoMCwgMCkpOwor
ICAgICAgICAgICAgICAgICAgICBSZXRhaW5QdHI8Q0dJbWFnZURlc3RpbmF0aW9uUmVmPiBpbWFn
ZURlc3QoQWRvcHRDRiwgQ0dJbWFnZURlc3RpbmF0aW9uQ3JlYXRlV2l0aERhdGEoaW1hZ2VEYXRh
LmdldCgpLCBrVVRUeXBlUE5HLCAxLCAwKSk7CisgICAgICAgICAgICAgICAgICAgIENHSW1hZ2VE
ZXN0aW5hdGlvbkFkZEltYWdlKGltYWdlRGVzdC5nZXQoKSwgZGlmZkltYWdlLCAwKTsKKyAgICAg
ICAgICAgICAgICAgICAgQ0dJbWFnZURlc3RpbmF0aW9uRmluYWxpemUoaW1hZ2VEZXN0LmdldCgp
KTsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJDb250ZW50LUxlbmd0aDogJWx1XG4iLCBD
RkRhdGFHZXRMZW5ndGgoaW1hZ2VEYXRhLmdldCgpKSk7CisgICAgICAgICAgICAgICAgICAgIGZ3
cml0ZShDRkRhdGFHZXRCeXRlUHRyKGltYWdlRGF0YS5nZXQoKSksIDEsIENGRGF0YUdldExlbmd0
aChpbWFnZURhdGEuZ2V0KCkpLCBzdGRvdXQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZG91dCwgImRpZmY6ICUwMS4yZiUl
IGZhaWxlZFxuIiwgZGlmZmVyZW5jZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgZnByaW50ZihzdGRvdXQsICJkaWZmOiAlMDEuMmYlJSBwYXNzZWRc
biIsIGRpZmZlcmVuY2UpOworICAgICAgICAgICAgCisgICAgICAgICAgICBDR0ltYWdlUmVsZWFz
ZShkaWZmSW1hZ2UpOwogICAgICAgICAgICAgYWN0dWFsSW1hZ2UgPSAwOwogICAgICAgICAgICAg
YmFzZWxpbmVJbWFnZSA9IDA7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvcnVuLXdlYmtpdC10ZXN0cyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10
ZXN0cwppbmRleCBmYjZlOWQ5Li4xYjFhYThiIDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3J1bi13ZWJraXQtdGVzdHMKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0
LXRlc3RzCkBAIC0xMjQsNiArMTI0LDcgQEAgbXkgJHRlc3RNZWRpYSA9IDE7CiBteSAkdGVzdFJl
c3VsdHNEaXJlY3RvcnkgPSAiL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzIjsKIG15ICR0aHJlYWRl
ZCA9IDA7CiBteSAkdGhyZXNob2xkID0gMDsKK215ICRhbHRlcm5hdGVEaWZmZXJlbmNlID0gMDsK
IG15ICR0cmVhdFNraXBwZWQgPSAiZGVmYXVsdCI7CiBteSAkdmVyYm9zZSA9IDA7CiBteSAkdXNl
VmFsZ3JpbmQgPSAwOwpAQCAtMjA2LDcgKzIwNyw4IEBAIFVzYWdlOiAkcHJvZ3JhbU5hbWUgW29w
dGlvbnNdIFt0ZXN0ZGlyfHRlc3RwYXRoIC4uLl0KICAgLS1zdHJpY3QgICAgICAgICAgICAgICAg
ICAgICAgICBEbyBhIGNvbXBhcmlzb24gd2l0aCB0aGUgb3V0cHV0IG9uIE1hYyAoUXQgb25seSkK
ICAgLS1bbm8tXXN0cmlwLWVkaXRpbmctY2FsbGJhY2tzICBSZW1vdmUgZWRpdGluZyBjYWxsYmFj
a3MgZnJvbSBleHBlY3RlZCByZXN1bHRzCiAgIC10fC0tdGhyZWFkZWQgICAgICAgICAgICAgICAg
ICAgUnVuIGEgY29uY3VycmVudCBKYXZhU2NyaXB0IHRoZWFkIHdpdGggZWFjaCB0ZXN0Ci0gIC0t
dGhyZXNob2xkIHQgICAgICAgICAgICAgICAgICAgSWdub3JlIHBpeGVsIHZhbHVlIGRldmlhdGlv
bnMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHQKKyAgLS1hbHRlcm5hdGUtZGlmZmVyZW5jZSAgICAg
ICAgICBVc2UgYWx0ZXJuYXRlIGRpZmZlcmVuY2UgYWxnb3JpdGhtIHdoZW4gY29tcGFyaW5nIHRl
c3QgaW1hZ2Ugd2l0aCByZWZlcmVuY2UgaW1hZ2UKKyAgLS10aHJlc2hvbGQgdCAgICAgICAgICAg
ICAgICAgICBJZ25vcmUgcGl4ZWwgdmFsdWUgZGV2aWF0aW9ucyBsZXNzIHRoYW4gb3IgZXF1YWwg
dG8gdCAob3IgaWdub3JlIGRpZmZlcmVuY2VzIGxlc3MgdGhhbiB0aGlzIHBlcmNlbnRhZ2Ugd2hl
biB1c2luZyBhbHRlcm5hdGUgZGlmZmVyZW5jZSBhbGdvcml0aG0pCiAgIC0tdmFsZ3JpbmQgICAg
ICAgICAgICAgICAgICAgICAgUnVuIER1bXBSZW5kZXJUcmVlIGluc2lkZSB2YWxncmluZCAoUXQv
TGludXggb25seSkKICAgLXZ8LS12ZXJib3NlICAgICAgICAgICAgICAgICAgICBNb3JlIHZlcmJv
c2Ugb3V0cHV0IChvdmVycmlkZXMgLS1xdWlldCkKICAgLW18LS1tZXJnZS1sZWFrLWRlcHRoIGFy
ZyAgICAgICBNZXJnZXMgbGVhayBjYWxsU3RhY2tzIGFuZCBwcmludHMgdGhlIG51bWJlciBvZiB1
bmlxdWUgbGVha3MgYmVuZWF0aCBhIGNhbGxzdGFjayBkZXB0aCBvZiBhcmcuICBEZWZhdWx0cyB0
byA1LgpAQCAtMjM5LDcgKzI0MSw4IEBAIG15ICRnZXRPcHRpb25zUmVzdWx0ID0gR2V0T3B0aW9u
cygKICAgICAnc2tpcHBlZD1zJyA9PiBcJnZhbGlkYXRlU2tpcHBlZEFyZywKICAgICAnc2xvd2Vz
dCcgPT4gXCRyZXBvcnQxMFNsb3dlc3QsCiAgICAgJ3RocmVhZGVkfHQnID0+IFwkdGhyZWFkZWQs
Ci0gICAgJ3RocmVzaG9sZD1pJyA9PiBcJHRocmVzaG9sZCwKKyAgICAndGhyZXNob2xkPWYnID0+
IFwkdGhyZXNob2xkLAorICAgICdhbHRlcm5hdGUtZGlmZmVyZW5jZScgPT4gXCRhbHRlcm5hdGVE
aWZmZXJlbmNlLAogICAgICd2ZXJib3NlfHYnID0+IFwkdmVyYm9zZSwKICAgICAndmFsZ3JpbmQn
ID0+IFwkdXNlVmFsZ3JpbmQsCiAgICAgJ3NhbXBsZS1vbi10aW1lb3V0IScgPT4gXCRydW5TYW1w
bGUsCkBAIC0yNzEsNiArMjc0LDcgQEAgJHJlcGFpbnRUZXN0cyA9IDEgaWYgJHJlcGFpbnRTd2Vl
cEhvcml6b250YWxseTsKIAogJHBpeGVsVGVzdHMgPSAxIGlmICRyZXBhaW50VGVzdHM7CiAkcGl4
ZWxUZXN0cyA9IDEgaWYgJHRocmVzaG9sZCA+IDA7CiskcGl4ZWxUZXN0cyA9IDEgaWYgJGFsdGVy
bmF0ZURpZmZlcmVuY2U7CiAKICR2ZXJib3NlID0gMSBpZiAkdGVzdHNQZXJEdW1wVG9vbCA9PSAx
OwogCkBAIC00NjUsNiArNDY5LDcgQEAgcHVzaCBAdG9vbEFyZ3MsICItIjsKIAogbXkgQGRpZmZU
b29sQXJncyA9ICgpOwogcHVzaCBAZGlmZlRvb2xBcmdzLCAiLS10aHJlc2hvbGQiLCAkdGhyZXNo
b2xkOworcHVzaCBAZGlmZlRvb2xBcmdzLCAiLS1hbHRlcm5hdGUiIGlmICRhbHRlcm5hdGVEaWZm
ZXJlbmNlOwogCiAkfCA9IDE7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24272</attachid>
            <date>2008-10-10 13:07:51 -0700</date>
            <delta_ts>2008-10-22 19:10:56 -0700</delta_ts>
            <desc>Revision 2</desc>
            <filename>PATCH_FILE.txt</filename>
            <type>text/plain</type>
            <size>15965</size>
            <attacher name="Pierre-Olivier Latour">pol</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA1ZjVmOGUyLi41ZjBmNTUxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDgtMTAt
MTAgIFBpZXJyZS1PbGl2aWVyIExhdG91ciAgPHBvbEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZXMgYSBuZXcgY29tcGFy
aXNvbiBhbGdvcml0aG0gdGhhdCBpcyBtb3JlIHRvbGVyYW50IHRvICJhY2NlcHRhYmxlIiBmYWls
dXJlcworICAgICAgICBhbmQgcHJvZHVjZXMgbm9ybWFsaXplZCBpbnRlbnNpdHktb25seSBkaWZm
ZXJlbmNlIGltYWdlcy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE0NTgKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2NnL0ltYWdlRGlmZkNH
LmNwcDoKKyAgICAgICAgKHJlbGVhc2VNYWxsb2NCdWZmZXIpOgorICAgICAgICAoY29tcGFyZUlt
YWdlcyk6CisgICAgICAgIChpbWFnZUhhc0FscGhhKToKKyAgICAgICAgKG1haW4pOgorICAgICAg
ICAqIFNjcmlwdHMvcnVuLXdlYmtpdC10ZXN0czoKKwogMjAwOC0xMC0wOCAgTWFyayBSb3dlICA8
bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUgV2luZG93cyBidWlsZCBhZnRlciBy
Mzc0MzQuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jZy9JbWFnZURp
ZmZDRy5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jZy9JbWFnZURpZmZDRy5jcHAK
aW5kZXggYzM5MzkxMy4uMmYxYjUwNCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvY2cvSW1hZ2VEaWZmQ0cuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2NnL0ltYWdlRGlmZkNHLmNwcApAQCAtNzIsOTkgKzcyLDEwMCBAQCBzdGF0aWMgUmV0YWluUHRy
PENHSW1hZ2VSZWY+IGNyZWF0ZUltYWdlRnJvbVN0ZGluKGludCBieXRlc1JlbWFpbmluZykKICAg
ICByZXR1cm4gUmV0YWluUHRyPENHSW1hZ2VSZWY+KEFkb3B0Q0YsIENHSW1hZ2VDcmVhdGVXaXRo
UE5HRGF0YVByb3ZpZGVyKGRhdGFQcm92aWRlci5nZXQoKSwgMCwgZmFsc2UsIGtDR1JlbmRlcmlu
Z0ludGVudERlZmF1bHQpKTsKIH0KIAotLy8gR2VuZXJhdGVzIGFuIFJHQkE4IGJpdG1hcCBpbiB0
aGUgcmVmZXJlbmNlIGltYWdlIGNvbG9yc3BhY2UgY29udGFpbmluZyB0aGUgZGlmZmVyZW5jZXMg
YmV0d2VlbiB0aGUgMiBpbWFnZXMKLXN0YXRpYyBSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPiBjcmVh
dGVEaWZmZXJlbmNlQml0bWFwKENHSW1hZ2VSZWYgdGVzdEltYWdlLCBDR0ltYWdlUmVmIHJlZmVy
ZW5jZUltYWdlKQorc3RhdGljIHZvaWQgcmVsZWFzZU1hbGxvY0J1ZmZlcih2b2lkKiBpbmZvLCBj
b25zdCB2b2lkKiBkYXRhLCBzaXplX3Qgc2l6ZSkKIHsKLSAgICAvLyB3ZSBtdXN0IGhhdmUgYm90
aCBpbWFnZXMgdG8gdGFrZSBkaWZmCi0gICAgaWYgKCF0ZXN0SW1hZ2UgfHwgIXJlZmVyZW5jZUlt
YWdlKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAidGVzdCBvciByZWZlcmVuY2UgaW1hZ2Ug
aXMgbWlzc2luZyEiKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgLy8gd2UgbXVz
dCBoYXZlIGJvdGggaW1hZ2VzIGJlIHRoZSBzYW1lIGRpbWVuc2lvbnMKLSAgICBpZiAoKENHSW1h
Z2VHZXRXaWR0aCh0ZXN0SW1hZ2UpICE9IENHSW1hZ2VHZXRXaWR0aChyZWZlcmVuY2VJbWFnZSkp
IHx8IChDR0ltYWdlR2V0SGVpZ2h0KHRlc3RJbWFnZSkgIT0gQ0dJbWFnZUdldEhlaWdodChyZWZl
cmVuY2VJbWFnZSkpKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAidGVzdCBhbmQgcmVmZXJl
bmNlIGltYWdlIGRpbWVuc2lvbnMgZG9uJ3QgbWF0Y2ghIik7Ci0gICAgICAgIHJldHVybiAwOwot
ICAgIH0KLQotICAgIC8vIHdlIG11c3QgaGF2ZSBib3RoIGltYWdlcyBpbiB0aGUgc2FtZSBjb2xv
cnNwYWNlCi0gICAgaWYgKCFDRkVxdWFsKENHSW1hZ2VHZXRDb2xvclNwYWNlKHRlc3RJbWFnZSks
IENHSW1hZ2VHZXRDb2xvclNwYWNlKHJlZmVyZW5jZUltYWdlKSkpIHsKLSAgICAgICAgZnByaW50
ZihzdGRlcnIsICJ0ZXN0IGFuZCByZWZlcmVuY2UgaW1hZ2UgY29sb3JzcGFjZXMgZG9uJ3QgbWF0
Y2ghIik7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIHN0YXRpYyBDRk11dGFibGVE
YXRhUmVmIGRhdGEgPSBDRkRhdGFDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAp
OwotICAgIHNpemVfdCByb3dCeXRlcyA9ICg0ICogQ0dJbWFnZUdldFdpZHRoKHJlZmVyZW5jZUlt
YWdlKSArIDYzKSAmIH42MzsgLy8gVXNlIGEgbXVsdGlwbGUgb2YgNjQgYnl0ZXMgdG8gaW1wcm92
ZSBDRyBwZXJmb3JtYW5jZQotICAgIENGRGF0YVNldExlbmd0aChkYXRhLCBDR0ltYWdlR2V0SGVp
Z2h0KHJlZmVyZW5jZUltYWdlKSAqIHJvd0J5dGVzKTsKLSAgICBSZXRhaW5QdHI8Q0dDb250ZXh0
UmVmPiBjb250ZXh0KEFkb3B0Q0YsIENHQml0bWFwQ29udGV4dENyZWF0ZShDRkRhdGFHZXRNdXRh
YmxlQnl0ZVB0cihkYXRhKSwgQ0dJbWFnZUdldFdpZHRoKHJlZmVyZW5jZUltYWdlKSwgQ0dJbWFn
ZUdldEhlaWdodChyZWZlcmVuY2VJbWFnZSksIDgsIHJvd0J5dGVzLCBDR0ltYWdlR2V0Q29sb3JT
cGFjZShyZWZlcmVuY2VJbWFnZSksIGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkTGFzdCB8IGtD
R0JpdG1hcEJ5dGVPcmRlcjMyQmlnKSk7Ci0KLSAgICBDR0NvbnRleHRTZXRCbGVuZE1vZGUoY29u
dGV4dC5nZXQoKSwga0NHQmxlbmRNb2RlTm9ybWFsKTsKLSAgICBDR0NvbnRleHREcmF3SW1hZ2Uo
Y29udGV4dC5nZXQoKSwgQ0dSZWN0TWFrZSgwLCAwLCBzdGF0aWNfY2FzdDxDR0Zsb2F0PihDR0lt
YWdlR2V0V2lkdGgodGVzdEltYWdlKSksIHN0YXRpY19jYXN0PENHRmxvYXQ+KENHSW1hZ2VHZXRI
ZWlnaHQodGVzdEltYWdlKSkpLCB0ZXN0SW1hZ2UpOwotICAgIENHQ29udGV4dFNldEJsZW5kTW9k
ZShjb250ZXh0LmdldCgpLCBrQ0dCbGVuZE1vZGVEaWZmZXJlbmNlKTsKLSAgICBDR0NvbnRleHRE
cmF3SW1hZ2UoY29udGV4dC5nZXQoKSwgQ0dSZWN0TWFrZSgwLCAwLCBzdGF0aWNfY2FzdDxDR0Zs
b2F0PihDR0ltYWdlR2V0V2lkdGgocmVmZXJlbmNlSW1hZ2UpKSwgc3RhdGljX2Nhc3Q8Q0dGbG9h
dD4oQ0dJbWFnZUdldEhlaWdodChyZWZlcmVuY2VJbWFnZSkpKSwgcmVmZXJlbmNlSW1hZ2UpOwot
Ci0gICAgcmV0dXJuIGNvbnRleHQ7CisgICAgZnJlZSgodm9pZCopZGF0YSk7CiB9CiAKLS8vIENv
dW50cyB0aGUgbnVtYmVyIG9mIG5vbi1ibGFjayBwaXhlbHMsIGFuZCByZXR1cm5zIHRoZSBwZXJj
ZW50YWdlIG9mIG5vbi1ibGFjayBwaXhlbHMgdG8gdG90YWwgcGl4ZWxzIGluIHRoZSBpbWFnZS4K
LXN0YXRpYyBmbG9hdCBjb21wdXRlUGVyY2VudGFnZURpZmZlcmVudChDR0NvbnRleHRSZWYgZGlm
ZkJpdG1hcCwgdW5zaWduZWQgdGhyZXNob2xkKQorc3RhdGljIFJldGFpblB0cjxDR0ltYWdlUmVm
PiBjb21wYXJlSW1hZ2VzKENHSW1hZ2VSZWYgYmFzZUltYWdlLCBDR0ltYWdlUmVmIHRlc3RJbWFn
ZSwgZmxvYXQmIGRpZmZlcmVuY2UpCiB7Ci0gICAgLy8gaWYgZGlmZkJpdG1hcCBpcyBuaWwsIHRo
ZW4gdGhlcmUgd2FzIGFuIGVycm9yLCBhbmQgaXQgZGlkbid0IG1hdGNoLgotICAgIGlmICghZGlm
ZkJpdG1hcCkKLSAgICAgICAgcmV0dXJuIDEwMC4wZjsKLQotICAgIHNpemVfdCBwaXhlbHNIaWdo
ID0gQ0dCaXRtYXBDb250ZXh0R2V0SGVpZ2h0KGRpZmZCaXRtYXApOwotICAgIHNpemVfdCBwaXhl
bHNXaWRlID0gQ0dCaXRtYXBDb250ZXh0R2V0V2lkdGgoZGlmZkJpdG1hcCk7Ci0gICAgc2l6ZV90
IGJ5dGVzUGVyUm93ID0gQ0dCaXRtYXBDb250ZXh0R2V0Qnl0ZXNQZXJSb3coZGlmZkJpdG1hcCk7
Ci0gICAgdW5zaWduZWQgY2hhciogcGl4ZWxSb3dEYXRhID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQg
Y2hhcio+KENHQml0bWFwQ29udGV4dEdldERhdGEoZGlmZkJpdG1hcCkpOwotICAgIHVuc2lnbmVk
IGRpZmZlcmVuY2VzID0gMDsKLQotICAgIGZvciAodW5zaWduZWQgcm93ID0gMDsgcm93IDwgcGl4
ZWxzSGlnaDsgcm93KyspIHsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBjb2wgPSAwOyBjb2wgPCAo
cGl4ZWxzV2lkZSAqIDQpOyBjb2wgKz0gNCkgewotICAgICAgICAgICAgdW5zaWduZWQgY2hhciog
cmVkID0gcGl4ZWxSb3dEYXRhICsgY29sOwotICAgICAgICAgICAgdW5zaWduZWQgY2hhciogZ3Jl
ZW4gPSByZWQgKyAxOwotICAgICAgICAgICAgdW5zaWduZWQgY2hhciogYmx1ZSA9IHJlZCArIDI7
Ci0gICAgICAgICAgICB1bnNpZ25lZCBkaXN0YW5jZSA9ICpyZWQgKyAqZ3JlZW4gKyAqYmx1ZTsK
LSAgICAgICAgICAgIGlmIChkaXN0YW5jZSA+IHRocmVzaG9sZCkgewotICAgICAgICAgICAgICAg
IGRpZmZlcmVuY2VzKys7Ci0gICAgICAgICAgICAgICAgLy8gc2hpZnQgdGhlIHBpeGVscyB0b3dh
cmRzIHdoaXRlIHRvIG1ha2UgdGhlbSBtb3JlIHZpc2libGUKLSAgICAgICAgICAgICAgICAqcmVk
ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4obWluKFVDSEFSX01BWCwgKnJlZCArIDEwMCkp
OwotICAgICAgICAgICAgICAgICpncmVlbiA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KG1p
bihVQ0hBUl9NQVgsICpncmVlbiArIDEwMCkpOwotICAgICAgICAgICAgICAgICpibHVlID0gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4obWluKFVDSEFSX01BWCwgKmJsdWUgKyAxMDApKTsKKyAg
ICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gZGlmZkltYWdlOworICAgIAorICAgIHNpemVfdCB3aWR0
aCA9IENHSW1hZ2VHZXRXaWR0aChiYXNlSW1hZ2UpOworICAgIHNpemVfdCBoZWlnaHQgPSBDR0lt
YWdlR2V0SGVpZ2h0KGJhc2VJbWFnZSk7CisgICAgQ0dDb2xvclNwYWNlUmVmIGNvbG9yc3BhY2Ug
PSBDR0ltYWdlR2V0Q29sb3JTcGFjZShiYXNlSW1hZ2UpOworICAgIHNpemVfdCByb3dCeXRlcyA9
IHdpZHRoICogNDsKKyAgICAKKyAgICAvLyBEcmF3IGJhc2UgaW1hZ2UgaW4gYml0bWFwIGNvbnRl
eHQKKyAgICB2b2lkICpiYXNlQnVmZmVyID0gY2FsbG9jKGhlaWdodCwgcm93Qnl0ZXMpOworICAg
IENHQ29udGV4dFJlZiBiYXNlQ29udGV4dCA9IENHQml0bWFwQ29udGV4dENyZWF0ZShiYXNlQnVm
ZmVyLCB3aWR0aCwgaGVpZ2h0LCA4LCByb3dCeXRlcywgY29sb3JzcGFjZSwga0NHSW1hZ2VBbHBo
YVByZW11bHRpcGxpZWRMYXN0IHwga0NHQml0bWFwQnl0ZU9yZGVyMzJCaWcpOworICAgIENHQ29u
dGV4dERyYXdJbWFnZShiYXNlQ29udGV4dCwgQ0dSZWN0TWFrZSgwLCAwLCB3aWR0aCwgaGVpZ2h0
KSwgYmFzZUltYWdlKTsKKyAgICBDR0NvbnRleHRSZWxlYXNlKGJhc2VDb250ZXh0KTsKKyAgICAK
KyAgICAvLyBEcmF3IHRlc3QgaW1hZ2UgaW4gYml0bWFwIGNvbnRleHQKKyAgICB2b2lkICpidWZm
ZXIgPSBjYWxsb2MoaGVpZ2h0LCByb3dCeXRlcyk7CisgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQg
PSBDR0JpdG1hcENvbnRleHRDcmVhdGUoYnVmZmVyLCB3aWR0aCwgaGVpZ2h0LCA4LCByb3dCeXRl
cywgY29sb3JzcGFjZSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRMYXN0IHwga0NHQml0bWFw
Qnl0ZU9yZGVyMzJCaWcpOworICAgIENHQ29udGV4dERyYXdJbWFnZShjb250ZXh0LCBDR1JlY3RN
YWtlKDAsIDAsIHdpZHRoLCBoZWlnaHQpLCB0ZXN0SW1hZ2UpOworICAgIENHQ29udGV4dFJlbGVh
c2UoY29udGV4dCk7CisgICAgCisgICAgLy8gQ29tcGFyZSB0aGUgY29udGVudCBvZiB0aGUgMiBi
aXRtYXBzCisgICAgdm9pZCAqZGlmZkJ1ZmZlciA9IG1hbGxvYyh3aWR0aCAqIGhlaWdodCk7Cisg
ICAgZmxvYXQgY291bnQgPSAwLjBmOworICAgIGZsb2F0IHN1bSA9IDAuMGY7CisgICAgZmxvYXQg
bWF4ID0gMC4wZjsKKyAgICB1bnNpZ25lZCBjaGFyICpiYXNlUGl4ZWwgPSAodW5zaWduZWQgY2hh
ciopYmFzZUJ1ZmZlcjsKKyAgICB1bnNpZ25lZCBjaGFyICpwaXhlbCA9ICh1bnNpZ25lZCBjaGFy
KilidWZmZXI7CisgICAgdW5zaWduZWQgY2hhciAqZGlmZiA9ICh1bnNpZ25lZCBjaGFyKilkaWZm
QnVmZmVyOworICAgIGZvciAoc2l6ZV90IHkgPSAwOyB5IDwgaGVpZ2h0OyArK3kpIHsKKyAgICAg
ICAgZm9yIChzaXplX3QgeCA9IDA7IHggPCB3aWR0aDsgKyt4KSB7CisgICAgICAgICAgICBmbG9h
dCByZWQgPSAoKGZsb2F0KXBpeGVsWzBdIC0gKGZsb2F0KWJhc2VQaXhlbFswXSkgLyBzdGQ6Om1h
eCgyNTUuMGYgLSAoZmxvYXQpYmFzZVBpeGVsWzBdLCAoZmxvYXQpYmFzZVBpeGVsWzBdKTsKKyAg
ICAgICAgICAgIGZsb2F0IGdyZWVuID0gKChmbG9hdClwaXhlbFsxXSAtIChmbG9hdCliYXNlUGl4
ZWxbMV0pIC8gc3RkOjptYXgoMjU1LjBmIC0gKGZsb2F0KWJhc2VQaXhlbFsxXSwgKGZsb2F0KWJh
c2VQaXhlbFsxXSk7CisgICAgICAgICAgICBmbG9hdCBibHVlID0gKChmbG9hdClwaXhlbFsyXSAt
IChmbG9hdCliYXNlUGl4ZWxbMl0pIC8gc3RkOjptYXgoMjU1LjBmIC0gKGZsb2F0KWJhc2VQaXhl
bFsyXSwgKGZsb2F0KWJhc2VQaXhlbFsyXSk7CisgICAgICAgICAgICBmbG9hdCBhbHBoYSA9ICgo
ZmxvYXQpcGl4ZWxbM10gLSAoZmxvYXQpYmFzZVBpeGVsWzNdKSAvIHN0ZDo6bWF4KDI1NS4wZiAt
IChmbG9hdCliYXNlUGl4ZWxbM10sIChmbG9hdCliYXNlUGl4ZWxbM10pOworICAgICAgICAgICAg
ZmxvYXQgZGlzdGFuY2UgPSBzcXJ0ZihyZWQgKiByZWQgKyBncmVlbiAqIGdyZWVuICsgYmx1ZSAq
IGJsdWUgKyBhbHBoYSAqIGFscGhhKSAvIDIuMGY7CisgICAgICAgICAgICBpZiAoZGlzdGFuY2Ug
Pj0gMS4wZiAvIDI1NS4wZikgeworICAgICAgICAgICAgICAgIGNvdW50ICs9IDEuMGY7CisgICAg
ICAgICAgICAgICAgc3VtICs9IGRpc3RhbmNlOwogICAgICAgICAgICAgfQorICAgICAgICAgICAg
CisgICAgICAgICAgICBpZiAoZGlmZkJ1ZmZlcikgeworICAgICAgICAgICAgICAgIGlmIChkaXN0
YW5jZSA+IG1heCkKKyAgICAgICAgICAgICAgICAgICAgbWF4ID0gZGlzdGFuY2U7CisgICAgICAg
ICAgICAgICAgKmRpZmYrKyA9ICh1bnNpZ25lZCBjaGFyKShkaXN0YW5jZSAqIDI1NS4wZik7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGJhc2VQaXhlbCArPSA0Owor
ICAgICAgICAgICAgcGl4ZWwgKz0gNDsKICAgICAgICAgfQotICAgICAgICBwaXhlbFJvd0RhdGEg
Kz0gYnl0ZXNQZXJSb3c7CiAgICAgfQotCi0gICAgZmxvYXQgdG90YWxQaXhlbHMgPSBzdGF0aWNf
Y2FzdDxmbG9hdD4ocGl4ZWxzSGlnaCAqIHBpeGVsc1dpZGUpOwotICAgIHJldHVybiAoZGlmZmVy
ZW5jZXMgKiAxMDAuZikgLyB0b3RhbFBpeGVsczsKKyAgICAKKyAgICAvLyBDb21wdXRlIHRoZSBk
aWZmZXJlbmNlIGFzIGEgcGVyY2VudGFnZSBjb21iaW5pbmcgYm90aCB0aGUgbnVtYmVyIG9mIGRp
ZmZlcmVudCBwaXhlbHMgYW5kIHRoZWlyIGRpZmZlcmVuY2UgYW1vdW50CisgICAgaWYgKGNvdW50
ID4gMC4wZikKKyAgICAgICAgZGlmZmVyZW5jZSA9IDEwMC4wZiAqIChjb3VudCAvICgoZmxvYXQp
d2lkdGggKiAoZmxvYXQpaGVpZ2h0KSkgKiAoc3VtIC8gY291bnQpOworICAgIGVsc2UKKyAgICAg
ICAgZGlmZmVyZW5jZSA9IDAuMGY7CisgICAgCisgICAgLy8gR2VuZXJhdGUgYSBub3JtYWxpemVk
IGRpZmYgaW1hZ2UgaWYgdGhlcmUgaXMgYW55IGRpZmZlcmVuY2UKKyAgICBpZiAoZGlmZmVyZW5j
ZSA+IDAuMGYpIHsKKyAgICAgICAgaWYgKG1heCA8IDEuMGYpIHsKKyAgICAgICAgICAgIGRpZmYg
PSAodW5zaWduZWQgY2hhciopZGlmZkJ1ZmZlcjsKKyAgICAgICAgICAgIGZvcihzaXplX3QgcCA9
IDA7IHAgPCBoZWlnaHQgKiB3aWR0aDsgKytwLCArK2RpZmYpCisgICAgICAgICAgICAqZGlmZiA9
IChmbG9hdCkqZGlmZiAvIG1heDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQ0dEYXRh
UHJvdmlkZXJSZWYgcHJvdmlkZXIgPSBDR0RhdGFQcm92aWRlckNyZWF0ZVdpdGhEYXRhKDAsIGRp
ZmZCdWZmZXIsIHdpZHRoICogaGVpZ2h0LCByZWxlYXNlTWFsbG9jQnVmZmVyKTsKKyAgICAgICAg
Q0dDb2xvclNwYWNlUmVmIGRpZmZDb2xvcnNwYWNlID0gQ0dDb2xvclNwYWNlQ3JlYXRlV2l0aE5h
bWUoa0NHQ29sb3JTcGFjZUdlbmVyaWNHcmF5KTsKKyAgICAgICAgZGlmZkltYWdlLmFkb3B0Q0Yo
Q0dJbWFnZUNyZWF0ZSh3aWR0aCwgaGVpZ2h0LCA4LCA4LCB3aWR0aCwgZGlmZkNvbG9yc3BhY2Us
IDAsIHByb3ZpZGVyLCAwLCBmYWxzZSwga0NHUmVuZGVyaW5nSW50ZW50RGVmYXVsdCkpOworICAg
ICAgICBDR0NvbG9yU3BhY2VSZWxlYXNlKGRpZmZDb2xvcnNwYWNlKTsKKyAgICAgICAgQ0dEYXRh
UHJvdmlkZXJSZWxlYXNlKHByb3ZpZGVyKTsKKyAgICB9CisgICAgZWxzZQorICAgICAgICBmcmVl
KGRpZmZCdWZmZXIpOworICAgIAorICAgIC8vIERlc3Ryb3kgZHJhd2luZyBidWZmZXJzCisgICAg
aWYgKGJ1ZmZlcikKKyAgICAgICAgZnJlZShidWZmZXIpOworICAgIGlmIChiYXNlQnVmZmVyKQor
ICAgICAgICBmcmVlKGJhc2VCdWZmZXIpOworICAgIAorICAgIHJldHVybiBkaWZmSW1hZ2U7CiB9
CiAKLXN0YXRpYyB2b2lkIGNvbXBhcmVJbWFnZXMoQ0dJbWFnZVJlZiB0ZXN0SW1hZ2UsIENHSW1h
Z2VSZWYgcmVmZXJlbmNlSW1hZ2UsIHVuc2lnbmVkIHRocmVzaG9sZCkKK3N0YXRpYyBpbmxpbmUg
Ym9vbCBpbWFnZUhhc0FscGhhKENHSW1hZ2VSZWYgaW1hZ2UpCiB7Ci0gICAgLy8gcHJlcGFyZSB0
aGUgZGlmZmVyZW5jZSBibGVuZCB0byBjaGVjayBmb3IgcGl4ZWwgdmFyaWF0aW9ucwotICAgIFJl
dGFpblB0cjxDR0NvbnRleHRSZWY+IGRpZmZCaXRtYXAgPSBjcmVhdGVEaWZmZXJlbmNlQml0bWFw
KHRlc3RJbWFnZSwgcmVmZXJlbmNlSW1hZ2UpOwotCi0gICAgZmxvYXQgcGVyY2VudGFnZSA9IGNv
bXB1dGVQZXJjZW50YWdlRGlmZmVyZW50KGRpZmZCaXRtYXAuZ2V0KCksIHRocmVzaG9sZCk7Ci0K
LSAgICBwZXJjZW50YWdlID0gKGZsb2F0KSgoaW50KShwZXJjZW50YWdlICogMTAwLjBmKSkgLyAx
MDAuMGY7IC8vIHJvdW5kIHRvIDIgZGVjaW1hbCBwbGFjZXMKLQotICAgIC8vIHNlbmQgbWVzc2Fn
ZSB0byBsZXQgdGhlbSBrbm93IGlmIGFuIGltYWdlIHdhcyB3cm9uZwotICAgIGlmIChwZXJjZW50
YWdlID4gMC4wZikgewotICAgICAgICAvLyBzaW5jZSB0aGUgZGlmZiBtaWdodCBhY3R1YWxseSBz
aG93IHNvbWV0aGluZywgc2VuZCBpdCB0byBzdGRvdXQKLSAgICAgICAgaWYgKGRpZmZCaXRtYXAp
IHsKLSAgICAgICAgICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZShBZG9wdENGLCBDR0Jp
dG1hcENvbnRleHRDcmVhdGVJbWFnZShkaWZmQml0bWFwLmdldCgpKSk7Ci0gICAgICAgICAgICBS
ZXRhaW5QdHI8Q0ZNdXRhYmxlRGF0YVJlZj4gaW1hZ2VEYXRhKEFkb3B0Q0YsIENGRGF0YUNyZWF0
ZU11dGFibGUoMCwgMCkpOwotICAgICAgICAgICAgUmV0YWluUHRyPENHSW1hZ2VEZXN0aW5hdGlv
blJlZj4gaW1hZ2VEZXN0KEFkb3B0Q0YsIENHSW1hZ2VEZXN0aW5hdGlvbkNyZWF0ZVdpdGhEYXRh
KGltYWdlRGF0YS5nZXQoKSwga1VUVHlwZVBORywgMSwgMCkpOwotICAgICAgICAgICAgQ0dJbWFn
ZURlc3RpbmF0aW9uQWRkSW1hZ2UoaW1hZ2VEZXN0LmdldCgpLCBpbWFnZS5nZXQoKSwgMCk7Ci0g
ICAgICAgICAgICBDR0ltYWdlRGVzdGluYXRpb25GaW5hbGl6ZShpbWFnZURlc3QuZ2V0KCkpOwot
ICAgICAgICAgICAgcHJpbnRmKCJDb250ZW50LUxlbmd0aDogJWx1XG4iLCBDRkRhdGFHZXRMZW5n
dGgoaW1hZ2VEYXRhLmdldCgpKSk7Ci0gICAgICAgICAgICBmd3JpdGUoQ0ZEYXRhR2V0Qnl0ZVB0
cihpbWFnZURhdGEuZ2V0KCkpLCAxLCBDRkRhdGFHZXRMZW5ndGgoaW1hZ2VEYXRhLmdldCgpKSwg
c3Rkb3V0KTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgZnByaW50ZihzdGRvdXQsICJk
aWZmOiAlMDEuMmYlJSBmYWlsZWRcbiIsIHBlcmNlbnRhZ2UpOwotICAgIH0gZWxzZQotICAgICAg
ICBmcHJpbnRmKHN0ZG91dCwgImRpZmY6ICUwMS4yZiUlIHBhc3NlZFxuIiwgcGVyY2VudGFnZSk7
CisgICAgQ0dJbWFnZUFscGhhSW5mbyAgICAgICAgICAgIGluZm8gPSBDR0ltYWdlR2V0QWxwaGFJ
bmZvKGltYWdlKTsKKyAgICAKKyAgICByZXR1cm4gKGluZm8gPj0ga0NHSW1hZ2VBbHBoYVByZW11
bHRpcGxpZWRMYXN0KSAmJiAoaW5mbyA8PSBrQ0dJbWFnZUFscGhhRmlyc3QpOwogfQogCiBpbnQg
bWFpbihpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQpAQCAtMTc0LDEzICsxNzUsMTMgQEAg
aW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkKICAgICBfc2V0bW9kZSgxLCBf
T19CSU5BUlkpOwogI2VuZGlmCiAKLSAgICB1bnNpZ25lZCB0aHJlc2hvbGQgPSAwOworICAgIGZs
b2F0IHRocmVzaG9sZCA9IDAuMGY7CiAKICAgICBmb3IgKGludCBpID0gMTsgaSA8IGFyZ2M7ICsr
aSkgewogICAgICAgICBpZiAoIXN0cmNtcChhcmd2W2ldLCAiLXQiKSB8fCAhc3RyY21wKGFyZ3Zb
aV0sICItLXRocmVzaG9sZCIpKSB7CiAgICAgICAgICAgICBpZiAoaSA+PSBhcmdjIC0gMSkKICAg
ICAgICAgICAgICAgICBleGl0KDEpOwotICAgICAgICAgICAgdGhyZXNob2xkID0gc3RydG9sKGFy
Z3ZbaSArIDFdLCAwLCAwKTsKKyAgICAgICAgICAgIHRocmVzaG9sZCA9IHN0cnRvZihhcmd2W2kg
KyAxXSwgMCk7CiAgICAgICAgICAgICArK2k7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgfQpAQCAtMjA5LDcgKzIxMCwzNCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciog
YXJndltdKQogICAgICAgICB9CiAKICAgICAgICAgaWYgKGFjdHVhbEltYWdlICYmIGJhc2VsaW5l
SW1hZ2UpIHsKLSAgICAgICAgICAgIGNvbXBhcmVJbWFnZXMoYWN0dWFsSW1hZ2UuZ2V0KCksIGJh
c2VsaW5lSW1hZ2UuZ2V0KCksIHRocmVzaG9sZCk7CisgICAgICAgICAgICBSZXRhaW5QdHI8Q0dJ
bWFnZVJlZj4gZGlmZkltYWdlOworICAgICAgICAgICAgZmxvYXQgZGlmZmVyZW5jZSA9IDEwMC4w
ZjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKChDR0ltYWdlR2V0V2lkdGgoYWN0dWFs
SW1hZ2UuZ2V0KCkpID09IENHSW1hZ2VHZXRXaWR0aChiYXNlbGluZUltYWdlLmdldCgpKSkgJiYg
KENHSW1hZ2VHZXRIZWlnaHQoYWN0dWFsSW1hZ2UuZ2V0KCkpID09IENHSW1hZ2VHZXRIZWlnaHQo
YmFzZWxpbmVJbWFnZS5nZXQoKSkpICYmIENGRXF1YWwoQ0dJbWFnZUdldENvbG9yU3BhY2UoYWN0
dWFsSW1hZ2UuZ2V0KCkpLCBDR0ltYWdlR2V0Q29sb3JTcGFjZShiYXNlbGluZUltYWdlLmdldCgp
KSkgJiYgKGltYWdlSGFzQWxwaGEoYWN0dWFsSW1hZ2UuZ2V0KCkpID09IGltYWdlSGFzQWxwaGEo
YmFzZWxpbmVJbWFnZS5nZXQoKSkpKSB7CisgICAgICAgICAgICAgICAgZGlmZkltYWdlID0gY29t
cGFyZUltYWdlcyhhY3R1YWxJbWFnZS5nZXQoKSwgYmFzZWxpbmVJbWFnZS5nZXQoKSwgZGlmZmVy
ZW5jZSk7IC8vIGRpZmZlcmVuY2UgaXMgcGFzc2VkIGJ5IHJlZmVyZW5jZQorICAgICAgICAgICAg
ICAgIGlmIChkaWZmZXJlbmNlIDw9IHRocmVzaG9sZCkKKyAgICAgICAgICAgICAgICAgICAgZGlm
ZmVyZW5jZSA9IDAuMGY7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICBkaWZmZXJlbmNlID0gc3RkOjptYXgocm91bmRmKGRpZmZlcmVuY2UgKiAxMDAuMGYpIC8gMTAw
LjBmLCAwLjAxZik7IC8vIHJvdW5kIHRvIDIgZGVjaW1hbCBwbGFjZXMKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInRlc3Qg
YW5kIHJlZmVyZW5jZSBpbWFnZSBoYXZlIGRpZmZlcmVudCBwcm9wZXJ0aWVzISIpOworICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgaWYgKGRpZmZlcmVuY2UgPiAwLjBmKSB7CisgICAgICAg
ICAgICAgICAgaWYgKGRpZmZJbWFnZSkgeworICAgICAgICAgICAgICAgICAgICBSZXRhaW5QdHI8
Q0ZNdXRhYmxlRGF0YVJlZj4gaW1hZ2VEYXRhKEFkb3B0Q0YsIENGRGF0YUNyZWF0ZU11dGFibGUo
MCwgMCkpOworICAgICAgICAgICAgICAgICAgICBSZXRhaW5QdHI8Q0dJbWFnZURlc3RpbmF0aW9u
UmVmPiBpbWFnZURlc3QoQWRvcHRDRiwgQ0dJbWFnZURlc3RpbmF0aW9uQ3JlYXRlV2l0aERhdGEo
aW1hZ2VEYXRhLmdldCgpLCBrVVRUeXBlUE5HLCAxLCAwKSk7CisgICAgICAgICAgICAgICAgICAg
IENHSW1hZ2VEZXN0aW5hdGlvbkFkZEltYWdlKGltYWdlRGVzdC5nZXQoKSwgZGlmZkltYWdlLmdl
dCgpLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgQ0dJbWFnZURlc3RpbmF0aW9uRmluYWxpemUo
aW1hZ2VEZXN0LmdldCgpKTsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJDb250ZW50LUxl
bmd0aDogJWx1XG4iLCBDRkRhdGFHZXRMZW5ndGgoaW1hZ2VEYXRhLmdldCgpKSk7CisgICAgICAg
ICAgICAgICAgICAgIGZ3cml0ZShDRkRhdGFHZXRCeXRlUHRyKGltYWdlRGF0YS5nZXQoKSksIDEs
IENGRGF0YUdldExlbmd0aChpbWFnZURhdGEuZ2V0KCkpLCBzdGRvdXQpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZG91dCwg
ImRpZmY6ICUwMS4yZiUlIGZhaWxlZFxuIiwgZGlmZmVyZW5jZSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZnByaW50ZihzdGRvdXQsICJkaWZmOiAl
MDEuMmYlJSBwYXNzZWRcbiIsIGRpZmZlcmVuY2UpOworICAgICAgICAgICAgCiAgICAgICAgICAg
ICBhY3R1YWxJbWFnZSA9IDA7CiAgICAgICAgICAgICBiYXNlbGluZUltYWdlID0gMDsKICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzIGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LXRlc3RzCmluZGV4IGI0ZjhjYmYuLjEwYjVk
NjQgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC10ZXN0cworKysg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtdGVzdHMKQEAgLTE4MCwxNyArMTgwLDE4
IEBAIFVzYWdlOiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFt0ZXN0ZGlyfHRlc3RwYXRoIC4uLl0K
ICAgLWN8LS1jb25maWd1cmF0aW9uIGNvbmZpZyAgICAgICBTZXQgRHVtcFJlbmRlclRyZWUgYnVp
bGQgY29uZmlndXJhdGlvbgogICAtZ3wtLWd1YXJkLW1hbGxvYyAgICAgICAgICAgICAgIEVuYWJs
ZSBtYWxsb2MgZ3VhcmQKICAgLS1oZWxwICAgICAgICAgICAgICAgICAgICAgICAgICBTaG93IHRo
aXMgaGVscCBtZXNzYWdlCi0gIC1ofC0taG9yaXpvbnRhbC1zd2VlcCAgICAgICAgICAgQ2hhbmdl
IHJlcGFpbnQgdG8gc3dlZXAgaG9yaXpvbnRhbGx5IGluc3RlYWQgb2YgdmVydGljYWxseSAoaW1w
bGllcyAtLXJlcGFpbnQtdGVzdHMpCiAgIC0tW25vLV1odHRwICAgICAgICAgICAgICAgICAgICAg
UnVuIChvciBkbyBub3QgcnVuKSBodHRwIHRlc3RzIChkZWZhdWx0OiAkaHR0cERlZmF1bHQpCiAg
IC1pfC0taWdub3JlLXRlc3RzICAgICAgICAgICAgICAgQ29tbWEtc2VwYXJhdGVkIGxpc3Qgb2Yg
ZGlyZWN0b3JpZXMgb3IgdGVzdHMgdG8gaWdub3JlCiAgIC0tW25vLV1sYXVuY2gtc2FmYXJpICAg
ICAgICAgICAgTGF1bmNoIChvciBkbyBub3QgbGF1bmNoKSBTYWZhcmkgdG8gZGlzcGxheSB0ZXN0
IHJlc3VsdHMgKGRlZmF1bHQ6ICRsYXVuY2hTYWZhcmlEZWZhdWx0KQogICAtbHwtLWxlYWtzICAg
ICAgICAgICAgICAgICAgICAgIEVuYWJsZSBsZWFrcyBjaGVja2luZwogICAtLVtuby1dbmV3LXRl
c3QtcmVzdWx0cyAgICAgICAgIEdlbmVyYXRlIHJlc3VsdHMgZm9yIG5ldyB0ZXN0cwogICAtcHwt
LXBpeGVsLXRlc3RzICAgICAgICAgICAgICAgIEVuYWJsZSBwaXhlbCB0ZXN0cworICAtLXRocmVz
aG9sZCB0ICAgICAgICAgICAgICAgICAgIElnbm9yZSBpbWFnZSBkaWZmZXJlbmNlcyBsZXNzIHRo
YW4gdGhpcyBwZXJjZW50YWdlIChpbXBsaWVzIC0tcGl4ZWwtdGVzdHMpCisgIC1yfC0tcmVwYWlu
dC10ZXN0cyAgICAgICAgICAgICAgUnVuIHJlcGFpbnQgdGVzdHMgKGltcGxpZXMgLS1waXhlbC10
ZXN0cykKKyAgLWh8LS1ob3Jpem9udGFsLXN3ZWVwICAgICAgICAgICBDaGFuZ2UgcmVwYWludCB0
byBzd2VlcCBob3Jpem9udGFsbHkgaW5zdGVhZCBvZiB2ZXJ0aWNhbGx5IChpbXBsaWVzIC0tcmVw
YWludC10ZXN0cykKICAgLS1wbGF0Zm9ybSAgICAgICAgICAgICAgICAgICAgICBPdmVycmlkZSB0
aGUgZGV0ZWN0ZWQgcGxhdGZvcm0gdG8gdXNlIGZvciB0ZXN0cyBhbmQgcmVzdWx0cyAoZGVmYXVs
dDogJHBsYXRmb3JtKQogICAtLXBvcnQgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYiBzZXJ2
ZXIgcG9ydCB0byB1c2Ugd2l0aCBodHRwIHRlc3RzCiAgIC1xfC0tcXVpZXQgICAgICAgICAgICAg
ICAgICAgICAgTGVzcyB2ZXJib3NlIG91dHB1dAotICAtcnwtLXJlcGFpbnQtdGVzdHMgICAgICAg
ICAgICAgIFJ1biByZXBhaW50IHRlc3RzIChpbXBsaWVzIC0tcGl4ZWwtdGVzdHMpCiAgIC0tcmVz
ZXQtcmVzdWx0cyAgICAgICAgICAgICAgICAgUmVzZXQgQUxMIHJlc3VsdHMgKGluY2x1ZGluZyBw
aXhlbCB0ZXN0cyBpZiAtLXBpeGVsLXRlc3RzIGlzIHNldCkKICAgLW98LS1yZXN1bHRzLWRpcmVj
dG9yeSAgICAgICAgICBPdXRwdXQgcmVzdWx0cyBkaXJlY3RvcnkgKGRlZmF1bHQ6ICR0ZXN0UmVz
dWx0c0RpcmVjdG9yeSkKICAgLS1yYW5kb20gICAgICAgICAgICAgICAgICAgICAgICBSdW4gdGhl
IHRlc3RzIGluIGEgcmFuZG9tIG9yZGVyCkBAIC0yMDYsNyArMjA3LDYgQEAgVXNhZ2U6ICRwcm9n
cmFtTmFtZSBbb3B0aW9uc10gW3Rlc3RkaXJ8dGVzdHBhdGggLi4uXQogICAtLXN0cmljdCAgICAg
ICAgICAgICAgICAgICAgICAgIERvIGEgY29tcGFyaXNvbiB3aXRoIHRoZSBvdXRwdXQgb24gTWFj
IChRdCBvbmx5KQogICAtLVtuby1dc3RyaXAtZWRpdGluZy1jYWxsYmFja3MgIFJlbW92ZSBlZGl0
aW5nIGNhbGxiYWNrcyBmcm9tIGV4cGVjdGVkIHJlc3VsdHMKICAgLXR8LS10aHJlYWRlZCAgICAg
ICAgICAgICAgICAgICBSdW4gYSBjb25jdXJyZW50IEphdmFTY3JpcHQgdGhlYWQgd2l0aCBlYWNo
IHRlc3QKLSAgLS10aHJlc2hvbGQgdCAgICAgICAgICAgICAgICAgICBJZ25vcmUgcGl4ZWwgdmFs
dWUgZGV2aWF0aW9ucyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdAogICAtLXZhbGdyaW5kICAgICAg
ICAgICAgICAgICAgICAgIFJ1biBEdW1wUmVuZGVyVHJlZSBpbnNpZGUgdmFsZ3JpbmQgKFF0L0xp
bnV4IG9ubHkpCiAgIC12fC0tdmVyYm9zZSAgICAgICAgICAgICAgICAgICAgTW9yZSB2ZXJib3Nl
IG91dHB1dCAob3ZlcnJpZGVzIC0tcXVpZXQpCiAgIC1tfC0tbWVyZ2UtbGVhay1kZXB0aCBhcmcg
ICAgICAgTWVyZ2VzIGxlYWsgY2FsbFN0YWNrcyBhbmQgcHJpbnRzIHRoZSBudW1iZXIgb2YgdW5p
cXVlIGxlYWtzIGJlbmVhdGggYSBjYWxsc3RhY2sgZGVwdGggb2YgYXJnLiAgRGVmYXVsdHMgdG8g
NS4KQEAgLTIzOSw3ICsyMzksNyBAQCBteSAkZ2V0T3B0aW9uc1Jlc3VsdCA9IEdldE9wdGlvbnMo
CiAgICAgJ3NraXBwZWQ9cycgPT4gXCZ2YWxpZGF0ZVNraXBwZWRBcmcsCiAgICAgJ3Nsb3dlc3Qn
ID0+IFwkcmVwb3J0MTBTbG93ZXN0LAogICAgICd0aHJlYWRlZHx0JyA9PiBcJHRocmVhZGVkLAot
ICAgICd0aHJlc2hvbGQ9aScgPT4gXCR0aHJlc2hvbGQsCisgICAgJ3RocmVzaG9sZD1mJyA9PiBc
JHRocmVzaG9sZCwKICAgICAndmVyYm9zZXx2JyA9PiBcJHZlcmJvc2UsCiAgICAgJ3ZhbGdyaW5k
JyA9PiBcJHVzZVZhbGdyaW5kLAogICAgICdzYW1wbGUtb24tdGltZW91dCEnID0+IFwkcnVuU2Ft
cGxlLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>