<?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>39826</bug_id>
          
          <creation_ts>2010-05-27 03:50:57 -0700</creation_ts>
          <short_desc>Reenable IDBDatabaseRequest&apos;s description attribute</short_desc>
          <delta_ts>2010-06-14 05:09:25 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Orlow">jorlow</reporter>
          <assigned_to name="Jeremy Orlow">jorlow</assigned_to>
          <cc>andreip</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>mjs</cc>
    
    <cc>mrowe</cc>
    
    <cc>steveblock</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>231211</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-27 03:50:57 -0700</bug_when>
    <thetext>Reenable IDBDatabaseRequest&apos;s description attribute</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231214</commentid>
    <comment_count>1</comment_count>
      <attachid>57217</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-27 03:59:23 -0700</bug_when>
    <thetext>Created attachment 57217
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233950</commentid>
    <comment_count>2</comment_count>
      <attachid>57217</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2010-06-03 15:23:33 -0700</bug_when>
    <thetext>Comment on attachment 57217
Patch

&gt; @@ -738,8 +739,8 @@ sub GenerateHeader
&gt; -            if ($attributeName eq &quot;id&quot; or $attributeName eq &quot;hash&quot;) {
&gt; -                # Special case attributes id and hash to be idName and hashName to avoid ObjC naming conflict.
&gt; +            if ($attributeName eq &quot;id&quot; or $attributeName eq &quot;hash&quot; or $attributeName eq &quot;description&quot;) {
&gt; +                # Special case some attributes (like id and hash) to have a &quot;Name&quot; prefix to avoid ObjC naming conflicts.
&gt;                  $attributeName .= &quot;Name&quot;;

s/(like id and hash)/(id, hash and description)/ ?
s/prefix/suffix/.

&gt; @@ -1155,8 +1156,8 @@ sub GenerateImplementation
&gt; -            if ($attributeName eq &quot;id&quot; or $attributeName eq &quot;hash&quot;) {
&gt; -                # Special case attributes id and hash to be idName and hashName to avoid ObjC naming conflict.
&gt; +            if ($attributeName eq &quot;id&quot; or $attributeName eq &quot;hash&quot; or $attributeName eq &quot;description&quot;) {
&gt; +                # Special case some attributes (like id and hash) to have a &quot;Name&quot; prefix to avoid ObjC naming conflicts.
&gt;                  $attributeInterfaceName .= &quot;Name&quot;;

same comment.

also, i think we should add a test for this to WebCore/bindings/scripts/test/TestObj.idl, and modify WebCore/bindings/scripts/test/ObjC/DOMTestObj.{h|mm} accordingly. you can run WebKitTools/Scripts/run-bindings-tests to test these changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233979</commentid>
    <comment_count>3</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-06-03 16:24:39 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 57217 [details])
&gt; &gt; @@ -738,8 +739,8 @@ sub GenerateHeader
&gt; &gt; -            if ($attributeName eq &quot;id&quot; or $attributeName eq &quot;hash&quot;) {
&gt; &gt; -                # Special case attributes id and hash to be idName and hashName to avoid ObjC naming conflict.
&gt; &gt; +            if ($attributeName eq &quot;id&quot; or $attributeName eq &quot;hash&quot; or $attributeName eq &quot;description&quot;) {
&gt; &gt; +                # Special case some attributes (like id and hash) to have a &quot;Name&quot; prefix to avoid ObjC naming conflicts.
&gt; &gt;                  $attributeName .= &quot;Name&quot;;
&gt; 
&gt; s/(like id and hash)/(id, hash and description)/ ?

I did this intentionally.  I feel like listing them all here is redundant, but I thought the comment had value and was most clear using examples.

&gt; s/prefix/suffix/.

Good catch.

&gt; &gt; @@ -1155,8 +1156,8 @@ sub GenerateImplementation
&gt; &gt; -            if ($attributeName eq &quot;id&quot; or $attributeName eq &quot;hash&quot;) {
&gt; &gt; -                # Special case attributes id and hash to be idName and hashName to avoid ObjC naming conflict.
&gt; &gt; +            if ($attributeName eq &quot;id&quot; or $attributeName eq &quot;hash&quot; or $attributeName eq &quot;description&quot;) {
&gt; &gt; +                # Special case some attributes (like id and hash) to have a &quot;Name&quot; prefix to avoid ObjC naming conflicts.
&gt; &gt;                  $attributeInterfaceName .= &quot;Name&quot;;
&gt; 
&gt; same comment.
&gt; 
&gt; also, i think we should add a test for this to WebCore/bindings/scripts/test/TestObj.idl, and modify WebCore/bindings/scripts/test/ObjC/DOMTestObj.{h|mm} accordingly. you can run WebKitTools/Scripts/run-bindings-tests to test these changes.

Good point.  Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234239</commentid>
    <comment_count>4</comment_count>
      <attachid>57884</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-06-04 08:57:50 -0700</bug_when>
    <thetext>Created attachment 57884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234243</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-04 09:02:09 -0700</bug_when>
    <thetext>Attachment 57884 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:499:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:508:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:517:  Extra space before ( in function call  [whitespace/parens] [4]
WebCore/bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:525:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 4 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235265</commentid>
    <comment_count>6</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-06-08 08:35:39 -0700</bug_when>
    <thetext>Ping?  Anyone?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237405</commentid>
    <comment_count>7</comment_count>
      <attachid>57884</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-12 18:53:49 -0700</bug_when>
    <thetext>Comment on attachment 57884
Patch

&gt; -            if ($attributeName eq &quot;id&quot; or $attributeName eq &quot;hash&quot;) {
&gt; -                # Special case attributes id and hash to be idName and hashName to avoid ObjC naming conflict.
&gt; +            if ($attributeName eq &quot;id&quot; or $attributeName eq &quot;hash&quot; or $attributeName eq &quot;description&quot;) {
&gt; +                # Special case some attributes (like id and hash) to have a &quot;Name&quot; suffix to avoid ObjC naming conflicts.

Seems like we should use a Perl function for this now that it&apos;s getting to be a larger number of names than just two.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237772</commentid>
    <comment_count>8</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-06-14 04:47:31 -0700</bug_when>
    <thetext>Since this has a r+(In reply to comment #7)
&gt; (From update of attachment 57884 [details])
&gt; &gt; -            if ($attributeName eq &quot;id&quot; or $attributeName eq &quot;hash&quot;) {
&gt; &gt; -                # Special case attributes id and hash to be idName and hashName to avoid ObjC naming conflict.
&gt; &gt; +            if ($attributeName eq &quot;id&quot; or $attributeName eq &quot;hash&quot; or $attributeName eq &quot;description&quot;) {
&gt; &gt; +                # Special case some attributes (like id and hash) to have a &quot;Name&quot; suffix to avoid ObjC naming conflicts.
&gt; 
&gt; Seems like we should use a Perl function for this now that it&apos;s getting to be a larger number of names than just two.

I&apos;ll do that in a follow up patch then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237777</commentid>
    <comment_count>9</comment_count>
      <attachid>57884</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-14 05:09:17 -0700</bug_when>
    <thetext>Comment on attachment 57884
Patch

Clearing flags on attachment: 57884

Committed r61112: &lt;http://trac.webkit.org/changeset/61112&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237778</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-06-14 05:09:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57217</attachid>
            <date>2010-05-27 03:59:23 -0700</date>
            <delta_ts>2010-06-04 08:57:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39826-20100527115921.patch</filename>
            <type>text/plain</type>
            <size>4088</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjlkODcxYTEwNmEwOTY5ODE3MTMyNjQ0ZmY0MDE0YmY5NTk0N2YwZC4uZjk4YzQxZTY3MmQ2MjQ0
NDYwMjljZmNjMWIyYjAzOTlhOWEwNjg3ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0wNS0yNyAgSmVy
ZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWVuYWJsZSBJREJEYXRhYmFzZVJlcXVlc3QncyBk
ZXNjcmlwdGlvbiBhdHRyaWJ1dGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM5ODI2CisKKyAgICAgICAgTGFzdCBuaWdodCBCZXRoIGNvbW1lbnRlZCBv
dXQgdGhlIGRlc2NyaXB0aW9uIGF0dHJpYnV0ZSBpbgorICAgICAgICBJREJEYXRhYmFzZVJlcXVl
c3QgYmVjYXVzZSBpdCB3YXMgY2F1c2luZyBwcm9ibGVtcyB3aXRoIHRoZQorICAgICAgICBvYmpl
Y3RpdmUgYyBiaW5kaW5ncy4gIFR1cm5zIG91dCB0aGF0IHRoaXMgaXMgdGhlIHNhbWUgYnVnIGFz
CisgICAgICAgIGluIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE5NDg2LiAgKFRo
YW5rcyBmb3IgdGhlCisgICAgICAgIHBvaW50ZXIsIE1hcmshKQorCisgICAgICAgIFRoZSBzb2x1
dGlvbiBpcyB0byBjaGFuZ2UgdGhlIG9iamVjdGl2ZSBDIGJpbmRpbmdzIGdlbmVyYXRvcgorICAg
ICAgICB0byBjaGFuZ2UgdGhlIG5hbWUgaW4gdGhlIGdlbmVyYXRlZCBjb2RlLiAgaWQgYW5kIGhh
c2ggYm90aAorICAgICAgICBqdXN0IGFwcGVuZGVkICJOYW1lIiB0byB0aGVtIGluIHRoZSBwYXN0
LiAgSSBjb3VsZG4ndCB0aGluaworICAgICAgICBvZiBhbnl0aGluZyBlbHNlIHBhcnRpY3VsYXJs
eSBiZXR0ZXIgdG8gYXBwZW5kLCBzbyBJIGp1c3QKKyAgICAgICAgd2VudCB3aXRoIG5hbWUgYXMg
d2VsbC4KKworICAgICAgICBUZXN0OiBidWlsZGluZyB0aGUgd29ybGQgd29ya3Mgb24gdGhlIGZp
cnN0IHRyeS4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMu
cG06CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsOgorCiAyMDEwLTA1
LTI2ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JPYmpDLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JP
YmpDLnBtCmluZGV4IGUwNmIyNzRjYjBjYmE1ZTNhNzcwMWM4OGViMzYxOGJjMmY1ZWJjZTUuLmVm
MDhhZTk4NDZhZTliMTM3NzE4ZTkwYjc4MDE4Zjk5OTI0Yjc1ZDkgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KQEAgLTUsNiArNSw3IEBACiAjIENv
cHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IDxhcEB3ZWJraXQub3JnPgogIyBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMDkgQ2FtZXJvbiBNY0Nvcm1hY2sgPGNhbUBt
Y2MuaWQuYXU+CisjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogIwogIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCiAjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC03MzgsOCArNzM5LDggQEAgc3ViIEdlbmVyYXRl
SGVhZGVyCiAgICAgICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQHskZGF0YU5vZGUtPmF0dHJp
YnV0ZXN9KSB7CiAgICAgICAgICAgICBteSAkYXR0cmlidXRlTmFtZSA9ICRhdHRyaWJ1dGUtPnNp
Z25hdHVyZS0+bmFtZTsKIAotICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGVOYW1lIGVxICJpZCIg
b3IgJGF0dHJpYnV0ZU5hbWUgZXEgImhhc2giKSB7Ci0gICAgICAgICAgICAgICAgIyBTcGVjaWFs
IGNhc2UgYXR0cmlidXRlcyBpZCBhbmQgaGFzaCB0byBiZSBpZE5hbWUgYW5kIGhhc2hOYW1lIHRv
IGF2b2lkIE9iakMgbmFtaW5nIGNvbmZsaWN0LgorICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGVO
YW1lIGVxICJpZCIgb3IgJGF0dHJpYnV0ZU5hbWUgZXEgImhhc2giIG9yICRhdHRyaWJ1dGVOYW1l
IGVxICJkZXNjcmlwdGlvbiIpIHsKKyAgICAgICAgICAgICAgICAjIFNwZWNpYWwgY2FzZSBzb21l
IGF0dHJpYnV0ZXMgKGxpa2UgaWQgYW5kIGhhc2gpIHRvIGhhdmUgYSAiTmFtZSIgcHJlZml4IHRv
IGF2b2lkIE9iakMgbmFtaW5nIGNvbmZsaWN0cy4KICAgICAgICAgICAgICAgICAkYXR0cmlidXRl
TmFtZSAuPSAiTmFtZSI7CiAgICAgICAgICAgICB9IGVsc2lmICgkYXR0cmlidXRlTmFtZSBlcSAi
ZnJhbWUiKSB7CiAgICAgICAgICAgICAgICAgIyBTcGVjaWFsIGNhc2UgYXR0cmlidXRlIGZyYW1l
IHRvIGJlIGZyYW1lQm9yZGVycy4KQEAgLTExNTUsOCArMTE1Niw4IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAgICAgICAgICAgICBteSAkYXR0cmlidXRlQ2xhc3NOYW1lID0gR2V0Q2xh
c3NOYW1lKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZSk7CiAKICAgICAgICAgICAgIG15ICRh
dHRyaWJ1dGVJbnRlcmZhY2VOYW1lID0gJGF0dHJpYnV0ZU5hbWU7Ci0gICAgICAgICAgICBpZiAo
JGF0dHJpYnV0ZU5hbWUgZXEgImlkIiBvciAkYXR0cmlidXRlTmFtZSBlcSAiaGFzaCIpIHsKLSAg
ICAgICAgICAgICAgICAjIFNwZWNpYWwgY2FzZSBhdHRyaWJ1dGVzIGlkIGFuZCBoYXNoIHRvIGJl
IGlkTmFtZSBhbmQgaGFzaE5hbWUgdG8gYXZvaWQgT2JqQyBuYW1pbmcgY29uZmxpY3QuCisgICAg
ICAgICAgICBpZiAoJGF0dHJpYnV0ZU5hbWUgZXEgImlkIiBvciAkYXR0cmlidXRlTmFtZSBlcSAi
aGFzaCIgb3IgJGF0dHJpYnV0ZU5hbWUgZXEgImRlc2NyaXB0aW9uIikgeworICAgICAgICAgICAg
ICAgICMgU3BlY2lhbCBjYXNlIHNvbWUgYXR0cmlidXRlcyAobGlrZSBpZCBhbmQgaGFzaCkgdG8g
aGF2ZSBhICJOYW1lIiBwcmVmaXggdG8gYXZvaWQgT2JqQyBuYW1pbmcgY29uZmxpY3RzLgogICAg
ICAgICAgICAgICAgICRhdHRyaWJ1dGVJbnRlcmZhY2VOYW1lIC49ICJOYW1lIjsKICAgICAgICAg
ICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGVOYW1lIGVxICJmcmFtZSIpIHsKICAgICAgICAgICAgICAg
ICAjIFNwZWNpYWwgY2FzZSBhdHRyaWJ1dGUgZnJhbWUgdG8gYmUgZnJhbWVCb3JkZXJzLgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5pZGwgYi9XZWJDb3Jl
L3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmlkbAppbmRleCA5YjUxODIwZDBhYTQzZGE0MzQ3
M2VmZGI0Njk4OWExNjhiMTZiNDc4Li4yMTFhYzMzODVhOGExMjVhNTM1N2NmMWMyY2Q5NzQ5ZTg0
MzBjOWE4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0Lmlk
bAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmlkbApAQCAtMzMsNyAr
MzMsNyBAQCBtb2R1bGUgc3RvcmFnZSB7CiAgICAgICAgIC8vIEZJWE1FOiBDb21wbGV0ZSB0aGlz
IGZpbGUuCiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwotICAg
ICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRlc2NyaXB0aW9uOworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGRlc2NyaXB0aW9uOwogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZlcnNpb247CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmdMaXN0IG9iamVjdFN0b3JlczsKICAgICB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57884</attachid>
            <date>2010-06-04 08:57:50 -0700</date>
            <delta_ts>2010-06-14 05:09:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39826-20100604165748.patch</filename>
            <type>text/plain</type>
            <size>23223</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4YzUzOWY3ODFhODhmOGI0OTRhNWE3ZDQxMzJhY2M2YWQyMGQwYWJmLi5kNWYzZTBm
YmUxZjBlMDk3ZTQ0MTUyM2RiNzIzYTA1YjViMmM5Y2YzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTAtMDYtMDQgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVlbmFibGUgSURCRGF0
YWJhc2VSZXF1ZXN0J3MgZGVzY3JpcHRpb24gYXR0cmlidXRlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTgyNgorCisgICAgICAgIEV4aXN0aW5nIHRl
c3Qgbm93IGZpeGVkLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaWRiLWRhdGFiYXNl
LXJlcXVlc3QtZXhwZWN0ZWQudHh0OgorCiAyMDEwLTA2LTAzICBTaW1vbiBIYXVzbWFubiAgPHNp
bW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQ6IEFkZCBUcmFu
c2Zvcm1BY3Rpb25FdmVudCB0byB0aGUgd2luZG93IG9iamVjdCB0ZXN0cywgYWZ0ZXIgcjYwNjE0
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaWRiLWRhdGFiYXNl
LXJlcXVlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaWRi
LWRhdGFiYXNlLXJlcXVlc3QtZXhwZWN0ZWQudHh0CmluZGV4IDcwZWMyNTJmYzAxNGM3YmYzNTFm
NjgwYjBlZDQwMmQ4NGU5ZjM4YzguLjI2NTFkZDhkOTA1NTI5MzFlMDEwNDMyZjExNGJiZGY0OTVj
NTY4NzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2lkYi1kYXRh
YmFzZS1yZXF1ZXN0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9pZGItZGF0YWJhc2UtcmVxdWVzdC1leHBlY3RlZC50eHQKQEAgLTI0LDcgKzI0LDcgQEAg
UEFTUyBldmVudC50YXJnZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQogCiBkYiA9
IGV2ZW50LnJlc3VsdAogUEFTUyBkYi5uYW1lIGlzICJuYW1lIgotRkFJTCBkYi5kZXNjcmlwdGlv
biBzaG91bGQgYmUgZGVzY3JpcHRpb24gKG9mIHR5cGUgc3RyaW5nKS4gV2FzIHVuZGVmaW5lZCAo
b2YgdHlwZSB1bmRlZmluZWQpLgorUEFTUyBkYi5kZXNjcmlwdGlvbiBpcyAiZGVzY3JpcHRpb24i
CiBQQVNTIGRiLnZlcnNpb24gaXMgIiIKIFBBU1MgZGIub2JqZWN0U3RvcmVzIGlzIFtdCiBQQVNT
IGRiLm9iamVjdFN0b3Jlcy5sZW5ndGggaXMgMApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxMDU3N2JlODI4YWZhYzZlZTRiOTRhNDZmNTI5
Y2UxM2QxOGY1NTRmLi40YzEzN2NiYmI5ZDQyN2U3MmYxZjkzYTBjYjhmMTk3OWY3Zjg0MjU2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDU3IEBACisyMDEwLTA2LTA0ICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
ZW5hYmxlIElEQkRhdGFiYXNlUmVxdWVzdCdzIGRlc2NyaXB0aW9uIGF0dHJpYnV0ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk4MjYKKworICAgICAg
ICBPbiB0aGUgMjZ0aCwgQmV0aCBjb21tZW50ZWQgb3V0IHRoZSBkZXNjcmlwdGlvbiBhdHRyaWJ1
dGUgaW4KKyAgICAgICAgSURCRGF0YWJhc2VSZXF1ZXN0IGJlY2F1c2UgaXQgd2FzIGNhdXNpbmcg
cHJvYmxlbXMgd2l0aCB0aGUKKyAgICAgICAgb2JqZWN0aXZlIGMgYmluZGluZ3MuICBUdXJucyBv
dXQgdGhhdCB0aGlzIGlzIHRoZSBzYW1lIGJ1ZyBhcworICAgICAgICBpbiBodHRwOi8vdHJhYy53
ZWJraXQub3JnL2NoYW5nZXNldC8xOTQ4Ni4gIChUaGFua3MgZm9yIHRoZQorICAgICAgICBwb2lu
dGVyLCBNYXJrISkKKyAKKyAgICAgICAgVGhlIHNvbHV0aW9uIGlzIHRvIGNoYW5nZSB0aGUgb2Jq
ZWN0aXZlIEMgYmluZGluZ3MgZ2VuZXJhdG9yCisgICAgICAgIHRvIGNoYW5nZSB0aGUgbmFtZSBp
biB0aGUgZ2VuZXJhdGVkIGNvZGUuICBpZCBhbmQgaGFzaCBib3RoCisgICAgICAgIGp1c3QgYXBw
ZW5kZWQgIk5hbWUiIHRvIHRoZW0gaW4gdGhlIHBhc3QuICBJIGNvdWxkbid0IHRoaW5rCisgICAg
ICAgIG9mIGFueXRoaW5nIGVsc2UgcGFydGljdWxhcmx5IGJldHRlciB0byBhcHBlbmQsIHNvIEkg
anVzdAorICAgICAgICB3ZW50IHdpdGggbmFtZSBhcyB3ZWxsLgorCisgICAgICAgIFRlc3Q6IGJ1
aWxkaW5nIHRoZSB3b3JsZCB3b3JrcyBvbiB0aGUgZmlyc3QgdHJ5LiAgTGF5b3V0CisgICAgICAg
ICAgICAgIHRlc3QgdmVyaWZpZXMgZGVzY3JpcHRpb24gd29ya3MgYWdhaW4uCisKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwOgorICAgICAgICAo
d2Via2l0X2RvbV90ZXN0X29ial9nZXRfZGVzY3JpcHRpb24pOgorICAgICAgICAod2Via2l0X2Rv
bV90ZXN0X29ial9nZXRfaWQpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9zZXRfaWQp
OgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9nZXRfaGFzaCk6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9wcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rf
b2JqX2dldF9wcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2NsYXNzX2lu
aXQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRl
c3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpEZXNj
cmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpJZCk6CisgICAgICAgIChXZWJD
b3JlOjpqc1Rlc3RPYmpIYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iaklkKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmg6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW06CisgICAgICAgICgtW0RPTVRl
c3RPYmogZGVzY3JpcHRpb25OYW1lXSk6CisgICAgICAgICgtW0RPTVRlc3RPYmogaWROYW1lXSk6
CisgICAgICAgICgtW0RPTVRlc3RPYmogc2V0SWROYW1lOl0pOgorICAgICAgICAoLVtET01UZXN0
T2JqIGhhc2hOYW1lXSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmou
aWRsOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9iakludGVybmFsOjpkZXNjcmlwdGlvbkF0dHJHZXR0ZXIp
OgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9iakludGVybmFsOjppZEF0dHJHZXR0ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6VGVzdE9iakludGVybmFsOjppZEF0dHJTZXR0ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6VGVzdE9iakludGVybmFsOjpoYXNoQXR0ckdldHRlcik6CisgICAgICAgIChXZWJD
b3JlOjopOgorICAgICAgICAqIHN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmlkbDoKKwogMjAx
MC0wNi0wMyAgS2ltIEdyw7ZuaG9sbSAgPGtpbS4xLmdyb25ob2xtQG5va2lhLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQppbmRleCA4OWRhNDhkNzQzMDUwYThiN2NkNjFhY2Y0
NzY3ZTA5ODRmZmRkNDcyLi5kYWVhZDcyMDFkZDQ4NDdmMDAyZDRhMzVlMTc3NTcwNGFkZTc3ZDAz
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMu
cG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCkBA
IC01LDYgKzUsNyBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiA8
YXBAd2Via2l0Lm9yZz4KICMgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChDKSAyMDA5IENhbWVy
b24gTWNDb3JtYWNrIDxjYW1AbWNjLmlkLmF1PgorIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4KICMKICMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNzQwLDggKzc0MSw4IEBAIHN1YiBHZW5lcmF0ZUhl
YWRlcgogICAgICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEB7JGRhdGFOb2RlLT5hdHRyaWJ1
dGVzfSkgewogICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZU5hbWUgPSAkYXR0cmlidXRlLT5zaWdu
YXR1cmUtPm5hbWU7CiAKLSAgICAgICAgICAgIGlmICgkYXR0cmlidXRlTmFtZSBlcSAiaWQiIG9y
ICRhdHRyaWJ1dGVOYW1lIGVxICJoYXNoIikgewotICAgICAgICAgICAgICAgICMgU3BlY2lhbCBj
YXNlIGF0dHJpYnV0ZXMgaWQgYW5kIGhhc2ggdG8gYmUgaWROYW1lIGFuZCBoYXNoTmFtZSB0byBh
dm9pZCBPYmpDIG5hbWluZyBjb25mbGljdC4KKyAgICAgICAgICAgIGlmICgkYXR0cmlidXRlTmFt
ZSBlcSAiaWQiIG9yICRhdHRyaWJ1dGVOYW1lIGVxICJoYXNoIiBvciAkYXR0cmlidXRlTmFtZSBl
cSAiZGVzY3JpcHRpb24iKSB7CisgICAgICAgICAgICAgICAgIyBTcGVjaWFsIGNhc2Ugc29tZSBh
dHRyaWJ1dGVzIChsaWtlIGlkIGFuZCBoYXNoKSB0byBoYXZlIGEgIk5hbWUiIHN1ZmZpeCB0byBh
dm9pZCBPYmpDIG5hbWluZyBjb25mbGljdHMuCiAgICAgICAgICAgICAgICAgJGF0dHJpYnV0ZU5h
bWUgLj0gIk5hbWUiOwogICAgICAgICAgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZU5hbWUgZXEgImZy
YW1lIikgewogICAgICAgICAgICAgICAgICMgU3BlY2lhbCBjYXNlIGF0dHJpYnV0ZSBmcmFtZSB0
byBiZSBmcmFtZUJvcmRlcnMuCkBAIC0xMTU3LDggKzExNTgsOCBAQCBzdWIgR2VuZXJhdGVJbXBs
ZW1lbnRhdGlvbgogICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZUNsYXNzTmFtZSA9IEdldENsYXNz
TmFtZSgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUpOwogCiAgICAgICAgICAgICBteSAkYXR0
cmlidXRlSW50ZXJmYWNlTmFtZSA9ICRhdHRyaWJ1dGVOYW1lOwotICAgICAgICAgICAgaWYgKCRh
dHRyaWJ1dGVOYW1lIGVxICJpZCIgb3IgJGF0dHJpYnV0ZU5hbWUgZXEgImhhc2giKSB7Ci0gICAg
ICAgICAgICAgICAgIyBTcGVjaWFsIGNhc2UgYXR0cmlidXRlcyBpZCBhbmQgaGFzaCB0byBiZSBp
ZE5hbWUgYW5kIGhhc2hOYW1lIHRvIGF2b2lkIE9iakMgbmFtaW5nIGNvbmZsaWN0LgorICAgICAg
ICAgICAgaWYgKCRhdHRyaWJ1dGVOYW1lIGVxICJpZCIgb3IgJGF0dHJpYnV0ZU5hbWUgZXEgImhh
c2giIG9yICRhdHRyaWJ1dGVOYW1lIGVxICJkZXNjcmlwdGlvbiIpIHsKKyAgICAgICAgICAgICAg
ICAjIFNwZWNpYWwgY2FzZSBzb21lIGF0dHJpYnV0ZXMgKGxpa2UgaWQgYW5kIGhhc2gpIHRvIGhh
dmUgYSAiTmFtZSIgc3VmZml4IHRvIGF2b2lkIE9iakMgbmFtaW5nIGNvbmZsaWN0cy4KICAgICAg
ICAgICAgICAgICAkYXR0cmlidXRlSW50ZXJmYWNlTmFtZSAuPSAiTmFtZSI7CiAgICAgICAgICAg
ICB9IGVsc2lmICgkYXR0cmlidXRlTmFtZSBlcSAiZnJhbWUiKSB7CiAgICAgICAgICAgICAgICAg
IyBTcGVjaWFsIGNhc2UgYXR0cmlidXRlIGZyYW1lIHRvIGJlIGZyYW1lQm9yZGVycy4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVz
dE9iai5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERP
TVRlc3RPYmouY3BwCmluZGV4IDE2NTBlOGFjNTMzZTBiNGFkZDAzODc0MjA2NmFhY2Q4MDNiYmI3
ZTguLjI5ZDM5NGRkYWZmM2ExMWRiYzBhMmVjZmNhZWE4ODI2OTk2MmZlNjQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0T2JqLmNwcApAQCAtNDkzLDYgKzQ5Myw0MSBAQCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9z
Y3JpcHRfc3RyaW5nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKICAgICByZXR1cm4gcmVz
OwogfQogCitnbG9uZword2Via2l0X2RvbV90ZXN0X29ial9nZXRfZGVzY3JpcHRpb24oV2ViS2l0
RE9NVGVzdE9iaiogc2VsZikKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoc2VsZiwgMCk7
CisgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAg
Z2xvbmcgcmVzID0gaXRlbS0+ZGVzY3JpcHRpb24oKTsKKyAgICByZXR1cm4gcmVzOworfQorCitn
bG9uZword2Via2l0X2RvbV90ZXN0X29ial9nZXRfaWQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikK
K3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCAoc2VsZiwgMCk7CisgICAgV2ViQ29yZTo6VGVz
dE9iaiAqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ2xvbmcgcmVzID0gaXRlbS0+
aWQoKTsKKyAgICByZXR1cm4gcmVzOworfQorCit2b2lkCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3Nl
dF9pZChXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1ZSkKK3sKKyAgICBnX3JldHVy
bl9pZl9mYWlsIChzZWxmKTsKKyAgICBXZWJDb3JlOjpUZXN0T2JqICogaXRlbSA9IFdlYktpdDo6
Y29yZShzZWxmKTsKKyAgICBpdGVtLT5zZXRJZCh2YWx1ZSk7Cit9CisKK2djaGFyKiAKK3dlYmtp
dF9kb21fdGVzdF9vYmpfZ2V0X2hhc2goV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKK3sKKyAgICBn
X3JldHVybl92YWxfaWZfZmFpbCAoc2VsZiwgMCk7CisgICAgV2ViQ29yZTo6VGVzdE9iaiAqIGl0
ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ2NoYXIqICByZXMgPSBjb252ZXJ0VG9VVEY4
U3RyaW5nKGl0ZW0tPmhhc2goKSk7CisgICAgcmV0dXJuIHJlczsKK30KKwogCiBHX0RFRklORV9U
WVBFKFdlYktpdERPTVRlc3RPYmosIHdlYmtpdF9kb21fdGVzdF9vYmosIFdFQktJVF9UWVBFX0RP
TV9PQkpFQ1QpCiAKQEAgLTUyNCw2ICs1NTksOSBAQCBlbnVtIHsKICAgICBQUk9QX0FUVFJfV0lU
SF9HRVRURVJfRVhDRVBUSU9OLAogICAgIFBST1BfQ1VTVE9NX0FUVFIsCiAgICAgUFJPUF9TQ1JJ
UFRfU1RSSU5HX0FUVFIsCisgICAgUFJPUF9ERVNDUklQVElPTiwKKyAgICBQUk9QX0lELAorICAg
IFBST1BfSEFTSCwKIH07CiAKIApAQCAtNTgwLDYgKzYxOCwxMSBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3Bf
aWQsIGNvbgogICAgICAgICBjb3JlU2VsZi0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oKGdf
dmFsdWVfZ2V0X2xvbmcodmFsdWUpKSwgZWMpOwogICAgICAgICBicmVhazsKICAgICB9CisgICAg
Y2FzZSBQUk9QX0lEOgorICAgIHsKKyAgICAgICAgY29yZVNlbGYtPnNldElkKChnX3ZhbHVlX2dl
dF9sb25nKHZhbHVlKSkpOworICAgICAgICBicmVhazsKKyAgICB9CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwg
cHNwZWMpOwogICAgICAgICBicmVhazsKQEAgLTY1NSw2ICs2OTgsMjEgQEAgc3RhdGljIHZvaWQg
d2Via2l0X2RvbV90ZXN0X29ial9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBw
cm9wX2lkLCBHVmEKICAgICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgY29udmVydFRv
VVRGOFN0cmluZyhjb3JlU2VsZi0+c2NyaXB0U3RyaW5nQXR0cigpKSk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KKyAgICBjYXNlIFBST1BfREVTQ1JJUFRJT046CisgICAgeworICAgICAgICBnX3Zh
bHVlX3NldF9sb25nKHZhbHVlLCBjb3JlU2VsZi0+ZGVzY3JpcHRpb24oKSk7CisgICAgICAgIGJy
ZWFrOworICAgIH0KKyAgICBjYXNlIFBST1BfSUQ6CisgICAgeworICAgICAgICBnX3ZhbHVlX3Nl
dF9sb25nKHZhbHVlLCBjb3JlU2VsZi0+aWQoKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAg
ICBjYXNlIFBST1BfSEFTSDoKKyAgICB7CisgICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFs
dWUsIGNvbnZlcnRUb1VURjhTdHJpbmcoY29yZVNlbGYtPmhhc2goKSkpOworICAgICAgICBicmVh
azsKKyAgICB9CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BS
T1BFUlRZX0lEKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOwogICAgICAgICBicmVhazsKQEAgLTc2
Nyw2ICs4MjUsMzEgQEAgR19NQVhMT05HLCAvKiBtYXggKi8KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlYWQtb25seSAgZ2NoYXIq
ICBUZXN0T2JqLnNjcmlwdC1zdHJpbmctYXR0ciIsIC8qIGxvbmdlciAtIGNvdWxkIGRvIHdpdGgg
c29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIiwgLyogZGVmYXVsdCAqLwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJL
SVRfUEFSQU1fUkVBREFCTEUpKTsKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5
KGdvYmplY3RDbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBST1Bf
REVTQ1JJUFRJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFt
X3NwZWNfbG9uZygiZGVzY3JpcHRpb24iLCAvKiBuYW1lICovCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X29ial9kZXNjcmlw
dGlvbiIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICovCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWFkLW9ubHkgIGdsb25nIFRlc3RP
YmouZGVzY3JpcHRpb24iLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9j
IHN0dWZmIGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR19NSU5MT05HLCAvKiBtaW4gKi8KK0dfTUFYTE9ORywgLyogbWF4
ICovCiswLCAvKiBkZWZhdWx0ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworICAgIGdf
b2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9JRCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19sb25nKCJpZCIsIC8qIG5hbWUgKi8KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3Rf
b2JqX2lkIiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlYWQtd3JpdGUgIGdsb25nIFRl
c3RPYmouaWQiLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9jIHN0dWZm
IGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR19NSU5MT05HLCAvKiBtaW4gKi8KK0dfTUFYTE9ORywgLyogbWF4ICovCisw
LCAvKiBkZWZhdWx0ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKKyAgICBnX29iamVj
dF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFBST1BfSEFTSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoImhhc2giLCAvKiBuYW1lICovCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0
X29ial9oYXNoIiwgLyogc2hvcnQgZGVzY3JpcHRpb24gKi8KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlYWQtb25seSAgZ2NoYXIq
ICBUZXN0T2JqLmhhc2giLCAvKiBsb25nZXIgLSBjb3VsZCBkbyB3aXRoIHNvbWUgZXh0cmEgZG9j
IHN0dWZmIGhlcmUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIiIsIC8qIGRlZmF1bHQgKi8KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURB
QkxFKSk7CiAKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0T2JqLmggYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaAppbmRleCA3MTVmZDIyNWNmYzI3NzJkODQ2MjA3
Y2M1NzA0YTBjODg0ZTgwMDExLi44YTJhNDE3ZGRlZWI1MGQ5YjdlNDc4OWVjNjg1ZWQ5MmYzMzE4
YTBkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dl
YktpdERPTVRlc3RPYmouaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2Jq
ZWN0L1dlYktpdERPTVRlc3RPYmouaApAQCAtMTc4LDYgKzE3OCwxOCBAQCB3ZWJraXRfZG9tX3Rl
c3Rfb2JqX3NldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBz
ZWxmLCBnbG9uZwogV0VCS0lUX0FQSSBnY2hhciogCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9z
Y3JpcHRfc3RyaW5nX2F0dHIoV2ViS2l0RE9NVGVzdE9iaiogc2VsZik7CiAKK1dFQktJVF9BUEkg
Z2xvbmcKK3dlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2Rlc2NyaXB0aW9uKFdlYktpdERPTVRlc3RP
YmoqIHNlbGYpOworCitXRUJLSVRfQVBJIGdsb25nCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9p
ZChXZWJLaXRET01UZXN0T2JqKiBzZWxmKTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9t
X3Rlc3Rfb2JqX3NldF9pZChXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1ZSk7CisK
K1dFQktJVF9BUEkgZ2NoYXIqIAord2Via2l0X2RvbV90ZXN0X29ial9nZXRfaGFzaChXZWJLaXRE
T01UZXN0T2JqKiBzZWxmKTsKKwogR19FTkRfREVDTFMKIAogI2VuZGlmIC8qIFdlYktpdERPTVRl
c3RPYmpfaCAqLwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5jcHAKaW5kZXggODE5MWMxYjAzMTAyNjI0ZjhiYzM1YmJkYmUxNmVjOGVhNDcyOWQzMy4uMjhl
OTc2MjYxZDIzNzkyNTc2ZmUzMzgyYzE0M2E0ZWM1OGY5YTdiZSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC00Niw3ICs0Niw3IEBAIEFT
U0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNUZXN0T2JqKTsKICNkZWZpbmUgVEhVTktfR0VORVJB
VE9SKGdlbmVyYXRvcikKICNlbmRpZgogCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNU
ZXN0T2JqVGFibGVWYWx1ZXNbMTVdID0KK3N0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rl
c3RPYmpUYWJsZVZhbHVlc1sxOF0gPQogewogICAgIHsgInJlYWRPbmx5SW50QXR0ciIsIERvbnRE
ZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWFkT25seUludEF0dHIpLCAoaW50cHRyX3QpMCBUSFVOS19H
RU5FUkFUT1IoMCkgfSwKICAgICB7ICJyZWFkT25seVN0cmluZ0F0dHIiLCBEb250RGVsZXRlIHwg
UmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVu
Yz4oanNUZXN0T2JqUmVhZE9ubHlTdHJpbmdBdHRyKSwgKGludHB0cl90KTAgVEhVTktfR0VORVJB
VE9SKDApIH0sCkBAIC02MSwxMiArNjEsMTUgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVl
IEpTVGVzdE9ialRhYmxlVmFsdWVzWzE1XSA9CiAgICAgeyAiYXR0cldpdGhHZXR0ZXJFeGNlcHRp
b24iLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKSwgKGludHB0cl90KXNl
dEpTVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uIFRIVU5LX0dFTkVSQVRPUigwKSB9LAog
ICAgIHsgImN1c3RvbUF0dHIiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakN1c3RvbUF0dHIpLCAoaW50cHRyX3Qp
c2V0SlNUZXN0T2JqQ3VzdG9tQXR0ciBUSFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7ICJzY3Jp
cHRTdHJpbmdBdHRyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nh
c3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9ialNjcmlwdFN0cmluZ0F0dHIp
LCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgfSwKKyAgICB7ICJkZXNjcmlwdGlvbiIs
IERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpEZXNjcmlwdGlvbiksIChpbnRwdHJfdCkwIFRIVU5L
X0dFTkVSQVRPUigwKSB9LAorICAgIHsgImlkIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpJZCksIChpbnRwdHJf
dClzZXRKU1Rlc3RPYmpJZCBUSFVOS19HRU5FUkFUT1IoMCkgfSwKKyAgICB7ICJoYXNoIiwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakhhc2gpLCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1Io
MCkgfSwKICAgICB7ICJjb25zdHJ1Y3RvciIsIERvbnRFbnVtIHwgUmVhZE9ubHksIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ29uc3Ry
dWN0b3IpLCAoaW50cHRyX3QpMCBUSFVOS19HRU5FUkFUT1IoMCkgfSwKICAgICB7IDAsIDAsIDAs
IDAgVEhVTktfR0VORVJBVE9SKDApIH0KIH07CiAKICN1bmRlZiBUSFVOS19HRU5FUkFUT1IKLXN0
YXRpYyBKU0NfQ09OU1RfSEFTSFRBQkxFIEhhc2hUYWJsZSBKU1Rlc3RPYmpUYWJsZSA9IHsgMzQs
IDMxLCBKU1Rlc3RPYmpUYWJsZVZhbHVlcywgMCB9Oworc3RhdGljIEpTQ19DT05TVF9IQVNIVEFC
TEUgSGFzaFRhYmxlIEpTVGVzdE9ialRhYmxlID0geyA2NSwgNjMsIEpTVGVzdE9ialRhYmxlVmFs
dWVzLCAwIH07CiAvKiBIYXNoIHRhYmxlIGZvciBjb25zdHJ1Y3RvciAqLwogI2lmIEVOQUJMRShK
SVQpCiAjZGVmaW5lIFRIVU5LX0dFTkVSQVRPUihnZW5lcmF0b3IpICwgZ2VuZXJhdG9yCkBAIC0z
MTYsNiArMzE5LDMzIEBAIEpTVmFsdWUganNUZXN0T2JqU2NyaXB0U3RyaW5nQXR0cihFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50CiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAorSlNWYWx1ZSBqc1Rlc3RPYmpEZXNjcmlwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQoreworICAgIEpTVGVzdE9iaiogY2Fz
dGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7Cisg
ICAgVU5VU0VEX1BBUkFNKGV4ZWMpOworICAgIFRlc3RPYmoqIGltcCA9IHN0YXRpY19jYXN0PFRl
c3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNOdW1i
ZXIoZXhlYywgaW1wLT5kZXNjcmlwdGlvbigpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitK
U1ZhbHVlIGpzVGVzdE9iaklkKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29u
c3QgSWRlbnRpZmllciYpCit7CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nh
c3Q8SlNUZXN0T2JqKj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKKyAgICBVTlVTRURfUEFSQU0oZXhl
Yyk7CisgICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMt
PmltcGwoKSk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihleGVjLCBpbXAtPmlkKCkp
OworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0pTVmFsdWUganNUZXN0T2JqSGFzaChFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIGNvbnN0IElkZW50aWZpZXImKQoreworICAgIEpT
VGVzdE9iaiogY2FzdGVkVGhpcyA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNs
b3RCYXNlKSk7CisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOworICAgIFRlc3RPYmoqIGltcCA9IHN0
YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIEpTVmFsdWUgcmVz
dWx0ID0ganNTdHJpbmcoZXhlYywgaW1wLT5oYXNoKCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKIEpTVmFsdWUganNUZXN0T2JqQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHNsb3RCYXNlLCBjb25zdCBJZGVudGlmaWVyJikKIHsKICAgICBKU1Rlc3RPYmoqIGRvbU9iamVj
dCA9IHN0YXRpY19jYXN0PEpTVGVzdE9iaio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CkBAIC0zOTEs
NiArNDIxLDEzIEBAIHZvaWQgc2V0SlNUZXN0T2JqQ3VzdG9tQXR0cihFeGVjU3RhdGUqIGV4ZWMs
IEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlCiAgICAgc3RhdGljX2Nhc3Q8SlNU
ZXN0T2JqKj4odGhpc09iamVjdCktPnNldEN1c3RvbUF0dHIoZXhlYywgdmFsdWUpOwogfQogCit2
b2lkIHNldEpTVGVzdE9iaklkKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3Qs
IEpTVmFsdWUgdmFsdWUpCit7CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0gc3RhdGljX2Nh
c3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CisgICAgVGVzdE9iaiogaW1wID0gc3RhdGljX2Nh
c3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7CisgICAgaW1wLT5zZXRJZCh2YWx1ZS50
b0ludDMyKGV4ZWMpKTsKK30KKwogSlNWYWx1ZSBKU1Rlc3RPYmo6OmdldENvbnN0cnVjdG9yKEV4
ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKIHsKICAgICByZXR1
cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNUZXN0T2JqQ29uc3RydWN0b3I+KGV4ZWMsIHN0YXRpY19j
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCmluZGV4IDM4Y2Y4YzI2MmQwYWFhMWU2ZDQ5
NWNiNjk1ZjE5NGQwNGU2MDliNDYuLmRhNWMwMWMyODFmMDQxYzZhNDRmY2YzOTUxYmRhNWQ4MTUz
ZmQ1YTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5o
CkBAIC0xMzgsNiArMTM4LDEwIEBAIHZvaWQgc2V0SlNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNl
cHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKCiBKU0M6OkpTVmFs
dWUganNUZXN0T2JqQ3VzdG9tQXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29u
c3QgSlNDOjpJZGVudGlmaWVyJik7CiB2b2lkIHNldEpTVGVzdE9iakN1c3RvbUF0dHIoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKIEpTQzo6SlNWYWx1ZSBq
c1Rlc3RPYmpTY3JpcHRTdHJpbmdBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBj
b25zdCBKU0M6OklkZW50aWZpZXImKTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpEZXNjcmlwdGlv
bihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgY29uc3QgSlNDOjpJZGVudGlmaWVyJik7
CitKU0M6OkpTVmFsdWUganNUZXN0T2JqSWQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUs
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYpOwordm9pZCBzZXRKU1Rlc3RPYmpJZChKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOworSlNDOjpKU1ZhbHVlIGpzVGVz
dE9iakhhc2goSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIGNvbnN0IEpTQzo6SWRlbnRp
ZmllciYpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU1ZhbHVlLCBjb25zdCBKU0M6OklkZW50aWZpZXImKTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2Jq
Qy9ET01UZXN0T2JqLmggYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRl
c3RPYmouaAppbmRleCAyNDdmNGEzMTQ4YzY0ZTQ5ZGMxZjZjZGExMGNiYzJjMDExZDJlY2M5Li43
NGVmN2NmODc4MmNjMWYwMzk1NzE0NzM2NzhkOTkwMjdhMzhjNTU1IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaApAQCAtNTYsNiArNTYsMTAg
QEAKIC0gKGludCljdXN0b21BdHRyOwogLSAodm9pZClzZXRDdXN0b21BdHRyOihpbnQpbmV3Q3Vz
dG9tQXR0cjsKIC0gKE5TU3RyaW5nICopc2NyaXB0U3RyaW5nQXR0cjsKKy0gKGludClkZXNjcmlw
dGlvbk5hbWU7CistIChpbnQpaWROYW1lOworLSAodm9pZClzZXRJZE5hbWU6KGludCluZXdJZE5h
bWU7CistIChOU1N0cmluZyAqKWhhc2hOYW1lOwogLSAodm9pZCl2b2lkTWV0aG9kOwogLSAodm9p
ZCl2b2lkTWV0aG9kV2l0aEFyZ3M6KGludClpbnRBcmcgc3RyQXJnOihOU1N0cmluZyAqKXN0ckFy
ZyBvYmpBcmc6KERPTVRlc3RPYmogKilvYmpBcmc7CiAtIChpbnQpaW50TWV0aG9kOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tIGIv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCmluZGV4IDBm
M2ZiNjY5NWJhN2FjNjQ4OThhM2ZjNDA3OTFlMGI1OTA2Zjk5MGYuLjdlZWY1ZTY3MjA3YmY4NDNk
YzgzNThmZTU5Mzc1MzQ5YTcyODE4MWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KQEAgLTIxMiw2ICsyMTIsMzAgQEAKICAgICByZXR1
cm4gSU1QTC0+c2NyaXB0U3RyaW5nQXR0cigpOwogfQogCistIChpbnQpZGVzY3JpcHRpb25OYW1l
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBJTVBMLT5kZXNjcmlwdGlvbigpOworfQorCistIChpbnQpaWROYW1lCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5pZCgpOwor
fQorCistICh2b2lkKXNldElkTmFtZTooaW50KW5ld0lkTmFtZQoreworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRJZChuZXdJZE5hbWUpOwor
fQorCistIChOU1N0cmluZyAqKWhhc2hOYW1lCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5oYXNoKCk7Cit9CisKIC0gKHZvaWQp
dm9pZE1ldGhvZAogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggYmRhMjU4NjA4
NDg1MDdlZDJjNDMyOThjMGQ3MDU3Mjc1MjYzYjE4Zi4uOWMyOWJhZWU1YTY1MWEyOWRhMjVmYjMw
YmZiYWQ2YzVjZWU5NTc5YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdE9iai5pZGwKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9i
ai5pZGwKQEAgLTEwMyw1ICsxMDMsMTAgQEAgbW9kdWxlIHRlc3QgewogICAgICAgICB2b2lkICAg
IG92ZXJsb2FkZWRNZXRob2QoaW4gRE9NU3RyaW5nIHN0ckFyZyk7CiAgICAgICAgIHZvaWQgICAg
b3ZlcmxvYWRlZE1ldGhvZChpbiBsb25nIGludEFyZyk7CiAjZW5kaWYKKworICAgICAgICAvLyBP
YmplY3RpdmVDIHJlc2VydmVkIHdvcmRzLgorICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9u
ZyAgICAgIGRlc2NyaXB0aW9uOworICAgICAgICBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICAg
IGlkOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhhc2g7CiAgICAgfTsK
IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9i
ai5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmlu
ZGV4IDQ0OWUwODYyNjc4Njg3YjQzNGMyNTQwNmI1YWIwNmQ3NjBmNzUzZWIuLjJlNWU4Nzk0M2Fm
NGE1MjdjZjI3NmZlZWM4NDFkYzIwYWU1NTY1NmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApAQCAtMjE4LDYgKzIxOCwzNiBAQCBzdGF0aWMg
djg6OkhhbmRsZTx2ODo6VmFsdWU+IHNjcmlwdFN0cmluZ0F0dHJBdHRyR2V0dGVyKHY4OjpMb2Nh
bDx2ODo6U3RyaW5nPiBuYQogICAgIHJldHVybiB2OFN0cmluZ09yTnVsbChpbXAtPnNjcmlwdFN0
cmluZ0F0dHIoKSk7CiB9CiAKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZGVzY3JpcHRp
b25BdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNz
b3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouZGVzY3JpcHRpb24u
X2dldCIpOworICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xk
ZXIoKSk7CisgICAgcmV0dXJuIHY4OjpJbnRlZ2VyOjpOZXcoaW1wLT5kZXNjcmlwdGlvbigpKTsK
K30KKworc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBpZEF0dHJHZXR0ZXIodjg6OkxvY2Fs
PHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAg
SU5DX1NUQVRTKCJET00uVGVzdE9iai5pZC5fZ2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhU
ZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICByZXR1cm4gdjg6OkludGVnZXI6
Ok5ldyhpbXAtPmlkKCkpOworfQorCitzdGF0aWMgdm9pZCBpZEF0dHJTZXR0ZXIodjg6OkxvY2Fs
PHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6
QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouaWQuX3Nl
dCIpOworICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIo
KSk7CisgICAgaW50IHYgPSB0b0ludDMyKHZhbHVlKTsKKyAgICBpbXAtPnNldElkKHYpOworICAg
IHJldHVybjsKK30KKworc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBoYXNoQXR0ckdldHRl
cih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5m
bykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmhhc2guX2dldCIpOworICAgIFRlc3RP
YmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgcmV0dXJu
IHY4U3RyaW5nKGltcC0+aGFzaCgpKTsKK30KKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiB2b2lkTWV0aG9kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJ
TkNfU1RBVFMoIkRPTS5UZXN0T2JqLnZvaWRNZXRob2QiKTsKQEAgLTYzNSw2ICs2NjUsMTIgQEAg
c3RhdGljIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUgVGVzdE9iakF0dHJzW10gPSB7CiAgICAgeyJj
dXN0b21BdHRyIiwgVjhUZXN0T2JqOjpjdXN0b21BdHRyQWNjZXNzb3JHZXR0ZXIsIFY4VGVzdE9i
ajo6Y3VzdG9tQXR0ckFjY2Vzc29yU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0
PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0
eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRy
aWJ1dGUgJ3NjcmlwdFN0cmluZ0F0dHInIChUeXBlOiAncmVhZG9ubHkgYXR0cmlidXRlJyBFeHRB
dHRyOiAnQ29udmVydFNjcmlwdFN0cmluZycpCiAgICAgeyJzY3JpcHRTdHJpbmdBdHRyIiwgVGVz
dE9iakludGVybmFsOjpzY3JpcHRTdHJpbmdBdHRyQXR0ckdldHRlciwgMCwgMCAvKiBubyBkYXRh
ICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNf
Y2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAq
L30sCisgICAgLy8gQXR0cmlidXRlICdkZXNjcmlwdGlvbicgKFR5cGU6ICdyZWFkb25seSBhdHRy
aWJ1dGUnIEV4dEF0dHI6ICcnKQorICAgIHsiZGVzY3JpcHRpb24iLCBUZXN0T2JqSW50ZXJuYWw6
OmRlc2NyaXB0aW9uQXR0ckdldHRlciwgMCwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2
ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlB
dHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCisgICAgLy8gQXR0cmli
dXRlICdpZCcgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQorICAgIHsiaWQiLCBUZXN0
T2JqSW50ZXJuYWw6OmlkQXR0ckdldHRlciwgVGVzdE9iakludGVybmFsOjppZEF0dHJTZXR0ZXIs
IDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZB
VUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyog
b24gaW5zdGFuY2UgKi99LAorICAgIC8vIEF0dHJpYnV0ZSAnaGFzaCcgKFR5cGU6ICdyZWFkb25s
eSBhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQorICAgIHsiaGFzaCIsIFRlc3RPYmpJbnRlcm5hbDo6
aGFzaEF0dHJHZXR0ZXIsIDAsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vz
c0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRl
Pih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogfTsKIHN0YXRpYyBjb25zdCBCYXRj
aGVkQ2FsbGJhY2sgVGVzdE9iakNhbGxiYWNrc1tdID0gewogICAgIHsidm9pZE1ldGhvZCIsIFRl
c3RPYmpJbnRlcm5hbDo6dm9pZE1ldGhvZENhbGxiYWNrfSwKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
c3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFi
YXNlUmVxdWVzdC5pZGwKaW5kZXggYjgzNWFjZTFmOWUwOWQxNzU5YzhlMDExNWJkNDVhODk2OWZl
NGU3MC4uZGUxNGRjY2MxMDM1YzQ0Mzg4MTE5ODI4NmQzZTc2M2ZjNDgwNjFiMCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5pZGwKKysrIGIvV2ViQ29yZS9z
dG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5pZGwKQEAgLTMxLDcgKzMxLDcgQEAgbW9kdWxlIHN0
b3JhZ2UgewogICAgICAgICAvLyBGSVhNRTogQ29tcGxldGUgdGhpcyBmaWxlLgogCiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKLSAgICAgICAgLy8gcmVhZG9ubHkg
YXR0cmlidXRlIERPTVN0cmluZyBkZXNjcmlwdGlvbjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyBkZXNjcmlwdGlvbjsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyB2ZXJzaW9uOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nTGlz
dCBvYmplY3RTdG9yZXM7CiAgICAgfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>