<?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>170994</bug_id>
          
          <creation_ts>2017-04-19 09:08:56 -0700</creation_ts>
          <short_desc>Stop using strcpy() in WebKit::EnvironmentUtilities::stripValuesEndingWithString()</short_desc>
          <delta_ts>2017-05-01 06:47:45 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=171494</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>171010</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1298683</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-04-19 09:08:56 -0700</bug_when>
    <thetext>WebKit::EnvironmentUtilities::stripValuesEndingWithString() uses strcpy(), which causes static analysis and other tools to warn of its use.

In this case, the contents of a const char* buffer is only ever being shrunk, but we can switch to use strlcpy() instead (since EnvironmentUtilities.cpp is only used on Darwin-based platforms).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298684</commentid>
    <comment_count>1</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-04-19 09:09:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/29889932&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298692</commentid>
    <comment_count>2</comment_count>
      <attachid>307482</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-04-19 09:24:55 -0700</bug_when>
    <thetext>Created attachment 307482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298698</commentid>
    <comment_count>3</comment_count>
      <attachid>307482</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-04-19 09:38:01 -0700</bug_when>
    <thetext>Comment on attachment 307482
Patch

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

This looks great! But since I&apos;m greedy, what about replacing instances of &quot;strstr&quot; in that method with &quot;strnstr&quot;?

&gt; Source/WebKit2/Platform/unix/EnvironmentUtilities.cpp:46
&gt; +    size_t environmentValueLength = strlen(environmentValue) + 1;

What about adding some &quot;ASSERT_WITH_SECURITY_IMPLICATIONS&quot; that our later string iteration does not exceed this amount? (e.g., the various &apos;match&apos; results?)

&gt; Source/WebKit2/Platform/unix/EnvironmentUtilities.cpp:77
&gt; +            strlcpy(componentStart, match + searchLength, environmentValueLength - (componentStart - environmentValue));

I think this is good, but we should also fix &quot;strstr&quot; -&gt; &quot;strnstr&quot;

&gt; Source/WebKit2/Platform/unix/EnvironmentUtilities.cpp:85
&gt;          match = strstr(componentStart, searchValueWithColon);

I think these should be &quot;strnstr&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298710</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-04-19 09:55:09 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #3)
&gt; Comment on attachment 307482 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=307482&amp;action=review
&gt; 
&gt; This looks great! But since I&apos;m greedy, what about replacing instances of
&gt; &quot;strstr&quot; in that method with &quot;strnstr&quot;?

There is no security issue with strstr() as long as the string is NULL-terminated, but I can switch to strnstr().  However, note the compatibility issues from the strnstr(1) manpage:

     The strnstr() function locates the first occurrence of the null-terminated string needle in the string
     haystack, where not more than len characters are searched.  Characters that appear after a `\0&apos; charac-
     ter are not searched.  Since the strnstr() function is a FreeBSD specific API, it should only be used
     when portability is not a concern.

&gt; &gt; Source/WebKit2/Platform/unix/EnvironmentUtilities.cpp:46
&gt; &gt; +    size_t environmentValueLength = strlen(environmentValue) + 1;
&gt; 
&gt; What about adding some &quot;ASSERT_WITH_SECURITY_IMPLICATIONS&quot; that our later
&gt; string iteration does not exceed this amount? (e.g., the various &apos;match&apos;
&gt; results?)

Good idea.  I&apos;ll add these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298716</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-04-19 10:09:10 -0700</bug_when>
    <thetext>(In reply to David Kilzer (:ddkilzer) from comment #4)
&gt; There is no security issue with strstr() as long as the string is
&gt; NULL-terminated, but I can switch to strnstr().  However, note the
&gt; compatibility issues from the strnstr(1) manpage:

Oh! Then don&apos;t bother switching to strnstr. I don&apos;t want to break Linux or other ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298740</commentid>
    <comment_count>6</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-04-19 11:17:21 -0700</bug_when>
    <thetext>Committed r215521: &lt;http://trac.webkit.org/changeset/215521&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298742</commentid>
    <comment_count>7</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-04-19 11:21:41 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #5)
&gt; (In reply to David Kilzer (:ddkilzer) from comment #4)
&gt; &gt; There is no security issue with strstr() as long as the string is
&gt; &gt; NULL-terminated, but I can switch to strnstr().  However, note the
&gt; &gt; compatibility issues from the strnstr(1) manpage:
&gt; 
&gt; Oh! Then don&apos;t bother switching to strnstr. I don&apos;t want to break Linux or
&gt; other ports.

This code was only used on the Mac port, so I switched to strnstr() anyway.

Also, I added RELEASE_ASSERT() instead of ASSERT_WITH_SECURITY_IMPLICATION() since we really do want to crash if the pointer math is incorrect.  (I only added these RELEASE_ASSERT() statements before the actual buffer was modified as well.)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307482</attachid>
            <date>2017-04-19 09:24:55 -0700</date>
            <delta_ts>2017-04-19 09:38:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170994-20170419092457.patch</filename>
            <type>text/plain</type>
            <size>14945</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MzM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjBjYTcxNGJhZDkwNGY1
YTBhNjNkMjI4ZmQ4NjZhMDYxYTE5MjA1NC4uZGI5MGYzN2I2MDE1MDk4ZTNjM2Y0NjBhMzU4ODhj
MjQ3YzE0YmExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE3LTA0LTE5ICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcCB1c2luZyBzdHJj
cHkoKSBpbiBXZWJLaXQ6OkVudmlyb25tZW50VXRpbGl0aWVzOjpzdHJpcFZhbHVlc0VuZGluZ1dp
dGhTdHJpbmcoKQorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTcwOTk0PgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjk4ODk5MzI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS91bml4L0Vudmlyb25tZW50VXRpbGl0aWVz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6RW52aXJvbm1lbnRVdGlsaXRpZXM6OnN0cmlwVmFsdWVz
RW5kaW5nV2l0aFN0cmluZyk6CisgICAgICAgIFN3aXRjaCBmcm9tIHVzaW5nIHN0cmNweSgpIHRv
IHN0cmxjcHkoKS4KKyAgICAgICAgKiBQbGF0Zm9ybS91bml4L0Vudmlyb25tZW50VXRpbGl0aWVz
Lmg6IFN3aXRjaCB0byAjcHJhZ21hIG9uY2UuCisgICAgICAgIChXZWJLaXQ6OkVudmlyb25tZW50
VXRpbGl0aWVzOjpzdHJpcFZhbHVlc0VuZGluZ1dpdGhTdHJpbmcpOgorICAgICAgICBFeHBvcnQg
ZnVuY3Rpb24gZm9yIHRlc3RpbmcuCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAoRW52aXJvbm1lbnRVdGlsaXRpZXNUZXN0LmgpOiBNYWtlIGhl
YWRlciBwcml2YXRlIGZvciB0ZXN0aW5nLgorCiAyMDE3LTA0LTEzICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IENNYWtlIGJ1aWxkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L0Vudmlyb25tZW50VXRpbGl0
aWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgvRW52aXJvbm1lbnRVdGlsaXRp
ZXMuY3BwCmluZGV4IDBkZTg3NjcxNTZkMmRjMDMwN2Y3NWYwODI5MjAwM2VmNjZmMGU3ODkuLjY1
ZjJhYzY2YTEwNzViMmQyOTk2MDk0MDc3ZmM2MWExMjY5MDc0YTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgvRW52aXJvbm1lbnRVdGlsaXRpZXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgvRW52aXJvbm1lbnRVdGlsaXRpZXMuY3BwCkBAIC0z
OSwxMCArMzksMTIgQEAgdm9pZCBzdHJpcFZhbHVlc0VuZGluZ1dpdGhTdHJpbmcoY29uc3QgY2hh
ciogZW52aXJvbm1lbnRWYXJpYWJsZSwgY29uc3QgY2hhciogc2UKICAgICAKICAgICAvLyBHcmFi
IHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZS4KICAgICBjaGFy
KiBlbnZpcm9ubWVudFZhbHVlID0gZ2V0ZW52KGVudmlyb25tZW50VmFyaWFibGUpOwotICAgICAg
ICAKKwogICAgIGlmICghZW52aXJvbm1lbnRWYWx1ZSB8fCBlbnZpcm9ubWVudFZhbHVlWzBdID09
ICdcMCcpCiAgICAgICAgIHJldHVybjsKIAorICAgIHNpemVfdCBlbnZpcm9ubWVudFZhbHVlTGVu
Z3RoID0gc3RybGVuKGVudmlyb25tZW50VmFsdWUpICsgMTsKKwogICAgIC8vIFNldCB1cCB0aGUg
c3RyaW5ncyB3ZSdsbCBiZSBzZWFyY2hpbmcgZm9yLgogICAgIHNpemVfdCBzZWFyY2hMZW5ndGgg
PSBzdHJsZW4oc2VhcmNoVmFsdWUpOwogICAgIGlmICghc2VhcmNoTGVuZ3RoKQpAQCAtNzIsMTIg
Kzc0LDEyIEBAIHZvaWQgc3RyaXBWYWx1ZXNFbmRpbmdXaXRoU3RyaW5nKGNvbnN0IGNoYXIqIGVu
dmlyb25tZW50VmFyaWFibGUsIGNvbnN0IGNoYXIqIHNlCiAgICAgICAgIC8vIENvcHkgb3ZlciBl
dmVyeXRoaW5nIHJpZ2h0IG9mIHRoZSBtYXRjaCB0byB0aGUgY3VycmVudCBjb21wb25lbnQgc3Rh
cnQsIGFuZCBzZWFyY2ggZnJvbSB0aGVyZSBhZ2Fpbi4KICAgICAgICAgaWYgKGNvbXBvbmVudFN0
YXJ0WzBdID09ICc6JykgewogICAgICAgICAgICAgLy8gSWYgY29tcG9uZW50U3RhcnQgcG9pbnRz
IHRvIGEgY29sb24sIGNvcHkgdGhlIGNvbG9uIG92ZXIuCi0gICAgICAgICAgICBzdHJjcHkoY29t
cG9uZW50U3RhcnQsIG1hdGNoICsgc2VhcmNoTGVuZ3RoKTsKKyAgICAgICAgICAgIHN0cmxjcHko
Y29tcG9uZW50U3RhcnQsIG1hdGNoICsgc2VhcmNoTGVuZ3RoLCBlbnZpcm9ubWVudFZhbHVlTGVu
Z3RoIC0gKGNvbXBvbmVudFN0YXJ0IC0gZW52aXJvbm1lbnRWYWx1ZSkpOwogICAgICAgICB9IGVs
c2UgewogICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBjb21wb25lbnRTdGFydCBzdGlsbCBwb2lu
dHMgdG8gdGhlIGJlZ2lubmluZyBvZiBlbnZpcm9ubWVudFZhbHVlQnVmZmVyLCBzbyBkb24ndCBj
b3B5IG92ZXIgdGhlIGNvbG9uLgogICAgICAgICAgICAgLy8gVGhlIGVkZ2UgY2FzZSBpcyBpZiB0
aGUgY29sb24gaXMgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSBzdHJpbmcsIHNvICJtYXRjaCAr
IHNlYXJjaExlbmd0aFdpdGhvdXRDb2xvbiArIDEiIGlzIHRoZQogICAgICAgICAgICAgLy8gbnVs
bCB0ZXJtaW5hdG9yIG9mIHRoZSBvcmlnaW5hbCBpbnB1dCwgaW4gd2hpY2ggY2FzZSB0aGlzIGlz
IHN0aWxsIHNhZmUuCi0gICAgICAgICAgICBzdHJjcHkoY29tcG9uZW50U3RhcnQsIG1hdGNoICsg
c2VhcmNoTGVuZ3RoV2l0aENvbG9uKTsKKyAgICAgICAgICAgIHN0cmxjcHkoY29tcG9uZW50U3Rh
cnQsIG1hdGNoICsgc2VhcmNoTGVuZ3RoV2l0aENvbG9uLCBlbnZpcm9ubWVudFZhbHVlTGVuZ3Ro
IC0gKGNvbXBvbmVudFN0YXJ0IC0gZW52aXJvbm1lbnRWYWx1ZSkpOwogICAgICAgICB9CiAgICAg
ICAgIAogICAgICAgICBtYXRjaCA9IHN0cnN0cihjb21wb25lbnRTdGFydCwgc2VhcmNoVmFsdWVX
aXRoQ29sb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9FbnZp
cm9ubWVudFV0aWxpdGllcy5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vdW5peC9FbnZpcm9u
bWVudFV0aWxpdGllcy5oCmluZGV4IGZlZDc3YmMzZmQ3ZGYyMTUzNDRjNDU4ZDIyZTk3YTBkYmVm
YTJmMWQuLjIwYzMxYjk0OTkxNmViZDE2MzczYTMwN2JkZjgyMTk2MjI3YzI0NjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL3VuaXgvRW52aXJvbm1lbnRVdGlsaXRpZXMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS91bml4L0Vudmlyb25tZW50VXRpbGl0aWVzLmgK
QEAgLTIzLDIwICsyMywxNyBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKLSNpZm5kZWYgRW52aXJvbm1lbnRVdGlsaXRpZXNfaAotI2RlZmluZSBFbnZpcm9ubWVu
dFV0aWxpdGllc19oCisjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIldLRGVjbGFyYXRpb25TcGVj
aWZpZXJzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBuYW1lc3BhY2UgRW52aXJvbm1lbnRVdGlsaXRpZXMgewogCi12b2lkIHN0cmlw
VmFsdWVzRW5kaW5nV2l0aFN0cmluZyhjb25zdCBjaGFyKiBlbnZpcm9ubWVudFZhcmlhYmxlLCBj
b25zdCBjaGFyKiBzZWFyY2gpOworV0tfRVhQT1JUIHZvaWQgc3RyaXBWYWx1ZXNFbmRpbmdXaXRo
U3RyaW5nKGNvbnN0IGNoYXIqIGVudmlyb25tZW50VmFyaWFibGUsIGNvbnN0IGNoYXIqIHNlYXJj
aCk7CiAKIH0gLy8gbmFtZXNwYWNlIEVudmlyb25tZW50VXRpbGl0aWVzCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAotCi0jZW5kaWYgLy8gI2RlZmluZSBFbnZpcm9ubWVudFV0aWxpdGllc19oCi0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBiMTM3NzZiYTA3ZDJjYTBjMGU5N2U1MzY4NmEwNTZlNzEwNjI1NGQ1Li41OGQxMmI1Y2M5
ODI5Yjg3NDYyZGNkODA1MDU1N2RiNTJjMjQ2NTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDQyLDcgKzEwNDIsNyBAQAog
CQk1MUFDQkJBMDEyN0E4RjJDMDBEMjAzQjkgLyogV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBQ0JCOUUxMjdB
OEYyQzAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHlNYWMuaCAqLzsgfTsKIAkJNTFBQ0JC
QTExMjdBOEYyQzAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHlNYWMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUFDQkI5RjEyN0E4RjJDMDBE
MjAzQjkgLyogV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbSAqLzsgfTsKIAkJNTFCMTVBODQxMzg0
M0EzOTAwMzIxQUQ4IC8qIEVudmlyb25tZW50VXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQjE1QTgyMTM4NDNBMzkwMDMyMUFEOCAv
KiBFbnZpcm9ubWVudFV0aWxpdGllcy5jcHAgKi87IH07Ci0JCTUxQjE1QTg1MTM4NDNBMzkwMDMy
MUFEOCAvKiBFbnZpcm9ubWVudFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTFCMTVBODMxMzg0M0EzOTAwMzIxQUQ4IC8qIEVudmlyb25t
ZW50VXRpbGl0aWVzLmggKi87IH07CisJCTUxQjE1QTg1MTM4NDNBMzkwMDMyMUFEOCAvKiBFbnZp
cm9ubWVudFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFCMTVBODMxMzg0M0EzOTAwMzIxQUQ4IC8qIEVudmlyb25tZW50VXRpbGl0aWVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFD
MEM5NzQxRERENzYwMDAwMzJDQUQzIC8qIEljb25Mb2FkaW5nRGVsZWdhdGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxQzBDOTcyMURERDc0RjAwMDMy
Q0FEMyAvKiBJY29uTG9hZGluZ0RlbGVnYXRlLmggKi87IH07CiAJCTUxQzBDOTc1MURERDc2MDMw
MDMyQ0FEMyAvKiBJY29uTG9hZGluZ0RlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFDMEM5NzMxRERENzRGMDAwMzJDQUQzIC8qIEljb25M
b2FkaW5nRGVsZWdhdGUubW0gKi87IH07CiAJCTUxQ0QxQzVEMUIzNDkzQUYwMDE0MkNBNSAvKiBX
S1NlY3VyaXR5T3JpZ2luUmVmLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxQ0QxQzU5MUIzNDkzQTkwMDE0MkNBNSAvKiBXS1NlY3VyaXR5T3JpZ2lu
UmVmLmNwcCAqLzsgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCA4YTA2OTE2YzU4MmQxYmFjNzM1NGMyZjE0ZDA3MDhhNmJlNDA1ZTM5Li43Y2I5
MjNlOTc0YTc2YmVkMmVkYzg3NmJiMzNjZDBhZDZlNTgyYTg2IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTctMDQt
MTkgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBTdG9wIHVz
aW5nIHN0cmNweSgpIGluIFdlYktpdDo6RW52aXJvbm1lbnRVdGlsaXRpZXM6OnN0cmlwVmFsdWVz
RW5kaW5nV2l0aFN0cmluZygpCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xNzA5OTQ+
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTg4OTkzMj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAoRW52aXJvbm1lbnRVdGlsaXRp
ZXNUZXN0LmNwcCk6IEFkZCB0byBUZXN0V2ViS2l0QVBJTGlicmFyeQorICAgICAgICB0YXJnZXQu
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0Vudmlyb25tZW50VXRpbGl0
aWVzVGVzdC5jcHA6IEFkZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnN0cmlwKTogSGVscGVy
IG1ldGhvZCB0byBzZXQvZ2V0IGVudmlyb25tZW50CisgICAgICAgIHZhcmlhYmxlIGZvciB0ZXN0
aW5nLgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViS2l0Ml9TdHJpcFZhbHVlc0VuZGluZ1dp
dGhTdHJpbmdfVGVzdCk6IEFkZAorICAgICAgICB0ZXN0cy4KKwogMjAxNy0wNC0xMyAgSm9uYXRo
YW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgQnVpbGQgSW1hZ2VEaWZm
IHdpdGggaG9zdCBTREsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmMwZGE3OWYyZGYwNTZk
NTNmYTQyMDQzMzZiNjUxZmMyMzUxZjdkNy4uMjRjZTI5NTMwMjQzZTQ1NjIzMWViMGM2YTQ3MDM4
ZGY3YjBlNzcxZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExOSw2ICsxMTksNyBAQAog
CQkzN0UxMDY0QzE2OTc2ODE4MDBCNzhCRDAgLyogRE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnRDZWxs
QWJvdmUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzN0UxMDY0QjE2OTc2N0Y3MDBCNzhCRDAgLyogRE9NSFRNTFRhYmxlQ2VsbEVsZW1l
bnRDZWxsQWJvdmUuaHRtbCAqLzsgfTsKIAkJMzdGQjcyOTcxREIyRTgyRjAwRTQxQkU0IC8qIENv
bnRleHRNZW51RGVmYXVsdEl0ZW1zSGF2ZVRhZ3MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0ZCNzI5NTFEQjJFODJGMDBFNDFCRTQgLyogQ29udGV4
dE1lbnVEZWZhdWx0SXRlbXNIYXZlVGFncy5tbSAqLzsgfTsKIAkJM0ZCRDFCNEExRDNENjZBQjAw
RTZENkZBIC8qIEZ1bGxzY3JlZW5MYXlvdXRDb25zdHJhaW50cy5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGQkQxQjQ5MUQzOUQxREIw
MEU2RDZGQSAvKiBGdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMuaHRtbCAqLzsgfTsKKwkJNDQ4
RDdFNDcxRUE2QzU1NTAwRUNDNzU2IC8qIEVudmlyb25tZW50VXRpbGl0aWVzVGVzdC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDhEN0U0NTFFQTZD
NTU1MDBFQ0M3NTYgLyogRW52aXJvbm1lbnRVdGlsaXRpZXNUZXN0LmNwcCAqLzsgfTsKIAkJNDYz
OTdCOTUxREMyQzg1MDAwOUE3OEFFIC8qIERPTU5vZGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjM5N0I5NDFEQzJDODUwMDA5QTc4QUUgLyogRE9N
Tm9kZS5tbSAqLzsgfTsKIAkJNDZDNTE5REExRDM1NUFCMjAwREFBNTFBIC8qIExvY2FsU3RvcmFn
ZU51bGxFbnRyaWVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDZDNTE5RDgxRDM1NUE3MzAwREFBNTFBIC8qIExvY2FsU3RvcmFnZU51bGxFbnRyaWVz
Lm1tICovOyB9OwogCQk0NkM1MTlFNjFEMzU2M0ZEMDBEQUE1MUEgLyogTG9jYWxTdG9yYWdlTnVs
bEVudHJpZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NkM1MTlFMjFEMzU2Mjk2MDBEQUE1MUEgLyogTG9jYWxTdG9yYWdlTnVsbEVu
dHJpZXMuaHRtbCAqLzsgfTsKQEAgLTEwMjUsNiArMTAyNiw3IEBACiAJCTQxOTczQjVDMUFGMjI4
NzUwMDZDN0IzNiAvKiBTaGFyZWRCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2hhcmVkQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDQwQTFEMzgxNEEwMTAzQTAwOEE2NkYyIC8qIFVSTC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBVUkwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NDJCQkY2ODFDOTFDQUQ5MDAxNzA4N0YgLyogUmVmTG9nZ2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlZkxvZ2dlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQ0OEQ3RTQ1MUVBNkM1NTUwMEVDQzc1NiAvKiBFbnZpcm9ubWVudFV0aWxp
dGllc1Rlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRW52aXJv
bm1lbnRVdGlsaXRpZXNUZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDRB
NjIyQzExNEEwRTJCNjAwNDg1MTVCIC8qIFdURlN0cmluZ1V0aWxpdGllcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXVEZTdHJpbmdVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDYzOTdCOTQxREMyQzg1MDAwOUE3OEFFIC8qIERPTU5vZGUubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01Ob2RlLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkM1MTlEODFEMzU1QTczMDBEQUE1MUEgLyogTG9j
YWxTdG9yYWdlTnVsbEVudHJpZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBMb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE5OTcsNiArMTk5OSw3IEBACiAJCQkJRjZGNDlDNjYxNTU0NUM4RDAwMDdGMzlE
IC8qIERPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVfQnVuZGxlLmNwcCAqLywKIAkJCQlDMDQ1Rjk0
NDEzODVDMkU5MDBDMEYzQ0QgLyogRG93bmxvYWREZWNpZGVEZXN0aW5hdGlvbkNyYXNoLmNwcCAq
LywKIAkJCQkwNzQ5MkIzQTFERjhBRTJEMDA2MzNERTEgLyogRW51bWVyYXRlTWVkaWFEZXZpY2Vz
LmNwcCAqLywKKwkJCQk0NDhEN0U0NTFFQTZDNTU1MDBFQ0M3NTYgLyogRW52aXJvbm1lbnRVdGls
aXRpZXNUZXN0LmNwcCAqLywKIAkJCQk3NUYzMTMzRjE4QzE3MUI3MDA0MUNBRUMgLyogRXBoZW1l
cmFsU2Vzc2lvblB1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcCAqLywKIAkJCQkxQTVGRUZE
QzEyNzBFMkEzMDAwRTI5MjEgLyogRXZhbHVhdGVKYXZhU2NyaXB0LmNwcCAqLywKIAkJCQlCQ0M4
Qjk1QTEyNjExRjQ3MDBERTQ2QTQgLyogRmFpbGVkTG9hZC5jcHAgKi8sCkBAIC0yNzg0LDYgKzI3
ODcsNyBAQAogCQkJCTdDQ0U3RUUwMUE0MTFBOUEwMDQ0N0M0QyAvKiBFZGl0b3JDb21tYW5kcy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUJGMUE0MTFBN0UwMDQ0N0M0QyAvKiBFbGVtZW50
QXRQb2ludEluV2ViRnJhbWUubW0gaW4gU291cmNlcyAqLywKIAkJCQkwNzQ5MkIzQjFERjhCMTRD
MDA2MzNERTEgLyogRW51bWVyYXRlTWVkaWFEZXZpY2VzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTQ0OEQ3RTQ3MUVBNkM1NTUwMEVDQzc1NiAvKiBFbnZpcm9ubWVudFV0aWxpdGllc1Rlc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRUYxQTQxMUFFNjAwNDQ3QzRDIC8qIEVwaGVtZXJh
bFNlc3Npb25QdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3Q0NFN0VGMDFBNDExQUU2MDA0NDdDNEMgLyogRXZhbHVhdGVKYXZhU2NyaXB0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTMxNTExODEwMURCMUFFNDAwMDE3NjMwNCAvKiBFeHRlbmRlZENvbG9y
LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyL0Vudmlyb25tZW50VXRpbGl0aWVzVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDIvRW52aXJvbm1lbnRVdGlsaXRpZXNUZXN0LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wY2FiYmQwZmIwNWY5ZDRiN2M0MjNjOTQ5M2YzYmYzZTc5OGQzOWI3Ci0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL0Vudmlyb25tZW50VXRpbGl0
aWVzVGVzdC5jcHAKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJUZXN0LmgiCisKKyNpbmNsdWRlIDxXZWJLaXQvRW52aXJvbm1lbnRV
dGlsaXRpZXMuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgeworCitjb25zdCBjaGFyKiBjb25zdCBlbnZpcm9ubWVudFZhcmlhYmxlID0gIkRZTERfSU5T
RVJUX0xJQlJBUklFUyI7CisjZGVmaW5lIFBST0NFU1NfRFlMSUIgIlByb2Nlc3MuZHlsaWIiCitj
b25zdCBjaGFyKiBjb25zdCBzdHJpcFZhbHVlID0gIi8iIFBST0NFU1NfRFlMSUI7CisKK3N0YXRp
YyBjb25zdCBjaGFyKiBzdHJpcChjb25zdCBjaGFyKiBpbnB1dCkKK3sKKyAgICBzZXRlbnYoZW52
aXJvbm1lbnRWYXJpYWJsZSwgaW5wdXQsIDEpOworICAgIFdlYktpdDo6RW52aXJvbm1lbnRVdGls
aXRpZXM6OnN0cmlwVmFsdWVzRW5kaW5nV2l0aFN0cmluZyhlbnZpcm9ubWVudFZhcmlhYmxlLCBz
dHJpcFZhbHVlKTsKKyAgICByZXR1cm4gZ2V0ZW52KGVudmlyb25tZW50VmFyaWFibGUpOworfQor
CitURVNUKFdlYktpdDIsIFN0cmlwVmFsdWVzRW5kaW5nV2l0aFN0cmluZykKK3sKKyAgICBFWFBF
Q1RfU1RSRVEoc3RyaXAoIiIpLCAiIik7CisgICAgRVhQRUNUX1NUUkVRKHN0cmlwKCI6IiksICI6
Iik7CisgICAgRVhQRUNUX1NUUkVRKHN0cmlwKCI6OiIpLCAiOjoiKTsKKyAgICBFWFBFQ1RfU1RS
RVEoc3RyaXAoIjo6OiIpLCAiOjo6Iik7CisgICAgRVhQRUNUX1NUUkVRKHN0cmlwKCI6Ojo6Iiks
ICI6Ojo6Iik7CisgICAgRVhQRUNUX1NUUkVRKHN0cmlwKCI6Ojo6OiIpLCAiOjo6OjoiKTsKKwor
ICAgIEVYUEVDVF9TVFJFUShzdHJpcChQUk9DRVNTX0RZTElCKSwgUFJPQ0VTU19EWUxJQik7Cisg
ICAgRVhQRUNUX1NUUkVRKHN0cmlwKCI6IiBQUk9DRVNTX0RZTElCKSwgIjoiIFBST0NFU1NfRFlM
SUIpOworICAgIEVYUEVDVF9TVFJFUShzdHJpcChQUk9DRVNTX0RZTElCICI6IiksIFBST0NFU1Nf
RFlMSUIgIjoiKTsKKyAgICBFWFBFQ1RfU1RSRVEoc3RyaXAoIjoiIFBST0NFU1NfRFlMSUIgIjoi
KSwgIjoiIFBST0NFU1NfRFlMSUIgIjoiKTsKKworICAgIEVYUEVDVF9TVFJFUShzdHJpcCgiLyIg
UFJPQ0VTU19EWUxJQiksIG51bGxwdHIpOworICAgIEVYUEVDVF9TVFJFUShzdHJpcCgiOi8iIFBS
T0NFU1NfRFlMSUIpLCBudWxscHRyKTsKKyAgICBFWFBFQ1RfU1RSRVEoc3RyaXAoIi8iIFBST0NF
U1NfRFlMSUIgIjoiKSwgbnVsbHB0cik7CisgICAgRVhQRUNUX1NUUkVRKHN0cmlwKCI6LyIgUFJP
Q0VTU19EWUxJQiAiOiIpLCAiOiIpOworCisgICAgRVhQRUNUX1NUUkVRKHN0cmlwKFBST0NFU1Nf
RFlMSUIgIi8iKSwgUFJPQ0VTU19EWUxJQiAiLyIpOworICAgIEVYUEVDVF9TVFJFUShzdHJpcCgi
OiIgUFJPQ0VTU19EWUxJQiAiLyIpLCAiOiIgUFJPQ0VTU19EWUxJQiAiLyIpOworICAgIEVYUEVD
VF9TVFJFUShzdHJpcChQUk9DRVNTX0RZTElCICIvOiIpLCBQUk9DRVNTX0RZTElCICIvOiIpOwor
ICAgIEVYUEVDVF9TVFJFUShzdHJpcCgiOiIgUFJPQ0VTU19EWUxJQiAiLzoiKSwgIjoiIFBST0NF
U1NfRFlMSUIgIi86Iik7CisKKyAgICBFWFBFQ1RfU1RSRVEoc3RyaXAoIi8iIFBST0NFU1NfRFlM
SUIgIi8iKSwgIi8iIFBST0NFU1NfRFlMSUIgIi8iKTsKKyAgICBFWFBFQ1RfU1RSRVEoc3RyaXAo
IjovIiBQUk9DRVNTX0RZTElCICIvIiksICI6LyIgUFJPQ0VTU19EWUxJQiAiLyIpOworICAgIEVY
UEVDVF9TVFJFUShzdHJpcCgiLyIgUFJPQ0VTU19EWUxJQiAiLzoiKSwgIi8iIFBST0NFU1NfRFlM
SUIgIi86Iik7CisgICAgRVhQRUNUX1NUUkVRKHN0cmlwKCI6LyIgUFJPQ0VTU19EWUxJQiAiLzoi
KSwgIjovIiBQUk9DRVNTX0RZTElCICIvOiIpOworCisgICAgRVhQRUNUX1NUUkVRKHN0cmlwKCIv
QmVmb3JlLmR5bGliOi8iIFBST0NFU1NfRFlMSUIpLCAiL0JlZm9yZS5keWxpYiIpOworICAgIEVY
UEVDVF9TVFJFUShzdHJpcCgiLyIgUFJPQ0VTU19EWUxJQiAiOi9BZnRlci5keWxpYiIpLCAiL0Fm
dGVyLmR5bGliIik7CisgICAgRVhQRUNUX1NUUkVRKHN0cmlwKCIvQmVmb3JlLmR5bGliOi8iIFBS
T0NFU1NfRFlMSUIgIjovQWZ0ZXIuZHlsaWIiKSwgIi9CZWZvcmUuZHlsaWI6L0FmdGVyLmR5bGli
Iik7CisgICAgRVhQRUNUX1NUUkVRKHN0cmlwKCIvQmVmb3JlLmR5bGliOi8iIFBST0NFU1NfRFlM
SUIgIjovTWlkZGxlLmR5bGliOi8iIFBST0NFU1NfRFlMSUIgIjovQWZ0ZXIuZHlsaWIiKSwgIi9C
ZWZvcmUuZHlsaWI6L01pZGRsZS5keWxpYjovQWZ0ZXIuZHlsaWIiKTsKKworICAgIEVYUEVDVF9T
VFJFUShzdHJpcCgiLyIgUFJPQ0VTU19EWUxJQiAiOi8iIFBST0NFU1NfRFlMSUIpLCBudWxscHRy
KTsKKyAgICBFWFBFQ1RfU1RSRVEoc3RyaXAoIi8iIFBST0NFU1NfRFlMSUIgIjovIiBQUk9DRVNT
X0RZTElCICI6LyIgUFJPQ0VTU19EWUxJQiksIG51bGxwdHIpOworCisgICAgRVhQRUNUX1NUUkVR
KHN0cmlwKCIvdXNyL2xpYi8iIFBST0NFU1NfRFlMSUIpLCBudWxscHRyKTsKKyAgICBFWFBFQ1Rf
U1RSRVEoc3RyaXAoIi8iIFBST0NFU1NfRFlMSUIgIi8iIFBST0NFU1NfRFlMSUIpLCBudWxscHRy
KTsKK30KKworfQo=
</data>
<flag name="review"
          id="328761"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
    <flag name="commit-queue"
          id="328763"
          type_id="3"
          status="-"
          setter="bfulgham"
    />
          </attachment>
      

    </bug>

</bugzilla>