<?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>108338</bug_id>
          
          <creation_ts>2013-01-30 06:14:11 -0800</creation_ts>
          <short_desc>Add a StringTypeAdapter for ASCIILiteral</short_desc>
          <delta_ts>2013-01-30 16:52:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>820142</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-01-30 06:14:11 -0800</bug_when>
    <thetext>It would be nice to add a StringTypeAdapter for ASCIILiteral type so that code such as this one can be efficiently handled:
String url = ASCIILiteral(&quot;file://&quot;) + path

This was suggested by Benjamin Poulain in:
https://bugs.webkit.org/show_bug.cgi?id=107811#c5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820156</commentid>
    <comment_count>1</comment_count>
      <attachid>185489</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-01-30 06:30:11 -0800</bug_when>
    <thetext>Created attachment 185489
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820190</commentid>
    <comment_count>2</comment_count>
      <attachid>185489</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-01-30 07:18:39 -0800</bug_when>
    <thetext>Comment on attachment 185489
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=185489&amp;action=review

&gt; Source/WTF/wtf/text/StringConcatenate.h:276
&gt; +        , m_length(strlen(buffer))

shouldn&apos;t it be checked that buffer!=0? or was it already checked before?

&gt; Source/WTF/wtf/text/StringConcatenate.h:280
&gt; +    size_t length() { return m_length; }

is there any reason why this is not const method? (I know that you have to be aligned with StringTypeAdapter declaration but I&apos;m just curious :) )

&gt; Source/WTF/wtf/text/StringConcatenate.h:282
&gt; +    bool is8Bit() { return true; }

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820205</commentid>
    <comment_count>3</comment_count>
      <attachid>185489</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-01-30 07:48:09 -0800</bug_when>
    <thetext>Comment on attachment 185489
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=185489&amp;action=review

&gt;&gt; Source/WTF/wtf/text/StringConcatenate.h:276
&gt;&gt; +        , m_length(strlen(buffer))
&gt; 
&gt; shouldn&apos;t it be checked that buffer!=0? or was it already checked before?

Other StringAdapters do not have NULL-checks either. I guess getting NULL may be possible if someone writes &quot;ASCIILiteral(0) + str&quot;. However, this would be wrong usage of ASCIILiteral IMO.

&gt;&gt; Source/WTF/wtf/text/StringConcatenate.h:280
&gt;&gt; +    size_t length() { return m_length; }
&gt; 
&gt; is there any reason why this is not const method? (I know that you have to be aligned with StringTypeAdapter declaration but I&apos;m just curious :) )

I don&apos;t mind making those getter const but I chose to be consistent with other StringTypeAdapters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820234</commentid>
    <comment_count>4</comment_count>
      <attachid>185489</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-01-30 08:51:59 -0800</bug_when>
    <thetext>Comment on attachment 185489
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=185489&amp;action=review

&gt; Source/WTF/wtf/text/StringConcatenate.h:286
&gt; +        memcpy(destination, m_buffer, static_cast&lt;size_t&gt;(m_length) * sizeof(LChar));

Silly to write * sizeof(LChar) since that’s defined to be 1.

&gt; Source/WTF/wtf/text/StringOperators.h:136
&gt; +inline StringAppend&lt;ASCIILiteral, String&gt; operator+(ASCIILiteral string1, const String&amp; string2)

Shouldn’t this be const ASCIILiteral&amp;?

&gt; Source/WTF/wtf/text/StringOperators.h:141
&gt; +inline StringAppend&lt;ASCIILiteral, AtomicString&gt; operator+(ASCIILiteral string1, const AtomicString&amp; string2)

Shouldn’t this be const ASCIILiteral&amp;?

&gt; Source/WTF/wtf/text/StringOperators.h:147
&gt; +template&lt;typename U, typename V&gt;
&gt; +StringAppend&lt;ASCIILiteral, StringAppend&lt;U, V&gt; &gt; operator+(ASCIILiteral string1, const StringAppend&lt;U, V&gt;&amp; string2)

This should definitely be marked inline. If the others like this in the file aren’t, that’s a bug.

Shouldn’t this be const ASCIILiteral&amp;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820271</commentid>
    <comment_count>5</comment_count>
      <attachid>185489</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-30 09:42:09 -0800</bug_when>
    <thetext>Comment on attachment 185489
Patch

Attachment 185489 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16218582

New failing tests:
svg/as-image/img-relative-height.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820280</commentid>
    <comment_count>6</comment_count>
      <attachid>185489</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-01-30 09:56:22 -0800</bug_when>
    <thetext>Comment on attachment 185489
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=185489&amp;action=review

&gt;&gt; Source/WTF/wtf/text/StringConcatenate.h:286
&gt;&gt; +        memcpy(destination, m_buffer, static_cast&lt;size_t&gt;(m_length) * sizeof(LChar));
&gt; 
&gt; Silly to write * sizeof(LChar) since that’s defined to be 1.

Ok. This is done elsewhere in the file so I used the same but I can remove it.

&gt;&gt; Source/WTF/wtf/text/StringOperators.h:136
&gt;&gt; +inline StringAppend&lt;ASCIILiteral, String&gt; operator+(ASCIILiteral string1, const String&amp; string2)
&gt; 
&gt; Shouldn’t this be const ASCIILiteral&amp;?

Well, ASCIILiteral is usually passed by value elsewhere. See for example the WTF::String(ASCIILiteral) constructor. I was assuming this was made on purpose because ASCIILiteral only contains 1 member that is a pointer. Passing by value in this case is likely faster in this case (http://www.macieira.org/blog/2012/02/the-value-of-passing-by-value/). If it was not made on purpose, then the WTF::String constructor should probably be updated?

&gt;&gt; Source/WTF/wtf/text/StringOperators.h:147
&gt;&gt; +StringAppend&lt;ASCIILiteral, StringAppend&lt;U, V&gt; &gt; operator+(ASCIILiteral string1, const StringAppend&lt;U, V&gt;&amp; string2)
&gt; 
&gt; This should definitely be marked inline. If the others like this in the file aren’t, that’s a bug.
&gt; 
&gt; Shouldn’t this be const ASCIILiteral&amp;?

Ok, I&apos;ll check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820322</commentid>
    <comment_count>7</comment_count>
      <attachid>185520</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-01-30 10:49:01 -0800</bug_when>
    <thetext>Created attachment 185520
Patch

Take Darin&apos;s comments into consideration:
- Inline remaining operator+ functions
- Remove &apos;* sizeof(LChar)&apos; in memcpy

Note that I&apos;m still passing the ASCIILiteral object by value based on my earlier comment. Benjamin can hopefully confirm that he is did this on purpose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820424</commentid>
    <comment_count>8</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-01-30 12:47:09 -0800</bug_when>
    <thetext>&gt; Other StringAdapters do not have NULL-checks either. I guess getting NULL may be possible if someone writes &quot;ASCIILiteral(0) + str&quot;. However, this would be wrong usage of ASCIILiteral IMO.

Yep, that is indeed by design.

Some future work will enforce that (when ASCIILiteral will know its size).

&gt; Well, ASCIILiteral is usually passed by value elsewhere. See for example the WTF::String(ASCIILiteral) constructor. I was assuming this was made on purpose because ASCIILiteral only contains 1 member that is a pointer. Passing by value in this case is likely faster in this case (http://www.macieira.org/blog/2012/02/the-value-of-passing-by-value/). If it was not made on purpose, then the WTF::String constructor should probably be updated?

WTF::String take an ASCIILiteral string by design (for the reasons you mention). That case is a bit different because that function is not inline.

Here I think it would read better to have it const&amp;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820428</commentid>
    <comment_count>9</comment_count>
      <attachid>185520</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-01-30 12:48:27 -0800</bug_when>
    <thetext>Comment on attachment 185520
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=185520&amp;action=review

Thank you for fixing this.

Can you please also extend the tests: Tools/TestWebKitAPI/Tests/WTF/StringOperators.cpp?

&gt; Source/WTF/wtf/text/StringConcatenate.h:274
&gt; +    StringTypeAdapter&lt;ASCIILiteral&gt;(const char* buffer)

I would not rely on the implicit conversion for the constructor. I think an explicit conversion would read better.

&gt; Source/WTF/wtf/text/StringConcatenate.h:292
&gt; +        for (unsigned i = 0; i &lt; m_length; ++i)
&gt; +            destination[i] = m_buffer[i];

We have copyChars() in StringImpl to do exactly this. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820669</commentid>
    <comment_count>10</comment_count>
      <attachid>185593</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2013-01-30 15:16:19 -0800</bug_when>
    <thetext>Created attachment 185593
Patch

Take Benjamin&apos;s feedback into consideration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820678</commentid>
    <comment_count>11</comment_count>
      <attachid>185593</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-01-30 15:23:49 -0800</bug_when>
    <thetext>Comment on attachment 185593
Patch

Nice test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820816</commentid>
    <comment_count>12</comment_count>
      <attachid>185593</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-30 16:51:56 -0800</bug_when>
    <thetext>Comment on attachment 185593
Patch

Clearing flags on attachment: 185593

Committed r141342: &lt;http://trac.webkit.org/changeset/141342&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820817</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-30 16:52:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185489</attachid>
            <date>2013-01-30 06:30:11 -0800</date>
            <delta_ts>2013-01-30 10:49:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>108338_StringTypeAdapter_ASCIILiteral.patch</filename>
            <type>text/plain</type>
            <size>2901</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNjRmMzhmMi4uNjE1ZDVmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wMS0zMCAg
Q2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAg
IEFkZCBhIFN0cmluZ1R5cGVBZGFwdGVyIGZvciBBU0NJSUxpdGVyYWwKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODMzOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBTdHJpbmdUeXBlQWRhcHRlciBm
b3IgQVNDSUlMaXRlcmFsIHR5cGUgc28gdGhhdCBjb25jYXRlbmF0aW9uCisgICAgICAgIG9mIGFu
IEFTQ0lJTGl0ZXJhbCBhbmQgYSBTdHJpbmcgdXNpbmcgKyBvcGVyYXRvciBpcyBlZmZpY2llbnRs
eQorICAgICAgICBoYW5kbGVkLgorCisgICAgICAgICogd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5h
dGUuaDoKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdPcGVyYXRvcnMuaDoKKyAgICAgICAgKFdU
Rjo6b3BlcmF0b3IrKToKKyAgICAgICAgKFdURik6CisKIDIwMTMtMDEtMjkgIE1hcmsgTGFtICA8
bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVjaW5nIFdURjo6VHlwZVNhZmVF
bnVtIGFuZCBEYXRhYmFzZUVycm9yLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9T
dHJpbmdDb25jYXRlbmF0ZS5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0
ZS5oCmluZGV4IDliMWVjNTcuLmU4M2YwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvU3RyaW5nQ29uY2F0ZW5hdGUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0Nv
bmNhdGVuYXRlLmgKQEAgLTI2OSw2ICsyNjksMzUgQEAgcHJpdmF0ZToKIH07CiAKIHRlbXBsYXRl
PD4KK2NsYXNzIFN0cmluZ1R5cGVBZGFwdGVyPEFTQ0lJTGl0ZXJhbD4geworcHVibGljOgorICAg
IFN0cmluZ1R5cGVBZGFwdGVyPEFTQ0lJTGl0ZXJhbD4oY29uc3QgY2hhciogYnVmZmVyKQorICAg
ICAgICA6IG1fYnVmZmVyKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihidWZmZXIpKQor
ICAgICAgICAsIG1fbGVuZ3RoKHN0cmxlbihidWZmZXIpKQorICAgIHsKKyAgICB9CisKKyAgICBz
aXplX3QgbGVuZ3RoKCkgeyByZXR1cm4gbV9sZW5ndGg7IH0KKworICAgIGJvb2wgaXM4Qml0KCkg
eyByZXR1cm4gdHJ1ZTsgfQorCisgICAgdm9pZCB3cml0ZVRvKExDaGFyKiBkZXN0aW5hdGlvbikK
KyAgICB7CisgICAgICAgIG1lbWNweShkZXN0aW5hdGlvbiwgbV9idWZmZXIsIHN0YXRpY19jYXN0
PHNpemVfdD4obV9sZW5ndGgpICogc2l6ZW9mKExDaGFyKSk7CisgICAgfQorCisgICAgdm9pZCB3
cml0ZVRvKFVDaGFyKiBkZXN0aW5hdGlvbikKKyAgICB7CisgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBtX2xlbmd0aDsgKytpKQorICAgICAgICAgICAgZGVzdGluYXRpb25baV0gPSBt
X2J1ZmZlcltpXTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgY29uc3QgTENoYXIqIG1fYnVmZmVy
OworICAgIHVuc2lnbmVkIG1fbGVuZ3RoOworfTsKKwordGVtcGxhdGU8PgogY2xhc3MgU3RyaW5n
VHlwZUFkYXB0ZXI8VmVjdG9yPGNoYXI+ID4gewogcHVibGljOgogICAgIFN0cmluZ1R5cGVBZGFw
dGVyPFZlY3RvcjxjaGFyPiA+KGNvbnN0IFZlY3RvcjxjaGFyPiYgYnVmZmVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdPcGVyYXRvcnMuaCBiL1NvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nT3BlcmF0b3JzLmgKaW5kZXggOWUxNjM3Yi4uYzUwNDM5NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdPcGVyYXRvcnMuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L1N0cmluZ09wZXJhdG9ycy5oCkBAIC0xMzMsNiArMTMzLDIyIEBAIFN0cmluZ0Fw
cGVuZDxjb25zdCBVQ2hhciosIFN0cmluZ0FwcGVuZDxVLCBWPiA+IG9wZXJhdG9yKyhjb25zdCBV
Q2hhciogc3RyaW5nMSwKICAgICByZXR1cm4gU3RyaW5nQXBwZW5kPGNvbnN0IFVDaGFyKiwgU3Ry
aW5nQXBwZW5kPFUsIFY+ID4oc3RyaW5nMSwgc3RyaW5nMik7CiB9CiAKK2lubGluZSBTdHJpbmdB
cHBlbmQ8QVNDSUlMaXRlcmFsLCBTdHJpbmc+IG9wZXJhdG9yKyhBU0NJSUxpdGVyYWwgc3RyaW5n
MSwgY29uc3QgU3RyaW5nJiBzdHJpbmcyKQoreworICAgIHJldHVybiBTdHJpbmdBcHBlbmQ8QVND
SUlMaXRlcmFsLCBTdHJpbmc+KHN0cmluZzEsIHN0cmluZzIpOworfQorCitpbmxpbmUgU3RyaW5n
QXBwZW5kPEFTQ0lJTGl0ZXJhbCwgQXRvbWljU3RyaW5nPiBvcGVyYXRvcisoQVNDSUlMaXRlcmFs
IHN0cmluZzEsIGNvbnN0IEF0b21pY1N0cmluZyYgc3RyaW5nMikKK3sKKyAgICByZXR1cm4gU3Ry
aW5nQXBwZW5kPEFTQ0lJTGl0ZXJhbCwgQXRvbWljU3RyaW5nPihzdHJpbmcxLCBzdHJpbmcyKTsK
K30KKwordGVtcGxhdGU8dHlwZW5hbWUgVSwgdHlwZW5hbWUgVj4KK1N0cmluZ0FwcGVuZDxBU0NJ
SUxpdGVyYWwsIFN0cmluZ0FwcGVuZDxVLCBWPiA+IG9wZXJhdG9yKyhBU0NJSUxpdGVyYWwgc3Ry
aW5nMSwgY29uc3QgU3RyaW5nQXBwZW5kPFUsIFY+JiBzdHJpbmcyKQoreworICAgIHJldHVybiBT
dHJpbmdBcHBlbmQ8QVNDSUlMaXRlcmFsLCBTdHJpbmdBcHBlbmQ8VSwgVj4gPihzdHJpbmcxLCBz
dHJpbmcyKTsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIFN0cmluZ0FwcGVuZDxTdHJpbmcs
IFQ+IG9wZXJhdG9yKyhjb25zdCBTdHJpbmcmIHN0cmluZzEsIFQgc3RyaW5nMikKIHsK
</data>
<flag name="commit-queue"
          id="204562"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185520</attachid>
            <date>2013-01-30 10:49:01 -0800</date>
            <delta_ts>2013-01-30 15:16:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>108338_stringadapter_asciiliteral.patch</filename>
            <type>text/plain</type>
            <size>3692</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNTc3YjlmZC4uNjA4ZmRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wMS0zMCAg
Q2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAg
IEFkZCBhIFN0cmluZ1R5cGVBZGFwdGVyIGZvciBBU0NJSUxpdGVyYWwKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODMzOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBTdHJpbmdUeXBlQWRhcHRlciBm
b3IgQVNDSUlMaXRlcmFsIHR5cGUgc28gdGhhdCBjb25jYXRlbmF0aW9uIG9mIGFuCisgICAgICAg
IEFTQ0lJTGl0ZXJhbCBhbmQgYSBTdHJpbmcgdXNpbmcgKyBvcGVyYXRvciBpcyBlZmZpY2llbnRs
eSBoYW5kbGVkLgorCisgICAgICAgICogd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaDoKKyAg
ICAgICAgKiB3dGYvdGV4dC9TdHJpbmdPcGVyYXRvcnMuaDoKKyAgICAgICAgKFdURjo6b3BlcmF0
b3IrKTogSW5saW5lIHNvbWUgb2YgdGhlIG9wZXJhdG9yKyBmdW5jdGlvbnMgdGhhdCB3ZXJlIG5v
dAorICAgICAgICB5ZXQuCisgICAgICAgIChXVEYpOgorCiAyMDEzLTAxLTMwICBaZW5vIEFsYmlz
c2VyICA8emVub0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gRml4IFF0L01hYyBidWlsZCBh
ZnRlciByMTQxMDI0IGFuZCByMTQxMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1N0cmluZ0NvbmNhdGVuYXRlLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbmNhdGVu
YXRlLmgKaW5kZXggOWIxZWM1Ny4uYWE1NGZkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
dGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5n
Q29uY2F0ZW5hdGUuaApAQCAtMjY5LDYgKzI2OSwzNSBAQCBwcml2YXRlOgogfTsKIAogdGVtcGxh
dGU8PgorY2xhc3MgU3RyaW5nVHlwZUFkYXB0ZXI8QVNDSUlMaXRlcmFsPiB7CitwdWJsaWM6Cisg
ICAgU3RyaW5nVHlwZUFkYXB0ZXI8QVNDSUlMaXRlcmFsPihjb25zdCBjaGFyKiBidWZmZXIpCisg
ICAgICAgIDogbV9idWZmZXIocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGJ1ZmZlcikp
CisgICAgICAgICwgbV9sZW5ndGgoc3RybGVuKGJ1ZmZlcikpCisgICAgeworICAgIH0KKworICAg
IHNpemVfdCBsZW5ndGgoKSB7IHJldHVybiBtX2xlbmd0aDsgfQorCisgICAgYm9vbCBpczhCaXQo
KSB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2b2lkIHdyaXRlVG8oTENoYXIqIGRlc3RpbmF0aW9u
KQorICAgIHsKKyAgICAgICAgbWVtY3B5KGRlc3RpbmF0aW9uLCBtX2J1ZmZlciwgc3RhdGljX2Nh
c3Q8c2l6ZV90PihtX2xlbmd0aCkpOworICAgIH0KKworICAgIHZvaWQgd3JpdGVUbyhVQ2hhciog
ZGVzdGluYXRpb24pCisgICAgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9s
ZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGRlc3RpbmF0aW9uW2ldID0gbV9idWZmZXJbaV07Cisg
ICAgfQorCitwcml2YXRlOgorICAgIGNvbnN0IExDaGFyKiBtX2J1ZmZlcjsKKyAgICB1bnNpZ25l
ZCBtX2xlbmd0aDsKK307CisKK3RlbXBsYXRlPD4KIGNsYXNzIFN0cmluZ1R5cGVBZGFwdGVyPFZl
Y3RvcjxjaGFyPiA+IHsKIHB1YmxpYzoKICAgICBTdHJpbmdUeXBlQWRhcHRlcjxWZWN0b3I8Y2hh
cj4gPihjb25zdCBWZWN0b3I8Y2hhcj4mIGJ1ZmZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nT3BlcmF0b3JzLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ09w
ZXJhdG9ycy5oCmluZGV4IDllMTYzN2IuLjI5N2FhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nT3BlcmF0b3JzLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdPcGVyYXRvcnMuaApAQCAtMTEyLDcgKzExMiw3IEBAIGlubGluZSBTdHJpbmdBcHBlbmQ8Y29u
c3QgY2hhciosIEF0b21pY1N0cmluZz4gb3BlcmF0b3IrKGNvbnN0IGNoYXIqIHN0cmluZzEsIGNv
CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFUsIHR5cGVuYW1lIFY+Ci1TdHJpbmdBcHBlbmQ8Y29u
c3QgY2hhciosIFN0cmluZ0FwcGVuZDxVLCBWPiA+IG9wZXJhdG9yKyhjb25zdCBjaGFyKiBzdHJp
bmcxLCBjb25zdCBTdHJpbmdBcHBlbmQ8VSwgVj4mIHN0cmluZzIpCitpbmxpbmUgU3RyaW5nQXBw
ZW5kPGNvbnN0IGNoYXIqLCBTdHJpbmdBcHBlbmQ8VSwgVj4gPiBvcGVyYXRvcisoY29uc3QgY2hh
ciogc3RyaW5nMSwgY29uc3QgU3RyaW5nQXBwZW5kPFUsIFY+JiBzdHJpbmcyKQogewogICAgIHJl
dHVybiBTdHJpbmdBcHBlbmQ8Y29uc3QgY2hhciosIFN0cmluZ0FwcGVuZDxVLCBWPiA+KHN0cmlu
ZzEsIHN0cmluZzIpOwogfQpAQCAtMTI4LDExICsxMjgsMjcgQEAgaW5saW5lIFN0cmluZ0FwcGVu
ZDxjb25zdCBVQ2hhciosIEF0b21pY1N0cmluZz4gb3BlcmF0b3IrKGNvbnN0IFVDaGFyKiBzdHJp
bmcxLAogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBVLCB0eXBlbmFtZSBWPgotU3RyaW5nQXBwZW5k
PGNvbnN0IFVDaGFyKiwgU3RyaW5nQXBwZW5kPFUsIFY+ID4gb3BlcmF0b3IrKGNvbnN0IFVDaGFy
KiBzdHJpbmcxLCBjb25zdCBTdHJpbmdBcHBlbmQ8VSwgVj4mIHN0cmluZzIpCitpbmxpbmUgU3Ry
aW5nQXBwZW5kPGNvbnN0IFVDaGFyKiwgU3RyaW5nQXBwZW5kPFUsIFY+ID4gb3BlcmF0b3IrKGNv
bnN0IFVDaGFyKiBzdHJpbmcxLCBjb25zdCBTdHJpbmdBcHBlbmQ8VSwgVj4mIHN0cmluZzIpCiB7
CiAgICAgcmV0dXJuIFN0cmluZ0FwcGVuZDxjb25zdCBVQ2hhciosIFN0cmluZ0FwcGVuZDxVLCBW
PiA+KHN0cmluZzEsIHN0cmluZzIpOwogfQogCitpbmxpbmUgU3RyaW5nQXBwZW5kPEFTQ0lJTGl0
ZXJhbCwgU3RyaW5nPiBvcGVyYXRvcisoQVNDSUlMaXRlcmFsIHN0cmluZzEsIGNvbnN0IFN0cmlu
ZyYgc3RyaW5nMikKK3sKKyAgICByZXR1cm4gU3RyaW5nQXBwZW5kPEFTQ0lJTGl0ZXJhbCwgU3Ry
aW5nPihzdHJpbmcxLCBzdHJpbmcyKTsKK30KKworaW5saW5lIFN0cmluZ0FwcGVuZDxBU0NJSUxp
dGVyYWwsIEF0b21pY1N0cmluZz4gb3BlcmF0b3IrKEFTQ0lJTGl0ZXJhbCBzdHJpbmcxLCBjb25z
dCBBdG9taWNTdHJpbmcmIHN0cmluZzIpCit7CisgICAgcmV0dXJuIFN0cmluZ0FwcGVuZDxBU0NJ
SUxpdGVyYWwsIEF0b21pY1N0cmluZz4oc3RyaW5nMSwgc3RyaW5nMik7Cit9CisKK3RlbXBsYXRl
PHR5cGVuYW1lIFUsIHR5cGVuYW1lIFY+CitpbmxpbmUgU3RyaW5nQXBwZW5kPEFTQ0lJTGl0ZXJh
bCwgU3RyaW5nQXBwZW5kPFUsIFY+ID4gb3BlcmF0b3IrKEFTQ0lJTGl0ZXJhbCBzdHJpbmcxLCBj
b25zdCBTdHJpbmdBcHBlbmQ8VSwgVj4mIHN0cmluZzIpCit7CisgICAgcmV0dXJuIFN0cmluZ0Fw
cGVuZDxBU0NJSUxpdGVyYWwsIFN0cmluZ0FwcGVuZDxVLCBWPiA+KHN0cmluZzEsIHN0cmluZzIp
OworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogU3RyaW5nQXBwZW5kPFN0cmluZywgVD4gb3Bl
cmF0b3IrKGNvbnN0IFN0cmluZyYgc3RyaW5nMSwgVCBzdHJpbmcyKQogewo=
</data>
<flag name="review"
          id="204610"
          type_id="1"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185593</attachid>
            <date>2013-01-30 15:16:19 -0800</date>
            <delta_ts>2013-01-30 16:51:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>108338_stringadapter_asciiliteral.patch</filename>
            <type>text/plain</type>
            <size>11613</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNTc3YjlmZC4uNjA4ZmRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wMS0zMCAg
Q2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAg
IEFkZCBhIFN0cmluZ1R5cGVBZGFwdGVyIGZvciBBU0NJSUxpdGVyYWwKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODMzOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBTdHJpbmdUeXBlQWRhcHRlciBm
b3IgQVNDSUlMaXRlcmFsIHR5cGUgc28gdGhhdCBjb25jYXRlbmF0aW9uIG9mIGFuCisgICAgICAg
IEFTQ0lJTGl0ZXJhbCBhbmQgYSBTdHJpbmcgdXNpbmcgKyBvcGVyYXRvciBpcyBlZmZpY2llbnRs
eSBoYW5kbGVkLgorCisgICAgICAgICogd3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaDoKKyAg
ICAgICAgKiB3dGYvdGV4dC9TdHJpbmdPcGVyYXRvcnMuaDoKKyAgICAgICAgKFdURjo6b3BlcmF0
b3IrKTogSW5saW5lIHNvbWUgb2YgdGhlIG9wZXJhdG9yKyBmdW5jdGlvbnMgdGhhdCB3ZXJlIG5v
dAorICAgICAgICB5ZXQuCisgICAgICAgIChXVEYpOgorCiAyMDEzLTAxLTMwICBaZW5vIEFsYmlz
c2VyICA8emVub0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gRml4IFF0L01hYyBidWlsZCBh
ZnRlciByMTQxMDI0IGFuZCByMTQxMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1N0cmluZ0NvbmNhdGVuYXRlLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0NvbmNhdGVu
YXRlLmgKaW5kZXggOWIxZWM1Ny4uZmQ2YTViMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
dGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5n
Q29uY2F0ZW5hdGUuaApAQCAtMTY0LDggKzE2NCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgd3Jp
dGVUbyhVQ2hhciogZGVzdGluYXRpb24pCiAgICAgewotICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbV9sZW5ndGg7ICsraSkKLSAgICAgICAgICAgIGRlc3RpbmF0aW9uW2ldID0gbV9i
dWZmZXJbaV07CisgICAgICAgIFN0cmluZ0ltcGw6OmNvcHlDaGFycyhkZXN0aW5hdGlvbiwgbV9i
dWZmZXIsIG1fbGVuZ3RoKTsKICAgICB9CiAKIHByaXZhdGU6CkBAIC0yNTksOCArMjU4LDM1IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgd3JpdGVUbyhVQ2hhciogZGVzdGluYXRpb24pCiAgICAgewot
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9sZW5ndGg7ICsraSkKLSAgICAgICAg
ICAgIGRlc3RpbmF0aW9uW2ldID0gbV9idWZmZXJbaV07CisgICAgICAgIFN0cmluZ0ltcGw6OmNv
cHlDaGFycyhkZXN0aW5hdGlvbiwgbV9idWZmZXIsIG1fbGVuZ3RoKTsKKyAgICB9CisKK3ByaXZh
dGU6CisgICAgY29uc3QgTENoYXIqIG1fYnVmZmVyOworICAgIHVuc2lnbmVkIG1fbGVuZ3RoOwor
fTsKKwordGVtcGxhdGU8PgorY2xhc3MgU3RyaW5nVHlwZUFkYXB0ZXI8QVNDSUlMaXRlcmFsPiB7
CitwdWJsaWM6CisgICAgU3RyaW5nVHlwZUFkYXB0ZXI8QVNDSUlMaXRlcmFsPihBU0NJSUxpdGVy
YWwgYnVmZmVyKQorICAgICAgICA6IG1fYnVmZmVyKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENo
YXIqPihzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oYnVmZmVyKSkpCisgICAgICAgICwgbV9sZW5n
dGgoc3RybGVuKGJ1ZmZlcikpCisgICAgeworICAgIH0KKworICAgIHNpemVfdCBsZW5ndGgoKSB7
IHJldHVybiBtX2xlbmd0aDsgfQorCisgICAgYm9vbCBpczhCaXQoKSB7IHJldHVybiB0cnVlOyB9
CisKKyAgICB2b2lkIHdyaXRlVG8oTENoYXIqIGRlc3RpbmF0aW9uKQorICAgIHsKKyAgICAgICAg
bWVtY3B5KGRlc3RpbmF0aW9uLCBtX2J1ZmZlciwgc3RhdGljX2Nhc3Q8c2l6ZV90PihtX2xlbmd0
aCkpOworICAgIH0KKworICAgIHZvaWQgd3JpdGVUbyhVQ2hhciogZGVzdGluYXRpb24pCisgICAg
eworICAgICAgICBTdHJpbmdJbXBsOjpjb3B5Q2hhcnMoZGVzdGluYXRpb24sIG1fYnVmZmVyLCBt
X2xlbmd0aCk7CiAgICAgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
dGV4dC9TdHJpbmdPcGVyYXRvcnMuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nT3BlcmF0
b3JzLmgKaW5kZXggOWUxNjM3Yi4uODQzZTE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
dGV4dC9TdHJpbmdPcGVyYXRvcnMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ09w
ZXJhdG9ycy5oCkBAIC0xMTIsNyArMTEyLDcgQEAgaW5saW5lIFN0cmluZ0FwcGVuZDxjb25zdCBj
aGFyKiwgQXRvbWljU3RyaW5nPiBvcGVyYXRvcisoY29uc3QgY2hhciogc3RyaW5nMSwgY28KIH0K
IAogdGVtcGxhdGU8dHlwZW5hbWUgVSwgdHlwZW5hbWUgVj4KLVN0cmluZ0FwcGVuZDxjb25zdCBj
aGFyKiwgU3RyaW5nQXBwZW5kPFUsIFY+ID4gb3BlcmF0b3IrKGNvbnN0IGNoYXIqIHN0cmluZzEs
IGNvbnN0IFN0cmluZ0FwcGVuZDxVLCBWPiYgc3RyaW5nMikKK2lubGluZSBTdHJpbmdBcHBlbmQ8
Y29uc3QgY2hhciosIFN0cmluZ0FwcGVuZDxVLCBWPiA+IG9wZXJhdG9yKyhjb25zdCBjaGFyKiBz
dHJpbmcxLCBjb25zdCBTdHJpbmdBcHBlbmQ8VSwgVj4mIHN0cmluZzIpCiB7CiAgICAgcmV0dXJu
IFN0cmluZ0FwcGVuZDxjb25zdCBjaGFyKiwgU3RyaW5nQXBwZW5kPFUsIFY+ID4oc3RyaW5nMSwg
c3RyaW5nMik7CiB9CkBAIC0xMjgsMTEgKzEyOCwyNyBAQCBpbmxpbmUgU3RyaW5nQXBwZW5kPGNv
bnN0IFVDaGFyKiwgQXRvbWljU3RyaW5nPiBvcGVyYXRvcisoY29uc3QgVUNoYXIqIHN0cmluZzEs
CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFUsIHR5cGVuYW1lIFY+Ci1TdHJpbmdBcHBlbmQ8Y29u
c3QgVUNoYXIqLCBTdHJpbmdBcHBlbmQ8VSwgVj4gPiBvcGVyYXRvcisoY29uc3QgVUNoYXIqIHN0
cmluZzEsIGNvbnN0IFN0cmluZ0FwcGVuZDxVLCBWPiYgc3RyaW5nMikKK2lubGluZSBTdHJpbmdB
cHBlbmQ8Y29uc3QgVUNoYXIqLCBTdHJpbmdBcHBlbmQ8VSwgVj4gPiBvcGVyYXRvcisoY29uc3Qg
VUNoYXIqIHN0cmluZzEsIGNvbnN0IFN0cmluZ0FwcGVuZDxVLCBWPiYgc3RyaW5nMikKIHsKICAg
ICByZXR1cm4gU3RyaW5nQXBwZW5kPGNvbnN0IFVDaGFyKiwgU3RyaW5nQXBwZW5kPFUsIFY+ID4o
c3RyaW5nMSwgc3RyaW5nMik7CiB9CiAKK2lubGluZSBTdHJpbmdBcHBlbmQ8QVNDSUlMaXRlcmFs
LCBTdHJpbmc+IG9wZXJhdG9yKyhjb25zdCBBU0NJSUxpdGVyYWwmIHN0cmluZzEsIGNvbnN0IFN0
cmluZyYgc3RyaW5nMikKK3sKKyAgICByZXR1cm4gU3RyaW5nQXBwZW5kPEFTQ0lJTGl0ZXJhbCwg
U3RyaW5nPihzdHJpbmcxLCBzdHJpbmcyKTsKK30KKworaW5saW5lIFN0cmluZ0FwcGVuZDxBU0NJ
SUxpdGVyYWwsIEF0b21pY1N0cmluZz4gb3BlcmF0b3IrKGNvbnN0IEFTQ0lJTGl0ZXJhbCYgc3Ry
aW5nMSwgY29uc3QgQXRvbWljU3RyaW5nJiBzdHJpbmcyKQoreworICAgIHJldHVybiBTdHJpbmdB
cHBlbmQ8QVNDSUlMaXRlcmFsLCBBdG9taWNTdHJpbmc+KHN0cmluZzEsIHN0cmluZzIpOworfQor
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBVLCB0eXBlbmFtZSBWPgoraW5saW5lIFN0cmluZ0FwcGVuZDxB
U0NJSUxpdGVyYWwsIFN0cmluZ0FwcGVuZDxVLCBWPiA+IG9wZXJhdG9yKyhjb25zdCBBU0NJSUxp
dGVyYWwmIHN0cmluZzEsIGNvbnN0IFN0cmluZ0FwcGVuZDxVLCBWPiYgc3RyaW5nMikKK3sKKyAg
ICByZXR1cm4gU3RyaW5nQXBwZW5kPEFTQ0lJTGl0ZXJhbCwgU3RyaW5nQXBwZW5kPFUsIFY+ID4o
c3RyaW5nMSwgc3RyaW5nMik7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBTdHJpbmdBcHBl
bmQ8U3RyaW5nLCBUPiBvcGVyYXRvcisoY29uc3QgU3RyaW5nJiBzdHJpbmcxLCBUIHN0cmluZzIp
CiB7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
MGM3ZTRmOS4uOTVhNTFmNyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAxLTMwICBDaHJpc3RvcGhlIER1bWV6
ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CisKKyAgICAgICAgQWRkIGEgU3RyaW5nVHlw
ZUFkYXB0ZXIgZm9yIEFTQ0lJTGl0ZXJhbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MzM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0cyBmb3Igb3BlcmF0b3IrKCkgdGFraW5nIGFu
IEFTQ0lJTGl0ZXJhbC4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmlu
Z09wZXJhdG9ycy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxMy0w
MS0zMCAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRpZ2lhLmNvbT4KIAog
ICAgICAgICBbUXRdW1dLMV0gU3VwcG9ydCBiZXR0ZXIgdGVzdGluZyBvZiBXZWIgTm90aWZpY2F0
aW9ucwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nT3Bl
cmF0b3JzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ09wZXJhdG9y
cy5jcHAKaW5kZXggODE5MDEzZi4uMTQ5Yjg1YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCkBAIC00NSw2ICs0NSw3IEBAIFRFU1Qo
V1RGLCBTdHJpbmdPcGVyYXRvcnMpCiB7CiAgICAgU3RyaW5nIHN0cmluZygiU3RyaW5nIik7CiAg
ICAgQXRvbWljU3RyaW5nIGF0b21pY1N0cmluZygiQXRvbWljU3RyaW5nIik7CisgICAgQVNDSUlM
aXRlcmFsIGxpdGVyYWwoIkFTQ0lJTGl0ZXJhbCIpOwogCiAgICAgRVhQRUNUX0VRKDAsIHd0ZlN0
cmluZ0NvcHlDb3VudCk7CiAKQEAgLTU4LDYgKzU5LDExIEBAIFRFU1QoV1RGLCBTdHJpbmdPcGVy
YXRvcnMpCiAgICAgRVhQRUNUX05fV1RGX1NUUklOR19DT1BJRVMoMSwgIkMgc3RyaW5nIiArIGF0
b21pY1N0cmluZyk7CiAgICAgRVhQRUNUX05fV1RGX1NUUklOR19DT1BJRVMoMSwgYXRvbWljU3Ry
aW5nICsgIkMgc3RyaW5nIik7CiAKKyAgICBFWFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElFUygxLCBs
aXRlcmFsICsgc3RyaW5nKTsKKyAgICBFWFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElFUygxLCBzdHJp
bmcgKyBsaXRlcmFsKTsKKyAgICBFWFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElFUygxLCBsaXRlcmFs
ICsgYXRvbWljU3RyaW5nKTsKKyAgICBFWFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElFUygxLCBhdG9t
aWNTdHJpbmcgKyBsaXRlcmFsKTsKKwogICAgIEVYUEVDVF9OX1dURl9TVFJJTkdfQ09QSUVTKDIs
ICJDIHN0cmluZyIgKyBzdHJpbmcgKyAiQyBzdHJpbmciICsgc3RyaW5nKTsKICAgICBFWFBFQ1Rf
Tl9XVEZfU1RSSU5HX0NPUElFUygyLCAiQyBzdHJpbmciICsgKHN0cmluZyArICJDIHN0cmluZyIg
KyBzdHJpbmcpKTsKICAgICBFWFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElFUygyLCAoIkMgc3RyaW5n
IiArIHN0cmluZykgKyAoIkMgc3RyaW5nIiArIHN0cmluZykpOwpAQCAtNjUsNiArNzEsNDEgQEAg
VEVTVChXVEYsIFN0cmluZ09wZXJhdG9ycykKICAgICBFWFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElF
UygyLCBzdHJpbmcgKyAoIkMgc3RyaW5nIiArIHN0cmluZyArICJDIHN0cmluZyIpKTsKICAgICBF
WFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElFUygyLCAoc3RyaW5nICsgIkMgc3RyaW5nIikgKyAoc3Ry
aW5nICsgIkMgc3RyaW5nIikpOwogCisgICAgRVhQRUNUX05fV1RGX1NUUklOR19DT1BJRVMoMiwg
bGl0ZXJhbCArIHN0cmluZyArIGxpdGVyYWwgKyBzdHJpbmcpOworICAgIEVYUEVDVF9OX1dURl9T
VFJJTkdfQ09QSUVTKDIsIGxpdGVyYWwgKyAoc3RyaW5nICsgbGl0ZXJhbCArIHN0cmluZykpOwor
ICAgIEVYUEVDVF9OX1dURl9TVFJJTkdfQ09QSUVTKDIsIChsaXRlcmFsICsgc3RyaW5nKSArIChs
aXRlcmFsICsgc3RyaW5nKSk7CisgICAgRVhQRUNUX05fV1RGX1NUUklOR19DT1BJRVMoMiwgc3Ry
aW5nICsgbGl0ZXJhbCArIHN0cmluZyArIGxpdGVyYWwpOworICAgIEVYUEVDVF9OX1dURl9TVFJJ
TkdfQ09QSUVTKDIsIHN0cmluZyArIChsaXRlcmFsICsgc3RyaW5nICsgbGl0ZXJhbCkpOworICAg
IEVYUEVDVF9OX1dURl9TVFJJTkdfQ09QSUVTKDIsIChzdHJpbmcgKyBsaXRlcmFsKSArIChzdHJp
bmcgKyBsaXRlcmFsKSk7CisKKyAgICBFWFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElFUygyLCBsaXRl
cmFsICsgc3RyaW5nICsgIkMgc3RyaW5nIiArIHN0cmluZyk7CisgICAgRVhQRUNUX05fV1RGX1NU
UklOR19DT1BJRVMoMiwgbGl0ZXJhbCArIChzdHJpbmcgKyAiQyBzdHJpbmciICsgc3RyaW5nKSk7
CisgICAgRVhQRUNUX05fV1RGX1NUUklOR19DT1BJRVMoMiwgKGxpdGVyYWwgKyBzdHJpbmcpICsg
KCJDIHN0cmluZyIgKyBzdHJpbmcpKTsKKyAgICBFWFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElFUygy
LCAiQyBzdHJpbmciICsgc3RyaW5nICsgbGl0ZXJhbCArIHN0cmluZyk7CisgICAgRVhQRUNUX05f
V1RGX1NUUklOR19DT1BJRVMoMiwgIkMgc3RyaW5nIiArIChzdHJpbmcgKyBsaXRlcmFsICsgc3Ry
aW5nKSk7CisgICAgRVhQRUNUX05fV1RGX1NUUklOR19DT1BJRVMoMiwgKCJDIHN0cmluZyIgKyBz
dHJpbmcpICsgKGxpdGVyYWwgKyBzdHJpbmcpKTsKKworICAgIEVYUEVDVF9OX1dURl9TVFJJTkdf
Q09QSUVTKDIsIGxpdGVyYWwgKyBhdG9taWNTdHJpbmcgKyAiQyBzdHJpbmciICsgYXRvbWljU3Ry
aW5nKTsKKyAgICBFWFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElFUygyLCBsaXRlcmFsICsgKGF0b21p
Y1N0cmluZyArICJDIHN0cmluZyIgKyBhdG9taWNTdHJpbmcpKTsKKyAgICBFWFBFQ1RfTl9XVEZf
U1RSSU5HX0NPUElFUygyLCAobGl0ZXJhbCArIGF0b21pY1N0cmluZykgKyAoIkMgc3RyaW5nIiAr
IGF0b21pY1N0cmluZykpOworICAgIEVYUEVDVF9OX1dURl9TVFJJTkdfQ09QSUVTKDIsICJDIHN0
cmluZyIgKyBhdG9taWNTdHJpbmcgKyBsaXRlcmFsICsgYXRvbWljU3RyaW5nKTsKKyAgICBFWFBF
Q1RfTl9XVEZfU1RSSU5HX0NPUElFUygyLCAiQyBzdHJpbmciICsgKGF0b21pY1N0cmluZyArIGxp
dGVyYWwgKyBhdG9taWNTdHJpbmcpKTsKKyAgICBFWFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElFUygy
LCAoIkMgc3RyaW5nIiArIGF0b21pY1N0cmluZykgKyAobGl0ZXJhbCArIGF0b21pY1N0cmluZykp
OworCisgICAgRVhQRUNUX05fV1RGX1NUUklOR19DT1BJRVMoMiwgbGl0ZXJhbCArIGF0b21pY1N0
cmluZyArICJDIHN0cmluZyIgKyBzdHJpbmcpOworICAgIEVYUEVDVF9OX1dURl9TVFJJTkdfQ09Q
SUVTKDIsIGxpdGVyYWwgKyAoYXRvbWljU3RyaW5nICsgIkMgc3RyaW5nIiArIHN0cmluZykpOwor
ICAgIEVYUEVDVF9OX1dURl9TVFJJTkdfQ09QSUVTKDIsIChsaXRlcmFsICsgYXRvbWljU3RyaW5n
KSArICgiQyBzdHJpbmciICsgc3RyaW5nKSk7CisgICAgRVhQRUNUX05fV1RGX1NUUklOR19DT1BJ
RVMoMiwgIkMgc3RyaW5nIiArIGF0b21pY1N0cmluZyArIGxpdGVyYWwgKyBzdHJpbmcpOworICAg
IEVYUEVDVF9OX1dURl9TVFJJTkdfQ09QSUVTKDIsICJDIHN0cmluZyIgKyAoYXRvbWljU3RyaW5n
ICsgbGl0ZXJhbCArIHN0cmluZykpOworICAgIEVYUEVDVF9OX1dURl9TVFJJTkdfQ09QSUVTKDIs
ICgiQyBzdHJpbmciICsgYXRvbWljU3RyaW5nKSArIChsaXRlcmFsICsgc3RyaW5nKSk7CisKKyAg
ICBFWFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElFUygyLCBsaXRlcmFsICsgc3RyaW5nICsgIkMgc3Ry
aW5nIiArIGF0b21pY1N0cmluZyk7CisgICAgRVhQRUNUX05fV1RGX1NUUklOR19DT1BJRVMoMiwg
bGl0ZXJhbCArIChzdHJpbmcgKyAiQyBzdHJpbmciICsgYXRvbWljU3RyaW5nKSk7CisgICAgRVhQ
RUNUX05fV1RGX1NUUklOR19DT1BJRVMoMiwgKGxpdGVyYWwgKyBzdHJpbmcpICsgKCJDIHN0cmlu
ZyIgKyBhdG9taWNTdHJpbmcpKTsKKyAgICBFWFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElFUygyLCAi
QyBzdHJpbmciICsgc3RyaW5nICsgbGl0ZXJhbCArIGF0b21pY1N0cmluZyk7CisgICAgRVhQRUNU
X05fV1RGX1NUUklOR19DT1BJRVMoMiwgIkMgc3RyaW5nIiArIChzdHJpbmcgKyBsaXRlcmFsICsg
YXRvbWljU3RyaW5nKSk7CisgICAgRVhQRUNUX05fV1RGX1NUUklOR19DT1BJRVMoMiwgKCJDIHN0
cmluZyIgKyBzdHJpbmcpICsgKGxpdGVyYWwgKyBhdG9taWNTdHJpbmcpKTsKKwogICAgIEVYUEVD
VF9OX1dURl9TVFJJTkdfQ09QSUVTKDIsICJDIHN0cmluZyIgKyBhdG9taWNTdHJpbmcgKyAiQyBz
dHJpbmciICsgYXRvbWljU3RyaW5nKTsKICAgICBFWFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElFUygy
LCAiQyBzdHJpbmciICsgKGF0b21pY1N0cmluZyArICJDIHN0cmluZyIgKyBhdG9taWNTdHJpbmcp
KTsKICAgICBFWFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElFUygyLCAoIkMgc3RyaW5nIiArIGF0b21p
Y1N0cmluZykgKyAoIkMgc3RyaW5nIiArIGF0b21pY1N0cmluZykpOwpAQCAtNzIsNiArMTEzLDEz
IEBAIFRFU1QoV1RGLCBTdHJpbmdPcGVyYXRvcnMpCiAgICAgRVhQRUNUX05fV1RGX1NUUklOR19D
T1BJRVMoMiwgYXRvbWljU3RyaW5nICsgKCJDIHN0cmluZyIgKyBhdG9taWNTdHJpbmcgKyAiQyBz
dHJpbmciKSk7CiAgICAgRVhQRUNUX05fV1RGX1NUUklOR19DT1BJRVMoMiwgKGF0b21pY1N0cmlu
ZyArICJDIHN0cmluZyIpICsgKGF0b21pY1N0cmluZyArICJDIHN0cmluZyIpKTsKIAorICAgIEVY
UEVDVF9OX1dURl9TVFJJTkdfQ09QSUVTKDIsIGxpdGVyYWwgKyBhdG9taWNTdHJpbmcgKyBsaXRl
cmFsICsgYXRvbWljU3RyaW5nKTsKKyAgICBFWFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElFUygyLCBs
aXRlcmFsICsgKGF0b21pY1N0cmluZyArIGxpdGVyYWwgKyBhdG9taWNTdHJpbmcpKTsKKyAgICBF
WFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElFUygyLCAobGl0ZXJhbCArIGF0b21pY1N0cmluZykgKyAo
bGl0ZXJhbCArIGF0b21pY1N0cmluZykpOworICAgIEVYUEVDVF9OX1dURl9TVFJJTkdfQ09QSUVT
KDIsIGF0b21pY1N0cmluZyArIGxpdGVyYWwgKyBhdG9taWNTdHJpbmcgKyBsaXRlcmFsKTsKKyAg
ICBFWFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElFUygyLCBhdG9taWNTdHJpbmcgKyAobGl0ZXJhbCAr
IGF0b21pY1N0cmluZyArIGxpdGVyYWwpKTsKKyAgICBFWFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElF
UygyLCAoYXRvbWljU3RyaW5nICsgbGl0ZXJhbCkgKyAoYXRvbWljU3RyaW5nICsgbGl0ZXJhbCkp
OworCiAgICAgRVhQRUNUX05fV1RGX1NUUklOR19DT1BJRVMoMiwgIkMgc3RyaW5nIiArIHN0cmlu
ZyArICJDIHN0cmluZyIgKyBhdG9taWNTdHJpbmcpOwogICAgIEVYUEVDVF9OX1dURl9TVFJJTkdf
Q09QSUVTKDIsICJDIHN0cmluZyIgKyAoc3RyaW5nICsgIkMgc3RyaW5nIiArIGF0b21pY1N0cmlu
ZykpOwogICAgIEVYUEVDVF9OX1dURl9TVFJJTkdfQ09QSUVTKDIsICgiQyBzdHJpbmciICsgc3Ry
aW5nKSArICgiQyBzdHJpbmciICsgYXRvbWljU3RyaW5nKSk7CkBAIC03OSw2ICsxMjcsMTMgQEAg
VEVTVChXVEYsIFN0cmluZ09wZXJhdG9ycykKICAgICBFWFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElF
UygyLCBzdHJpbmcgKyAoIkMgc3RyaW5nIiArIGF0b21pY1N0cmluZyArICJDIHN0cmluZyIpKTsK
ICAgICBFWFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElFUygyLCAoc3RyaW5nICsgIkMgc3RyaW5nIikg
KyAoYXRvbWljU3RyaW5nICsgIkMgc3RyaW5nIikpOwogCisgICAgRVhQRUNUX05fV1RGX1NUUklO
R19DT1BJRVMoMiwgbGl0ZXJhbCArIHN0cmluZyArIGxpdGVyYWwgKyBhdG9taWNTdHJpbmcpOwor
ICAgIEVYUEVDVF9OX1dURl9TVFJJTkdfQ09QSUVTKDIsIGxpdGVyYWwgKyAoc3RyaW5nICsgbGl0
ZXJhbCArIGF0b21pY1N0cmluZykpOworICAgIEVYUEVDVF9OX1dURl9TVFJJTkdfQ09QSUVTKDIs
IChsaXRlcmFsICsgc3RyaW5nKSArIChsaXRlcmFsICsgYXRvbWljU3RyaW5nKSk7CisgICAgRVhQ
RUNUX05fV1RGX1NUUklOR19DT1BJRVMoMiwgc3RyaW5nICsgbGl0ZXJhbCArIGF0b21pY1N0cmlu
ZyArIGxpdGVyYWwpOworICAgIEVYUEVDVF9OX1dURl9TVFJJTkdfQ09QSUVTKDIsIHN0cmluZyAr
IChsaXRlcmFsICsgYXRvbWljU3RyaW5nICsgbGl0ZXJhbCkpOworICAgIEVYUEVDVF9OX1dURl9T
VFJJTkdfQ09QSUVTKDIsIChzdHJpbmcgKyBsaXRlcmFsKSArIChhdG9taWNTdHJpbmcgKyBsaXRl
cmFsKSk7CisKICAgICBFWFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElFUygyLCAiQyBzdHJpbmciICsg
YXRvbWljU3RyaW5nICsgIkMgc3RyaW5nIiArIHN0cmluZyk7CiAgICAgRVhQRUNUX05fV1RGX1NU
UklOR19DT1BJRVMoMiwgIkMgc3RyaW5nIiArIChhdG9taWNTdHJpbmcgKyAiQyBzdHJpbmciICsg
c3RyaW5nKSk7CiAgICAgRVhQRUNUX05fV1RGX1NUUklOR19DT1BJRVMoMiwgKCJDIHN0cmluZyIg
KyBhdG9taWNTdHJpbmcpICsgKCJDIHN0cmluZyIgKyBzdHJpbmcpKTsKQEAgLTg2LDYgKzE0MSwx
MyBAQCBURVNUKFdURiwgU3RyaW5nT3BlcmF0b3JzKQogICAgIEVYUEVDVF9OX1dURl9TVFJJTkdf
Q09QSUVTKDIsIGF0b21pY1N0cmluZyArICgiQyBzdHJpbmciICsgc3RyaW5nICsgIkMgc3RyaW5n
IikpOwogICAgIEVYUEVDVF9OX1dURl9TVFJJTkdfQ09QSUVTKDIsIChhdG9taWNTdHJpbmcgKyAi
QyBzdHJpbmciKSArIChzdHJpbmcgKyAiQyBzdHJpbmciKSk7CiAKKyAgICBFWFBFQ1RfTl9XVEZf
U1RSSU5HX0NPUElFUygyLCBsaXRlcmFsICsgYXRvbWljU3RyaW5nICsgbGl0ZXJhbCArIHN0cmlu
Zyk7CisgICAgRVhQRUNUX05fV1RGX1NUUklOR19DT1BJRVMoMiwgbGl0ZXJhbCArIChhdG9taWNT
dHJpbmcgKyBsaXRlcmFsICsgc3RyaW5nKSk7CisgICAgRVhQRUNUX05fV1RGX1NUUklOR19DT1BJ
RVMoMiwgKGxpdGVyYWwgKyBhdG9taWNTdHJpbmcpICsgKGxpdGVyYWwgKyBzdHJpbmcpKTsKKyAg
ICBFWFBFQ1RfTl9XVEZfU1RSSU5HX0NPUElFUygyLCBhdG9taWNTdHJpbmcgKyBsaXRlcmFsICsg
c3RyaW5nICsgbGl0ZXJhbCk7CisgICAgRVhQRUNUX05fV1RGX1NUUklOR19DT1BJRVMoMiwgYXRv
bWljU3RyaW5nICsgKGxpdGVyYWwgKyBzdHJpbmcgKyBsaXRlcmFsKSk7CisgICAgRVhQRUNUX05f
V1RGX1NUUklOR19DT1BJRVMoMiwgKGF0b21pY1N0cmluZyArIGxpdGVyYWwpICsgKHN0cmluZyAr
IGxpdGVyYWwpKTsKKwogI2lmIENPTVBJTEVSKE1TVkMpCiAgICAgRVhQRUNUX05fV1RGX1NUUklO
R19DT1BJRVMoMSwgTCJ3aWRlIHN0cmluZyIgKyBzdHJpbmcpOwogICAgIEVYUEVDVF9OX1dURl9T
VFJJTkdfQ09QSUVTKDEsIHN0cmluZyArIEwid2lkZSBzdHJpbmciKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>