<?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>167169</bug_id>
          
          <creation_ts>2017-01-18 12:15:37 -0800</creation_ts>
          <short_desc>REGRESSION (r210820): svn-create-patch does not emit property change only diff</short_desc>
          <delta_ts>2017-02-02 11:08:26 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=167264</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=167742</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>166914</dependson>
          <blocked>167742</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>jbedard</cc>
    
    <cc>lforschler</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1267816</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-01-18 12:15:37 -0800</bug_when>
    <thetext>Following the patch for bug #166914, svn-create-patch no longer emits a property change only diff.

You can reproduce this by performing the following in a terminal inside a top-level SVN checkout of WebKit:

1. svn propset svn:executable on Makefile
2. Tools/Scripts/svn-create-patch

Nothing will be emitted to standard output. But it should have emitted a property change only diff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1267817</commentid>
    <comment_count>1</comment_count>
      <attachid>299163</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-01-18 12:17:18 -0800</bug_when>
    <thetext>Created attachment 299163
Work-in-progress diff</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1267837</commentid>
    <comment_count>2</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-01-18 13:04:05 -0800</bug_when>
    <thetext>*** Bug 167167 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1267864</commentid>
    <comment_count>3</comment_count>
      <attachid>299163</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-01-18 13:46:26 -0800</bug_when>
    <thetext>Comment on attachment 299163
Work-in-progress diff

The patch is insufficient as svn-create-patch does not produce at the correct patch for a copy without property + set property on copied file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1267868</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-01-18 13:55:31 -0800</bug_when>
    <thetext>Here are some of the cases we should see how svn diff using SVN version 1.9 behaves:

1. Copy file without property + set property on copied file
2. Copy file with property
3. Copy file with property + set property on copied file
4. Copy file with property + modify property on copied file
5. Copy file with property + remove property from copied file
6. Move file without property + set property on moved file
7. Move file with property
8. Move file with property + set property on moved file
9. Move file with property + modify property on moved file
10. Move file with property + remove property from moved file
11. Set property on file.
12. Modify property on file.
13. Remove property from file.

Some of these cases may not be applicable or may fallout from handling other cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268656</commentid>
    <comment_count>5</comment_count>
      <attachid>299405</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-01-20 17:00:24 -0800</bug_when>
    <thetext>Created attachment 299405
Patch and unit tests

I am open to suggestion on the approach and name suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268660</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-01-20 17:02:38 -0800</bug_when>
    <thetext>Some alternative names I thought of for the function fixSVNPatchForAdditionWithHistory were removeLeadingSVNDiffHeaderForAdditionWithHistory or removeLeadingSVNDiffHeader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268661</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-20 17:03:00 -0800</bug_when>
    <thetext>Attachment 299405 did not pass style-queue:


ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:42:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:43:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:51:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:52:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:63:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:64:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:71:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:72:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:82:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:83:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:95:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:96:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:111:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:112:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:124:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:125:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:153:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:154:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:166:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:167:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:184:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:185:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:197:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:198:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:215:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:216:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:229:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:230:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:248:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:249:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:263:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:264:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 32 in 4 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>1268663</commentid>
    <comment_count>8</comment_count>
      <attachid>299407</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-01-20 17:08:30 -0800</bug_when>
    <thetext>Created attachment 299407
Patch and unit tests

Set the SVN property &quot;allow-tabs&quot; on file Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl as it intentionally contains tab characters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268664</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-20 17:09:54 -0800</bug_when>
    <thetext>Attachment 299407 did not pass style-queue:


ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:42:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:43:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:51:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:52:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:63:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:64:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:71:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:72:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:82:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:83:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:95:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:96:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:111:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:112:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:124:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:125:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:153:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:154:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:166:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:167:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:184:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:185:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:197:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:198:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:215:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:216:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:229:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:230:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:248:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:249:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:263:  Line contains tab character.  [whitespace/tab] [5]
ERROR: Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.pl:264:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 32 in 4 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>1268665</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-01-20 17:11:32 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Attachment 299407 [details] did not pass style-queue:
&gt; 
&gt; 
&gt; ERROR:
&gt; Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.
&gt; pl:42:  Line contains tab character.  [whitespace/tab] [5]
&gt; [...]
&gt; ERROR:
&gt; Tools/Scripts/webkitperl/VCSUtils_unittest/fixSVNPatchForAdditionWithHistory.
&gt; pl:264:  Line contains tab character.  [whitespace/tab] [5]
&gt; Total errors found: 32 in 4 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against
&gt; check-webkit-style.

The tab characters in this unit test file are intentional.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272305</commentid>
    <comment_count>11</comment_count>
      <attachid>299407</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-02-01 15:32:24 -0800</bug_when>
    <thetext>Comment on attachment 299407
Patch and unit tests

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272348</commentid>
    <comment_count>12</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-02-01 17:42:48 -0800</bug_when>
    <thetext>Committed r211543: &lt;http://trac.webkit.org/changeset/211543&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272542</commentid>
    <comment_count>13</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2017-02-02 11:08:26 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Committed r211543: &lt;http://trac.webkit.org/changeset/211543&gt;

Follow-up fix:

Bug 167742: Undefined subroutine in svn-create-patch
Committed r211570: &lt;http://trac.webkit.org/changeset/211570&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299163</attachid>
            <date>2017-01-18 12:17:18 -0800</date>
            <delta_ts>2017-01-18 13:46:26 -0800</delta_ts>
            <desc>Work-in-progress diff</desc>
            <filename>WIP.diff</filename>
            <type>text/plain</type>
            <size>660</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvc3ZuLWNyZWF0ZS1wYXRjaCBiL1Rvb2xzL1Njcmlw
dHMvc3ZuLWNyZWF0ZS1wYXRjaAppbmRleCAxNDFhY2NkLi45NDNkZmJmIDEwMDc1NQotLS0gYS9U
b29scy9TY3JpcHRzL3N2bi1jcmVhdGUtcGF0Y2gKKysrIGIvVG9vbHMvU2NyaXB0cy9zdm4tY3Jl
YXRlLXBhdGNoCkBAIC0yMzgsNyArMjM4LDcgQEAgc3ViIGdlbmVyYXRlRGlmZigkJCkKICAgICAg
ICAgJHBhdGNoIC49ICRfOwogICAgIH0KICAgICBjbG9zZSBESUZGOwotICAgIGlmICghJG51bVRl
eHRDaHVua3MpIHsKKyAgICBpZiAoISRudW1UZXh0Q2h1bmtzICYmICRmaWxlRGF0YS0+e21vZGlm
aWNhdGlvblR5cGV9IGVxICJhZGRpdGlvbldpdGhIaXN0b3J5IikgewogICAgICAgICAjIEZvciBt
b3ZlZC9jb3BpZWQgZmlsZXMgd2l0aG91dCBwb3N0IGNoYW5nZXMgU1ZOIDEuOSBvciBncmVhdGVy
IGVtaXRzIGEgZGlmZiB3aXRoIGFuIGVtcHR5CiAgICAgICAgICMgYm9keSBhcyBvcHBvc2VkIHRv
IGVtaXR0aW5nIG5vdGhpbmcgYXMgaW4gZWFybGllciB2ZXJzaW9ucyBvZiBTVk4uIEZvciBleGFt
cGxlLCBtb3ZlIGZpbGUKICAgICAgICAgIyBBLnR4dCB0byBCLnR4dCB0aGVuIHRoZSBkaWZmIG9m
IEIudHh0IGluIFNWTiAxLjkgb3IgZ3JlYXRlciBpczoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299405</attachid>
            <date>2017-01-20 17:00:24 -0800</date>
            <delta_ts>2017-01-20 17:08:30 -0800</delta_ts>
            <desc>Patch and unit tests</desc>
            <filename>Bug167169.patch</filename>
            <type>text/plain</type>
            <size>15348</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxMTAwMCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMyIEBACisyMDE3LTAxLTIwICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4K
KworICAgICAgICBSRUdSRVNTSU9OIChyMjEwODIwKTogc3ZuLWNyZWF0ZS1wYXRjaCBkb2VzIG5v
dCBlbWl0IHByb3BlcnR5IGNoYW5nZSBvbmx5IGRpZmYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzE2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vcmUgZGlyZWN0bHkgaGFuZGxlIHRoZSBTVk4gMS45
IG9yIG5ld2VyIHN5bnRheCBjaGFuZ2UgZm9yIGEgZGlmZiBvZiBhIGNvcGllZCBvciBtb3ZlZCBm
aWxlCisgICAgICAgIC0gYSBTVk4gZGlmZiBoZWFkZXIgYW5kIGFuIGVtcHR5IGJvZHkuIEluIHBh
cnRpY3VsYXIsIHJlbW92ZSBhIGR1cGxpY2F0ZSBsZWFkaW5nIFNWTiBkaWZmCisgICAgICAgIGhl
YWRlciBmcm9tIHRoZSBvdXRwdXQgb2YgInN2biBkaWZmIiBvbiBhIGZpbGUgdGhhdCB3YXMgY29w
aWVkIG9yIG1vdmVkLgorCisgICAgICAgIEZvbGxvd2luZyByMjEwODIwIHN2bi1jcmVhdGUtcGF0
Y2ggZW1pdHMgdG8gc3RhbmRhcmQgb3V0cHV0IGEgZGlmZiBvbmx5IGlmIGl0IGhhcyBhdCBsZWFz
dCBvbmUKKyAgICAgICAgY2h1bmsgcmFuZ2UgbGluZSAoZS5nLiBAQCAtMCwwICsxLDcgQEApIGFz
IGEgbWVhbnMgdG8gd29ya2Fyb3VuZCBhIHN5bnRheCBjaGFuZ2UgaW4gdGhlIGRpZmYKKyAgICAg
ICAgb3V0cHV0IG9mIGEgY29waWVkIG9yIG1vdmVkIGZpbGUgaW4gU1ZOIHZlcnNpb24gMS45IG9y
IG5ld2VyLiBJbiBTVk4gMS45IG9yIG5ld2VyICJzdm4gZGlmZiIKKyAgICAgICAgb2YgYSBjb3Bp
ZWQgb3IgbW92ZWQgZmlsZSBhbHdheXMgZW1pdHMgdG8gc3RhbmRhcmQgb3V0cHV0IGEgbGVhZGlu
ZyBTVk4gZGlmZiBoZWFkZXIgKGFuICJJbmRleDoiCisgICAgICAgIGxpbmUgZm9sbG93ZWQgYnkg
YSBzZXBhcmF0b3IgbGluZSkgd2l0aCBhbiBlbXB0eSBib2R5OyA9PiBubyBjaHVuayByYW5nZSBs
aW5lcy4gSG93ZXZlciBhIGRpZmYKKyAgICAgICAgb2YgYSBmaWxlIHdpdGggb25seSBhIHByb3Bl
cnR5IGNoYW5nZSBhbHNvIGRvZXMgbm90IGNvbnRhaW4gYW55IGNodW5rIHJhbmdlIGxpbmVzLiBU
aGVyZWZvcmUKKyAgICAgICAgc3ZuLWNyZWF0ZS1wYXRjaCBubyBsb25nZXIgZW1pdHRlZCB0byBz
dGFuZGFyZCBvdXRwdXQgc3VjaCBhIGRpZmYuIEluc3RlYWQgb2YgaW5kaXJlY3RseSBkZXRlY3Rp
bmcKKyAgICAgICAgYSBTVk4gZGlmZiBoZWFkZXIgd2l0aCBhbiBlbXB0eSBib2R5IGJ5IGNvdW50
aW5nIHRoZSBudW1iZXIgb2YgY2h1bmsgcmFuZ2UgbGluZXMgaW4gdGhlIGRpZmYKKyAgICAgICAg
d2Ugc2hvdWxkIGRpcmVjdGx5IHRlc3QgZm9yIHRoZSBwcmVzZW5jZSBvZiBhIGxlYWRpbmcgU1ZO
IGRpZmYgaGVhZGVyIHdpdGggYW4gZW1wdHkgYm9keSBhbmQKKyAgICAgICAgcmVtb3ZlIHN1Y2gg
bGluZXMgZnJvbSB0aGUgZGlmZi4KKworICAgICAgICAqIFNjcmlwdHMvVkNTVXRpbHMucG06Cisg
ICAgICAgIChmaXhTVk5QYXRjaEZvckFkZGl0aW9uV2l0aEhpc3RvcnkpOiBBZGRlZC4KKyAgICAg
ICAgKiBTY3JpcHRzL3N2bi1jcmVhdGUtcGF0Y2g6CisgICAgICAgIChnZW5lcmF0ZURpZmYpOiBQ
YXNzIHRoZSBvdXRwdXQgZnJvbSAic3ZuIGRpZmYiIHRvIGZpeFNWTlBhdGNoRm9yQWRkaXRpb25X
aXRoSGlzdG9yeSgpIHdoZW4KKyAgICAgICAgd2UgaGF2ZSBhIG5vbiBlbXB0eSBwYXRjaCBmb3Ig
YW4gYWRkZWQgZmlsZSB3aXRoIGhpc3RvcnkgKGkuZS4gYSBjb3BpZWQgb3IgbW92ZWQgZmlsZSku
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L2ZpeFNWTlBh
dGNoRm9yQWRkaXRpb25XaXRoSGlzdG9yeS5wbDogQWRkZWQuCisKIDIwMTctMDEtMjAgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBG
aXggZm9yIFdpbmRvd3MgRHVtcFJlbmRlclRyZWUgYWZ0ZXIgcjIxMDk3NgpJbmRleDogVG9vbHMv
U2NyaXB0cy9WQ1NVdGlscy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL1ZDU1V0aWxz
LnBtCShyZXZpc2lvbiAyMTA4NjIpCisrKyBUb29scy9TY3JpcHRzL1ZDU1V0aWxzLnBtCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzM2LDYgKzE3MzYsNTEgQEAgc3ViIHNldENoYW5nZUxvZ0RhdGVBbmRS
ZXZpZXdlcigkJCQpCiAgICAgcmV0dXJuICRwYXRjaDsKIH0KIAorIyBSZW1vdmVzIGEgbGVhZGlu
ZyBTdWJ2ZXJzaW9uIGhlYWRlciB3aXRob3V0IGFuIGFzc29jaWF0ZWQgZGlmZiBpZiBvbmUgZXhp
c3RzLgorIworIyBUaGlzIHN1YnJvdXRpbmUgZGllcyBpZiB0aGUgc3BlY2lmaWVkIHBhdGNoIGRv
ZXMgbm90IGJlZ2luIHdpdGggYW4gIkluZGV4OiIgbGluZS4KKyMKKyMgSW4gU1ZOIDEuOSBvciBu
ZXdlciwgInN2biBkaWZmIiBvZiBhIG1vdmVkL2NvcGllZCBmaWxlIHdpdGhvdXQgcG9zdCBjaGFu
Z2VzIGFsd2F5cworIyBlbWl0cyBhIGxlYWRpbmcgaGVhZGVyIHdpdGhvdXQgYW4gYXNzb2NpYXRl
ZCBkaWZmOgorIyAgICAgSW5kZXg6IEIudHh0CisjICAgICA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIChlbmQgb2Yg
ZmlsZSBvciBuZXh0IGhlYWRlcikKKyMKKyMgSWYgdGhlIHNhbWUgZmlsZSBoYXMgYSBwcm9wZXJ0
eSBjaGFuZ2UgdGhlbiB0aGUgcGF0Y2ggaGFzIHRoZSBmb3JtOgorIyAgICAgSW5kZXg6IEIudHh0
CisjICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisjICAgICBJbmRleDogQi50eHQKKyMgICAgID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
KyMgICAgIC0tLSBCLnR4dCAgICAocmV2aXNpb24gMSkKKyMgICAgICsrKyBCLnR4dCAgICAod29y
a2luZyBjb3B5KQorIworIyAgICAgUHJvcGVydHkgY2hhbmdlIG9uIEIudHh0CisjICAgICBfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCisjICAgICBBZGRlZDogc3ZuOmV4ZWN1dGFibGUKKyMgICAgICMjIC0wLDAgKzEgIyMK
KyMgICAgICsqCisjICAgICBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CisjCisjIFdl
IG5lZWQgdG8gYXBwbHkgdGhpcyBmdW5jdGlvbiB0byB0aGUgb3VwdXQgb2YgInN2biBkaWZmIiBm
b3IgYW4gYWRkaXRpb24gd2l0aCBoaXN0b3J5CisjIHRvIHJlbW92ZSBhIGR1cGxpY2F0ZSBoZWFk
ZXIgc28gdGhhdCBzdm4tYXBwbHkgY2FuIGFwcGx5IHRoZSByZXN1bHRpbmcgcGF0Y2guCitzdWIg
Zml4U1ZOUGF0Y2hGb3JBZGRpdGlvbldpdGhIaXN0b3J5KCQpCit7CisgICAgbXkgKCRwYXRjaCkg
PSBAXzsKKworICAgICRwYXRjaCA9fiAvKFxyP1xuKS87CisgICAgbXkgJGxpbmVFbmRpbmcgPSAk
MTsKKyAgICBteSBAbGluZXMgPSBzcGxpdCgvJGxpbmVFbmRpbmcvLCAkcGF0Y2gpOworCisgICAg
aWYgKCRsaW5lc1swXSAhfiAvJHN2bkRpZmZTdGFydFJlZ0V4LykgeworICAgICAgICBkaWUoIkZp
cnN0IGxpbmUgb2YgU1ZOIGRpZmYgZG9lcyBub3QgYmVnaW4gd2l0aCBcIkluZGV4IFwiOiBcIiRs
aW5lc1swXVwiIik7CisgICAgfQorICAgIGlmIChAbGluZXMgPD0gMikgeworICAgICAgICByZXR1
cm4gIiI7CisgICAgfQorICAgIHNwbGljZShAbGluZXMsIDAsIDIpIGlmICRsaW5lc1syXSA9fiAv
JHN2bkRpZmZTdGFydFJlZ0V4LzsKKyAgICByZXR1cm4gam9pbigkbGluZUVuZGluZywgQGxpbmVz
KTsKK30KKwogIyBJZiBwb3NzaWJsZSwgcmV0dXJucyBhIENoYW5nZUxvZyBwYXRjaCBlcXVpdmFs
ZW50IHRvIHRoZSBnaXZlbiBvbmUsCiAjIGJ1dCB3aXRoIHRoZSBuZXdlc3QgQ2hhbmdlTG9nIGVu
dHJ5IGluc2VydGVkIGF0IHRoZSB0b3Agb2YgdGhlCiAjIGZpbGUgLS0gaS5lLiBubyBsZWFkaW5n
IGNvbnRleHQgYW5kIGFsbCBsaW5lcyBzdGFydGluZyB3aXRoICIrIi4KSW5kZXg6IFRvb2xzL1Nj
cmlwdHMvc3ZuLWNyZWF0ZS1wYXRjaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3N2bi1j
cmVhdGUtcGF0Y2gJKHJldmlzaW9uIDIxMDg2MikKKysrIFRvb2xzL1NjcmlwdHMvc3ZuLWNyZWF0
ZS1wYXRjaAkod29ya2luZyBjb3B5KQpAQCAtMjI1LDI4ICsyMjUsMTkgQEAgc3ViIGdlbmVyYXRl
RGlmZigkJCkKICAgICB9CiAgICAgCiAgICAgbXkgJHBhdGNoID0gIiI7Ci0gICAgaWYgKCRmaWxl
RGF0YS0+e21vZGlmaWNhdGlvblR5cGV9IGVxICJhZGRpdGlvbldpdGhIaXN0b3J5IikgeworICAg
IG15ICRpc0FkZGl0aW9uV2l0aEhpc3RvcnkgPSAkZmlsZURhdGEtPnttb2RpZmljYXRpb25UeXBl
fSBlcSAiYWRkaXRpb25XaXRoSGlzdG9yeSI7CisgICAgaWYgKCRpc0FkZGl0aW9uV2l0aEhpc3Rv
cnkpIHsKICAgICAgICAgbWFudWZhY3R1cmVQYXRjaEZvckFkZGl0aW9uV2l0aEhpc3RvcnkoJGZp
bGVEYXRhKTsKICAgICB9CiAKICAgICBteSAkZGlmZk9wdGlvbnMgPSBkaWZmT3B0aW9uc0ZvckZp
bGUoJGZpbGUpOwogICAgIG15ICRlc2NhcGVkRmlsZSA9IGVzY2FwZVN1YnZlcnNpb25QYXRoKCRm
aWxlKTsKICAgICBvcGVuIERJRkYsICJzdm4gZGlmZiAtLWRpZmYtY21kIGRpZmYgLXggLSRkaWZm
T3B0aW9ucyAnJGVzY2FwZWRGaWxlJyB8IiBvciBkaWU7Ci0gICAgbXkgJG51bVRleHRDaHVua3Mg
PSAwOwogICAgIHdoaWxlICg8RElGRj4pIHsKLSAgICAgICAgJG51bVRleHRDaHVua3MgKz0gMSBp
ZiBwYXJzZUNodW5rUmFuZ2UoJF8pOwogICAgICAgICAkcGF0Y2ggLj0gJF87CiAgICAgfQogICAg
IGNsb3NlIERJRkY7Ci0gICAgaWYgKCEkbnVtVGV4dENodW5rcykgewotICAgICAgICAjIEZvciBt
b3ZlZC9jb3BpZWQgZmlsZXMgd2l0aG91dCBwb3N0IGNoYW5nZXMgU1ZOIDEuOSBvciBncmVhdGVy
IGVtaXRzIGEgZGlmZiB3aXRoIGFuIGVtcHR5Ci0gICAgICAgICMgYm9keSBhcyBvcHBvc2VkIHRv
IGVtaXR0aW5nIG5vdGhpbmcgYXMgaW4gZWFybGllciB2ZXJzaW9ucyBvZiBTVk4uIEZvciBleGFt
cGxlLCBtb3ZlIGZpbGUKLSAgICAgICAgIyBBLnR4dCB0byBCLnR4dCB0aGVuIHRoZSBkaWZmIG9m
IEIudHh0IGluIFNWTiAxLjkgb3IgZ3JlYXRlciBpczoKLSAgICAgICAgIyAgICAgSW5kZXg6IEIu
dHh0Ci0gICAgICAgICMgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICAgICAgIyBUaGVyZWZvcmUgd2UgaWdu
b3JlIGVtaXR0aW5nIHN1Y2ggYSBkaWZmLgotICAgICAgICAkcGF0Y2ggPSAiIjsKLSAgICB9Cisg
ICAgJHBhdGNoID0gZml4U1ZOUGF0Y2hGb3JBZGRpdGlvbldpdGhIaXN0b3J5KCRwYXRjaCkgaWYg
JHBhdGNoICYmICRpc0FkZGl0aW9uV2l0aEhpc3Rvcnk7CiAgICAgaWYgKGJhc2VuYW1lKCRmaWxl
KSBlcSAiQ2hhbmdlTG9nIikgewogICAgICAgICBteSAkY2hhbmdlTG9nSGFzaCA9IGZpeENoYW5n
ZUxvZ1BhdGNoKCRwYXRjaCk7CiAgICAgICAgICRwYXRjaCA9ICRjaGFuZ2VMb2dIYXNoLT57cGF0
Y2h9OyAgIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0
L2ZpeFNWTlBhdGNoRm9yQWRkaXRpb25XaXRoSGlzdG9yeS5wbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvZml4U1ZOUGF0Y2hGb3JBZGRp
dGlvbldpdGhIaXN0b3J5LnBsCShyZXZpc2lvbiAwKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRw
ZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L2ZpeFNWTlBhdGNoRm9yQWRkaXRpb25XaXRoSGlzdG9yeS5w
bAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI4OCBAQAorIyEvdXNyL2Jpbi9wZXJsCisjCisj
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisj
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisjIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIFVuaXQgdGVzdHMgb2Yg
VkNTVXRpbHM6OmZpeFNWTlBhdGNoRm9yQWRkaXRpb25XaXRoSGlzdG9yeSgpLgorCit1c2Ugc3Ry
aWN0OwordXNlIHdhcm5pbmdzOworCit1c2UgVGVzdDo6TW9yZTsKK3VzZSBWQ1NVdGlsczsKKwor
bXkgQHRlc3RDYXNlSGFzaFJlZnMgPSAoCisjIyMKKyMgVGVzdCBjYXNlcyB0aGF0IHNob3VsZCBo
YXZlIG5vIGNoYW5nZQorIyMKK3sgIyBOZXcgdGVzdAorICAgIGRpZmZOYW1lID0+ICJmaXhTVk5Q
YXRjaEZvckFkZGl0aW9uV2l0aEhpc3Rvcnk6IFtubyBjaGFuZ2VdIG1vZGlmeSBmaWxlIiwKKyAg
ICBpbnB1dFRleHQgPT4gPDwnRU5EJywKK0luZGV4OiB0ZXN0X2ZpbGUudHh0Cis9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CistLS0gdGVzdF9maWxlLnR4dAkocmV2aXNpb24gMSkKKysrKyB0ZXN0X2ZpbGUudHh0CSh3b3Jr
aW5nIGNvcHkpCitAQCAtMSArMSBAQAorLUEKKytBMgorRU5ECisgICAgZXhwZWN0ZWRSZXR1cm4g
PT4gPDwnRU5EJworSW5kZXg6IHRlc3RfZmlsZS50eHQKKz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB0ZXN0X2Zp
bGUudHh0CShyZXZpc2lvbiAxKQorKysrIHRlc3RfZmlsZS50eHQJKHdvcmtpbmcgY29weSkKK0BA
IC0xICsxIEBACistQQorK0EyCitFTkQKK30sCit7ICMgTmV3IHRlc3QKKyAgICBkaWZmTmFtZSA9
PiAiZml4U1ZOUGF0Y2hGb3JBZGRpdGlvbldpdGhIaXN0b3J5OiBbbm8gY2hhbmdlXSBkZWxldGUg
ZmlsZSIsCisgICAgaW5wdXRUZXh0ID0+IDw8J0VORCcsCitJbmRleDogdGVzdF9maWxlLnR4dAor
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorLS0tIHRlc3RfZmlsZS50eHQJKHJldmlzaW9uIDEpCisrKysgdGVzdF9maWxl
LnR4dAkobm9uZXhpc3RlbnQpCitAQCAtMSArMCwwIEBACistQQorRU5ECisgICAgZXhwZWN0ZWRS
ZXR1cm4gPT4gPDwnRU5EJworSW5kZXg6IHRlc3RfZmlsZS50eHQKKz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB0
ZXN0X2ZpbGUudHh0CShyZXZpc2lvbiAxKQorKysrIHRlc3RfZmlsZS50eHQJKG5vbmV4aXN0ZW50
KQorQEAgLTEgKzAsMCBAQAorLUEKK0VORAorfSwKK3sgIyBOZXcgdGVzdAorICAgIGRpZmZOYW1l
ID0+ICJmaXhTVk5QYXRjaEZvckFkZGl0aW9uV2l0aEhpc3Rvcnk6IFtubyBjaGFuZ2VdIGFkZCBz
dm46ZXhlY3V0YWJsZSBwcm9wZXJ0eSIsCisgICAgaW5wdXRUZXh0ID0+IDw8J0VORCcsCitJbmRl
eDogdGVzdF9maWxlLnR4dAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHRlc3RfZmlsZS50eHQJKHJldmlzaW9u
IDEpCisrKysgdGVzdF9maWxlLnR4dAkod29ya2luZyBjb3B5KQorCitQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiB0ZXN0X2ZpbGUudHh0CitfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCitBZGRlZDogc3ZuOmV4ZWN1dGFibGUKKyMj
IC0wLDAgKzEgIyMKKysqCitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CitFTkQKKyAg
ICBleHBlY3RlZFJldHVybiA9PiA8PCdFTkQnCitJbmRleDogdGVzdF9maWxlLnR4dAorPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorLS0tIHRlc3RfZmlsZS50eHQJKHJldmlzaW9uIDEpCisrKysgdGVzdF9maWxlLnR4dAko
d29ya2luZyBjb3B5KQorCitQcm9wZXJ0eSBjaGFuZ2VzIG9uOiB0ZXN0X2ZpbGUudHh0CitfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCitBZGRlZDogc3ZuOmV4ZWN1dGFibGUKKyMjIC0wLDAgKzEgIyMKKysqCitcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CitFTkQKK30sCit7ICMgTmV3IHRlc3QKKyAgICBkaWZm
TmFtZSA9PiAiZml4U1ZOUGF0Y2hGb3JBZGRpdGlvbldpdGhIaXN0b3J5OiBbbm8gY2hhbmdlXSBy
ZW1vdmUgc3ZuOmV4ZWN1dGFibGUgcHJvcGVydHkiLAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQn
LAorSW5kZXg6IHRlc3RfZmlsZS50eHQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB0ZXN0X2ZpbGUudHh0CShy
ZXZpc2lvbiAxKQorKysrIHRlc3RfZmlsZS50eHQJKHdvcmtpbmcgY29weSkKKworUHJvcGVydHkg
Y2hhbmdlcyBvbjogdGVzdF9maWxlLnR4dAorX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXworRGVsZXRlZDogc3ZuOmV4ZWN1
dGFibGUKKyMjIC0xICswLDAgIyMKKy0qCitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5
CitFTkQKKyAgICBleHBlY3RlZFJldHVybiA9PiA8PCdFTkQnCitJbmRleDogdGVzdF9maWxlLnR4
dAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorLS0tIHRlc3RfZmlsZS50eHQJKHJldmlzaW9uIDEpCisrKysgdGVzdF9m
aWxlLnR4dAkod29ya2luZyBjb3B5KQorCitQcm9wZXJ0eSBjaGFuZ2VzIG9uOiB0ZXN0X2ZpbGUu
dHh0CitfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCitEZWxldGVkOiBzdm46ZXhlY3V0YWJsZQorIyMgLTEgKzAsMCAjIwor
LSoKK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKK0VORAorfSwKKyMjIworIyBNb3Zl
ZC9jb3BpZWQgZmlsZSB1c2luZyBTVk4gMS45IHN5bnRheAorIyMKK3sgIyBOZXcgdGVzdAorICAg
IGRpZmZOYW1lID0+ICJmaXhTVk5QYXRjaEZvckFkZGl0aW9uV2l0aEhpc3Rvcnk6IG1vdmVkL2Nv
cGllZCBmaWxlIiwKKyAgICBpbnB1dFRleHQgPT4gPDwnRU5EJywKK0luZGV4OiB0ZXN0X2ZpbGUu
dHh0Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CitFTkQKKyAgICBleHBlY3RlZFJldHVybiA9PiAiIgorfSwKK3sgIyBO
ZXcgdGVzdAorICAgIGRpZmZOYW1lID0+ICJmaXhTVk5QYXRjaEZvckFkZGl0aW9uV2l0aEhpc3Rv
cnk6IG1vdmVkL2NvcGllZCBmaWxlIHdpdGggYWRkZWQgc3ZuOmV4ZWN1dGFibGUgcHJvcGVydHki
LAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAorSW5kZXg6IHRlc3RfZmlsZS50eHQKKz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KK0luZGV4OiB0ZXN0X2ZpbGUudHh0Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gdGVzdF9maWxlLnR4
dAkocmV2aXNpb24gMSkKKysrKyB0ZXN0X2ZpbGUudHh0CSh3b3JraW5nIGNvcHkpCisKK1Byb3Bl
cnR5IGNoYW5nZXMgb246IHRlc3RfZmlsZS50eHQKK19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KK0FkZGVkOiBzdm46ZXhl
Y3V0YWJsZQorIyMgLTAsMCArMSAjIworKyoKK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVy
dHkKK0VORAorICAgIGV4cGVjdGVkUmV0dXJuID0+IDw8J0VORCcKK0luZGV4OiB0ZXN0X2ZpbGUu
dHh0Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CistLS0gdGVzdF9maWxlLnR4dAkocmV2aXNpb24gMSkKKysrKyB0ZXN0
X2ZpbGUudHh0CSh3b3JraW5nIGNvcHkpCisKK1Byb3BlcnR5IGNoYW5nZXMgb246IHRlc3RfZmls
ZS50eHQKK19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KK0FkZGVkOiBzdm46ZXhlY3V0YWJsZQorIyMgLTAsMCArMSAjIwor
KyoKK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKK0VORAorfSwKK3sgIyBOZXcgdGVz
dAorICAgIGRpZmZOYW1lID0+ICJmaXhTVk5QYXRjaEZvckFkZGl0aW9uV2l0aEhpc3Rvcnk6IG1v
dmVkL2NvcGllZCBmaWxlIHdpdGggcmVtb3ZlZCBzdm46ZXhlY3V0YWJsZSBwcm9wZXJ0eSIsCisg
ICAgaW5wdXRUZXh0ID0+IDw8J0VORCcsCitJbmRleDogdGVzdF9maWxlLnR4dAorPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorSW5kZXg6IHRlc3RfZmlsZS50eHQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB0ZXN0X2ZpbGUudHh0CShy
ZXZpc2lvbiAxKQorKysrIHRlc3RfZmlsZS50eHQJKHdvcmtpbmcgY29weSkKKworUHJvcGVydHkg
Y2hhbmdlcyBvbjogdGVzdF9maWxlLnR4dAorX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXworRGVsZXRlZDogc3ZuOmV4ZWN1
dGFibGUKKyMjIC0xICswLDAgIyMKKy0qCitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5
CitFTkQKKyAgICBleHBlY3RlZFJldHVybiA9PiA8PCdFTkQnCitJbmRleDogdGVzdF9maWxlLnR4
dAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorLS0tIHRlc3RfZmlsZS50eHQJKHJldmlzaW9uIDEpCisrKysgdGVzdF9m
aWxlLnR4dAkod29ya2luZyBjb3B5KQorCitQcm9wZXJ0eSBjaGFuZ2VzIG9uOiB0ZXN0X2ZpbGUu
dHh0CitfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCitEZWxldGVkOiBzdm46ZXhlY3V0YWJsZQorIyMgLTEgKzAsMCAjIwor
LSoKK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKK0VORAorfSwKK3sgIyBOZXcgdGVz
dAorICAgIGRpZmZOYW1lID0+ICJmaXhTVk5QYXRjaEZvckFkZGl0aW9uV2l0aEhpc3Rvcnk6IG1v
dmVkL2NvcGllZCBmaWxlIHdpdGggYWRkZWQgbXVsdGktbGluZSBwcm9wZXJ0eSIsCisgICAgaW5w
dXRUZXh0ID0+IDw8J0VORCcsCitJbmRleDogdGVzdF9maWxlLnR4dAorPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorSW5k
ZXg6IHRlc3RfZmlsZS50eHQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB0ZXN0X2ZpbGUudHh0CShyZXZpc2lv
biAxKQorKysrIHRlc3RfZmlsZS50eHQJKHdvcmtpbmcgY29weSkKKworUHJvcGVydHkgY2hhbmdl
cyBvbjogdGVzdF9maWxlLnR4dAorX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXworQWRkZWQ6IGRvY3VtZW50YXRpb24KKyMj
IC0wLDAgKzEsMyAjIworK0EKKytsb25nIHNlbnRlbmNlIHRoYXQgc3BhbnMKKyttdWx0aXBsZSBs
aW5lcy4KK0VORAorICAgIGV4cGVjdGVkUmV0dXJuID0+IDw8J0VORCcKK0luZGV4OiB0ZXN0X2Zp
bGUudHh0Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CistLS0gdGVzdF9maWxlLnR4dAkocmV2aXNpb24gMSkKKysrKyB0
ZXN0X2ZpbGUudHh0CSh3b3JraW5nIGNvcHkpCisKK1Byb3BlcnR5IGNoYW5nZXMgb246IHRlc3Rf
ZmlsZS50eHQKK19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KK0FkZGVkOiBkb2N1bWVudGF0aW9uCisjIyAtMCwwICsxLDMg
IyMKKytBCisrbG9uZyBzZW50ZW5jZSB0aGF0IHNwYW5zCisrbXVsdGlwbGUgbGluZXMuCitFTkQK
K30sCit7ICMgTmV3IHRlc3QKKyAgICBkaWZmTmFtZSA9PiAiZml4U1ZOUGF0Y2hGb3JBZGRpdGlv
bldpdGhIaXN0b3J5OiBtb3ZlZC9jb3BpZWQgZmlsZSB3aXRoIG1vZGlmaWVkIG11bHRpLWxpbmUg
cHJvcGVydHkiLAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAorSW5kZXg6IHRlc3RfZmlsZS50
eHQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KK0luZGV4OiB0ZXN0X2ZpbGUudHh0Cis9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gdGVz
dF9maWxlLnR4dAkocmV2aXNpb24gMSkKKysrKyB0ZXN0X2ZpbGUudHh0CSh3b3JraW5nIGNvcHkp
CisKK1Byb3BlcnR5IGNoYW5nZXMgb246IHRlc3RfZmlsZS50eHQKK19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KK01vZGlm
aWVkOiBkb2N1bWVudGF0aW9uCisjIyAtMSwzICsxLDMgIyMKKy1BCisrQW5vdGhlcgorIGxvbmcg
c2VudGVuY2UgdGhhdCBzcGFucworIG11bHRpcGxlIGxpbmVzLgorRU5ECisgICAgZXhwZWN0ZWRS
ZXR1cm4gPT4gPDwnRU5EJworSW5kZXg6IHRlc3RfZmlsZS50eHQKKz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB0
ZXN0X2ZpbGUudHh0CShyZXZpc2lvbiAxKQorKysrIHRlc3RfZmlsZS50eHQJKHdvcmtpbmcgY29w
eSkKKworUHJvcGVydHkgY2hhbmdlcyBvbjogdGVzdF9maWxlLnR4dAorX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXworTW9k
aWZpZWQ6IGRvY3VtZW50YXRpb24KKyMjIC0xLDMgKzEsMyAjIworLUEKKytBbm90aGVyCisgbG9u
ZyBzZW50ZW5jZSB0aGF0IHNwYW5zCisgbXVsdGlwbGUgbGluZXMuCitFTkQKK30sCispOworCitt
eSAkdGVzdENhc2VzQ291bnQgPSBAdGVzdENhc2VIYXNoUmVmczsKK3BsYW4odGVzdHMgPT4gJHRl
c3RDYXNlc0NvdW50KTsgIyBUb3RhbCBudW1iZXIgb2YgYXNzZXJ0aW9ucy4KKworZm9yZWFjaCBt
eSAkdGVzdENhc2UgKEB0ZXN0Q2FzZUhhc2hSZWZzKSB7CisgICAgbXkgJHRlc3ROYW1lU3RhcnQg
PSAiZml4U1ZOUGF0Y2hGb3JBZGRpdGlvbldpdGhIaXN0b3J5KCk6ICR0ZXN0Q2FzZS0+e2RpZmZO
YW1lfTogY29tcGFyaW5nIjsKKworICAgIG15ICRnb3QgPSBWQ1NVdGlsczo6Zml4U1ZOUGF0Y2hG
b3JBZGRpdGlvbldpdGhIaXN0b3J5KCR0ZXN0Q2FzZS0+e2lucHV0VGV4dH0pOworICAgIGNob21w
KG15ICRleHBlY3RlZFJldHVybiA9ICR0ZXN0Q2FzZS0+e2V4cGVjdGVkUmV0dXJufSk7CisgCisg
ICAgaXNfZGVlcGx5KCRnb3QsICRleHBlY3RlZFJldHVybiwgIiR0ZXN0TmFtZVN0YXJ0IHJldHVy
biB2YWx1ZS4iKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299407</attachid>
            <date>2017-01-20 17:08:30 -0800</date>
            <delta_ts>2017-02-01 15:32:24 -0800</delta_ts>
            <desc>Patch and unit tests</desc>
            <filename>Bug167169.patch</filename>
            <type>text/plain</type>
            <size>15936</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxMTAwMCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMyIEBACisyMDE3LTAxLTIwICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4K
KworICAgICAgICBSRUdSRVNTSU9OIChyMjEwODIwKTogc3ZuLWNyZWF0ZS1wYXRjaCBkb2VzIG5v
dCBlbWl0IHByb3BlcnR5IGNoYW5nZSBvbmx5IGRpZmYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzE2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vcmUgZGlyZWN0bHkgaGFuZGxlIHRoZSBTVk4gMS45
IG9yIG5ld2VyIHN5bnRheCBjaGFuZ2UgZm9yIGEgZGlmZiBvZiBhIGNvcGllZCBvciBtb3ZlZCBm
aWxlCisgICAgICAgIC0gYSBTVk4gZGlmZiBoZWFkZXIgYW5kIGFuIGVtcHR5IGJvZHkuIEluIHBh
cnRpY3VsYXIsIHJlbW92ZSBhIGR1cGxpY2F0ZSBsZWFkaW5nIFNWTiBkaWZmCisgICAgICAgIGhl
YWRlciBmcm9tIHRoZSBvdXRwdXQgb2YgInN2biBkaWZmIiBvbiBhIGZpbGUgdGhhdCB3YXMgY29w
aWVkIG9yIG1vdmVkLgorCisgICAgICAgIEZvbGxvd2luZyByMjEwODIwIHN2bi1jcmVhdGUtcGF0
Y2ggZW1pdHMgdG8gc3RhbmRhcmQgb3V0cHV0IGEgZGlmZiBvbmx5IGlmIGl0IGhhcyBhdCBsZWFz
dCBvbmUKKyAgICAgICAgY2h1bmsgcmFuZ2UgbGluZSAoZS5nLiBAQCAtMCwwICsxLDcgQEApIGFz
IGEgbWVhbnMgdG8gd29ya2Fyb3VuZCBhIHN5bnRheCBjaGFuZ2UgaW4gdGhlIGRpZmYKKyAgICAg
ICAgb3V0cHV0IG9mIGEgY29waWVkIG9yIG1vdmVkIGZpbGUgaW4gU1ZOIHZlcnNpb24gMS45IG9y
IG5ld2VyLiBJbiBTVk4gMS45IG9yIG5ld2VyICJzdm4gZGlmZiIKKyAgICAgICAgb2YgYSBjb3Bp
ZWQgb3IgbW92ZWQgZmlsZSBhbHdheXMgZW1pdHMgdG8gc3RhbmRhcmQgb3V0cHV0IGEgbGVhZGlu
ZyBTVk4gZGlmZiBoZWFkZXIgKGFuICJJbmRleDoiCisgICAgICAgIGxpbmUgZm9sbG93ZWQgYnkg
YSBzZXBhcmF0b3IgbGluZSkgd2l0aCBhbiBlbXB0eSBib2R5OyA9PiBubyBjaHVuayByYW5nZSBs
aW5lcy4gSG93ZXZlciBhIGRpZmYKKyAgICAgICAgb2YgYSBmaWxlIHdpdGggb25seSBhIHByb3Bl
cnR5IGNoYW5nZSBhbHNvIGRvZXMgbm90IGNvbnRhaW4gYW55IGNodW5rIHJhbmdlIGxpbmVzLiBU
aGVyZWZvcmUKKyAgICAgICAgc3ZuLWNyZWF0ZS1wYXRjaCBubyBsb25nZXIgZW1pdHRlZCB0byBz
dGFuZGFyZCBvdXRwdXQgc3VjaCBhIGRpZmYuIEluc3RlYWQgb2YgaW5kaXJlY3RseSBkZXRlY3Rp
bmcKKyAgICAgICAgYSBTVk4gZGlmZiBoZWFkZXIgd2l0aCBhbiBlbXB0eSBib2R5IGJ5IGNvdW50
aW5nIHRoZSBudW1iZXIgb2YgY2h1bmsgcmFuZ2UgbGluZXMgaW4gdGhlIGRpZmYKKyAgICAgICAg
d2Ugc2hvdWxkIGRpcmVjdGx5IHRlc3QgZm9yIHRoZSBwcmVzZW5jZSBvZiBhIGxlYWRpbmcgU1ZO
IGRpZmYgaGVhZGVyIHdpdGggYW4gZW1wdHkgYm9keSBhbmQKKyAgICAgICAgcmVtb3ZlIHN1Y2gg
bGluZXMgZnJvbSB0aGUgZGlmZi4KKworICAgICAgICAqIFNjcmlwdHMvVkNTVXRpbHMucG06Cisg
ICAgICAgIChmaXhTVk5QYXRjaEZvckFkZGl0aW9uV2l0aEhpc3RvcnkpOiBBZGRlZC4KKyAgICAg
ICAgKiBTY3JpcHRzL3N2bi1jcmVhdGUtcGF0Y2g6CisgICAgICAgIChnZW5lcmF0ZURpZmYpOiBQ
YXNzIHRoZSBvdXRwdXQgZnJvbSAic3ZuIGRpZmYiIHRvIGZpeFNWTlBhdGNoRm9yQWRkaXRpb25X
aXRoSGlzdG9yeSgpIHdoZW4KKyAgICAgICAgd2UgaGF2ZSBhIG5vbiBlbXB0eSBwYXRjaCBmb3Ig
YW4gYWRkZWQgZmlsZSB3aXRoIGhpc3RvcnkgKGkuZS4gYSBjb3BpZWQgb3IgbW92ZWQgZmlsZSku
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L2ZpeFNWTlBh
dGNoRm9yQWRkaXRpb25XaXRoSGlzdG9yeS5wbDogQWRkZWQuCisKIDIwMTctMDEtMjAgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBG
aXggZm9yIFdpbmRvd3MgRHVtcFJlbmRlclRyZWUgYWZ0ZXIgcjIxMDk3NgpJbmRleDogVG9vbHMv
U2NyaXB0cy9WQ1NVdGlscy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL1ZDU1V0aWxz
LnBtCShyZXZpc2lvbiAyMTA4NjIpCisrKyBUb29scy9TY3JpcHRzL1ZDU1V0aWxzLnBtCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzM2LDYgKzE3MzYsNTEgQEAgc3ViIHNldENoYW5nZUxvZ0RhdGVBbmRS
ZXZpZXdlcigkJCQpCiAgICAgcmV0dXJuICRwYXRjaDsKIH0KIAorIyBSZW1vdmVzIGEgbGVhZGlu
ZyBTdWJ2ZXJzaW9uIGhlYWRlciB3aXRob3V0IGFuIGFzc29jaWF0ZWQgZGlmZiBpZiBvbmUgZXhp
c3RzLgorIworIyBUaGlzIHN1YnJvdXRpbmUgZGllcyBpZiB0aGUgc3BlY2lmaWVkIHBhdGNoIGRv
ZXMgbm90IGJlZ2luIHdpdGggYW4gIkluZGV4OiIgbGluZS4KKyMKKyMgSW4gU1ZOIDEuOSBvciBu
ZXdlciwgInN2biBkaWZmIiBvZiBhIG1vdmVkL2NvcGllZCBmaWxlIHdpdGhvdXQgcG9zdCBjaGFu
Z2VzIGFsd2F5cworIyBlbWl0cyBhIGxlYWRpbmcgaGVhZGVyIHdpdGhvdXQgYW4gYXNzb2NpYXRl
ZCBkaWZmOgorIyAgICAgSW5kZXg6IEIudHh0CisjICAgICA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIChlbmQgb2Yg
ZmlsZSBvciBuZXh0IGhlYWRlcikKKyMKKyMgSWYgdGhlIHNhbWUgZmlsZSBoYXMgYSBwcm9wZXJ0
eSBjaGFuZ2UgdGhlbiB0aGUgcGF0Y2ggaGFzIHRoZSBmb3JtOgorIyAgICAgSW5kZXg6IEIudHh0
CisjICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisjICAgICBJbmRleDogQi50eHQKKyMgICAgID09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
KyMgICAgIC0tLSBCLnR4dCAgICAocmV2aXNpb24gMSkKKyMgICAgICsrKyBCLnR4dCAgICAod29y
a2luZyBjb3B5KQorIworIyAgICAgUHJvcGVydHkgY2hhbmdlIG9uIEIudHh0CisjICAgICBfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCisjICAgICBBZGRlZDogc3ZuOmV4ZWN1dGFibGUKKyMgICAgICMjIC0wLDAgKzEgIyMK
KyMgICAgICsqCisjICAgICBcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CisjCisjIFdl
IG5lZWQgdG8gYXBwbHkgdGhpcyBmdW5jdGlvbiB0byB0aGUgb3VwdXQgb2YgInN2biBkaWZmIiBm
b3IgYW4gYWRkaXRpb24gd2l0aCBoaXN0b3J5CisjIHRvIHJlbW92ZSBhIGR1cGxpY2F0ZSBoZWFk
ZXIgc28gdGhhdCBzdm4tYXBwbHkgY2FuIGFwcGx5IHRoZSByZXN1bHRpbmcgcGF0Y2guCitzdWIg
Zml4U1ZOUGF0Y2hGb3JBZGRpdGlvbldpdGhIaXN0b3J5KCQpCit7CisgICAgbXkgKCRwYXRjaCkg
PSBAXzsKKworICAgICRwYXRjaCA9fiAvKFxyP1xuKS87CisgICAgbXkgJGxpbmVFbmRpbmcgPSAk
MTsKKyAgICBteSBAbGluZXMgPSBzcGxpdCgvJGxpbmVFbmRpbmcvLCAkcGF0Y2gpOworCisgICAg
aWYgKCRsaW5lc1swXSAhfiAvJHN2bkRpZmZTdGFydFJlZ0V4LykgeworICAgICAgICBkaWUoIkZp
cnN0IGxpbmUgb2YgU1ZOIGRpZmYgZG9lcyBub3QgYmVnaW4gd2l0aCBcIkluZGV4IFwiOiBcIiRs
aW5lc1swXVwiIik7CisgICAgfQorICAgIGlmIChAbGluZXMgPD0gMikgeworICAgICAgICByZXR1
cm4gIiI7CisgICAgfQorICAgIHNwbGljZShAbGluZXMsIDAsIDIpIGlmICRsaW5lc1syXSA9fiAv
JHN2bkRpZmZTdGFydFJlZ0V4LzsKKyAgICByZXR1cm4gam9pbigkbGluZUVuZGluZywgQGxpbmVz
KTsKK30KKwogIyBJZiBwb3NzaWJsZSwgcmV0dXJucyBhIENoYW5nZUxvZyBwYXRjaCBlcXVpdmFs
ZW50IHRvIHRoZSBnaXZlbiBvbmUsCiAjIGJ1dCB3aXRoIHRoZSBuZXdlc3QgQ2hhbmdlTG9nIGVu
dHJ5IGluc2VydGVkIGF0IHRoZSB0b3Agb2YgdGhlCiAjIGZpbGUgLS0gaS5lLiBubyBsZWFkaW5n
IGNvbnRleHQgYW5kIGFsbCBsaW5lcyBzdGFydGluZyB3aXRoICIrIi4KSW5kZXg6IFRvb2xzL1Nj
cmlwdHMvc3ZuLWNyZWF0ZS1wYXRjaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3N2bi1j
cmVhdGUtcGF0Y2gJKHJldmlzaW9uIDIxMDg2MikKKysrIFRvb2xzL1NjcmlwdHMvc3ZuLWNyZWF0
ZS1wYXRjaAkod29ya2luZyBjb3B5KQpAQCAtMjI1LDI4ICsyMjUsMTkgQEAgc3ViIGdlbmVyYXRl
RGlmZigkJCkKICAgICB9CiAgICAgCiAgICAgbXkgJHBhdGNoID0gIiI7Ci0gICAgaWYgKCRmaWxl
RGF0YS0+e21vZGlmaWNhdGlvblR5cGV9IGVxICJhZGRpdGlvbldpdGhIaXN0b3J5IikgeworICAg
IG15ICRpc0FkZGl0aW9uV2l0aEhpc3RvcnkgPSAkZmlsZURhdGEtPnttb2RpZmljYXRpb25UeXBl
fSBlcSAiYWRkaXRpb25XaXRoSGlzdG9yeSI7CisgICAgaWYgKCRpc0FkZGl0aW9uV2l0aEhpc3Rv
cnkpIHsKICAgICAgICAgbWFudWZhY3R1cmVQYXRjaEZvckFkZGl0aW9uV2l0aEhpc3RvcnkoJGZp
bGVEYXRhKTsKICAgICB9CiAKICAgICBteSAkZGlmZk9wdGlvbnMgPSBkaWZmT3B0aW9uc0ZvckZp
bGUoJGZpbGUpOwogICAgIG15ICRlc2NhcGVkRmlsZSA9IGVzY2FwZVN1YnZlcnNpb25QYXRoKCRm
aWxlKTsKICAgICBvcGVuIERJRkYsICJzdm4gZGlmZiAtLWRpZmYtY21kIGRpZmYgLXggLSRkaWZm
T3B0aW9ucyAnJGVzY2FwZWRGaWxlJyB8IiBvciBkaWU7Ci0gICAgbXkgJG51bVRleHRDaHVua3Mg
PSAwOwogICAgIHdoaWxlICg8RElGRj4pIHsKLSAgICAgICAgJG51bVRleHRDaHVua3MgKz0gMSBp
ZiBwYXJzZUNodW5rUmFuZ2UoJF8pOwogICAgICAgICAkcGF0Y2ggLj0gJF87CiAgICAgfQogICAg
IGNsb3NlIERJRkY7Ci0gICAgaWYgKCEkbnVtVGV4dENodW5rcykgewotICAgICAgICAjIEZvciBt
b3ZlZC9jb3BpZWQgZmlsZXMgd2l0aG91dCBwb3N0IGNoYW5nZXMgU1ZOIDEuOSBvciBncmVhdGVy
IGVtaXRzIGEgZGlmZiB3aXRoIGFuIGVtcHR5Ci0gICAgICAgICMgYm9keSBhcyBvcHBvc2VkIHRv
IGVtaXR0aW5nIG5vdGhpbmcgYXMgaW4gZWFybGllciB2ZXJzaW9ucyBvZiBTVk4uIEZvciBleGFt
cGxlLCBtb3ZlIGZpbGUKLSAgICAgICAgIyBBLnR4dCB0byBCLnR4dCB0aGVuIHRoZSBkaWZmIG9m
IEIudHh0IGluIFNWTiAxLjkgb3IgZ3JlYXRlciBpczoKLSAgICAgICAgIyAgICAgSW5kZXg6IEIu
dHh0Ci0gICAgICAgICMgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAgICAgICAgIyBUaGVyZWZvcmUgd2UgaWdu
b3JlIGVtaXR0aW5nIHN1Y2ggYSBkaWZmLgotICAgICAgICAkcGF0Y2ggPSAiIjsKLSAgICB9Cisg
ICAgJHBhdGNoID0gZml4U1ZOUGF0Y2hGb3JBZGRpdGlvbldpdGhIaXN0b3J5KCRwYXRjaCkgaWYg
JHBhdGNoICYmICRpc0FkZGl0aW9uV2l0aEhpc3Rvcnk7CiAgICAgaWYgKGJhc2VuYW1lKCRmaWxl
KSBlcSAiQ2hhbmdlTG9nIikgewogICAgICAgICBteSAkY2hhbmdlTG9nSGFzaCA9IGZpeENoYW5n
ZUxvZ1BhdGNoKCRwYXRjaCk7CiAgICAgICAgICRwYXRjaCA9ICRjaGFuZ2VMb2dIYXNoLT57cGF0
Y2h9OyAgIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0
L2ZpeFNWTlBhdGNoRm9yQWRkaXRpb25XaXRoSGlzdG9yeS5wbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvZml4U1ZOUGF0Y2hGb3JBZGRp
dGlvbldpdGhIaXN0b3J5LnBsCShyZXZpc2lvbiAwKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRw
ZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L2ZpeFNWTlBhdGNoRm9yQWRkaXRpb25XaXRoSGlzdG9yeS5w
bAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI4OCBAQAorIyEvdXNyL2Jpbi9wZXJsCisjCisj
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisj
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisjIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIFVuaXQgdGVzdHMgb2Yg
VkNTVXRpbHM6OmZpeFNWTlBhdGNoRm9yQWRkaXRpb25XaXRoSGlzdG9yeSgpLgorCit1c2Ugc3Ry
aWN0OwordXNlIHdhcm5pbmdzOworCit1c2UgVGVzdDo6TW9yZTsKK3VzZSBWQ1NVdGlsczsKKwor
bXkgQHRlc3RDYXNlSGFzaFJlZnMgPSAoCisjIyMKKyMgVGVzdCBjYXNlcyB0aGF0IHNob3VsZCBo
YXZlIG5vIGNoYW5nZQorIyMKK3sgIyBOZXcgdGVzdAorICAgIGRpZmZOYW1lID0+ICJmaXhTVk5Q
YXRjaEZvckFkZGl0aW9uV2l0aEhpc3Rvcnk6IFtubyBjaGFuZ2VdIG1vZGlmeSBmaWxlIiwKKyAg
ICBpbnB1dFRleHQgPT4gPDwnRU5EJywKK0luZGV4OiB0ZXN0X2ZpbGUudHh0Cis9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CistLS0gdGVzdF9maWxlLnR4dAkocmV2aXNpb24gMSkKKysrKyB0ZXN0X2ZpbGUudHh0CSh3b3Jr
aW5nIGNvcHkpCitAQCAtMSArMSBAQAorLUEKKytBMgorRU5ECisgICAgZXhwZWN0ZWRSZXR1cm4g
PT4gPDwnRU5EJworSW5kZXg6IHRlc3RfZmlsZS50eHQKKz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB0ZXN0X2Zp
bGUudHh0CShyZXZpc2lvbiAxKQorKysrIHRlc3RfZmlsZS50eHQJKHdvcmtpbmcgY29weSkKK0BA
IC0xICsxIEBACistQQorK0EyCitFTkQKK30sCit7ICMgTmV3IHRlc3QKKyAgICBkaWZmTmFtZSA9
PiAiZml4U1ZOUGF0Y2hGb3JBZGRpdGlvbldpdGhIaXN0b3J5OiBbbm8gY2hhbmdlXSBkZWxldGUg
ZmlsZSIsCisgICAgaW5wdXRUZXh0ID0+IDw8J0VORCcsCitJbmRleDogdGVzdF9maWxlLnR4dAor
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorLS0tIHRlc3RfZmlsZS50eHQJKHJldmlzaW9uIDEpCisrKysgdGVzdF9maWxl
LnR4dAkobm9uZXhpc3RlbnQpCitAQCAtMSArMCwwIEBACistQQorRU5ECisgICAgZXhwZWN0ZWRS
ZXR1cm4gPT4gPDwnRU5EJworSW5kZXg6IHRlc3RfZmlsZS50eHQKKz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB0
ZXN0X2ZpbGUudHh0CShyZXZpc2lvbiAxKQorKysrIHRlc3RfZmlsZS50eHQJKG5vbmV4aXN0ZW50
KQorQEAgLTEgKzAsMCBAQAorLUEKK0VORAorfSwKK3sgIyBOZXcgdGVzdAorICAgIGRpZmZOYW1l
ID0+ICJmaXhTVk5QYXRjaEZvckFkZGl0aW9uV2l0aEhpc3Rvcnk6IFtubyBjaGFuZ2VdIGFkZCBz
dm46ZXhlY3V0YWJsZSBwcm9wZXJ0eSIsCisgICAgaW5wdXRUZXh0ID0+IDw8J0VORCcsCitJbmRl
eDogdGVzdF9maWxlLnR4dAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0tIHRlc3RfZmlsZS50eHQJKHJldmlzaW9u
IDEpCisrKysgdGVzdF9maWxlLnR4dAkod29ya2luZyBjb3B5KQorCitQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiB0ZXN0X2ZpbGUudHh0CitfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCitBZGRlZDogc3ZuOmV4ZWN1dGFibGUKKyMj
IC0wLDAgKzEgIyMKKysqCitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CitFTkQKKyAg
ICBleHBlY3RlZFJldHVybiA9PiA8PCdFTkQnCitJbmRleDogdGVzdF9maWxlLnR4dAorPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorLS0tIHRlc3RfZmlsZS50eHQJKHJldmlzaW9uIDEpCisrKysgdGVzdF9maWxlLnR4dAko
d29ya2luZyBjb3B5KQorCitQcm9wZXJ0eSBjaGFuZ2VzIG9uOiB0ZXN0X2ZpbGUudHh0CitfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCitBZGRlZDogc3ZuOmV4ZWN1dGFibGUKKyMjIC0wLDAgKzEgIyMKKysqCitcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CitFTkQKK30sCit7ICMgTmV3IHRlc3QKKyAgICBkaWZm
TmFtZSA9PiAiZml4U1ZOUGF0Y2hGb3JBZGRpdGlvbldpdGhIaXN0b3J5OiBbbm8gY2hhbmdlXSBy
ZW1vdmUgc3ZuOmV4ZWN1dGFibGUgcHJvcGVydHkiLAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQn
LAorSW5kZXg6IHRlc3RfZmlsZS50eHQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB0ZXN0X2ZpbGUudHh0CShy
ZXZpc2lvbiAxKQorKysrIHRlc3RfZmlsZS50eHQJKHdvcmtpbmcgY29weSkKKworUHJvcGVydHkg
Y2hhbmdlcyBvbjogdGVzdF9maWxlLnR4dAorX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXworRGVsZXRlZDogc3ZuOmV4ZWN1
dGFibGUKKyMjIC0xICswLDAgIyMKKy0qCitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5
CitFTkQKKyAgICBleHBlY3RlZFJldHVybiA9PiA8PCdFTkQnCitJbmRleDogdGVzdF9maWxlLnR4
dAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorLS0tIHRlc3RfZmlsZS50eHQJKHJldmlzaW9uIDEpCisrKysgdGVzdF9m
aWxlLnR4dAkod29ya2luZyBjb3B5KQorCitQcm9wZXJ0eSBjaGFuZ2VzIG9uOiB0ZXN0X2ZpbGUu
dHh0CitfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCitEZWxldGVkOiBzdm46ZXhlY3V0YWJsZQorIyMgLTEgKzAsMCAjIwor
LSoKK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKK0VORAorfSwKKyMjIworIyBNb3Zl
ZC9jb3BpZWQgZmlsZSB1c2luZyBTVk4gMS45IHN5bnRheAorIyMKK3sgIyBOZXcgdGVzdAorICAg
IGRpZmZOYW1lID0+ICJmaXhTVk5QYXRjaEZvckFkZGl0aW9uV2l0aEhpc3Rvcnk6IG1vdmVkL2Nv
cGllZCBmaWxlIiwKKyAgICBpbnB1dFRleHQgPT4gPDwnRU5EJywKK0luZGV4OiB0ZXN0X2ZpbGUu
dHh0Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CitFTkQKKyAgICBleHBlY3RlZFJldHVybiA9PiAiIgorfSwKK3sgIyBO
ZXcgdGVzdAorICAgIGRpZmZOYW1lID0+ICJmaXhTVk5QYXRjaEZvckFkZGl0aW9uV2l0aEhpc3Rv
cnk6IG1vdmVkL2NvcGllZCBmaWxlIHdpdGggYWRkZWQgc3ZuOmV4ZWN1dGFibGUgcHJvcGVydHki
LAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAorSW5kZXg6IHRlc3RfZmlsZS50eHQKKz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KK0luZGV4OiB0ZXN0X2ZpbGUudHh0Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gdGVzdF9maWxlLnR4
dAkocmV2aXNpb24gMSkKKysrKyB0ZXN0X2ZpbGUudHh0CSh3b3JraW5nIGNvcHkpCisKK1Byb3Bl
cnR5IGNoYW5nZXMgb246IHRlc3RfZmlsZS50eHQKK19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KK0FkZGVkOiBzdm46ZXhl
Y3V0YWJsZQorIyMgLTAsMCArMSAjIworKyoKK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVy
dHkKK0VORAorICAgIGV4cGVjdGVkUmV0dXJuID0+IDw8J0VORCcKK0luZGV4OiB0ZXN0X2ZpbGUu
dHh0Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CistLS0gdGVzdF9maWxlLnR4dAkocmV2aXNpb24gMSkKKysrKyB0ZXN0
X2ZpbGUudHh0CSh3b3JraW5nIGNvcHkpCisKK1Byb3BlcnR5IGNoYW5nZXMgb246IHRlc3RfZmls
ZS50eHQKK19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KK0FkZGVkOiBzdm46ZXhlY3V0YWJsZQorIyMgLTAsMCArMSAjIwor
KyoKK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKK0VORAorfSwKK3sgIyBOZXcgdGVz
dAorICAgIGRpZmZOYW1lID0+ICJmaXhTVk5QYXRjaEZvckFkZGl0aW9uV2l0aEhpc3Rvcnk6IG1v
dmVkL2NvcGllZCBmaWxlIHdpdGggcmVtb3ZlZCBzdm46ZXhlY3V0YWJsZSBwcm9wZXJ0eSIsCisg
ICAgaW5wdXRUZXh0ID0+IDw8J0VORCcsCitJbmRleDogdGVzdF9maWxlLnR4dAorPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorSW5kZXg6IHRlc3RfZmlsZS50eHQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB0ZXN0X2ZpbGUudHh0CShy
ZXZpc2lvbiAxKQorKysrIHRlc3RfZmlsZS50eHQJKHdvcmtpbmcgY29weSkKKworUHJvcGVydHkg
Y2hhbmdlcyBvbjogdGVzdF9maWxlLnR4dAorX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXworRGVsZXRlZDogc3ZuOmV4ZWN1
dGFibGUKKyMjIC0xICswLDAgIyMKKy0qCitcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5
CitFTkQKKyAgICBleHBlY3RlZFJldHVybiA9PiA8PCdFTkQnCitJbmRleDogdGVzdF9maWxlLnR4
dAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorLS0tIHRlc3RfZmlsZS50eHQJKHJldmlzaW9uIDEpCisrKysgdGVzdF9m
aWxlLnR4dAkod29ya2luZyBjb3B5KQorCitQcm9wZXJ0eSBjaGFuZ2VzIG9uOiB0ZXN0X2ZpbGUu
dHh0CitfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCitEZWxldGVkOiBzdm46ZXhlY3V0YWJsZQorIyMgLTEgKzAsMCAjIwor
LSoKK1wgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKK0VORAorfSwKK3sgIyBOZXcgdGVz
dAorICAgIGRpZmZOYW1lID0+ICJmaXhTVk5QYXRjaEZvckFkZGl0aW9uV2l0aEhpc3Rvcnk6IG1v
dmVkL2NvcGllZCBmaWxlIHdpdGggYWRkZWQgbXVsdGktbGluZSBwcm9wZXJ0eSIsCisgICAgaW5w
dXRUZXh0ID0+IDw8J0VORCcsCitJbmRleDogdGVzdF9maWxlLnR4dAorPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorSW5k
ZXg6IHRlc3RfZmlsZS50eHQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB0ZXN0X2ZpbGUudHh0CShyZXZpc2lv
biAxKQorKysrIHRlc3RfZmlsZS50eHQJKHdvcmtpbmcgY29weSkKKworUHJvcGVydHkgY2hhbmdl
cyBvbjogdGVzdF9maWxlLnR4dAorX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXworQWRkZWQ6IGRvY3VtZW50YXRpb24KKyMj
IC0wLDAgKzEsMyAjIworK0EKKytsb25nIHNlbnRlbmNlIHRoYXQgc3BhbnMKKyttdWx0aXBsZSBs
aW5lcy4KK0VORAorICAgIGV4cGVjdGVkUmV0dXJuID0+IDw8J0VORCcKK0luZGV4OiB0ZXN0X2Zp
bGUudHh0Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CistLS0gdGVzdF9maWxlLnR4dAkocmV2aXNpb24gMSkKKysrKyB0
ZXN0X2ZpbGUudHh0CSh3b3JraW5nIGNvcHkpCisKK1Byb3BlcnR5IGNoYW5nZXMgb246IHRlc3Rf
ZmlsZS50eHQKK19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KK0FkZGVkOiBkb2N1bWVudGF0aW9uCisjIyAtMCwwICsxLDMg
IyMKKytBCisrbG9uZyBzZW50ZW5jZSB0aGF0IHNwYW5zCisrbXVsdGlwbGUgbGluZXMuCitFTkQK
K30sCit7ICMgTmV3IHRlc3QKKyAgICBkaWZmTmFtZSA9PiAiZml4U1ZOUGF0Y2hGb3JBZGRpdGlv
bldpdGhIaXN0b3J5OiBtb3ZlZC9jb3BpZWQgZmlsZSB3aXRoIG1vZGlmaWVkIG11bHRpLWxpbmUg
cHJvcGVydHkiLAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAorSW5kZXg6IHRlc3RfZmlsZS50
eHQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KK0luZGV4OiB0ZXN0X2ZpbGUudHh0Cis9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLS0gdGVz
dF9maWxlLnR4dAkocmV2aXNpb24gMSkKKysrKyB0ZXN0X2ZpbGUudHh0CSh3b3JraW5nIGNvcHkp
CisKK1Byb3BlcnR5IGNoYW5nZXMgb246IHRlc3RfZmlsZS50eHQKK19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KK01vZGlm
aWVkOiBkb2N1bWVudGF0aW9uCisjIyAtMSwzICsxLDMgIyMKKy1BCisrQW5vdGhlcgorIGxvbmcg
c2VudGVuY2UgdGhhdCBzcGFucworIG11bHRpcGxlIGxpbmVzLgorRU5ECisgICAgZXhwZWN0ZWRS
ZXR1cm4gPT4gPDwnRU5EJworSW5kZXg6IHRlc3RfZmlsZS50eHQKKz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tLSB0
ZXN0X2ZpbGUudHh0CShyZXZpc2lvbiAxKQorKysrIHRlc3RfZmlsZS50eHQJKHdvcmtpbmcgY29w
eSkKKworUHJvcGVydHkgY2hhbmdlcyBvbjogdGVzdF9maWxlLnR4dAorX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXworTW9k
aWZpZWQ6IGRvY3VtZW50YXRpb24KKyMjIC0xLDMgKzEsMyAjIworLUEKKytBbm90aGVyCisgbG9u
ZyBzZW50ZW5jZSB0aGF0IHNwYW5zCisgbXVsdGlwbGUgbGluZXMuCitFTkQKK30sCispOworCitt
eSAkdGVzdENhc2VzQ291bnQgPSBAdGVzdENhc2VIYXNoUmVmczsKK3BsYW4odGVzdHMgPT4gJHRl
c3RDYXNlc0NvdW50KTsgIyBUb3RhbCBudW1iZXIgb2YgYXNzZXJ0aW9ucy4KKworZm9yZWFjaCBt
eSAkdGVzdENhc2UgKEB0ZXN0Q2FzZUhhc2hSZWZzKSB7CisgICAgbXkgJHRlc3ROYW1lU3RhcnQg
PSAiZml4U1ZOUGF0Y2hGb3JBZGRpdGlvbldpdGhIaXN0b3J5KCk6ICR0ZXN0Q2FzZS0+e2RpZmZO
YW1lfTogY29tcGFyaW5nIjsKKworICAgIG15ICRnb3QgPSBWQ1NVdGlsczo6Zml4U1ZOUGF0Y2hG
b3JBZGRpdGlvbldpdGhIaXN0b3J5KCR0ZXN0Q2FzZS0+e2lucHV0VGV4dH0pOworICAgIGNob21w
KG15ICRleHBlY3RlZFJldHVybiA9ICR0ZXN0Q2FzZS0+e2V4cGVjdGVkUmV0dXJufSk7CisgCisg
ICAgaXNfZGVlcGx5KCRnb3QsICRleHBlY3RlZFJldHVybiwgIiR0ZXN0TmFtZVN0YXJ0IHJldHVy
biB2YWx1ZS4iKTsKK30KSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191
bml0dGVzdC9maXhTVk5QYXRjaEZvckFkZGl0aW9uV2l0aEhpc3RvcnkucGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L2ZpeFNWTlBhdGNo
Rm9yQWRkaXRpb25XaXRoSGlzdG9yeS5wbAkocmV2aXNpb24gMCkKKysrIFRvb2xzL1NjcmlwdHMv
d2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9maXhTVk5QYXRjaEZvckFkZGl0aW9uV2l0aEhp
c3RvcnkucGwJKHdvcmtpbmcgY29weSkKClByb3BlcnR5IGNoYW5nZXMgb246IFRvb2xzL1Njcmlw
dHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9maXhTVk5QYXRjaEZvckFkZGl0aW9uV2l0
aEhpc3RvcnkucGwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogYWxsb3ctdGFicwojIyAtMCwwICsxICMjCisx
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkK
</data>
<flag name="review"
          id="321354"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
          </attachment>
      

    </bug>

</bugzilla>