<?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>28329</bug_id>
          
          <creation_ts>2009-08-14 16:11:35 -0700</creation_ts>
          <short_desc>HTML5 canvas&apos;s createImageData should raise the NOT_SUPPORTED_ERR exception when either of the arguments are not finite.</short_desc>
          <delta_ts>2009-08-17 17:06:08 -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>Layout and Rendering</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>http://philip.html5.org/tests/canvas/suite/tests/2d.imageData.create.nonfinite.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Benjamin Meyer">ben</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>krit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>140377</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Meyer">ben</who>
    <bug_when>2009-08-14 16:11:35 -0700</bug_when>
    <thetext>According to http://www.whatwg.org/specs/web-apps/current-work/#pixel-manipulation:

            &quot;If any of the arguments to createImageData() or getImageData() are
             infinite or NaN, or if the createImageData()  method is invoked with
             only one argument but that argument is null, the method must instead
             raise a NOT_SUPPORTED_ERR  exception.&quot;

Test page: http://philip.html5.org/tests/canvas/suite/tests/2d.imageData.create.nonfinite.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140378</commentid>
    <comment_count>1</comment_count>
      <attachid>34878</attachid>
    <who name="Benjamin Meyer">ben</who>
    <bug_when>2009-08-14 16:13:29 -0700</bug_when>
    <thetext>Created attachment 34878
Patch to solve the issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140379</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Meyer">ben</who>
    <bug_when>2009-08-14 16:15:35 -0700</bug_when>
    <thetext>I have contacted the author of the canvas tests to determine the licensing of the generated tests.  If possible it would be nice to integrate them into our pixel tests and I started work in that direction, but before they can go into our repo the licensing needs to be determined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140388</commentid>
    <comment_count>3</comment_count>
      <attachid>34878</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-08-14 17:08:30 -0700</bug_when>
    <thetext>Comment on attachment 34878
Patch to solve the issue

Fix looks great.

But we also require a regression test for fixes like this one. Please resubmit a patch that includes a regression test.

It should be straightforward to come up for a test for this. We don&apos;t need to use the canvas tests you referred to in the bug earlier. If you look in the LayoutTests/fast/canvas directory you&apos;ll see many other similar tests which could give you some ideas how to make a test that covers this fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140392</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-14 17:17:38 -0700</bug_when>
    <thetext>philip (the author of the tests) hangs out in #webkit.  You should be able to ask him there too. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140737</commentid>
    <comment_count>5</comment_count>
      <attachid>34972</attachid>
    <who name="Benjamin Meyer">ben</who>
    <bug_when>2009-08-17 10:02:28 -0700</bug_when>
    <thetext>Created attachment 34972
tests + tests

Same patch as before, but now with a layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140739</commentid>
    <comment_count>6</comment_count>
      <attachid>34972</attachid>
    <who name="Benjamin Meyer">ben</who>
    <bug_when>2009-08-17 10:08:33 -0700</bug_when>
    <thetext>Comment on attachment 34972
tests + tests

dupe</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140740</commentid>
    <comment_count>7</comment_count>
      <attachid>34973</attachid>
    <who name="Benjamin Meyer">ben</who>
    <bug_when>2009-08-17 10:09:40 -0700</bug_when>
    <thetext>Created attachment 34973
patch + tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140741</commentid>
    <comment_count>8</comment_count>
      <attachid>34974</attachid>
    <who name="Benjamin Meyer">ben</who>
    <bug_when>2009-08-17 10:11:53 -0700</bug_when>
    <thetext>Created attachment 34974
patch + tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140813</commentid>
    <comment_count>9</comment_count>
      <attachid>34974</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-08-17 13:30:22 -0700</bug_when>
    <thetext>Comment on attachment 34974
patch + tests

It&apos;d be nice to have some other test cases too, such as 0, positive numbers, negative numbers, and non-numeric values.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140891</commentid>
    <comment_count>10</comment_count>
      <attachid>34974</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-17 17:06:02 -0700</bug_when>
    <thetext>Comment on attachment 34974
patch + tests

Clearing flags on attachment: 34974

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	A	LayoutTests/fast/canvas/canvas-2d-imageData-create-nonfinite-expected.txt
	A	LayoutTests/fast/canvas/canvas-2d-imageData-create-nonfinite.html
	A	LayoutTests/fast/canvas/resources/canvas-2d-imageData-create-nonfinite.js
	M	WebCore/ChangeLog
	M	WebCore/html/canvas/CanvasRenderingContext2D.cpp
	M	WebCore/html/canvas/CanvasRenderingContext2D.h
	M	WebCore/html/canvas/CanvasRenderingContext2D.idl
Committed r47398
	M	WebCore/ChangeLog
	M	WebCore/html/canvas/CanvasRenderingContext2D.cpp
	M	WebCore/html/canvas/CanvasRenderingContext2D.h
	M	WebCore/html/canvas/CanvasRenderingContext2D.idl
	M	LayoutTests/ChangeLog
	A	LayoutTests/fast/canvas/resources/canvas-2d-imageData-create-nonfinite.js
	A	LayoutTests/fast/canvas/canvas-2d-imageData-create-nonfinite-expected.txt
	A	LayoutTests/fast/canvas/canvas-2d-imageData-create-nonfinite.html
r47398 = bfd04504c6b001c7b8907e1d3a93ce7d42cd1e6b (trunk)
No changes between current HEAD and refs/remotes/trunk
Resetting to the latest refs/remotes/trunk
http://trac.webkit.org/changeset/47398</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140892</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-17 17:06:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34878</attachid>
            <date>2009-08-14 16:13:29 -0700</date>
            <delta_ts>2009-08-17 10:02:28 -0700</delta_ts>
            <desc>Patch to solve the issue</desc>
            <filename>0001-2009-08-14-Benjamin-C-Meyer-benjamin.meyer-torchm.patch</filename>
            <type>text/plain</type>
            <size>5349</size>
            <attacher name="Benjamin Meyer">ben</attacher>
            
              <data encoding="base64">RnJvbSBlMzYyNWMzODYzZWU5MDAwYTg1MWM3OGIxMTIyNjk5MTU1MGY3ZDRlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCZW5qYW1pbiBDIE1leWVyIDxiZW5qYW1pbi5tZXllckB0b3Jj
aG1vYmlsZS5jb20+CkRhdGU6IEZyaSwgMTQgQXVnIDIwMDkgMTk6MDM6MTkgLTA0MDAKU3ViamVj
dDogW1BBVENIXSAyMDA5LTA4LTE0ICBCZW5qYW1pbiBDIE1leWVyICA8YmVuamFtaW4ubWV5ZXJA
dG9yY2htb2JpbGUuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAg
ICAgICAgRml4IGNyZWF0ZUltYWdlRGF0YSB0byByYWlzZSB0aGUgTk9UX1NVUFBPUlRFRF9FUlIg
ZXhjZXB0aW9uIHdoZW4KICAgICAgICBlaXRoZXIgb2YgdGhlIGFyZ3VtZW50cyBhcmUgbm90IGZp
bml0ZS4KCiAgICAgICAgQWNjb3JkaW5nIHRvCiAgICAgICAgIGh0dHA6Ly93d3cud2hhdHdnLm9y
Zy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3BpeGVsLW1hbmlwdWxhdGlvbjoKICAgICAg
ICAiSWYgYW55IG9mIHRoZSBhcmd1bWVudHMgdG8gY3JlYXRlSW1hZ2VEYXRhKCkgb3IgZ2V0SW1h
Z2VEYXRhKCkgYXJlCiAgICAgICAgIGluZmluaXRlIG9yIE5hTiwgb3IgaWYgdGhlIGNyZWF0ZUlt
YWdlRGF0YSgpICBtZXRob2QgaXMgaW52b2tlZCB3aXRoCiAgICAgICAgIG9ubHkgb25lIGFyZ3Vt
ZW50IGJ1dCB0aGF0IGFyZ3VtZW50IGlzIG51bGwsIHRoZSBtZXRob2QgbXVzdCBpbnN0ZWFkCiAg
ICAgICAgIHJhaXNlIGEgTk9UX1NVUFBPUlRFRF9FUlIgIGV4Y2VwdGlvbi4iCgogICAgICAgIFRl
c3Q6IGh0dHA6Ly9waGlsaXAuaHRtbDUub3JnL3Rlc3RzL2NhbnZhcy9zdWl0ZS90ZXN0cy8yZC5p
bWFnZURhdGEuY3JlYXRlLm5vbmZpbml0ZS5odG1sCgogICAgICAgICogaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpjcmVhdGVJbWFnZURhdGEpOgogICAgICAgICogaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmg6CiAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaWRsOgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMjEgKysrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgfCAgICA3ICsrKysrKy0KIFdl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggICB8ICAgIDIgKy0K
IFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbCB8ICAgIDMg
KystCiA0IGZpbGVzIGNoYW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBl
ZmQ0OWU4Li5iMmVkOWJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDA5LTA4LTE0ICBCZW5qYW1pbiBDIE1l
eWVyICA8YmVuamFtaW4ubWV5ZXJAdG9yY2htb2JpbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgRml4IGNyZWF0ZUltYWdlRGF0
YSB0byByYWlzZSB0aGUgTk9UX1NVUFBPUlRFRF9FUlIgZXhjZXB0aW9uIHdoZW4KKyAgICAgICAg
ZWl0aGVyIG9mIHRoZSBhcmd1bWVudHMgYXJlIG5vdCBmaW5pdGUuCisgICAgICAgIAorICAgICAg
ICBBY2NvcmRpbmcgdG8KKyAgICAgICAgaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1h
cHBzL2N1cnJlbnQtd29yay8jcGl4ZWwtbWFuaXB1bGF0aW9uOgorICAgICAgICAiSWYgYW55IG9m
IHRoZSBhcmd1bWVudHMgdG8gY3JlYXRlSW1hZ2VEYXRhKCkgb3IgZ2V0SW1hZ2VEYXRhKCkgYXJl
CisgICAgICAgIGluZmluaXRlIG9yIE5hTiwgb3IgaWYgdGhlIGNyZWF0ZUltYWdlRGF0YSgpICBt
ZXRob2QgaXMgaW52b2tlZCB3aXRoCisgICAgICAgIG9ubHkgb25lIGFyZ3VtZW50IGJ1dCB0aGF0
IGFyZ3VtZW50IGlzIG51bGwsIHRoZSBtZXRob2QgbXVzdCBpbnN0ZWFkCisgICAgICAgIHJhaXNl
IGEgTk9UX1NVUFBPUlRFRF9FUlIgIGV4Y2VwdGlvbi4iCisgICAgICAgIAorICAgICAgICBUZXN0
OiBodHRwOi8vcGhpbGlwLmh0bWw1Lm9yZy90ZXN0cy9jYW52YXMvc3VpdGUvdGVzdHMvMmQuaW1h
Z2VEYXRhLmNyZWF0ZS5ub25maW5pdGUuaHRtbAorICAgICAgICAKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjcmVhdGVJbWFnZURhdGEpOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oOgorICAgICAgICAqIGh0bWwvY2FudmFz
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGw6CisKIDIwMDktMDgtMTMgIEdlb3JnZSBTdGFp
a29zICA8Z2VvcmdlLnN0YWlrb3NAdG9yY2htb2JpbGUuY29tPgogCiAgICAgICAgIFJ1YmJlcnN0
YW1wZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5jcHAKaW5kZXggMjRkYWY1My4uNzIwM2UxMiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisrKyBiL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcApAQCAtMTI3OCw4
ICsxMjc4LDEzIEBAIHN0YXRpYyBQYXNzUmVmUHRyPEltYWdlRGF0YT4gY3JlYXRlRW1wdHlJbWFn
ZURhdGEoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICByZXR1cm4gZGF0YS5nZXQoKTsKIH0KIAot
UGFzc1JlZlB0cjxJbWFnZURhdGE+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y3JlYXRlSW1h
Z2VEYXRhKGZsb2F0IHN3LCBmbG9hdCBzaCkgY29uc3QKK1Bhc3NSZWZQdHI8SW1hZ2VEYXRhPiBD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZUltYWdlRGF0YShmbG9hdCBzdywgZmxvYXQg
c2gsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogeworICAgIGVjID0gMDsKKyAgICBpZiAoIWlz
ZmluaXRlKHN3KSB8fCAhaXNmaW5pdGUoc2gpKSB7CisgICAgICAgIGVjID0gTk9UX1NVUFBPUlRF
RF9FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KICAgICBGbG9hdFNpemUgdW5zY2FsZWRT
aXplKHN3LCBzaCk7CiAgICAgSW50U2l6ZSBzY2FsZWRTaXplID0gbV9jYW52YXMtPmNvbnZlcnRM
b2dpY2FsVG9EZXZpY2UodW5zY2FsZWRTaXplKTsKICAgICBpZiAoc2NhbGVkU2l6ZS53aWR0aCgp
IDwgMSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmggYi9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5o
CmluZGV4IDk2NDhmZmMuLjdjNDdlNTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgKKysrIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuaApAQCAtMTc4LDcgKzE3OCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgUGFzc1JlZlB0cjxDYW52YXNQYXR0ZXJuPiBjcmVhdGVQYXR0ZXJuKEhU
TUxJbWFnZUVsZW1lbnQqLCBjb25zdCBTdHJpbmcmIHJlcGV0aXRpb25UeXBlLCBFeGNlcHRpb25D
b2RlJik7CiAgICAgICAgIFBhc3NSZWZQdHI8Q2FudmFzUGF0dGVybj4gY3JlYXRlUGF0dGVybihI
VE1MQ2FudmFzRWxlbWVudCosIGNvbnN0IFN0cmluZyYgcmVwZXRpdGlvblR5cGUsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICAgICAgCi0gICAgICAgIFBhc3NSZWZQdHI8SW1hZ2VEYXRhPiBjcmVhdGVJ
bWFnZURhdGEoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgY29uc3Q7CisgICAgICAgIFBhc3NS
ZWZQdHI8SW1hZ2VEYXRhPiBjcmVhdGVJbWFnZURhdGEoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdo
dCwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAgICAgICBQYXNzUmVmUHRyPEltYWdlRGF0YT4g
Z2V0SW1hZ2VEYXRhKGZsb2F0IHN4LCBmbG9hdCBzeSwgZmxvYXQgc3csIGZsb2F0IHNoLCBFeGNl
cHRpb25Db2RlJikgY29uc3Q7CiAgICAgICAgIHZvaWQgcHV0SW1hZ2VEYXRhKEltYWdlRGF0YSos
IGZsb2F0IGR4LCBmbG9hdCBkeSwgRXhjZXB0aW9uQ29kZSYpOwogICAgICAgICB2b2lkIHB1dElt
YWdlRGF0YShJbWFnZURhdGEqLCBmbG9hdCBkeCwgZmxvYXQgZHksIGZsb2F0IGRpcnR5WCwgZmxv
YXQgZGlydHlZLCBmbG9hdCBkaXJ0eVdpZHRoLCBmbG9hdCBkaXJ0eUhlaWdodCwgRXhjZXB0aW9u
Q29kZSYpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuaWRsIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuaWRsCmluZGV4IGE4NmI0N2QuLjA0MjgwNTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAorKysgYi9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKQEAgLTExMyw3ICsxMTMsOCBAQCBtb2R1
bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tXSBjdXN0b20gZmlsbFN0eWxlOwog
ICAgICAgICAKICAgICAgICAgLy8gcGl4ZWwgbWFuaXB1bGF0aW9uCi0gICAgICAgIEltYWdlRGF0
YSBjcmVhdGVJbWFnZURhdGEoaW4gZmxvYXQgc3csIGluIGZsb2F0IHNoKTsKKyAgICAgICAgSW1h
Z2VEYXRhIGNyZWF0ZUltYWdlRGF0YShpbiBmbG9hdCBzdywgaW4gZmxvYXQgc2gpCisgICAgICAg
ICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIEltYWdlRGF0YSBnZXRJbWFnZURh
dGEoaW4gZmxvYXQgc3gsIGluIGZsb2F0IHN5LCBpbiBmbG9hdCBzdywgaW4gZmxvYXQgc2gpCiAg
ICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBw
dXRJbWFnZURhdGEoLyogaW4gSW1hZ2VEYXRhIGltYWdlZGF0YSwgaW4gZmxvYXQgZHgsIGluIGZs
b2F0IGR5IFssIGluIGZsb2F0IGRpcnR5WCwgaW4gZmxvYXQgZGlydHlZLCBpbiBmbG9hdCBkaXJ0
eVdpZHRoLCBpbiBmbG9hdCBkaXJ0eUhlaWdodF0gKi8pOwotLSAKMS42LjAuNAoK
</data>
<flag name="review"
          id="19073"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34972</attachid>
            <date>2009-08-17 10:02:28 -0700</date>
            <delta_ts>2009-08-17 10:08:32 -0700</delta_ts>
            <desc>tests + tests</desc>
            <filename>0001-2009-08-14-Benjamin-C-Meyer-benjamin.meyer-torchm.patch</filename>
            <type>text/plain</type>
            <size>5349</size>
            <attacher name="Benjamin Meyer">ben</attacher>
            
              <data encoding="base64">RnJvbSBlMzYyNWMzODYzZWU5MDAwYTg1MWM3OGIxMTIyNjk5MTU1MGY3ZDRlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCZW5qYW1pbiBDIE1leWVyIDxiZW5qYW1pbi5tZXllckB0b3Jj
aG1vYmlsZS5jb20+CkRhdGU6IEZyaSwgMTQgQXVnIDIwMDkgMTk6MDM6MTkgLTA0MDAKU3ViamVj
dDogW1BBVENIXSAyMDA5LTA4LTE0ICBCZW5qYW1pbiBDIE1leWVyICA8YmVuamFtaW4ubWV5ZXJA
dG9yY2htb2JpbGUuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAg
ICAgICAgRml4IGNyZWF0ZUltYWdlRGF0YSB0byByYWlzZSB0aGUgTk9UX1NVUFBPUlRFRF9FUlIg
ZXhjZXB0aW9uIHdoZW4KICAgICAgICBlaXRoZXIgb2YgdGhlIGFyZ3VtZW50cyBhcmUgbm90IGZp
bml0ZS4KCiAgICAgICAgQWNjb3JkaW5nIHRvCiAgICAgICAgIGh0dHA6Ly93d3cud2hhdHdnLm9y
Zy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3BpeGVsLW1hbmlwdWxhdGlvbjoKICAgICAg
ICAiSWYgYW55IG9mIHRoZSBhcmd1bWVudHMgdG8gY3JlYXRlSW1hZ2VEYXRhKCkgb3IgZ2V0SW1h
Z2VEYXRhKCkgYXJlCiAgICAgICAgIGluZmluaXRlIG9yIE5hTiwgb3IgaWYgdGhlIGNyZWF0ZUlt
YWdlRGF0YSgpICBtZXRob2QgaXMgaW52b2tlZCB3aXRoCiAgICAgICAgIG9ubHkgb25lIGFyZ3Vt
ZW50IGJ1dCB0aGF0IGFyZ3VtZW50IGlzIG51bGwsIHRoZSBtZXRob2QgbXVzdCBpbnN0ZWFkCiAg
ICAgICAgIHJhaXNlIGEgTk9UX1NVUFBPUlRFRF9FUlIgIGV4Y2VwdGlvbi4iCgogICAgICAgIFRl
c3Q6IGh0dHA6Ly9waGlsaXAuaHRtbDUub3JnL3Rlc3RzL2NhbnZhcy9zdWl0ZS90ZXN0cy8yZC5p
bWFnZURhdGEuY3JlYXRlLm5vbmZpbml0ZS5odG1sCgogICAgICAgICogaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKICAgICAgICAoV2ViQ29yZTo6Q2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEOjpjcmVhdGVJbWFnZURhdGEpOgogICAgICAgICogaHRtbC9jYW52YXMvQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJELmg6CiAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaWRsOgotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMjEgKysrKysrKysrKysrKysrKysrKysrCiBXZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgfCAgICA3ICsrKysrKy0KIFdl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggICB8ICAgIDIgKy0K
IFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbCB8ICAgIDMg
KystCiA0IGZpbGVzIGNoYW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBl
ZmQ0OWU4Li5iMmVkOWJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDA5LTA4LTE0ICBCZW5qYW1pbiBDIE1l
eWVyICA8YmVuamFtaW4ubWV5ZXJAdG9yY2htb2JpbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgRml4IGNyZWF0ZUltYWdlRGF0
YSB0byByYWlzZSB0aGUgTk9UX1NVUFBPUlRFRF9FUlIgZXhjZXB0aW9uIHdoZW4KKyAgICAgICAg
ZWl0aGVyIG9mIHRoZSBhcmd1bWVudHMgYXJlIG5vdCBmaW5pdGUuCisgICAgICAgIAorICAgICAg
ICBBY2NvcmRpbmcgdG8KKyAgICAgICAgaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1h
cHBzL2N1cnJlbnQtd29yay8jcGl4ZWwtbWFuaXB1bGF0aW9uOgorICAgICAgICAiSWYgYW55IG9m
IHRoZSBhcmd1bWVudHMgdG8gY3JlYXRlSW1hZ2VEYXRhKCkgb3IgZ2V0SW1hZ2VEYXRhKCkgYXJl
CisgICAgICAgIGluZmluaXRlIG9yIE5hTiwgb3IgaWYgdGhlIGNyZWF0ZUltYWdlRGF0YSgpICBt
ZXRob2QgaXMgaW52b2tlZCB3aXRoCisgICAgICAgIG9ubHkgb25lIGFyZ3VtZW50IGJ1dCB0aGF0
IGFyZ3VtZW50IGlzIG51bGwsIHRoZSBtZXRob2QgbXVzdCBpbnN0ZWFkCisgICAgICAgIHJhaXNl
IGEgTk9UX1NVUFBPUlRFRF9FUlIgIGV4Y2VwdGlvbi4iCisgICAgICAgIAorICAgICAgICBUZXN0
OiBodHRwOi8vcGhpbGlwLmh0bWw1Lm9yZy90ZXN0cy9jYW52YXMvc3VpdGUvdGVzdHMvMmQuaW1h
Z2VEYXRhLmNyZWF0ZS5ub25maW5pdGUuaHRtbAorICAgICAgICAKKyAgICAgICAgKiBodG1sL2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjcmVhdGVJbWFnZURhdGEpOgorICAgICAgICAqIGh0bWwv
Y2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oOgorICAgICAgICAqIGh0bWwvY2FudmFz
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGw6CisKIDIwMDktMDgtMTMgIEdlb3JnZSBTdGFp
a29zICA8Z2VvcmdlLnN0YWlrb3NAdG9yY2htb2JpbGUuY29tPgogCiAgICAgICAgIFJ1YmJlcnN0
YW1wZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgYi9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5jcHAKaW5kZXggMjRkYWY1My4uNzIwM2UxMiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCisrKyBiL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcApAQCAtMTI3OCw4
ICsxMjc4LDEzIEBAIHN0YXRpYyBQYXNzUmVmUHRyPEltYWdlRGF0YT4gY3JlYXRlRW1wdHlJbWFn
ZURhdGEoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICByZXR1cm4gZGF0YS5nZXQoKTsKIH0KIAot
UGFzc1JlZlB0cjxJbWFnZURhdGE+IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Y3JlYXRlSW1h
Z2VEYXRhKGZsb2F0IHN3LCBmbG9hdCBzaCkgY29uc3QKK1Bhc3NSZWZQdHI8SW1hZ2VEYXRhPiBD
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZUltYWdlRGF0YShmbG9hdCBzdywgZmxvYXQg
c2gsIEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogeworICAgIGVjID0gMDsKKyAgICBpZiAoIWlz
ZmluaXRlKHN3KSB8fCAhaXNmaW5pdGUoc2gpKSB7CisgICAgICAgIGVjID0gTk9UX1NVUFBPUlRF
RF9FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KICAgICBGbG9hdFNpemUgdW5zY2FsZWRT
aXplKHN3LCBzaCk7CiAgICAgSW50U2l6ZSBzY2FsZWRTaXplID0gbV9jYW52YXMtPmNvbnZlcnRM
b2dpY2FsVG9EZXZpY2UodW5zY2FsZWRTaXplKTsKICAgICBpZiAoc2NhbGVkU2l6ZS53aWR0aCgp
IDwgMSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmggYi9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5o
CmluZGV4IDk2NDhmZmMuLjdjNDdlNTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgKKysrIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuaApAQCAtMTc4LDcgKzE3OCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgUGFzc1JlZlB0cjxDYW52YXNQYXR0ZXJuPiBjcmVhdGVQYXR0ZXJuKEhU
TUxJbWFnZUVsZW1lbnQqLCBjb25zdCBTdHJpbmcmIHJlcGV0aXRpb25UeXBlLCBFeGNlcHRpb25D
b2RlJik7CiAgICAgICAgIFBhc3NSZWZQdHI8Q2FudmFzUGF0dGVybj4gY3JlYXRlUGF0dGVybihI
VE1MQ2FudmFzRWxlbWVudCosIGNvbnN0IFN0cmluZyYgcmVwZXRpdGlvblR5cGUsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICAgICAgCi0gICAgICAgIFBhc3NSZWZQdHI8SW1hZ2VEYXRhPiBjcmVhdGVJ
bWFnZURhdGEoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgY29uc3Q7CisgICAgICAgIFBhc3NS
ZWZQdHI8SW1hZ2VEYXRhPiBjcmVhdGVJbWFnZURhdGEoZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdo
dCwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAgICAgICBQYXNzUmVmUHRyPEltYWdlRGF0YT4g
Z2V0SW1hZ2VEYXRhKGZsb2F0IHN4LCBmbG9hdCBzeSwgZmxvYXQgc3csIGZsb2F0IHNoLCBFeGNl
cHRpb25Db2RlJikgY29uc3Q7CiAgICAgICAgIHZvaWQgcHV0SW1hZ2VEYXRhKEltYWdlRGF0YSos
IGZsb2F0IGR4LCBmbG9hdCBkeSwgRXhjZXB0aW9uQ29kZSYpOwogICAgICAgICB2b2lkIHB1dElt
YWdlRGF0YShJbWFnZURhdGEqLCBmbG9hdCBkeCwgZmxvYXQgZHksIGZsb2F0IGRpcnR5WCwgZmxv
YXQgZGlydHlZLCBmbG9hdCBkaXJ0eVdpZHRoLCBmbG9hdCBkaXJ0eUhlaWdodCwgRXhjZXB0aW9u
Q29kZSYpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuaWRsIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkQuaWRsCmluZGV4IGE4NmI0N2QuLjA0MjgwNTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAorKysgYi9XZWJDb3JlL2h0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKQEAgLTExMyw3ICsxMTMsOCBAQCBtb2R1
bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tXSBjdXN0b20gZmlsbFN0eWxlOwog
ICAgICAgICAKICAgICAgICAgLy8gcGl4ZWwgbWFuaXB1bGF0aW9uCi0gICAgICAgIEltYWdlRGF0
YSBjcmVhdGVJbWFnZURhdGEoaW4gZmxvYXQgc3csIGluIGZsb2F0IHNoKTsKKyAgICAgICAgSW1h
Z2VEYXRhIGNyZWF0ZUltYWdlRGF0YShpbiBmbG9hdCBzdywgaW4gZmxvYXQgc2gpCisgICAgICAg
ICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIEltYWdlRGF0YSBnZXRJbWFnZURh
dGEoaW4gZmxvYXQgc3gsIGluIGZsb2F0IHN5LCBpbiBmbG9hdCBzdywgaW4gZmxvYXQgc2gpCiAg
ICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBw
dXRJbWFnZURhdGEoLyogaW4gSW1hZ2VEYXRhIGltYWdlZGF0YSwgaW4gZmxvYXQgZHgsIGluIGZs
b2F0IGR5IFssIGluIGZsb2F0IGRpcnR5WCwgaW4gZmxvYXQgZGlydHlZLCBpbiBmbG9hdCBkaXJ0
eVdpZHRoLCBpbiBmbG9hdCBkaXJ0eUhlaWdodF0gKi8pOwotLSAKMS42LjAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34973</attachid>
            <date>2009-08-17 10:09:40 -0700</date>
            <delta_ts>2009-08-17 10:11:53 -0700</delta_ts>
            <desc>patch + tests</desc>
            <filename>0001-2009-08-14-Benjamin-C-Meyer-benjamin.meyer-torchm.patch</filename>
            <type>text/plain</type>
            <size>10471</size>
            <attacher name="Benjamin Meyer">ben</attacher>
            
              <data encoding="base64">RnJvbSA5Njk2ODZmZjkzZWRkZjQ5ODYxZTRhNDY0Y2RmOTM5OTYxYjRiZWQ1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCZW5qYW1pbiBDIE1leWVyIDxiZW5qYW1pbi5tZXllckB0b3Jj
aG1vYmlsZS5jb20+CkRhdGU6IEZyaSwgMTQgQXVnIDIwMDkgMTk6MDM6MTkgLTA0MDAKU3ViamVj
dDogW1BBVENIXSAyMDA5LTA4LTE0ICBCZW5qYW1pbiBDIE1leWVyICA8YmVuamFtaW4ubWV5ZXJA
dG9yY2htb2JpbGUuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAg
ICAgICAgRml4IGNyZWF0ZUltYWdlRGF0YSB0byByYWlzZSB0aGUgTk9UX1NVUFBPUlRFRF9FUlIg
ZXhjZXB0aW9uIHdoZW4KICAgICAgICBlaXRoZXIgb2YgdGhlIGFyZ3VtZW50cyBhcmUgbm90IGZp
bml0ZS4KCiAgICAgICAgQWNjb3JkaW5nIHRvCiAgICAgICAgIGh0dHA6Ly93d3cud2hhdHdnLm9y
Zy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3BpeGVsLW1hbmlwdWxhdGlvbjoKICAgICAg
ICAiSWYgYW55IG9mIHRoZSBhcmd1bWVudHMgdG8gY3JlYXRlSW1hZ2VEYXRhKCkgb3IgZ2V0SW1h
Z2VEYXRhKCkgYXJlCiAgICAgICAgIGluZmluaXRlIG9yIE5hTiwgb3IgaWYgdGhlIGNyZWF0ZUlt
YWdlRGF0YSgpICBtZXRob2QgaXMgaW52b2tlZCB3aXRoCiAgICAgICAgIG9ubHkgb25lIGFyZ3Vt
ZW50IGJ1dCB0aGF0IGFyZ3VtZW50IGlzIG51bGwsIHRoZSBtZXRob2QgbXVzdCBpbnN0ZWFkCiAg
ICAgICAgIHJhaXNlIGEgTk9UX1NVUFBPUlRFRF9FUlIgIGV4Y2VwdGlvbi4iCgogICAgICAgIFRl
c3Q6IGh0dHA6Ly9waGlsaXAuaHRtbDUub3JnL3Rlc3RzL2NhbnZhcy9zdWl0ZS90ZXN0cy8yZC5p
bWFnZURhdGEuY3JlYXRlLm5vbmZpbml0ZS5odG1sCgogICAgICAgICogV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgogICAgICAgIChXZWJDb3JlOjpDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZUltYWdlRGF0YSk6CiAgICAgICAgKiBXZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oOgogICAgICAgICogV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsOgoKICAgICAgICAqIExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy0yZC1pbWFnZURhdGEtY3JlYXRlLW5vbmZpbml0
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgogICAgICAgICogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
Y2FudmFzLTJkLWltYWdlRGF0YS1jcmVhdGUtbm9uZmluaXRlLmh0bWw6IEFkZGVkLgogICAgICAg
ICogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvcmVzb3VyY2VzL2NhbnZhcy0yZC1pbWFnZURhdGEt
Y3JlYXRlLW5vbmZpbml0ZS5qczogQWRkZWQuCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIwICsrKysrKysrKysrKysrKysrKysKIC4u
Lm52YXMtMmQtaW1hZ2VEYXRhLWNyZWF0ZS1ub25maW5pdGUtZXhwZWN0ZWQudHh0IHwgICAxNiAr
KysrKysrKysrKysrKysKIC4uLi9jYW52YXMtMmQtaW1hZ2VEYXRhLWNyZWF0ZS1ub25maW5pdGUu
aHRtbCAgICAgIHwgICAxMyArKysrKysrKysrKysKIC4uLi9jYW52YXMtMmQtaW1hZ2VEYXRhLWNy
ZWF0ZS1ub25maW5pdGUuanMgICAgICAgIHwgICAxNCArKysrKysrKysrKysrCiBXZWJDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjEgKysrKysrKysr
KysrKysrKysrKysKIFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmNwcCAgIHwgICAgNyArKysrKy0KIFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmggICAgIHwgICAgMiArLQogV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaWRsICAgfCAgICAzICstCiA4IGZpbGVzIGNoYW5nZWQsIDkzIGluc2Vy
dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvY2FudmFzLTJkLWltYWdlRGF0YS1jcmVhdGUtbm9uZmluaXRlLWV4cGVjdGVk
LnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy0y
ZC1pbWFnZURhdGEtY3JlYXRlLW5vbmZpbml0ZS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvcmVzb3VyY2VzL2NhbnZhcy0yZC1pbWFnZURhdGEtY3JlYXRl
LW5vbmZpbml0ZS5qcwoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMzRlYWJhLi4zNDVlNjczIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjMgQEAKKzIwMDktMDgtMTcgIEJlbmphbWluIEMgTWV5ZXIgIDxiZW5qYW1pbi5tZXllckB0b3Jj
aG1vYmlsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRml4IGNyZWF0ZUltYWdlRGF0YSB0byByYWlzZSB0aGUgTk9UX1NVUFBPUlRFRF9FUlIg
ZXhjZXB0aW9uIHdoZW4KKyAgICAgICAgZWl0aGVyIG9mIHRoZSBhcmd1bWVudHMgYXJlIG5vdCBm
aW5pdGUuCisKKyAgICAgICAgQWNjb3JkaW5nIHRvCisgICAgICAgIGh0dHA6Ly93d3cud2hhdHdn
Lm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3BpeGVsLW1hbmlwdWxhdGlvbjoKKyAg
ICAgICAgIklmIGFueSBvZiB0aGUgYXJndW1lbnRzIHRvIGNyZWF0ZUltYWdlRGF0YSgpIG9yIGdl
dEltYWdlRGF0YSgpIGFyZQorICAgICAgICBpbmZpbml0ZSBvciBOYU4sIG9yIGlmIHRoZSBjcmVh
dGVJbWFnZURhdGEoKSAgbWV0aG9kIGlzIGludm9rZWQgd2l0aAorICAgICAgICBvbmx5IG9uZSBh
cmd1bWVudCBidXQgdGhhdCBhcmd1bWVudCBpcyBudWxsLCB0aGUgbWV0aG9kIG11c3QgaW5zdGVh
ZAorICAgICAgICByYWlzZSBhIE5PVF9TVVBQT1JURURfRVJSICBleGNlcHRpb24uIgorCisgICAg
ICAgIFRlc3Q6IGh0dHA6Ly9waGlsaXAuaHRtbDUub3JnL3Rlc3RzL2NhbnZhcy9zdWl0ZS90ZXN0
cy8yZC5pbWFnZURhdGEuY3JlYXRlLm5vbmZpbml0ZS5odG1sCisKKyAgICAgICAgKiBmYXN0L2Nh
bnZhcy9jYW52YXMtMmQtaW1hZ2VEYXRhLWNyZWF0ZS1ub25maW5pdGUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtMmQtaW1hZ2VEYXRhLWNyZWF0ZS1u
b25maW5pdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvcmVzb3VyY2VzL2Nh
bnZhcy0yZC1pbWFnZURhdGEtY3JlYXRlLW5vbmZpbml0ZS5qczogQWRkZWQuCisKIDIwMDktMDgt
MTYgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52
YXMtMmQtaW1hZ2VEYXRhLWNyZWF0ZS1ub25maW5pdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvY2FudmFzLTJkLWltYWdlRGF0YS1jcmVhdGUtbm9uZmluaXRlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MGNhYzk3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLTJkLWltYWdlRGF0
YS1jcmVhdGUtbm9uZmluaXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitUZXN0IHRo
ZSBhcmd1bWVudCBib3VuZHMgb2YgY2FudmFzIGNyZWF0ZUltYWdlRGF0YS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY3R4LmNyZWF0ZUltYWdlRGF0YShJbmZpbml0eSwg
SW5maW5pdHkpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBF
eGNlcHRpb24gOS4KK1BBU1MgY3R4LmNyZWF0ZUltYWdlRGF0YShJbmZpbml0eSwgMTApIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24gOS4KK1BB
U1MgY3R4LmNyZWF0ZUltYWdlRGF0YSgtSW5maW5pdHksIDEwKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IE5PVF9TVVBQT1JURURfRVJSOiBET00gRXhjZXB0aW9uIDkuCitQQVNTIGN0eC5jcmVhdGVJ
bWFnZURhdGEoMTAsIEluZmluaXR5KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5PVF9TVVBQT1JU
RURfRVJSOiBET00gRXhjZXB0aW9uIDkuCitQQVNTIGN0eC5jcmVhdGVJbWFnZURhdGEoMTAsIC1J
bmZpbml0eSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOT1RfU1VQUE9SVEVEX0VSUjogRE9NIEV4
Y2VwdGlvbiA5LgorUEFTUyBjdHguY3JlYXRlSW1hZ2VEYXRhKE5hTiwgMTApIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24gOS4KK1BBU1MgY3R4
LmNyZWF0ZUltYWdlRGF0YSgxMCwgTmFOKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5PVF9TVVBQ
T1JURURfRVJSOiBET00gRXhjZXB0aW9uIDkuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvY2FudmFzLTJkLWltYWdlRGF0YS1jcmVhdGUtbm9uZmluaXRlLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy9jYW52YXMtMmQtaW1hZ2VEYXRhLWNyZWF0ZS1ub25maW5pdGUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Mjc0MDkyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLTJkLWltYWdlRGF0YS1jcmVhdGUt
bm9uZmluaXRlLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPTYw
MCBoZWlnaHQ9MzAwPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYW52YXMtMmQtaW1hZ2VEYXRh
LWNyZWF0ZS1ub25maW5pdGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvcmVzb3VyY2VzL2NhbnZhcy0yZC1pbWFnZURhdGEtY3JlYXRl
LW5vbmZpbml0ZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3Jlc291cmNlcy9jYW52YXMt
MmQtaW1hZ2VEYXRhLWNyZWF0ZS1ub25maW5pdGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNzdiMDZiZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3Jlc291cmNlcy9jYW52YXMtMmQtaW1hZ2VEYXRhLWNyZWF0ZS1ub25maW5pdGUuanMK
QEAgLTAsMCArMSwxNCBAQAorZGVzY3JpcHRpb24oIlRlc3QgdGhlIGFyZ3VtZW50IGJvdW5kcyBv
ZiBjYW52YXMgY3JlYXRlSW1hZ2VEYXRhLiIpOworCit2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2NhbnZhcycpOwordmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcp
OworCitzaG91bGRUaHJvdygiY3R4LmNyZWF0ZUltYWdlRGF0YShJbmZpbml0eSwgSW5maW5pdHkp
IiwgJyJFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24gOSInKTsKK3Nob3Vs
ZFRocm93KCJjdHguY3JlYXRlSW1hZ2VEYXRhKEluZmluaXR5LCAxMCkiLCAnIkVycm9yOiBOT1Rf
U1VQUE9SVEVEX0VSUjogRE9NIEV4Y2VwdGlvbiA5IicpOworc2hvdWxkVGhyb3coImN0eC5jcmVh
dGVJbWFnZURhdGEoLUluZmluaXR5LCAxMCkiLCAnIkVycm9yOiBOT1RfU1VQUE9SVEVEX0VSUjog
RE9NIEV4Y2VwdGlvbiA5IicpOworc2hvdWxkVGhyb3coImN0eC5jcmVhdGVJbWFnZURhdGEoMTAs
IEluZmluaXR5KSIsICciRXJyb3I6IE5PVF9TVVBQT1JURURfRVJSOiBET00gRXhjZXB0aW9uIDki
Jyk7CitzaG91bGRUaHJvdygiY3R4LmNyZWF0ZUltYWdlRGF0YSgxMCwgLUluZmluaXR5KSIsICci
RXJyb3I6IE5PVF9TVVBQT1JURURfRVJSOiBET00gRXhjZXB0aW9uIDkiJyk7CitzaG91bGRUaHJv
dygiY3R4LmNyZWF0ZUltYWdlRGF0YShOYU4sIDEwKSIsICciRXJyb3I6IE5PVF9TVVBQT1JURURf
RVJSOiBET00gRXhjZXB0aW9uIDkiJyk7CitzaG91bGRUaHJvdygiY3R4LmNyZWF0ZUltYWdlRGF0
YSgxMCwgTmFOKSIsICciRXJyb3I6IE5PVF9TVVBQT1JURURfRVJSOiBET00gRXhjZXB0aW9uIDki
Jyk7CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0No
YW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNmNzAyMTMuLjc3MjgxYWUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjQgQEAKKzIwMDktMDgtMTcgIEJlbmphbWluIEMgTWV5ZXIgIDxiZW5qYW1pbi5tZXllckB0
b3JjaG1vYmlsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRml4IGNyZWF0ZUltYWdlRGF0YSB0byByYWlzZSB0aGUgTk9UX1NVUFBPUlRFRF9F
UlIgZXhjZXB0aW9uIHdoZW4KKyAgICAgICAgZWl0aGVyIG9mIHRoZSBhcmd1bWVudHMgYXJlIG5v
dCBmaW5pdGUuCisKKyAgICAgICAgQWNjb3JkaW5nIHRvCisgICAgICAgIGh0dHA6Ly93d3cud2hh
dHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3BpeGVsLW1hbmlwdWxhdGlvbjoK
KyAgICAgICAgIklmIGFueSBvZiB0aGUgYXJndW1lbnRzIHRvIGNyZWF0ZUltYWdlRGF0YSgpIG9y
IGdldEltYWdlRGF0YSgpIGFyZQorICAgICAgICBpbmZpbml0ZSBvciBOYU4sIG9yIGlmIHRoZSBj
cmVhdGVJbWFnZURhdGEoKSAgbWV0aG9kIGlzIGludm9rZWQgd2l0aAorICAgICAgICBvbmx5IG9u
ZSBhcmd1bWVudCBidXQgdGhhdCBhcmd1bWVudCBpcyBudWxsLCB0aGUgbWV0aG9kIG11c3QgaW5z
dGVhZAorICAgICAgICByYWlzZSBhIE5PVF9TVVBQT1JURURfRVJSICBleGNlcHRpb24uIgorCisg
ICAgICAgIFRlc3Q6IGh0dHA6Ly9waGlsaXAuaHRtbDUub3JnL3Rlc3RzL2NhbnZhcy9zdWl0ZS90
ZXN0cy8yZC5pbWFnZURhdGEuY3JlYXRlLm5vbmZpbml0ZS5odG1sCisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjcmVhdGVJbWFnZURhdGEpOgorICAgICAgICAqIGh0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGw6CisKIDIwMDktMDgtMTcgIFBhdmVsIEZl
bGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGlt
b3RoeSBIYXRjaGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuY3BwIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuY3BwCmluZGV4IDI0ZGFmNTMuLjcyMDNlMTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKQEAgLTEyNzgsOCArMTI3OCwx
MyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJbWFnZURhdGE+IGNyZWF0ZUVtcHR5SW1hZ2VEYXRhKGNv
bnN0IEludFNpemUmIHNpemUpCiAgICAgcmV0dXJuIGRhdGEuZ2V0KCk7CiB9CiAKLVBhc3NSZWZQ
dHI8SW1hZ2VEYXRhPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZUltYWdlRGF0YShm
bG9hdCBzdywgZmxvYXQgc2gpIGNvbnN0CitQYXNzUmVmUHRyPEltYWdlRGF0YT4gQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpjcmVhdGVJbWFnZURhdGEoZmxvYXQgc3csIGZsb2F0IHNoLCBFeGNl
cHRpb25Db2RlJiBlYykgY29uc3QKIHsKKyAgICBlYyA9IDA7CisgICAgaWYgKCFpc2Zpbml0ZShz
dykgfHwgIWlzZmluaXRlKHNoKSkgeworICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwor
ICAgICAgICByZXR1cm4gMDsKKyAgICB9CiAgICAgRmxvYXRTaXplIHVuc2NhbGVkU2l6ZShzdywg
c2gpOwogICAgIEludFNpemUgc2NhbGVkU2l6ZSA9IG1fY2FudmFzLT5jb252ZXJ0TG9naWNhbFRv
RGV2aWNlKHVuc2NhbGVkU2l6ZSk7CiAgICAgaWYgKHNjYWxlZFNpemUud2lkdGgoKSA8IDEpCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5o
IGIvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAppbmRleCA5
NjQ4ZmZjLi43YzQ3ZTU1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5oCisrKyBiL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmgKQEAgLTE3OCw3ICsxNzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIFBhc3NSZWZQdHI8Q2FudmFzUGF0dGVybj4gY3JlYXRlUGF0dGVybihIVE1MSW1hZ2VF
bGVtZW50KiwgY29uc3QgU3RyaW5nJiByZXBldGl0aW9uVHlwZSwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgICAgICBQYXNzUmVmUHRyPENhbnZhc1BhdHRlcm4+IGNyZWF0ZVBhdHRlcm4oSFRNTENhbnZh
c0VsZW1lbnQqLCBjb25zdCBTdHJpbmcmIHJlcGV0aXRpb25UeXBlLCBFeGNlcHRpb25Db2RlJik7
CiAgICAgICAgIAotICAgICAgICBQYXNzUmVmUHRyPEltYWdlRGF0YT4gY3JlYXRlSW1hZ2VEYXRh
KGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpIGNvbnN0OworICAgICAgICBQYXNzUmVmUHRyPElt
YWdlRGF0YT4gY3JlYXRlSW1hZ2VEYXRhKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIEV4Y2Vw
dGlvbkNvZGUmKSBjb25zdDsKICAgICAgICAgUGFzc1JlZlB0cjxJbWFnZURhdGE+IGdldEltYWdl
RGF0YShmbG9hdCBzeCwgZmxvYXQgc3ksIGZsb2F0IHN3LCBmbG9hdCBzaCwgRXhjZXB0aW9uQ29k
ZSYpIGNvbnN0OwogICAgICAgICB2b2lkIHB1dEltYWdlRGF0YShJbWFnZURhdGEqLCBmbG9hdCBk
eCwgZmxvYXQgZHksIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAgICAgdm9pZCBwdXRJbWFnZURhdGEo
SW1hZ2VEYXRhKiwgZmxvYXQgZHgsIGZsb2F0IGR5LCBmbG9hdCBkaXJ0eVgsIGZsb2F0IGRpcnR5
WSwgZmxvYXQgZGlydHlXaWR0aCwgZmxvYXQgZGlydHlIZWlnaHQsIEV4Y2VwdGlvbkNvZGUmKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmlkbCBiL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbApp
bmRleCBhODZiNDdkLi4wNDI4MDU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCkBAIC0xMTMsNyArMTEzLDggQEAgbW9kdWxlIGh0bWwg
ewogICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0gY3VzdG9tIGZpbGxTdHlsZTsKICAgICAgICAg
CiAgICAgICAgIC8vIHBpeGVsIG1hbmlwdWxhdGlvbgotICAgICAgICBJbWFnZURhdGEgY3JlYXRl
SW1hZ2VEYXRhKGluIGZsb2F0IHN3LCBpbiBmbG9hdCBzaCk7CisgICAgICAgIEltYWdlRGF0YSBj
cmVhdGVJbWFnZURhdGEoaW4gZmxvYXQgc3csIGluIGZsb2F0IHNoKQorICAgICAgICAgICAgcmFp
c2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBJbWFnZURhdGEgZ2V0SW1hZ2VEYXRhKGluIGZs
b2F0IHN4LCBpbiBmbG9hdCBzeSwgaW4gZmxvYXQgc3csIGluIGZsb2F0IHNoKQogICAgICAgICAg
ICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgcHV0SW1hZ2VE
YXRhKC8qIGluIEltYWdlRGF0YSBpbWFnZWRhdGEsIGluIGZsb2F0IGR4LCBpbiBmbG9hdCBkeSBb
LCBpbiBmbG9hdCBkaXJ0eVgsIGluIGZsb2F0IGRpcnR5WSwgaW4gZmxvYXQgZGlydHlXaWR0aCwg
aW4gZmxvYXQgZGlydHlIZWlnaHRdICovKTsKLS0gCjEuNi4wLjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34974</attachid>
            <date>2009-08-17 10:11:53 -0700</date>
            <delta_ts>2009-08-17 17:06:01 -0700</delta_ts>
            <desc>patch + tests</desc>
            <filename>0001-2009-08-14-Benjamin-C-Meyer-benjamin.meyer-torchm.patch</filename>
            <type>text/plain</type>
            <size>10471</size>
            <attacher name="Benjamin Meyer">ben</attacher>
            
              <data encoding="base64">RnJvbSA5Njk2ODZmZjkzZWRkZjQ5ODYxZTRhNDY0Y2RmOTM5OTYxYjRiZWQ1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCZW5qYW1pbiBDIE1leWVyIDxiZW5qYW1pbi5tZXllckB0b3Jj
aG1vYmlsZS5jb20+CkRhdGU6IEZyaSwgMTQgQXVnIDIwMDkgMTk6MDM6MTkgLTA0MDAKU3ViamVj
dDogW1BBVENIXSAyMDA5LTA4LTE0ICBCZW5qYW1pbiBDIE1leWVyICA8YmVuamFtaW4ubWV5ZXJA
dG9yY2htb2JpbGUuY29tPgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAg
ICAgICAgRml4IGNyZWF0ZUltYWdlRGF0YSB0byByYWlzZSB0aGUgTk9UX1NVUFBPUlRFRF9FUlIg
ZXhjZXB0aW9uIHdoZW4KICAgICAgICBlaXRoZXIgb2YgdGhlIGFyZ3VtZW50cyBhcmUgbm90IGZp
bml0ZS4KCiAgICAgICAgQWNjb3JkaW5nIHRvCiAgICAgICAgIGh0dHA6Ly93d3cud2hhdHdnLm9y
Zy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3BpeGVsLW1hbmlwdWxhdGlvbjoKICAgICAg
ICAiSWYgYW55IG9mIHRoZSBhcmd1bWVudHMgdG8gY3JlYXRlSW1hZ2VEYXRhKCkgb3IgZ2V0SW1h
Z2VEYXRhKCkgYXJlCiAgICAgICAgIGluZmluaXRlIG9yIE5hTiwgb3IgaWYgdGhlIGNyZWF0ZUlt
YWdlRGF0YSgpICBtZXRob2QgaXMgaW52b2tlZCB3aXRoCiAgICAgICAgIG9ubHkgb25lIGFyZ3Vt
ZW50IGJ1dCB0aGF0IGFyZ3VtZW50IGlzIG51bGwsIHRoZSBtZXRob2QgbXVzdCBpbnN0ZWFkCiAg
ICAgICAgIHJhaXNlIGEgTk9UX1NVUFBPUlRFRF9FUlIgIGV4Y2VwdGlvbi4iCgogICAgICAgIFRl
c3Q6IGh0dHA6Ly9waGlsaXAuaHRtbDUub3JnL3Rlc3RzL2NhbnZhcy9zdWl0ZS90ZXN0cy8yZC5p
bWFnZURhdGEuY3JlYXRlLm5vbmZpbml0ZS5odG1sCgogICAgICAgICogV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgogICAgICAgIChXZWJDb3JlOjpDYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZUltYWdlRGF0YSk6CiAgICAgICAgKiBXZWJDb3Jl
L2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oOgogICAgICAgICogV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsOgoKICAgICAgICAqIExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy0yZC1pbWFnZURhdGEtY3JlYXRlLW5vbmZpbml0
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgogICAgICAgICogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
Y2FudmFzLTJkLWltYWdlRGF0YS1jcmVhdGUtbm9uZmluaXRlLmh0bWw6IEFkZGVkLgogICAgICAg
ICogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvcmVzb3VyY2VzL2NhbnZhcy0yZC1pbWFnZURhdGEt
Y3JlYXRlLW5vbmZpbml0ZS5qczogQWRkZWQuCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIwICsrKysrKysrKysrKysrKysrKysKIC4u
Lm52YXMtMmQtaW1hZ2VEYXRhLWNyZWF0ZS1ub25maW5pdGUtZXhwZWN0ZWQudHh0IHwgICAxNiAr
KysrKysrKysrKysrKysKIC4uLi9jYW52YXMtMmQtaW1hZ2VEYXRhLWNyZWF0ZS1ub25maW5pdGUu
aHRtbCAgICAgIHwgICAxMyArKysrKysrKysrKysKIC4uLi9jYW52YXMtMmQtaW1hZ2VEYXRhLWNy
ZWF0ZS1ub25maW5pdGUuanMgICAgICAgIHwgICAxNCArKysrKysrKysrKysrCiBXZWJDb3JlL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjEgKysrKysrKysr
KysrKysrKysrKysKIFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmNwcCAgIHwgICAgNyArKysrKy0KIFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmggICAgIHwgICAgMiArLQogV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaWRsICAgfCAgICAzICstCiA4IGZpbGVzIGNoYW5nZWQsIDkzIGluc2Vy
dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvY2FudmFzLTJkLWltYWdlRGF0YS1jcmVhdGUtbm9uZmluaXRlLWV4cGVjdGVk
LnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy0y
ZC1pbWFnZURhdGEtY3JlYXRlLW5vbmZpbml0ZS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvcmVzb3VyY2VzL2NhbnZhcy0yZC1pbWFnZURhdGEtY3JlYXRl
LW5vbmZpbml0ZS5qcwoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMzRlYWJhLi4zNDVlNjczIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjMgQEAKKzIwMDktMDgtMTcgIEJlbmphbWluIEMgTWV5ZXIgIDxiZW5qYW1pbi5tZXllckB0b3Jj
aG1vYmlsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRml4IGNyZWF0ZUltYWdlRGF0YSB0byByYWlzZSB0aGUgTk9UX1NVUFBPUlRFRF9FUlIg
ZXhjZXB0aW9uIHdoZW4KKyAgICAgICAgZWl0aGVyIG9mIHRoZSBhcmd1bWVudHMgYXJlIG5vdCBm
aW5pdGUuCisKKyAgICAgICAgQWNjb3JkaW5nIHRvCisgICAgICAgIGh0dHA6Ly93d3cud2hhdHdn
Lm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3BpeGVsLW1hbmlwdWxhdGlvbjoKKyAg
ICAgICAgIklmIGFueSBvZiB0aGUgYXJndW1lbnRzIHRvIGNyZWF0ZUltYWdlRGF0YSgpIG9yIGdl
dEltYWdlRGF0YSgpIGFyZQorICAgICAgICBpbmZpbml0ZSBvciBOYU4sIG9yIGlmIHRoZSBjcmVh
dGVJbWFnZURhdGEoKSAgbWV0aG9kIGlzIGludm9rZWQgd2l0aAorICAgICAgICBvbmx5IG9uZSBh
cmd1bWVudCBidXQgdGhhdCBhcmd1bWVudCBpcyBudWxsLCB0aGUgbWV0aG9kIG11c3QgaW5zdGVh
ZAorICAgICAgICByYWlzZSBhIE5PVF9TVVBQT1JURURfRVJSICBleGNlcHRpb24uIgorCisgICAg
ICAgIFRlc3Q6IGh0dHA6Ly9waGlsaXAuaHRtbDUub3JnL3Rlc3RzL2NhbnZhcy9zdWl0ZS90ZXN0
cy8yZC5pbWFnZURhdGEuY3JlYXRlLm5vbmZpbml0ZS5odG1sCisKKyAgICAgICAgKiBmYXN0L2Nh
bnZhcy9jYW52YXMtMmQtaW1hZ2VEYXRhLWNyZWF0ZS1ub25maW5pdGUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtMmQtaW1hZ2VEYXRhLWNyZWF0ZS1u
b25maW5pdGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvcmVzb3VyY2VzL2Nh
bnZhcy0yZC1pbWFnZURhdGEtY3JlYXRlLW5vbmZpbml0ZS5qczogQWRkZWQuCisKIDIwMDktMDgt
MTYgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52
YXMtMmQtaW1hZ2VEYXRhLWNyZWF0ZS1ub25maW5pdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9jYW52YXMvY2FudmFzLTJkLWltYWdlRGF0YS1jcmVhdGUtbm9uZmluaXRlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MGNhYzk3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLTJkLWltYWdlRGF0
YS1jcmVhdGUtbm9uZmluaXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitUZXN0IHRo
ZSBhcmd1bWVudCBib3VuZHMgb2YgY2FudmFzIGNyZWF0ZUltYWdlRGF0YS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgY3R4LmNyZWF0ZUltYWdlRGF0YShJbmZpbml0eSwg
SW5maW5pdHkpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBF
eGNlcHRpb24gOS4KK1BBU1MgY3R4LmNyZWF0ZUltYWdlRGF0YShJbmZpbml0eSwgMTApIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24gOS4KK1BB
U1MgY3R4LmNyZWF0ZUltYWdlRGF0YSgtSW5maW5pdHksIDEwKSB0aHJldyBleGNlcHRpb24gRXJy
b3I6IE5PVF9TVVBQT1JURURfRVJSOiBET00gRXhjZXB0aW9uIDkuCitQQVNTIGN0eC5jcmVhdGVJ
bWFnZURhdGEoMTAsIEluZmluaXR5KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5PVF9TVVBQT1JU
RURfRVJSOiBET00gRXhjZXB0aW9uIDkuCitQQVNTIGN0eC5jcmVhdGVJbWFnZURhdGEoMTAsIC1J
bmZpbml0eSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBOT1RfU1VQUE9SVEVEX0VSUjogRE9NIEV4
Y2VwdGlvbiA5LgorUEFTUyBjdHguY3JlYXRlSW1hZ2VEYXRhKE5hTiwgMTApIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24gOS4KK1BBU1MgY3R4
LmNyZWF0ZUltYWdlRGF0YSgxMCwgTmFOKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE5PVF9TVVBQ
T1JURURfRVJSOiBET00gRXhjZXB0aW9uIDkuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvY2FudmFzLTJkLWltYWdlRGF0YS1jcmVhdGUtbm9uZmluaXRlLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy9jYW52YXMtMmQtaW1hZ2VEYXRhLWNyZWF0ZS1ub25maW5pdGUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Mjc0MDkyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLTJkLWltYWdlRGF0YS1jcmVhdGUt
bm9uZmluaXRlLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPTYw
MCBoZWlnaHQ9MzAwPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYW52YXMtMmQtaW1hZ2VEYXRh
LWNyZWF0ZS1ub25maW5pdGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvcmVzb3VyY2VzL2NhbnZhcy0yZC1pbWFnZURhdGEtY3JlYXRl
LW5vbmZpbml0ZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3Jlc291cmNlcy9jYW52YXMt
MmQtaW1hZ2VEYXRhLWNyZWF0ZS1ub25maW5pdGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNzdiMDZiZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3Jlc291cmNlcy9jYW52YXMtMmQtaW1hZ2VEYXRhLWNyZWF0ZS1ub25maW5pdGUuanMK
QEAgLTAsMCArMSwxNCBAQAorZGVzY3JpcHRpb24oIlRlc3QgdGhlIGFyZ3VtZW50IGJvdW5kcyBv
ZiBjYW52YXMgY3JlYXRlSW1hZ2VEYXRhLiIpOworCit2YXIgY2FudmFzID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2NhbnZhcycpOwordmFyIGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcp
OworCitzaG91bGRUaHJvdygiY3R4LmNyZWF0ZUltYWdlRGF0YShJbmZpbml0eSwgSW5maW5pdHkp
IiwgJyJFcnJvcjogTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24gOSInKTsKK3Nob3Vs
ZFRocm93KCJjdHguY3JlYXRlSW1hZ2VEYXRhKEluZmluaXR5LCAxMCkiLCAnIkVycm9yOiBOT1Rf
U1VQUE9SVEVEX0VSUjogRE9NIEV4Y2VwdGlvbiA5IicpOworc2hvdWxkVGhyb3coImN0eC5jcmVh
dGVJbWFnZURhdGEoLUluZmluaXR5LCAxMCkiLCAnIkVycm9yOiBOT1RfU1VQUE9SVEVEX0VSUjog
RE9NIEV4Y2VwdGlvbiA5IicpOworc2hvdWxkVGhyb3coImN0eC5jcmVhdGVJbWFnZURhdGEoMTAs
IEluZmluaXR5KSIsICciRXJyb3I6IE5PVF9TVVBQT1JURURfRVJSOiBET00gRXhjZXB0aW9uIDki
Jyk7CitzaG91bGRUaHJvdygiY3R4LmNyZWF0ZUltYWdlRGF0YSgxMCwgLUluZmluaXR5KSIsICci
RXJyb3I6IE5PVF9TVVBQT1JURURfRVJSOiBET00gRXhjZXB0aW9uIDkiJyk7CitzaG91bGRUaHJv
dygiY3R4LmNyZWF0ZUltYWdlRGF0YShOYU4sIDEwKSIsICciRXJyb3I6IE5PVF9TVVBQT1JURURf
RVJSOiBET00gRXhjZXB0aW9uIDkiJyk7CitzaG91bGRUaHJvdygiY3R4LmNyZWF0ZUltYWdlRGF0
YSgxMCwgTmFOKSIsICciRXJyb3I6IE5PVF9TVVBQT1JURURfRVJSOiBET00gRXhjZXB0aW9uIDki
Jyk7CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0No
YW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNmNzAyMTMuLjc3MjgxYWUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjQgQEAKKzIwMDktMDgtMTcgIEJlbmphbWluIEMgTWV5ZXIgIDxiZW5qYW1pbi5tZXllckB0
b3JjaG1vYmlsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRml4IGNyZWF0ZUltYWdlRGF0YSB0byByYWlzZSB0aGUgTk9UX1NVUFBPUlRFRF9F
UlIgZXhjZXB0aW9uIHdoZW4KKyAgICAgICAgZWl0aGVyIG9mIHRoZSBhcmd1bWVudHMgYXJlIG5v
dCBmaW5pdGUuCisKKyAgICAgICAgQWNjb3JkaW5nIHRvCisgICAgICAgIGh0dHA6Ly93d3cud2hh
dHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3BpeGVsLW1hbmlwdWxhdGlvbjoK
KyAgICAgICAgIklmIGFueSBvZiB0aGUgYXJndW1lbnRzIHRvIGNyZWF0ZUltYWdlRGF0YSgpIG9y
IGdldEltYWdlRGF0YSgpIGFyZQorICAgICAgICBpbmZpbml0ZSBvciBOYU4sIG9yIGlmIHRoZSBj
cmVhdGVJbWFnZURhdGEoKSAgbWV0aG9kIGlzIGludm9rZWQgd2l0aAorICAgICAgICBvbmx5IG9u
ZSBhcmd1bWVudCBidXQgdGhhdCBhcmd1bWVudCBpcyBudWxsLCB0aGUgbWV0aG9kIG11c3QgaW5z
dGVhZAorICAgICAgICByYWlzZSBhIE5PVF9TVVBQT1JURURfRVJSICBleGNlcHRpb24uIgorCisg
ICAgICAgIFRlc3Q6IGh0dHA6Ly9waGlsaXAuaHRtbDUub3JnL3Rlc3RzL2NhbnZhcy9zdWl0ZS90
ZXN0cy8yZC5pbWFnZURhdGEuY3JlYXRlLm5vbmZpbml0ZS5odG1sCisKKyAgICAgICAgKiBodG1s
L2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpjcmVhdGVJbWFnZURhdGEpOgorICAgICAgICAqIGh0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oOgorICAgICAgICAqIGh0bWwvY2Fu
dmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGw6CisKIDIwMDktMDgtMTcgIFBhdmVsIEZl
bGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGlt
b3RoeSBIYXRjaGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuY3BwIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuY3BwCmluZGV4IDI0ZGFmNTMuLjcyMDNlMTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAorKysgYi9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKQEAgLTEyNzgsOCArMTI3OCwx
MyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJbWFnZURhdGE+IGNyZWF0ZUVtcHR5SW1hZ2VEYXRhKGNv
bnN0IEludFNpemUmIHNpemUpCiAgICAgcmV0dXJuIGRhdGEuZ2V0KCk7CiB9CiAKLVBhc3NSZWZQ
dHI8SW1hZ2VEYXRhPiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmNyZWF0ZUltYWdlRGF0YShm
bG9hdCBzdywgZmxvYXQgc2gpIGNvbnN0CitQYXNzUmVmUHRyPEltYWdlRGF0YT4gQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEOjpjcmVhdGVJbWFnZURhdGEoZmxvYXQgc3csIGZsb2F0IHNoLCBFeGNl
cHRpb25Db2RlJiBlYykgY29uc3QKIHsKKyAgICBlYyA9IDA7CisgICAgaWYgKCFpc2Zpbml0ZShz
dykgfHwgIWlzZmluaXRlKHNoKSkgeworICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwor
ICAgICAgICByZXR1cm4gMDsKKyAgICB9CiAgICAgRmxvYXRTaXplIHVuc2NhbGVkU2l6ZShzdywg
c2gpOwogICAgIEludFNpemUgc2NhbGVkU2l6ZSA9IG1fY2FudmFzLT5jb252ZXJ0TG9naWNhbFRv
RGV2aWNlKHVuc2NhbGVkU2l6ZSk7CiAgICAgaWYgKHNjYWxlZFNpemUud2lkdGgoKSA8IDEpCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5o
IGIvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaAppbmRleCA5
NjQ4ZmZjLi43YzQ3ZTU1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5oCisrKyBiL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmgKQEAgLTE3OCw3ICsxNzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIFBhc3NSZWZQdHI8Q2FudmFzUGF0dGVybj4gY3JlYXRlUGF0dGVybihIVE1MSW1hZ2VF
bGVtZW50KiwgY29uc3QgU3RyaW5nJiByZXBldGl0aW9uVHlwZSwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgICAgICBQYXNzUmVmUHRyPENhbnZhc1BhdHRlcm4+IGNyZWF0ZVBhdHRlcm4oSFRNTENhbnZh
c0VsZW1lbnQqLCBjb25zdCBTdHJpbmcmIHJlcGV0aXRpb25UeXBlLCBFeGNlcHRpb25Db2RlJik7
CiAgICAgICAgIAotICAgICAgICBQYXNzUmVmUHRyPEltYWdlRGF0YT4gY3JlYXRlSW1hZ2VEYXRh
KGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpIGNvbnN0OworICAgICAgICBQYXNzUmVmUHRyPElt
YWdlRGF0YT4gY3JlYXRlSW1hZ2VEYXRhKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQsIEV4Y2Vw
dGlvbkNvZGUmKSBjb25zdDsKICAgICAgICAgUGFzc1JlZlB0cjxJbWFnZURhdGE+IGdldEltYWdl
RGF0YShmbG9hdCBzeCwgZmxvYXQgc3ksIGZsb2F0IHN3LCBmbG9hdCBzaCwgRXhjZXB0aW9uQ29k
ZSYpIGNvbnN0OwogICAgICAgICB2b2lkIHB1dEltYWdlRGF0YShJbWFnZURhdGEqLCBmbG9hdCBk
eCwgZmxvYXQgZHksIEV4Y2VwdGlvbkNvZGUmKTsKICAgICAgICAgdm9pZCBwdXRJbWFnZURhdGEo
SW1hZ2VEYXRhKiwgZmxvYXQgZHgsIGZsb2F0IGR5LCBmbG9hdCBkaXJ0eVgsIGZsb2F0IGRpcnR5
WSwgZmxvYXQgZGlydHlXaWR0aCwgZmxvYXQgZGlydHlIZWlnaHQsIEV4Y2VwdGlvbkNvZGUmKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmlkbCBiL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbApp
bmRleCBhODZiNDdkLi4wNDI4MDU0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsCkBAIC0xMTMsNyArMTEzLDggQEAgbW9kdWxlIGh0bWwg
ewogICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0gY3VzdG9tIGZpbGxTdHlsZTsKICAgICAgICAg
CiAgICAgICAgIC8vIHBpeGVsIG1hbmlwdWxhdGlvbgotICAgICAgICBJbWFnZURhdGEgY3JlYXRl
SW1hZ2VEYXRhKGluIGZsb2F0IHN3LCBpbiBmbG9hdCBzaCk7CisgICAgICAgIEltYWdlRGF0YSBj
cmVhdGVJbWFnZURhdGEoaW4gZmxvYXQgc3csIGluIGZsb2F0IHNoKQorICAgICAgICAgICAgcmFp
c2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBJbWFnZURhdGEgZ2V0SW1hZ2VEYXRhKGluIGZs
b2F0IHN4LCBpbiBmbG9hdCBzeSwgaW4gZmxvYXQgc3csIGluIGZsb2F0IHNoKQogICAgICAgICAg
ICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgcHV0SW1hZ2VE
YXRhKC8qIGluIEltYWdlRGF0YSBpbWFnZWRhdGEsIGluIGZsb2F0IGR4LCBpbiBmbG9hdCBkeSBb
LCBpbiBmbG9hdCBkaXJ0eVgsIGluIGZsb2F0IGRpcnR5WSwgaW4gZmxvYXQgZGlydHlXaWR0aCwg
aW4gZmxvYXQgZGlydHlIZWlnaHRdICovKTsKLS0gCjEuNi4wLjQKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>