<?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>111221</bug_id>
          
          <creation_ts>2013-03-01 14:28:55 -0800</creation_ts>
          <short_desc>[New Multicolumn] Transformed objects inside fragmented transparent objects don&apos;t render</short_desc>
          <delta_ts>2013-03-01 22:16:31 -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>Layout and Rendering</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="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>WebkitBugTracker</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>845507</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-03-01 14:28:55 -0800</bug_when>
    <thetext>Transformed objects inside fragmented transparent objects don&apos;t render. This is because the clip box we&apos;re computing to enclose descendant transformed elements did not account for the fact that they have to be split across columns.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845648</commentid>
    <comment_count>1</comment_count>
      <attachid>191076</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-03-01 17:06:21 -0800</bug_when>
    <thetext>Created attachment 191076
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845654</commentid>
    <comment_count>2</comment_count>
      <attachid>191078</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-03-01 17:08:01 -0800</bug_when>
    <thetext>Created attachment 191078
Tweak some variable names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845655</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-01 17:10:19 -0800</bug_when>
    <thetext>Attachment 191078 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/multicol/mixed-opacity-fixed-test-expected.html&apos;, u&apos;LayoutTests/fast/multicol/mixed-opacity-fixed-test.html&apos;, u&apos;LayoutTests/fast/multicol/mixed-opacity-test-expected.html&apos;, u&apos;LayoutTests/fast/multicol/mixed-opacity-test.html&apos;, u&apos;LayoutTests/fast/multicol/transform-inside-opacity-expected.html&apos;, u&apos;LayoutTests/fast/multicol/transform-inside-opacity.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/rendering/RenderLayer.cpp&apos;, u&apos;Source/WebCore/rendering/RenderLayer.h&apos;]&quot; exit_code: 1
Source/WebCore/rendering/RenderLayer.cpp:1564:  This { should be at the end of the previous line  [whitespace/braces] [4]
Source/WebCore/rendering/RenderLayer.cpp:1570:  This { should be at the end of the previous line  [whitespace/braces] [4]
Source/WebCore/rendering/RenderLayer.cpp:1611:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 3 in 10 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>845734</commentid>
    <comment_count>4</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-03-01 22:16:31 -0800</bug_when>
    <thetext>Fixed in r144529.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191076</attachid>
            <date>2013-03-01 17:06:21 -0800</date>
            <delta_ts>2013-03-01 17:08:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>17951</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NDUxMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDEzLTAzLTAxICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBbTmV3IE11bHRpY29sdW1uXSBUcmFu
c2Zvcm1lZCBvYmplY3RzIGluc2lkZSBmcmFnbWVudGVkIHRyYW5zcGFyZW50IG9iamVjdHMgZG9u
J3QgcmVuZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTEyMjEuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wcm92ZSB0cmFuc3BhcmVuY3lDbGlwQm94IHNvIHRoYXQgaXQgdW5kZXJzdGFuZHMgd2hl
biBtb3ZpbmcgaW50byBkZXNjZW5kYW50cworICAgICAgICB0aGF0IGl0IGRvZXMgaW4gZmFjdCBo
YXZlIHRvIGJyZWFrIHVwIHRoZSB0cmFuc2Zvcm1lZCBjbGlwIHJlY3QgYWNyb3NzIHRoZQorICAg
ICAgICBmcmFnbWVudHMuCisgICAgICAgIAorICAgICAgICBNYWtlIHN1cmUgd2hlbiBoYW5kbGlu
ZyBmcmFnbWVudGVkIHRyYW5zZm9ybXMgdXNpbmcgbXVsdGlwbGUgcGFpbnRzIHRoYXQKKyAgICAg
ICAgdGhlIHRlc3QgdGhhdCBkZXRlcm1pbmVzIHRoZSBleHRlbnQgb2YgdGhlIHRyYW5zZm9ybSB3
aXRoaW4gdGhlIGZyYWdtZW50cworICAgICAgICB1c2VzIHRyYW5zcGFyZW5jeUNsaXBCb3guIFRo
aXMgZ2l2ZXMgdXMgYW4gYWNjdXJhdGUgc2V0IG9mIGNvbHVtbnMgdGhhdCB0aGUKKyAgICAgICAg
ZmluYWwgdHJhbnNmb3JtZWQgcmVzdWx0IHdpbGwgcGFpbnQgYWNyb3NzLgorCisgICAgICAgIFRl
c3RzOiBmYXN0L211bHRpY29sL21peGVkLW9wYWNpdHktZml4ZWQtdGVzdC5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L211bHRpY29sL21peGVkLW9wYWNpdHktdGVzdC5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L211bHRpY29sL3RyYW5zZm9ybS1pbnNpZGUtb3BhY2l0eS5odG1sCisKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dHJhbnNw
YXJlbmN5Q2xpcEJveCk6CisgICAgICAgIChXZWJDb3JlOjpleHBhbmRDbGlwUmVjdEZvckRlc2Nl
bmRhbnRzQW5kUmVmbGVjdGlvbik6CisgICAgICAgIEJyZWFrIHRyYW5zZm9ybWVkIGJveGVzIHVw
IGludG8gZnJhZ21lbnRzIHdoZW4gdGhleSBhcmUKKyAgICAgICAgYmVpbmcgcmVxdWVzdGVkIGJ5
IGFuIGFuY2VzdG9yLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y29sbGVjdEZy
YWdtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRUcmFuc2Zvcm1l
ZExheWVySW50b0ZyYWdtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6aGl0
VGVzdFRyYW5zZm9ybWVkTGF5ZXJJbkZyYWdtZW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmg6CisgICAgICAgIChSZW5kZXJMYXllcik6CisgICAgICAgIE1vZGlmeSBjb2xs
ZWN0RnJhZ21lbnRzIHNvIHRoYXQgd2UgcGFzcyBpbiB0aGUgY29ycmVjdCByYW5nZQorICAgICAg
ICB3aXRoaW4gdGhlIGNvbHVtbnMgdGhhdCBjYW4gcG9zc2libHkgY292ZXIgdGhlIGZyYWdtZW50
ZWQKKyAgICAgICAgdHJhbnNmb3JtZWQgYm94LgorCiAyMDEzLTAzLTAxICBWaWN0b3IgQ2FyYnVu
ZSAgPHZjYXJidW5lQGNocm9taXVtLm9yZz4KIAogICAgICAgICBTdXBwb3J0IHBhZGRpbmcsIG1h
cmdpbiBhbmQgYm9yZGVyIGZvciBpbnRlcm5hbCBVQSBjdWUgc3R5bGluZwpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShyZXZpc2lvbiAxNDQ0OTcpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNTYwLDkgKzE1NjAsMjIgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjp0cmFuc3BhcmVu
dFBhaQogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgTGF5b3V0UmVjdCB0cmFuc3BhcmVuY3lD
bGlwQm94KGNvbnN0IFJlbmRlckxheWVyKiwgY29uc3QgUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwg
UGFpbnRCZWhhdmlvcik7CitlbnVtIFRyYW5zcGFyZW5jeUNsaXBCb3hCZWhhdmlvcgoreworICAg
IFBhaW50aW5nVHJhbnNwYXJlbmN5Q2xpcEJveCwKKyAgICBIaXRUZXN0aW5nVHJhbnNwYXJlbmN5
Q2xpcEJveAorfTsKKworZW51bSBUcmFuc3BhcmVuY3lDbGlwQm94TW9kZQoreworICAgIERlc2Nl
bmRhbnRzT2ZUcmFuc3BhcmVuY3lDbGlwQm94LAorICAgIFJvb3RPZlRyYW5zcGFyZW5jeUNsaXBC
b3gKK307CiAKLXN0YXRpYyB2b2lkIGV4cGFuZENsaXBSZWN0Rm9yRGVzY2VuZGFudHNBbmRSZWZs
ZWN0aW9uKExheW91dFJlY3QmIGNsaXBSZWN0LCBjb25zdCBSZW5kZXJMYXllciogbGF5ZXIsIGNv
bnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIsIFBhaW50QmVoYXZpb3IgcGFpbnRCZWhhdmlvcikK
K3N0YXRpYyBMYXlvdXRSZWN0IHRyYW5zcGFyZW5jeUNsaXBCb3goY29uc3QgUmVuZGVyTGF5ZXIq
LCBjb25zdCBSZW5kZXJMYXllciogcm9vdExheWVyLCBUcmFuc3BhcmVuY3lDbGlwQm94QmVoYXZp
b3IsIFRyYW5zcGFyZW5jeUNsaXBCb3hNb2RlLCBQYWludEJlaGF2aW9yID0gMCk7CisKK3N0YXRp
YyB2b2lkIGV4cGFuZENsaXBSZWN0Rm9yRGVzY2VuZGFudHNBbmRSZWZsZWN0aW9uKExheW91dFJl
Y3QmIGNsaXBSZWN0LCBjb25zdCBSZW5kZXJMYXllciogbGF5ZXIsIGNvbnN0IFJlbmRlckxheWVy
KiByb290TGF5ZXIsCisgICAgVHJhbnNwYXJlbmN5Q2xpcEJveEJlaGF2aW9yIHRyYW5zcGFyZW5j
eUJlaGF2aW9yLCBQYWludEJlaGF2aW9yIHBhaW50QmVoYXZpb3IpCiB7CiAgICAgLy8gSWYgd2Ug
aGF2ZSBhIG1hc2ssIHRoZW4gdGhlIGNsaXAgaXMgbGltaXRlZCB0byB0aGUgYm9yZGVyIGJveCBh
cmVhIChhbmQgdGhlcmUgaXMKICAgICAvLyBubyBuZWVkIHRvIGV4YW1pbmUgY2hpbGQgbGF5ZXJz
KS4KQEAgLTE1NzEsNyArMTU4NCw3IEBAIHN0YXRpYyB2b2lkIGV4cGFuZENsaXBSZWN0Rm9yRGVz
Y2VuZGFudHMKICAgICAgICAgLy8gYSBzdGFja2luZyBjb250YWluZXIuIFRoaXMgbWVhbnMgd2Ug
Y2FuIGp1c3Qgd2FsayB0aGUgbGF5ZXIgdHJlZSBkaXJlY3RseS4KICAgICAgICAgZm9yIChSZW5k
ZXJMYXllciogY3VyciA9IGxheWVyLT5maXJzdENoaWxkKCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5u
ZXh0U2libGluZygpKSB7CiAgICAgICAgICAgICBpZiAoIWxheWVyLT5yZWZsZWN0aW9uKCkgfHwg
bGF5ZXItPnJlZmxlY3Rpb25MYXllcigpICE9IGN1cnIpCi0gICAgICAgICAgICAgICAgY2xpcFJl
Y3QudW5pdGUodHJhbnNwYXJlbmN5Q2xpcEJveChjdXJyLCByb290TGF5ZXIsIHBhaW50QmVoYXZp
b3IpKTsKKyAgICAgICAgICAgICAgICBjbGlwUmVjdC51bml0ZSh0cmFuc3BhcmVuY3lDbGlwQm94
KGN1cnIsIHJvb3RMYXllciwgdHJhbnNwYXJlbmN5QmVoYXZpb3IsIERlc2NlbmRhbnRzT2ZUcmFu
c3BhcmVuY3lDbGlwQm94LCBwYWludEJlaGF2aW9yKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAg
LTE1ODgsMzIgKzE2MDEsNTEgQEAgc3RhdGljIHZvaWQgZXhwYW5kQ2xpcFJlY3RGb3JEZXNjZW5k
YW50cwogICAgIH0KIH0KIAotc3RhdGljIExheW91dFJlY3QgdHJhbnNwYXJlbmN5Q2xpcEJveChj
b25zdCBSZW5kZXJMYXllciogbGF5ZXIsIGNvbnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIsIFBh
aW50QmVoYXZpb3IgcGFpbnRCZWhhdmlvcikKK3N0YXRpYyBMYXlvdXRSZWN0IHRyYW5zcGFyZW5j
eUNsaXBCb3goY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBjb25zdCBSZW5kZXJMYXllciogcm9v
dExheWVyLCBUcmFuc3BhcmVuY3lDbGlwQm94QmVoYXZpb3IgdHJhbnNwYXJlbmN5QmVoYXZpb3Is
CisgICAgVHJhbnNwYXJlbmN5Q2xpcEJveE1vZGUgdHJhbnNwYXJlbmN5TW9kZSwgUGFpbnRCZWhh
dmlvciBwYWludEJlaGF2aW9yKQogewogICAgIC8vIEZJWE1FOiBBbHRob3VnaCB0aGlzIGZ1bmN0
aW9uIGNvbXBsZXRlbHkgaWdub3JlcyBDU1MtaW1wb3NlZCBjbGlwcGluZywgd2UgZGlkIGFscmVh
ZHkgaW50ZXJzZWN0IHdpdGggdGhlCiAgICAgLy8gcGFpbnREaXJ0eVJlY3QsIGFuZCB0aGF0IHNo
b3VsZCBjdXQgZG93biBvbiB0aGUgYW1vdW50IHdlIGhhdmUgdG8gcGFpbnQuICBTdGlsbCBpdAog
ICAgIC8vIHdvdWxkIGJlIGJldHRlciB0byByZXNwZWN0IGNsaXBzLgogICAgIAotICAgIGlmIChy
b290TGF5ZXIgIT0gbGF5ZXIgJiYgbGF5ZXItPnBhaW50c1dpdGhUcmFuc2Zvcm0ocGFpbnRCZWhh
dmlvcikpIHsKKyAgICBpZiAocm9vdExheWVyICE9IGxheWVyICYmICgodHJhbnNwYXJlbmN5QmVo
YXZpb3IgPT0gUGFpbnRpbmdUcmFuc3BhcmVuY3lDbGlwQm94ICYmIGxheWVyLT5wYWludHNXaXRo
VHJhbnNmb3JtKHBhaW50QmVoYXZpb3IpKSB8fAorICAgICAgICAodHJhbnNwYXJlbmN5QmVoYXZp
b3IgPT0gSGl0VGVzdGluZ1RyYW5zcGFyZW5jeUNsaXBCb3ggJiYgbGF5ZXItPmhhc1RyYW5zZm9y
bSgpKSkpIHsKICAgICAgICAgLy8gVGhlIGJlc3Qgd2UgY2FuIGRvIGhlcmUgaXMgdG8gdXNlIGVu
Y2xvc2VkIGJvdW5kaW5nIGJveGVzIHRvIGVzdGFibGlzaCBhICJmdXp6eSIgZW5vdWdoIGNsaXAg
dG8gZW5jb21wYXNzCiAgICAgICAgIC8vIHRoZSB0cmFuc2Zvcm1lZCBsYXllciBhbmQgYWxsIG9m
IGl0cyBjaGlsZHJlbi4KKyAgICAgICAgY29uc3QgUmVuZGVyTGF5ZXIqIHBhZ2luYXRpb25MYXll
ciA9IHRyYW5zcGFyZW5jeU1vZGUgPT0gRGVzY2VuZGFudHNPZlRyYW5zcGFyZW5jeUNsaXBCb3gg
PyBsYXllci0+ZW5jbG9zaW5nUGFnaW5hdGlvbkxheWVyKCkgOiAwOworICAgICAgICBjb25zdCBS
ZW5kZXJMYXllciogcm9vdExheWVyRm9yVHJhbnNmb3JtID0gcGFnaW5hdGlvbkxheWVyID8gcGFn
aW5hdGlvbkxheWVyIDogcm9vdExheWVyOwogICAgICAgICBMYXlvdXRQb2ludCBkZWx0YTsKLSAg
ICAgICAgbGF5ZXItPmNvbnZlcnRUb0xheWVyQ29vcmRzKHJvb3RMYXllciwgZGVsdGEpOworICAg
ICAgICBsYXllci0+Y29udmVydFRvTGF5ZXJDb29yZHMocm9vdExheWVyRm9yVHJhbnNmb3JtLCBk
ZWx0YSk7CiAKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOwogICAgICAg
ICB0cmFuc2Zvcm0udHJhbnNsYXRlKGRlbHRhLngoKSwgZGVsdGEueSgpKTsKICAgICAgICAgdHJh
bnNmb3JtID0gdHJhbnNmb3JtICogKmxheWVyLT50cmFuc2Zvcm0oKTsKIAotICAgICAgICBMYXlv
dXRSZWN0IGNsaXBSZWN0ID0gbGF5ZXItPmJvdW5kaW5nQm94KGxheWVyLCBSZW5kZXJMYXllcjo6
VXNlRnJhZ21lbnRCb3hlcyk7Ci0gICAgICAgIGV4cGFuZENsaXBSZWN0Rm9yRGVzY2VuZGFudHNB
bmRSZWZsZWN0aW9uKGNsaXBSZWN0LCBsYXllciwgbGF5ZXIsIHBhaW50QmVoYXZpb3IpOworICAg
ICAgICAvLyBXZSBkb24ndCB1c2UgZnJhZ21lbnQgYm94ZXMgd2hlbiBjb2xsZWN0aW5nIGEgdHJh
bnNmb3JtZWQgbGF5ZXIncyBib3VuZGluZyBib3gsIHNpbmNlIGl0IGFsd2F5cworICAgICAgICAv
LyBwYWludHMgdW5mcmFnbWVudGVkLgorICAgICAgICBMYXlvdXRSZWN0IGNsaXBSZWN0ID0gbGF5
ZXItPmJvdW5kaW5nQm94KGxheWVyKTsKKyAgICAgICAgZXhwYW5kQ2xpcFJlY3RGb3JEZXNjZW5k
YW50c0FuZFJlZmxlY3Rpb24oY2xpcFJlY3QsIGxheWVyLCBsYXllciwgdHJhbnNwYXJlbmN5QmVo
YXZpb3IsIHBhaW50QmVoYXZpb3IpOwogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICAgICAg
bGF5ZXItPnJlbmRlcmVyKCktPnN0eWxlKCktPmZpbHRlck91dHNldHMoKS5leHBhbmRSZWN0KGNs
aXBSZWN0KTsKICNlbmRpZgotICAgICAgICByZXR1cm4gdHJhbnNmb3JtLm1hcFJlY3QoY2xpcFJl
Y3QpOworICAgICAgICBMYXlvdXRSZWN0IHJlc3VsdCA9IHRyYW5zZm9ybS5tYXBSZWN0KGNsaXBS
ZWN0KTsKKyAgICAgICAgaWYgKCFwYWdpbmF0aW9uTGF5ZXIpCisgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgICAKKyAgICAgICAgLy8gV2UgaGF2ZSB0byBicmVhayB1cCB0aGUgdHJh
bnNmb3JtZWQgZXh0ZW50IGFjcm9zcyBvdXIgY29sdW1ucy4KKyAgICAgICAgLy8gU3BsaXQgb3Vy
IGJveCB1cCBpbnRvIHRoZSBhY3R1YWwgZnJhZ21lbnQgYm94ZXMgdGhhdCByZW5kZXIgaW4gdGhl
IGNvbHVtbnMvcGFnZXMgYW5kIHVuaXRlIHRob3NlIHRvZ2V0aGVyIHRvCisgICAgICAgIC8vIGdl
dCBvdXIgdHJ1ZSBib3VuZGluZyBib3guCisgICAgICAgIFJlbmRlckZsb3dUaHJlYWQqIGVuY2xv
c2luZ0Zsb3dUaHJlYWQgPSB0b1JlbmRlckZsb3dUaHJlYWQocGFnaW5hdGlvbkxheWVyLT5yZW5k
ZXJlcigpKTsKKyAgICAgICAgcmVzdWx0ID0gZW5jbG9zaW5nRmxvd1RocmVhZC0+ZnJhZ21lbnRz
Qm91bmRpbmdCb3gocmVzdWx0KTsKKyAgICAgICAgCisgICAgICAgIExheW91dFBvaW50IHJvb3RM
YXllckRlbHRhOworICAgICAgICBwYWdpbmF0aW9uTGF5ZXItPmNvbnZlcnRUb0xheWVyQ29vcmRz
KHJvb3RMYXllciwgcm9vdExheWVyRGVsdGEpOworICAgICAgICByZXN1bHQubW92ZUJ5KHJvb3RM
YXllckRlbHRhKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCiAgICAgTGF5
b3V0UmVjdCBjbGlwUmVjdCA9IGxheWVyLT5ib3VuZGluZ0JveChyb290TGF5ZXIsIFJlbmRlckxh
eWVyOjpVc2VGcmFnbWVudEJveGVzKTsKLSAgICBleHBhbmRDbGlwUmVjdEZvckRlc2NlbmRhbnRz
QW5kUmVmbGVjdGlvbihjbGlwUmVjdCwgbGF5ZXIsIHJvb3RMYXllciwgcGFpbnRCZWhhdmlvcik7
CisgICAgZXhwYW5kQ2xpcFJlY3RGb3JEZXNjZW5kYW50c0FuZFJlZmxlY3Rpb24oY2xpcFJlY3Qs
IGxheWVyLCByb290TGF5ZXIsIHRyYW5zcGFyZW5jeUJlaGF2aW9yLCBwYWludEJlaGF2aW9yKTsK
ICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgbGF5ZXItPnJlbmRlcmVyKCktPnN0eWxlKCkt
PmZpbHRlck91dHNldHMoKS5leHBhbmRSZWN0KGNsaXBSZWN0KTsKICNlbmRpZgpAQCAtMTYyMiw3
ICsxNjU0LDcgQEAgc3RhdGljIExheW91dFJlY3QgdHJhbnNwYXJlbmN5Q2xpcEJveChjbwogCiBM
YXlvdXRSZWN0IFJlbmRlckxheWVyOjpwYWludGluZ0V4dGVudChjb25zdCBSZW5kZXJMYXllciog
cm9vdExheWVyLCBjb25zdCBMYXlvdXRSZWN0JiBwYWludERpcnR5UmVjdCwgUGFpbnRCZWhhdmlv
ciBwYWludEJlaGF2aW9yKQogewotICAgIHJldHVybiBpbnRlcnNlY3Rpb24odHJhbnNwYXJlbmN5
Q2xpcEJveCh0aGlzLCByb290TGF5ZXIsIHBhaW50QmVoYXZpb3IpLCBwYWludERpcnR5UmVjdCk7
CisgICAgcmV0dXJuIGludGVyc2VjdGlvbih0cmFuc3BhcmVuY3lDbGlwQm94KHRoaXMsIHJvb3RM
YXllciwgUGFpbnRpbmdUcmFuc3BhcmVuY3lDbGlwQm94LCBSb290T2ZUcmFuc3BhcmVuY3lDbGlw
Qm94LCBwYWludEJlaGF2aW9yKSwgcGFpbnREaXJ0eVJlY3QpOwogfQogCiB2b2lkIFJlbmRlckxh
eWVyOjpiZWdpblRyYW5zcGFyZW5jeUxheWVycyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNv
bnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIsIGNvbnN0IExheW91dFJlY3QmIHBhaW50RGlydHlS
ZWN0LCBQYWludEJlaGF2aW9yIHBhaW50QmVoYXZpb3IpCkBAIC0zODg4LDcgKzM5MjAsOCBAQCB2
b2lkIFJlbmRlckxheWVyOjpwYWludExpc3QoVmVjdG9yPFJlbmRlCiB9CiAKIHZvaWQgUmVuZGVy
TGF5ZXI6OmNvbGxlY3RGcmFnbWVudHMoTGF5ZXJGcmFnbWVudHMmIGZyYWdtZW50cywgY29uc3Qg
UmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgUmVuZGVyUmVnaW9uKiByZWdpb24sIGNvbnN0IExheW91
dFJlY3QmIGRpcnR5UmVjdCwKLSAgICBDbGlwUmVjdHNUeXBlIGNsaXBSZWN0c1R5cGUsIE92ZXJs
YXlTY3JvbGxiYXJTaXplUmVsZXZhbmN5IGluT3ZlcmxheVNjcm9sbGJhclNpemVSZWxldmFuY3ks
IFNob3VsZFJlc3BlY3RPdmVyZmxvd0NsaXAgcmVzcGVjdE92ZXJmbG93Q2xpcCwgY29uc3QgTGF5
b3V0UG9pbnQqIG9mZnNldEZyb21Sb290KQorICAgIENsaXBSZWN0c1R5cGUgY2xpcFJlY3RzVHlw
ZSwgT3ZlcmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgaW5PdmVybGF5U2Nyb2xsYmFyU2l6ZVJl
bGV2YW5jeSwgU2hvdWxkUmVzcGVjdE92ZXJmbG93Q2xpcCByZXNwZWN0T3ZlcmZsb3dDbGlwLCBj
b25zdCBMYXlvdXRQb2ludCogb2Zmc2V0RnJvbVJvb3QsCisgICAgY29uc3QgTGF5b3V0UmVjdCog
bGF5ZXJCb3VuZGluZ0JveCkKIHsKICAgICBpZiAoIWVuY2xvc2luZ1BhZ2luYXRpb25MYXllcigp
IHx8IGhhc1RyYW5zZm9ybSgpKSB7CiAgICAgICAgIC8vIEZvciB1bnBhZ2luYXRlZCBsYXllcnMs
IHRoZXJlIGlzIG9ubHkgb25lIGZyYWdtZW50LgpAQCAtMzkxNCw3ICszOTQ3LDcgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6Y29sbGVjdEZyYWdtZW50cyhMYXllcgogICAgICAgICBvdXRsaW5lUmVjdElu
Rmxvd1RocmVhZCwgJm9mZnNldFdpdGhpblBhZ2luYXRlZExheWVyKTsKICAgICAKICAgICAvLyBU
YWtlIG91ciBib3VuZGluZyBib3ggd2l0aGluIHRoZSBmbG93IHRocmVhZCBhbmQgY2xpcCBpdC4K
LSAgICBMYXlvdXRSZWN0IGxheWVyQm91bmRpbmdCb3hJbkZsb3dUaHJlYWQgPSBib3VuZGluZ0Jv
eChlbmNsb3NpbmdQYWdpbmF0aW9uTGF5ZXIoKSwgMCwgJm9mZnNldFdpdGhpblBhZ2luYXRlZExh
eWVyKTsKKyAgICBMYXlvdXRSZWN0IGxheWVyQm91bmRpbmdCb3hJbkZsb3dUaHJlYWQgPSBsYXll
ckJvdW5kaW5nQm94ID8gKmxheWVyQm91bmRpbmdCb3ggOiBib3VuZGluZ0JveChlbmNsb3NpbmdQ
YWdpbmF0aW9uTGF5ZXIoKSwgMCwgJm9mZnNldFdpdGhpblBhZ2luYXRlZExheWVyKTsKICAgICBs
YXllckJvdW5kaW5nQm94SW5GbG93VGhyZWFkLmludGVyc2VjdChiYWNrZ3JvdW5kUmVjdEluRmxv
d1RocmVhZC5yZWN0KCkpOwogCiAgICAgLy8gU2hpZnQgdGhlIGRpcnR5IHJlY3QgaW50byBmbG93
IHRocmVhZCBjb29yZGluYXRlcy4KQEAgLTM5NzYsOSArNDAwOSwxMCBAQCB2b2lkIFJlbmRlckxh
eWVyOjpwYWludFRyYW5zZm9ybWVkTGF5ZXJJCiB7CiAgICAgTGF5ZXJGcmFnbWVudHMgZW5jbG9z
aW5nUGFnaW5hdGlvbkZyYWdtZW50czsKICAgICBMYXlvdXRQb2ludCBvZmZzZXRPZlBhZ2luYXRp
b25MYXllckZyb21Sb290OworICAgIExheW91dFJlY3QgdHJhbnNwYXJlbmN5RXh0ZW50ID0gdHJh
bnNwYXJlbmN5Q2xpcEJveCh0aGlzLCBlbmNsb3NpbmdQYWdpbmF0aW9uTGF5ZXIoKSwgUGFpbnRp
bmdUcmFuc3BhcmVuY3lDbGlwQm94LCBSb290T2ZUcmFuc3BhcmVuY3lDbGlwQm94LCBwYWludGlu
Z0luZm8ucGFpbnRCZWhhdmlvcik7CiAgICAgZW5jbG9zaW5nUGFnaW5hdGlvbkxheWVyKCktPmNv
bGxlY3RGcmFnbWVudHMoZW5jbG9zaW5nUGFnaW5hdGlvbkZyYWdtZW50cywgcGFpbnRpbmdJbmZv
LnJvb3RMYXllciwgcGFpbnRpbmdJbmZvLnJlZ2lvbiwgcGFpbnRpbmdJbmZvLnBhaW50RGlydHlS
ZWN0LAogICAgICAgICAocGFpbnRGbGFncyAmIFBhaW50TGF5ZXJUZW1wb3JhcnlDbGlwUmVjdHMp
ID8gVGVtcG9yYXJ5Q2xpcFJlY3RzIDogUGFpbnRpbmdDbGlwUmVjdHMsIElnbm9yZU92ZXJsYXlT
Y3JvbGxiYXJTaXplLAotICAgICAgICAocGFpbnRGbGFncyAmIFBhaW50TGF5ZXJQYWludGluZ092
ZXJmbG93Q29udGVudHMpID8gSWdub3JlT3ZlcmZsb3dDbGlwIDogUmVzcGVjdE92ZXJmbG93Q2xp
cCwgJm9mZnNldE9mUGFnaW5hdGlvbkxheWVyRnJvbVJvb3QpOworICAgICAgICAocGFpbnRGbGFn
cyAmIFBhaW50TGF5ZXJQYWludGluZ092ZXJmbG93Q29udGVudHMpID8gSWdub3JlT3ZlcmZsb3dD
bGlwIDogUmVzcGVjdE92ZXJmbG93Q2xpcCwgJm9mZnNldE9mUGFnaW5hdGlvbkxheWVyRnJvbVJv
b3QsICZ0cmFuc3BhcmVuY3lFeHRlbnQpOwogICAgIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgZW5jbG9zaW5nUGFnaW5hdGlvbkZyYWdtZW50cy5zaXplKCk7ICsraSkgewogICAgICAgICBj
b25zdCBMYXllckZyYWdtZW50JiBmcmFnbWVudCA9IGVuY2xvc2luZ1BhZ2luYXRpb25GcmFnbWVu
dHMuYXQoaSk7CkBAIC00NjA5LDggKzQ2NDMsOSBAQCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6
OmhpdFRlc3RUcmFuc2ZvCiB7CiAgICAgTGF5ZXJGcmFnbWVudHMgZW5jbG9zaW5nUGFnaW5hdGlv
bkZyYWdtZW50czsKICAgICBMYXlvdXRQb2ludCBvZmZzZXRPZlBhZ2luYXRpb25MYXllckZyb21S
b290OworICAgIExheW91dFJlY3QgdHJhbnNwYXJlbmN5RXh0ZW50ID0gdHJhbnNwYXJlbmN5Q2xp
cEJveCh0aGlzLCBlbmNsb3NpbmdQYWdpbmF0aW9uTGF5ZXIoKSwgSGl0VGVzdGluZ1RyYW5zcGFy
ZW5jeUNsaXBCb3gsIFJvb3RPZlRyYW5zcGFyZW5jeUNsaXBCb3gpOwogICAgIGVuY2xvc2luZ1Bh
Z2luYXRpb25MYXllcigpLT5jb2xsZWN0RnJhZ21lbnRzKGVuY2xvc2luZ1BhZ2luYXRpb25GcmFn
bWVudHMsIHJvb3RMYXllciwgaGl0VGVzdExvY2F0aW9uLnJlZ2lvbigpLCBoaXRUZXN0UmVjdCwK
LSAgICAgICAgUm9vdFJlbGF0aXZlQ2xpcFJlY3RzLCBJbmNsdWRlT3ZlcmxheVNjcm9sbGJhclNp
emUsIFJlc3BlY3RPdmVyZmxvd0NsaXAsICZvZmZzZXRPZlBhZ2luYXRpb25MYXllckZyb21Sb290
KTsKKyAgICAgICAgUm9vdFJlbGF0aXZlQ2xpcFJlY3RzLCBJbmNsdWRlT3ZlcmxheVNjcm9sbGJh
clNpemUsIFJlc3BlY3RPdmVyZmxvd0NsaXAsICZvZmZzZXRPZlBhZ2luYXRpb25MYXllckZyb21S
b290LCAmdHJhbnNwYXJlbmN5RXh0ZW50KTsKIAogICAgIGZvciAoaW50IGkgPSBlbmNsb3NpbmdQ
YWdpbmF0aW9uRnJhZ21lbnRzLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgIGNv
bnN0IExheWVyRnJhZ21lbnQmIGZyYWdtZW50ID0gZW5jbG9zaW5nUGFnaW5hdGlvbkZyYWdtZW50
cy5hdChpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCShyZXZp
c2lvbiAxNDQ0OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtOTQ2LDcgKzk0Niw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNv
bGxlY3RGcmFnbWVudHMoTGF5ZXJGcmFnbWVudHMmLCBjb25zdCBSZW5kZXJMYXllciogcm9vdExh
eWVyLCBSZW5kZXJSZWdpb24qLCBjb25zdCBMYXlvdXRSZWN0JiBkaXJ0eVJlY3QsCiAgICAgICAg
IENsaXBSZWN0c1R5cGUsIE92ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZhbmN5IGluT3ZlcmxheVNj
cm9sbGJhclNpemVSZWxldmFuY3kgPSBJZ25vcmVPdmVybGF5U2Nyb2xsYmFyU2l6ZSwKLSAgICAg
ICAgU2hvdWxkUmVzcGVjdE92ZXJmbG93Q2xpcCA9IFJlc3BlY3RPdmVyZmxvd0NsaXAsIGNvbnN0
IExheW91dFBvaW50KiBvZmZzZXRGcm9tUm9vdCA9IDApOworICAgICAgICBTaG91bGRSZXNwZWN0
T3ZlcmZsb3dDbGlwID0gUmVzcGVjdE92ZXJmbG93Q2xpcCwgY29uc3QgTGF5b3V0UG9pbnQqIG9m
ZnNldEZyb21Sb290ID0gMCwgY29uc3QgTGF5b3V0UmVjdCogbGF5ZXJCb3VuZGluZ0JveCA9IDAp
OwogICAgIHZvaWQgdXBkYXRlUGFpbnRpbmdJbmZvRm9yRnJhZ21lbnRzKExheWVyRnJhZ21lbnRz
JiwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mLCBQYWludExheWVyRmxhZ3MsIGJvb2wgc2hvdWxk
UGFpbnRDb250ZW50LCBjb25zdCBMYXlvdXRQb2ludCogb2Zmc2V0RnJvbVJvb3QpOwogICAgIHZv
aWQgcGFpbnRCYWNrZ3JvdW5kRm9yRnJhZ21lbnRzKGNvbnN0IExheWVyRnJhZ21lbnRzJiwgR3Jh
cGhpY3NDb250ZXh0KiwgR3JhcGhpY3NDb250ZXh0KiB0cmFuc3BhcmVuY3lMYXllckNvbnRleHQs
CiAgICAgICAgIGNvbnN0IExheW91dFJlY3QmIHRyYW5zcGFyZW5jeVBhaW50RGlydHlSZWN0LCBi
b29sIGhhdmVUcmFuc3BhcmVuY3ksIGNvbnN0IExheWVyUGFpbnRpbmdJbmZvJiwgUGFpbnRCZWhh
dmlvciwgUmVuZGVyT2JqZWN0KiBwYWludGluZ1Jvb3RGb3JSZW5kZXJlcik7CkluZGV4OiBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAxNDQ1MTIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMy0wMSAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5j
b20+CisKKyAgICAgICAgW05ldyBNdWx0aWNvbHVtbl0gVHJhbnNmb3JtZWQgb2JqZWN0cyBpbnNp
ZGUgZnJhZ21lbnRlZCB0cmFuc3BhcmVudCBvYmplY3RzIGRvbid0IHJlbmRlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExMjIxLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tdWx0aWNvbC9t
aXhlZC1vcGFjaXR5LWZpeGVkLXRlc3QtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9tdWx0aWNvbC9taXhlZC1vcGFjaXR5LWZpeGVkLXRlc3QuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9tdWx0aWNvbC9taXhlZC1vcGFjaXR5LXRlc3QtZXhwZWN0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9tdWx0aWNvbC9taXhlZC1vcGFjaXR5LXRlc3QuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9tdWx0aWNvbC90cmFuc2Zvcm0taW5zaWRlLW9wYWNpdHktZXhw
ZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9tdWx0aWNvbC90cmFuc2Zvcm0taW5z
aWRlLW9wYWNpdHkuaHRtbDogQWRkZWQuCisKIDIwMTMtMDMtMDEgIEphbWVzIFJvYmluc29uICA8
amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIE1hcmsgc29tZSBzb2Z0
d2FyZSBjb21wb3NpdGluZyB0ZXN0cyBhcyBmYWlsaW5nIGJlZm9yZSBsYW5kaW5nIGFudGktYWxp
YXNpbmcgY2hhbmdlcwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9taXhlZC1vcGFj
aXR5LWZpeGVkLXRlc3QtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L211bHRpY29sL21peGVkLW9wYWNpdHktZml4ZWQtdGVzdC1leHBlY3RlZC5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9taXhlZC1vcGFjaXR5LWZpeGVk
LXRlc3QtZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACis8ZGl2IHN0
eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6NDIwcHg7IGJvcmRlcjoycHggc29saWQgYmxh
Y2s7IGhlaWdodDoyMDBweCI+Cis8ZGl2IHN0eWxlPSJvcGFjaXR5OjAuNTtwb3NpdGlvbjpyZWxh
dGl2ZSI+Cis8ZGl2IHN0eWxlPSJoZWlnaHQ6MjAwcHg7YmFja2dyb3VuZC1jb2xvcjpncmVlbjtw
b3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoyMDBweDtsZWZ0OjA7dG9wOjAiPjwvZGl2PgorPGRpdiBz
dHlsZT0iaGVpZ2h0OjIwMHB4O2JhY2tncm91bmQtY29sb3I6Z3JlZW47cG9zaXRpb246YWJzb2x1
dGU7d2lkdGg6MjAwcHg7cmlnaHQ6MDt0b3A6MCI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlv
bjpmaXhlZDtoZWlnaHQ6OThweDt3aWR0aDo5OHB4O2JhY2tncm91bmQtY29sb3I6bGlnaHRncmF5
OyBsZWZ0OjE3MHB4OyB0b3A6MjIwcHg7YmFja2dyb3VuZC1jb2xvcjpncmVlbjtib3JkZXI6MXB4
IHNvbGlkIGxpbWUiPgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L211bHRpY29sL21peGVkLW9wYWNpdHktZml4ZWQtdGVzdC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvbWl4ZWQtb3BhY2l0eS1maXhlZC10
ZXN0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL21peGVk
LW9wYWNpdHktZml4ZWQtdGVzdC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExIEBACis8
c2NyaXB0PgoraW50ZXJuYWxzLnNldHRpbmdzLnNldFJlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQo
dHJ1ZSkKKzwvc2NyaXB0PgorPGRpdiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IC13ZWJraXQt
Y29sdW1uLWNvdW50OjI7IC13ZWJraXQtY29sdW1uLXdpZHRoOjIwMHB4OyB3aWR0aDo0MjBweDsg
LXdlYmtpdC1jb2x1bW4tZ2FwOjIwcHg7IGJvcmRlcjoycHggc29saWQgYmxhY2s7IGhlaWdodDoy
MDBweCI+Cis8ZGl2IHN0eWxlPSJvcGFjaXR5OjAuNSI+Cis8ZGl2IHN0eWxlPSJoZWlnaHQ6NDAw
cHg7YmFja2dyb3VuZC1jb2xvcjpncmVlbiI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjpm
aXhlZDtoZWlnaHQ6OThweDt3aWR0aDo5OHB4O2JhY2tncm91bmQtY29sb3I6bGlnaHRncmF5OyBs
ZWZ0OjE3MHB4OyB0b3A6MjIwcHg7YmFja2dyb3VuZC1jb2xvcjpncmVlbjtib3JkZXI6MXB4IHNv
bGlkIGxpbWUiPgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L211bHRpY29sL21peGVkLW9wYWNpdHktdGVzdC1leHBlY3RlZC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvbWl4ZWQtb3BhY2l0eS10ZXN0LWV4
cGVjdGVkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL21p
eGVkLW9wYWNpdHktdGVzdC1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkg
QEAKKzxkaXYgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDo0MjBweDsgYm9yZGVyOjJw
eCBzb2xpZCBibGFjazsgaGVpZ2h0OjIwMHB4Ij4KKzxkaXYgc3R5bGU9Im9wYWNpdHk6MC41O3Bv
c2l0aW9uOnJlbGF0aXZlIj4KKzxkaXYgc3R5bGU9ImhlaWdodDoyMDBweDtiYWNrZ3JvdW5kLWNv
bG9yOmdyZWVuO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjIwMHB4O2xlZnQ6MDt0b3A6MCI+PC9k
aXY+Cis8ZGl2IHN0eWxlPSJoZWlnaHQ6MjAwcHg7YmFja2dyb3VuZC1jb2xvcjpncmVlbjtwb3Np
dGlvbjphYnNvbHV0ZTt3aWR0aDoyMDBweDtyaWdodDowO3RvcDowIj48L2Rpdj4KKzxkaXYgc3R5
bGU9InBvc2l0aW9uOmFic29sdXRlO2hlaWdodDo5OHB4O3dpZHRoOjk4cHg7YmFja2dyb3VuZC1j
b2xvcjpsaWdodGdyYXk7IGxlZnQ6MTYwcHg7IHRvcDo1MHB4O2JhY2tncm91bmQtY29sb3I6Z3Jl
ZW47Ym9yZGVyOjFweCBzb2xpZCBsaW1lIj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9taXhlZC1vcGFjaXR5LXRlc3QuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL21peGVkLW9wYWNpdHkt
dGVzdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9taXhl
ZC1vcGFjaXR5LXRlc3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMSBAQAorPHNjcmlw
dD4KK2ludGVybmFscy5zZXR0aW5ncy5zZXRSZWdpb25CYXNlZENvbHVtbnNFbmFibGVkKHRydWUp
Cis8L3NjcmlwdD4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyAtd2Via2l0LWNvbHVt
bi1jb3VudDoyOyAtd2Via2l0LWNvbHVtbi13aWR0aDoyMDBweDsgd2lkdGg6NDIwcHg7IC13ZWJr
aXQtY29sdW1uLWdhcDoyMHB4OyBib3JkZXI6MnB4IHNvbGlkIGJsYWNrOyBoZWlnaHQ6MjAwcHgi
PgorPGRpdiBzdHlsZT0ib3BhY2l0eTowLjUiPgorPGRpdiBzdHlsZT0iaGVpZ2h0OjQwMHB4O2Jh
Y2tncm91bmQtY29sb3I6Z3JlZW4iPjwvZGl2PgorPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1
dGU7aGVpZ2h0Ojk4cHg7d2lkdGg6OThweDtiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTsgbGVm
dDoxNjBweDsgdG9wOjUwcHg7YmFja2dyb3VuZC1jb2xvcjpncmVlbjtib3JkZXI6MXB4IHNvbGlk
IGxpbWUiPgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L211bHRpY29sL3RyYW5zZm9ybS1pbnNpZGUtb3BhY2l0eS1leHBlY3RlZC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvdHJhbnNmb3JtLWluc2lkZS1v
cGFjaXR5LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L211
bHRpY29sL3RyYW5zZm9ybS1pbnNpZGUtb3BhY2l0eS1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDQgQEAKKzxkaXYgc3R5bGU9InBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDo0
MjBweDtib3JkZXI6MnB4IHNvbGlkIGJsYWNrOyBoZWlnaHQ6MjAwcHgiPgorPGRpdiBzdHlsZT0i
b3BhY2l0eTowLjU7IHBvc2l0aW9uOmFic29sdXRlO3dpZHRoOjIwMHB4O2hlaWdodDoxMDBweDti
YWNrZ3JvdW5kLWNvbG9yOmdyZWVuO3JpZ2h0OjA7dG9wOjAiPjwvZGl2PgorPC9kaXY+Cis8L2Rp
dj4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvdHJhbnNmb3JtLWluc2lkZS1vcGFj
aXR5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC90cmFuc2Zv
cm0taW5zaWRlLW9wYWNpdHkuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
bXVsdGljb2wvdHJhbnNmb3JtLWluc2lkZS1vcGFjaXR5Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTUgQEAKKzxoZWFkPgorPHNjcmlwdD4KK2ludGVybmFscy5zZXR0aW5ncy5zZXRSZWdp
b25CYXNlZENvbHVtbnNFbmFibGVkKHRydWUpCis8L3NjcmlwdD4KKzxzdHlsZT4KKy50cmFuc2Zv
cm1lZCB7IGJhY2tncm91bmQtY29sb3I6Z3JlZW4gfQorLnRyYW5zZm9ybWVkOmhvdmVyIHsgYmFj
a2dyb3VuZC1jb2xvcjptYXJvb24gfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxkaXYgc3R5bGU9InBv
c2l0aW9uOnJlbGF0aXZlOyAtd2Via2l0LWNvbHVtbi1jb3VudDoyOyAtd2Via2l0LWNvbHVtbi13
aWR0aDoyMDBweDsgd2lkdGg6NDIwcHg7IC13ZWJraXQtY29sdW1uLWdhcDoyMHB4OyBib3JkZXI6
MnB4IHNvbGlkIGJsYWNrOyBoZWlnaHQ6MjAwcHgiPgorPGRpdiBzdHlsZT0iaGVpZ2h0OjEwMHB4
Ij48L2Rpdj4KKzxkaXYgc3R5bGU9Im9wYWNpdHk6MC41Ij4KKzxkaXYgY2xhc3M9InRyYW5zZm9y
bWVkIiBzdHlsZT0iZmxvYXQ6bGVmdDt3aWR0aDoyMDBweDtoZWlnaHQ6MTAwcHg7LXdlYmtpdC10
cmFuc2Zvcm06dHJhbnNsYXRlKDAsIDEwMHB4KSI+PC9kaXY+Cis8L2Rpdj4KKzwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191078</attachid>
            <date>2013-03-01 17:08:01 -0800</date>
            <delta_ts>2013-03-01 17:22:42 -0800</delta_ts>
            <desc>Tweak some variable names.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>17947</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0NDUxMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDEzLTAzLTAxICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBbTmV3IE11bHRpY29sdW1uXSBUcmFu
c2Zvcm1lZCBvYmplY3RzIGluc2lkZSBmcmFnbWVudGVkIHRyYW5zcGFyZW50IG9iamVjdHMgZG9u
J3QgcmVuZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTEyMjEuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wcm92ZSB0cmFuc3BhcmVuY3lDbGlwQm94IHNvIHRoYXQgaXQgdW5kZXJzdGFuZHMgd2hl
biBtb3ZpbmcgaW50byBkZXNjZW5kYW50cworICAgICAgICB0aGF0IGl0IGRvZXMgaW4gZmFjdCBo
YXZlIHRvIGJyZWFrIHVwIHRoZSB0cmFuc2Zvcm1lZCBjbGlwIHJlY3QgYWNyb3NzIHRoZQorICAg
ICAgICBmcmFnbWVudHMuCisgICAgICAgIAorICAgICAgICBNYWtlIHN1cmUgd2hlbiBoYW5kbGlu
ZyBmcmFnbWVudGVkIHRyYW5zZm9ybXMgdXNpbmcgbXVsdGlwbGUgcGFpbnRzIHRoYXQKKyAgICAg
ICAgdGhlIHRlc3QgdGhhdCBkZXRlcm1pbmVzIHRoZSBleHRlbnQgb2YgdGhlIHRyYW5zZm9ybSB3
aXRoaW4gdGhlIGZyYWdtZW50cworICAgICAgICB1c2VzIHRyYW5zcGFyZW5jeUNsaXBCb3guIFRo
aXMgZ2l2ZXMgdXMgYW4gYWNjdXJhdGUgc2V0IG9mIGNvbHVtbnMgdGhhdCB0aGUKKyAgICAgICAg
ZmluYWwgdHJhbnNmb3JtZWQgcmVzdWx0IHdpbGwgcGFpbnQgYWNyb3NzLgorCisgICAgICAgIFRl
c3RzOiBmYXN0L211bHRpY29sL21peGVkLW9wYWNpdHktZml4ZWQtdGVzdC5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L211bHRpY29sL21peGVkLW9wYWNpdHktdGVzdC5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L211bHRpY29sL3RyYW5zZm9ybS1pbnNpZGUtb3BhY2l0eS5odG1sCisKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dHJhbnNw
YXJlbmN5Q2xpcEJveCk6CisgICAgICAgIChXZWJDb3JlOjpleHBhbmRDbGlwUmVjdEZvckRlc2Nl
bmRhbnRzQW5kUmVmbGVjdGlvbik6CisgICAgICAgIEJyZWFrIHRyYW5zZm9ybWVkIGJveGVzIHVw
IGludG8gZnJhZ21lbnRzIHdoZW4gdGhleSBhcmUKKyAgICAgICAgYmVpbmcgcmVxdWVzdGVkIGJ5
IGFuIGFuY2VzdG9yLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y29sbGVjdEZy
YWdtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRUcmFuc2Zvcm1l
ZExheWVySW50b0ZyYWdtZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6aGl0
VGVzdFRyYW5zZm9ybWVkTGF5ZXJJbkZyYWdtZW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmg6CisgICAgICAgIChSZW5kZXJMYXllcik6CisgICAgICAgIE1vZGlmeSBjb2xs
ZWN0RnJhZ21lbnRzIHNvIHRoYXQgd2UgcGFzcyBpbiB0aGUgY29ycmVjdCByYW5nZQorICAgICAg
ICB3aXRoaW4gdGhlIGNvbHVtbnMgdGhhdCBjYW4gcG9zc2libHkgY292ZXIgdGhlIGZyYWdtZW50
ZWQKKyAgICAgICAgdHJhbnNmb3JtZWQgYm94LgorCiAyMDEzLTAzLTAxICBWaWN0b3IgQ2FyYnVu
ZSAgPHZjYXJidW5lQGNocm9taXVtLm9yZz4KIAogICAgICAgICBTdXBwb3J0IHBhZGRpbmcsIG1h
cmdpbiBhbmQgYm9yZGVyIGZvciBpbnRlcm5hbCBVQSBjdWUgc3R5bGluZwpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShyZXZpc2lvbiAxNDQ0OTcpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNTYwLDkgKzE1NjAsMjIgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjp0cmFuc3BhcmVu
dFBhaQogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgTGF5b3V0UmVjdCB0cmFuc3BhcmVuY3lD
bGlwQm94KGNvbnN0IFJlbmRlckxheWVyKiwgY29uc3QgUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwg
UGFpbnRCZWhhdmlvcik7CitlbnVtIFRyYW5zcGFyZW5jeUNsaXBCb3hCZWhhdmlvcgoreworICAg
IFBhaW50aW5nVHJhbnNwYXJlbmN5Q2xpcEJveCwKKyAgICBIaXRUZXN0aW5nVHJhbnNwYXJlbmN5
Q2xpcEJveAorfTsKKworZW51bSBUcmFuc3BhcmVuY3lDbGlwQm94TW9kZQoreworICAgIERlc2Nl
bmRhbnRzT2ZUcmFuc3BhcmVuY3lDbGlwQm94LAorICAgIFJvb3RPZlRyYW5zcGFyZW5jeUNsaXBC
b3gKK307CiAKLXN0YXRpYyB2b2lkIGV4cGFuZENsaXBSZWN0Rm9yRGVzY2VuZGFudHNBbmRSZWZs
ZWN0aW9uKExheW91dFJlY3QmIGNsaXBSZWN0LCBjb25zdCBSZW5kZXJMYXllciogbGF5ZXIsIGNv
bnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIsIFBhaW50QmVoYXZpb3IgcGFpbnRCZWhhdmlvcikK
K3N0YXRpYyBMYXlvdXRSZWN0IHRyYW5zcGFyZW5jeUNsaXBCb3goY29uc3QgUmVuZGVyTGF5ZXIq
LCBjb25zdCBSZW5kZXJMYXllciogcm9vdExheWVyLCBUcmFuc3BhcmVuY3lDbGlwQm94QmVoYXZp
b3IsIFRyYW5zcGFyZW5jeUNsaXBCb3hNb2RlLCBQYWludEJlaGF2aW9yID0gMCk7CisKK3N0YXRp
YyB2b2lkIGV4cGFuZENsaXBSZWN0Rm9yRGVzY2VuZGFudHNBbmRSZWZsZWN0aW9uKExheW91dFJl
Y3QmIGNsaXBSZWN0LCBjb25zdCBSZW5kZXJMYXllciogbGF5ZXIsIGNvbnN0IFJlbmRlckxheWVy
KiByb290TGF5ZXIsCisgICAgVHJhbnNwYXJlbmN5Q2xpcEJveEJlaGF2aW9yIHRyYW5zcGFyZW5j
eUJlaGF2aW9yLCBQYWludEJlaGF2aW9yIHBhaW50QmVoYXZpb3IpCiB7CiAgICAgLy8gSWYgd2Ug
aGF2ZSBhIG1hc2ssIHRoZW4gdGhlIGNsaXAgaXMgbGltaXRlZCB0byB0aGUgYm9yZGVyIGJveCBh
cmVhIChhbmQgdGhlcmUgaXMKICAgICAvLyBubyBuZWVkIHRvIGV4YW1pbmUgY2hpbGQgbGF5ZXJz
KS4KQEAgLTE1NzEsNyArMTU4NCw3IEBAIHN0YXRpYyB2b2lkIGV4cGFuZENsaXBSZWN0Rm9yRGVz
Y2VuZGFudHMKICAgICAgICAgLy8gYSBzdGFja2luZyBjb250YWluZXIuIFRoaXMgbWVhbnMgd2Ug
Y2FuIGp1c3Qgd2FsayB0aGUgbGF5ZXIgdHJlZSBkaXJlY3RseS4KICAgICAgICAgZm9yIChSZW5k
ZXJMYXllciogY3VyciA9IGxheWVyLT5maXJzdENoaWxkKCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5u
ZXh0U2libGluZygpKSB7CiAgICAgICAgICAgICBpZiAoIWxheWVyLT5yZWZsZWN0aW9uKCkgfHwg
bGF5ZXItPnJlZmxlY3Rpb25MYXllcigpICE9IGN1cnIpCi0gICAgICAgICAgICAgICAgY2xpcFJl
Y3QudW5pdGUodHJhbnNwYXJlbmN5Q2xpcEJveChjdXJyLCByb290TGF5ZXIsIHBhaW50QmVoYXZp
b3IpKTsKKyAgICAgICAgICAgICAgICBjbGlwUmVjdC51bml0ZSh0cmFuc3BhcmVuY3lDbGlwQm94
KGN1cnIsIHJvb3RMYXllciwgdHJhbnNwYXJlbmN5QmVoYXZpb3IsIERlc2NlbmRhbnRzT2ZUcmFu
c3BhcmVuY3lDbGlwQm94LCBwYWludEJlaGF2aW9yKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAg
LTE1ODgsMzIgKzE2MDEsNTEgQEAgc3RhdGljIHZvaWQgZXhwYW5kQ2xpcFJlY3RGb3JEZXNjZW5k
YW50cwogICAgIH0KIH0KIAotc3RhdGljIExheW91dFJlY3QgdHJhbnNwYXJlbmN5Q2xpcEJveChj
b25zdCBSZW5kZXJMYXllciogbGF5ZXIsIGNvbnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIsIFBh
aW50QmVoYXZpb3IgcGFpbnRCZWhhdmlvcikKK3N0YXRpYyBMYXlvdXRSZWN0IHRyYW5zcGFyZW5j
eUNsaXBCb3goY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyLCBjb25zdCBSZW5kZXJMYXllciogcm9v
dExheWVyLCBUcmFuc3BhcmVuY3lDbGlwQm94QmVoYXZpb3IgdHJhbnNwYXJlbmN5QmVoYXZpb3Is
CisgICAgVHJhbnNwYXJlbmN5Q2xpcEJveE1vZGUgdHJhbnNwYXJlbmN5TW9kZSwgUGFpbnRCZWhh
dmlvciBwYWludEJlaGF2aW9yKQogewogICAgIC8vIEZJWE1FOiBBbHRob3VnaCB0aGlzIGZ1bmN0
aW9uIGNvbXBsZXRlbHkgaWdub3JlcyBDU1MtaW1wb3NlZCBjbGlwcGluZywgd2UgZGlkIGFscmVh
ZHkgaW50ZXJzZWN0IHdpdGggdGhlCiAgICAgLy8gcGFpbnREaXJ0eVJlY3QsIGFuZCB0aGF0IHNo
b3VsZCBjdXQgZG93biBvbiB0aGUgYW1vdW50IHdlIGhhdmUgdG8gcGFpbnQuICBTdGlsbCBpdAog
ICAgIC8vIHdvdWxkIGJlIGJldHRlciB0byByZXNwZWN0IGNsaXBzLgogICAgIAotICAgIGlmIChy
b290TGF5ZXIgIT0gbGF5ZXIgJiYgbGF5ZXItPnBhaW50c1dpdGhUcmFuc2Zvcm0ocGFpbnRCZWhh
dmlvcikpIHsKKyAgICBpZiAocm9vdExheWVyICE9IGxheWVyICYmICgodHJhbnNwYXJlbmN5QmVo
YXZpb3IgPT0gUGFpbnRpbmdUcmFuc3BhcmVuY3lDbGlwQm94ICYmIGxheWVyLT5wYWludHNXaXRo
VHJhbnNmb3JtKHBhaW50QmVoYXZpb3IpKSB8fAorICAgICAgICAodHJhbnNwYXJlbmN5QmVoYXZp
b3IgPT0gSGl0VGVzdGluZ1RyYW5zcGFyZW5jeUNsaXBCb3ggJiYgbGF5ZXItPmhhc1RyYW5zZm9y
bSgpKSkpIHsKICAgICAgICAgLy8gVGhlIGJlc3Qgd2UgY2FuIGRvIGhlcmUgaXMgdG8gdXNlIGVu
Y2xvc2VkIGJvdW5kaW5nIGJveGVzIHRvIGVzdGFibGlzaCBhICJmdXp6eSIgZW5vdWdoIGNsaXAg
dG8gZW5jb21wYXNzCiAgICAgICAgIC8vIHRoZSB0cmFuc2Zvcm1lZCBsYXllciBhbmQgYWxsIG9m
IGl0cyBjaGlsZHJlbi4KKyAgICAgICAgY29uc3QgUmVuZGVyTGF5ZXIqIHBhZ2luYXRpb25MYXll
ciA9IHRyYW5zcGFyZW5jeU1vZGUgPT0gRGVzY2VuZGFudHNPZlRyYW5zcGFyZW5jeUNsaXBCb3gg
PyBsYXllci0+ZW5jbG9zaW5nUGFnaW5hdGlvbkxheWVyKCkgOiAwOworICAgICAgICBjb25zdCBS
ZW5kZXJMYXllciogcm9vdExheWVyRm9yVHJhbnNmb3JtID0gcGFnaW5hdGlvbkxheWVyID8gcGFn
aW5hdGlvbkxheWVyIDogcm9vdExheWVyOwogICAgICAgICBMYXlvdXRQb2ludCBkZWx0YTsKLSAg
ICAgICAgbGF5ZXItPmNvbnZlcnRUb0xheWVyQ29vcmRzKHJvb3RMYXllciwgZGVsdGEpOworICAg
ICAgICBsYXllci0+Y29udmVydFRvTGF5ZXJDb29yZHMocm9vdExheWVyRm9yVHJhbnNmb3JtLCBk
ZWx0YSk7CiAKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOwogICAgICAg
ICB0cmFuc2Zvcm0udHJhbnNsYXRlKGRlbHRhLngoKSwgZGVsdGEueSgpKTsKICAgICAgICAgdHJh
bnNmb3JtID0gdHJhbnNmb3JtICogKmxheWVyLT50cmFuc2Zvcm0oKTsKIAotICAgICAgICBMYXlv
dXRSZWN0IGNsaXBSZWN0ID0gbGF5ZXItPmJvdW5kaW5nQm94KGxheWVyLCBSZW5kZXJMYXllcjo6
VXNlRnJhZ21lbnRCb3hlcyk7Ci0gICAgICAgIGV4cGFuZENsaXBSZWN0Rm9yRGVzY2VuZGFudHNB
bmRSZWZsZWN0aW9uKGNsaXBSZWN0LCBsYXllciwgbGF5ZXIsIHBhaW50QmVoYXZpb3IpOworICAg
ICAgICAvLyBXZSBkb24ndCB1c2UgZnJhZ21lbnQgYm94ZXMgd2hlbiBjb2xsZWN0aW5nIGEgdHJh
bnNmb3JtZWQgbGF5ZXIncyBib3VuZGluZyBib3gsIHNpbmNlIGl0IGFsd2F5cworICAgICAgICAv
LyBwYWludHMgdW5mcmFnbWVudGVkLgorICAgICAgICBMYXlvdXRSZWN0IGNsaXBSZWN0ID0gbGF5
ZXItPmJvdW5kaW5nQm94KGxheWVyKTsKKyAgICAgICAgZXhwYW5kQ2xpcFJlY3RGb3JEZXNjZW5k
YW50c0FuZFJlZmxlY3Rpb24oY2xpcFJlY3QsIGxheWVyLCBsYXllciwgdHJhbnNwYXJlbmN5QmVo
YXZpb3IsIHBhaW50QmVoYXZpb3IpOwogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICAgICAg
bGF5ZXItPnJlbmRlcmVyKCktPnN0eWxlKCktPmZpbHRlck91dHNldHMoKS5leHBhbmRSZWN0KGNs
aXBSZWN0KTsKICNlbmRpZgotICAgICAgICByZXR1cm4gdHJhbnNmb3JtLm1hcFJlY3QoY2xpcFJl
Y3QpOworICAgICAgICBMYXlvdXRSZWN0IHJlc3VsdCA9IHRyYW5zZm9ybS5tYXBSZWN0KGNsaXBS
ZWN0KTsKKyAgICAgICAgaWYgKCFwYWdpbmF0aW9uTGF5ZXIpCisgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgICAKKyAgICAgICAgLy8gV2UgaGF2ZSB0byBicmVhayB1cCB0aGUgdHJh
bnNmb3JtZWQgZXh0ZW50IGFjcm9zcyBvdXIgY29sdW1ucy4KKyAgICAgICAgLy8gU3BsaXQgb3Vy
IGJveCB1cCBpbnRvIHRoZSBhY3R1YWwgZnJhZ21lbnQgYm94ZXMgdGhhdCByZW5kZXIgaW4gdGhl
IGNvbHVtbnMvcGFnZXMgYW5kIHVuaXRlIHRob3NlIHRvZ2V0aGVyIHRvCisgICAgICAgIC8vIGdl
dCBvdXIgdHJ1ZSBib3VuZGluZyBib3guCisgICAgICAgIFJlbmRlckZsb3dUaHJlYWQqIGVuY2xv
c2luZ0Zsb3dUaHJlYWQgPSB0b1JlbmRlckZsb3dUaHJlYWQocGFnaW5hdGlvbkxheWVyLT5yZW5k
ZXJlcigpKTsKKyAgICAgICAgcmVzdWx0ID0gZW5jbG9zaW5nRmxvd1RocmVhZC0+ZnJhZ21lbnRz
Qm91bmRpbmdCb3gocmVzdWx0KTsKKyAgICAgICAgCisgICAgICAgIExheW91dFBvaW50IHJvb3RM
YXllckRlbHRhOworICAgICAgICBwYWdpbmF0aW9uTGF5ZXItPmNvbnZlcnRUb0xheWVyQ29vcmRz
KHJvb3RMYXllciwgcm9vdExheWVyRGVsdGEpOworICAgICAgICByZXN1bHQubW92ZUJ5KHJvb3RM
YXllckRlbHRhKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCiAgICAgTGF5
b3V0UmVjdCBjbGlwUmVjdCA9IGxheWVyLT5ib3VuZGluZ0JveChyb290TGF5ZXIsIFJlbmRlckxh
eWVyOjpVc2VGcmFnbWVudEJveGVzKTsKLSAgICBleHBhbmRDbGlwUmVjdEZvckRlc2NlbmRhbnRz
QW5kUmVmbGVjdGlvbihjbGlwUmVjdCwgbGF5ZXIsIHJvb3RMYXllciwgcGFpbnRCZWhhdmlvcik7
CisgICAgZXhwYW5kQ2xpcFJlY3RGb3JEZXNjZW5kYW50c0FuZFJlZmxlY3Rpb24oY2xpcFJlY3Qs
IGxheWVyLCByb290TGF5ZXIsIHRyYW5zcGFyZW5jeUJlaGF2aW9yLCBwYWludEJlaGF2aW9yKTsK
ICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgbGF5ZXItPnJlbmRlcmVyKCktPnN0eWxlKCkt
PmZpbHRlck91dHNldHMoKS5leHBhbmRSZWN0KGNsaXBSZWN0KTsKICNlbmRpZgpAQCAtMTYyMiw3
ICsxNjU0LDcgQEAgc3RhdGljIExheW91dFJlY3QgdHJhbnNwYXJlbmN5Q2xpcEJveChjbwogCiBM
YXlvdXRSZWN0IFJlbmRlckxheWVyOjpwYWludGluZ0V4dGVudChjb25zdCBSZW5kZXJMYXllciog
cm9vdExheWVyLCBjb25zdCBMYXlvdXRSZWN0JiBwYWludERpcnR5UmVjdCwgUGFpbnRCZWhhdmlv
ciBwYWludEJlaGF2aW9yKQogewotICAgIHJldHVybiBpbnRlcnNlY3Rpb24odHJhbnNwYXJlbmN5
Q2xpcEJveCh0aGlzLCByb290TGF5ZXIsIHBhaW50QmVoYXZpb3IpLCBwYWludERpcnR5UmVjdCk7
CisgICAgcmV0dXJuIGludGVyc2VjdGlvbih0cmFuc3BhcmVuY3lDbGlwQm94KHRoaXMsIHJvb3RM
YXllciwgUGFpbnRpbmdUcmFuc3BhcmVuY3lDbGlwQm94LCBSb290T2ZUcmFuc3BhcmVuY3lDbGlw
Qm94LCBwYWludEJlaGF2aW9yKSwgcGFpbnREaXJ0eVJlY3QpOwogfQogCiB2b2lkIFJlbmRlckxh
eWVyOjpiZWdpblRyYW5zcGFyZW5jeUxheWVycyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNv
bnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIsIGNvbnN0IExheW91dFJlY3QmIHBhaW50RGlydHlS
ZWN0LCBQYWludEJlaGF2aW9yIHBhaW50QmVoYXZpb3IpCkBAIC0zODg4LDcgKzM5MjAsOCBAQCB2
b2lkIFJlbmRlckxheWVyOjpwYWludExpc3QoVmVjdG9yPFJlbmRlCiB9CiAKIHZvaWQgUmVuZGVy
TGF5ZXI6OmNvbGxlY3RGcmFnbWVudHMoTGF5ZXJGcmFnbWVudHMmIGZyYWdtZW50cywgY29uc3Qg
UmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgUmVuZGVyUmVnaW9uKiByZWdpb24sIGNvbnN0IExheW91
dFJlY3QmIGRpcnR5UmVjdCwKLSAgICBDbGlwUmVjdHNUeXBlIGNsaXBSZWN0c1R5cGUsIE92ZXJs
YXlTY3JvbGxiYXJTaXplUmVsZXZhbmN5IGluT3ZlcmxheVNjcm9sbGJhclNpemVSZWxldmFuY3ks
IFNob3VsZFJlc3BlY3RPdmVyZmxvd0NsaXAgcmVzcGVjdE92ZXJmbG93Q2xpcCwgY29uc3QgTGF5
b3V0UG9pbnQqIG9mZnNldEZyb21Sb290KQorICAgIENsaXBSZWN0c1R5cGUgY2xpcFJlY3RzVHlw
ZSwgT3ZlcmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgaW5PdmVybGF5U2Nyb2xsYmFyU2l6ZVJl
bGV2YW5jeSwgU2hvdWxkUmVzcGVjdE92ZXJmbG93Q2xpcCByZXNwZWN0T3ZlcmZsb3dDbGlwLCBj
b25zdCBMYXlvdXRQb2ludCogb2Zmc2V0RnJvbVJvb3QsCisgICAgY29uc3QgTGF5b3V0UmVjdCog
bGF5ZXJCb3VuZGluZ0JveCkKIHsKICAgICBpZiAoIWVuY2xvc2luZ1BhZ2luYXRpb25MYXllcigp
IHx8IGhhc1RyYW5zZm9ybSgpKSB7CiAgICAgICAgIC8vIEZvciB1bnBhZ2luYXRlZCBsYXllcnMs
IHRoZXJlIGlzIG9ubHkgb25lIGZyYWdtZW50LgpAQCAtMzkxNCw3ICszOTQ3LDcgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6Y29sbGVjdEZyYWdtZW50cyhMYXllcgogICAgICAgICBvdXRsaW5lUmVjdElu
Rmxvd1RocmVhZCwgJm9mZnNldFdpdGhpblBhZ2luYXRlZExheWVyKTsKICAgICAKICAgICAvLyBU
YWtlIG91ciBib3VuZGluZyBib3ggd2l0aGluIHRoZSBmbG93IHRocmVhZCBhbmQgY2xpcCBpdC4K
LSAgICBMYXlvdXRSZWN0IGxheWVyQm91bmRpbmdCb3hJbkZsb3dUaHJlYWQgPSBib3VuZGluZ0Jv
eChlbmNsb3NpbmdQYWdpbmF0aW9uTGF5ZXIoKSwgMCwgJm9mZnNldFdpdGhpblBhZ2luYXRlZExh
eWVyKTsKKyAgICBMYXlvdXRSZWN0IGxheWVyQm91bmRpbmdCb3hJbkZsb3dUaHJlYWQgPSBsYXll
ckJvdW5kaW5nQm94ID8gKmxheWVyQm91bmRpbmdCb3ggOiBib3VuZGluZ0JveChlbmNsb3NpbmdQ
YWdpbmF0aW9uTGF5ZXIoKSwgMCwgJm9mZnNldFdpdGhpblBhZ2luYXRlZExheWVyKTsKICAgICBs
YXllckJvdW5kaW5nQm94SW5GbG93VGhyZWFkLmludGVyc2VjdChiYWNrZ3JvdW5kUmVjdEluRmxv
d1RocmVhZC5yZWN0KCkpOwogCiAgICAgLy8gU2hpZnQgdGhlIGRpcnR5IHJlY3QgaW50byBmbG93
IHRocmVhZCBjb29yZGluYXRlcy4KQEAgLTM5NzYsOSArNDAwOSwxMCBAQCB2b2lkIFJlbmRlckxh
eWVyOjpwYWludFRyYW5zZm9ybWVkTGF5ZXJJCiB7CiAgICAgTGF5ZXJGcmFnbWVudHMgZW5jbG9z
aW5nUGFnaW5hdGlvbkZyYWdtZW50czsKICAgICBMYXlvdXRQb2ludCBvZmZzZXRPZlBhZ2luYXRp
b25MYXllckZyb21Sb290OworICAgIExheW91dFJlY3QgdHJhbnNmb3JtZWRFeHRlbnQgPSB0cmFu
c3BhcmVuY3lDbGlwQm94KHRoaXMsIGVuY2xvc2luZ1BhZ2luYXRpb25MYXllcigpLCBQYWludGlu
Z1RyYW5zcGFyZW5jeUNsaXBCb3gsIFJvb3RPZlRyYW5zcGFyZW5jeUNsaXBCb3gsIHBhaW50aW5n
SW5mby5wYWludEJlaGF2aW9yKTsKICAgICBlbmNsb3NpbmdQYWdpbmF0aW9uTGF5ZXIoKS0+Y29s
bGVjdEZyYWdtZW50cyhlbmNsb3NpbmdQYWdpbmF0aW9uRnJhZ21lbnRzLCBwYWludGluZ0luZm8u
cm9vdExheWVyLCBwYWludGluZ0luZm8ucmVnaW9uLCBwYWludGluZ0luZm8ucGFpbnREaXJ0eVJl
Y3QsCiAgICAgICAgIChwYWludEZsYWdzICYgUGFpbnRMYXllclRlbXBvcmFyeUNsaXBSZWN0cykg
PyBUZW1wb3JhcnlDbGlwUmVjdHMgOiBQYWludGluZ0NsaXBSZWN0cywgSWdub3JlT3ZlcmxheVNj
cm9sbGJhclNpemUsCi0gICAgICAgIChwYWludEZsYWdzICYgUGFpbnRMYXllclBhaW50aW5nT3Zl
cmZsb3dDb250ZW50cykgPyBJZ25vcmVPdmVyZmxvd0NsaXAgOiBSZXNwZWN0T3ZlcmZsb3dDbGlw
LCAmb2Zmc2V0T2ZQYWdpbmF0aW9uTGF5ZXJGcm9tUm9vdCk7CisgICAgICAgIChwYWludEZsYWdz
ICYgUGFpbnRMYXllclBhaW50aW5nT3ZlcmZsb3dDb250ZW50cykgPyBJZ25vcmVPdmVyZmxvd0Ns
aXAgOiBSZXNwZWN0T3ZlcmZsb3dDbGlwLCAmb2Zmc2V0T2ZQYWdpbmF0aW9uTGF5ZXJGcm9tUm9v
dCwgJnRyYW5zZm9ybWVkRXh0ZW50KTsKICAgICAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGVuY2xvc2luZ1BhZ2luYXRpb25GcmFnbWVudHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgY29u
c3QgTGF5ZXJGcmFnbWVudCYgZnJhZ21lbnQgPSBlbmNsb3NpbmdQYWdpbmF0aW9uRnJhZ21lbnRz
LmF0KGkpOwpAQCAtNDYwOSw4ICs0NjQzLDkgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpo
aXRUZXN0VHJhbnNmbwogewogICAgIExheWVyRnJhZ21lbnRzIGVuY2xvc2luZ1BhZ2luYXRpb25G
cmFnbWVudHM7CiAgICAgTGF5b3V0UG9pbnQgb2Zmc2V0T2ZQYWdpbmF0aW9uTGF5ZXJGcm9tUm9v
dDsKKyAgICBMYXlvdXRSZWN0IHRyYW5zZm9ybWVkRXh0ZW50ID0gdHJhbnNwYXJlbmN5Q2xpcEJv
eCh0aGlzLCBlbmNsb3NpbmdQYWdpbmF0aW9uTGF5ZXIoKSwgSGl0VGVzdGluZ1RyYW5zcGFyZW5j
eUNsaXBCb3gsIFJvb3RPZlRyYW5zcGFyZW5jeUNsaXBCb3gpOwogICAgIGVuY2xvc2luZ1BhZ2lu
YXRpb25MYXllcigpLT5jb2xsZWN0RnJhZ21lbnRzKGVuY2xvc2luZ1BhZ2luYXRpb25GcmFnbWVu
dHMsIHJvb3RMYXllciwgaGl0VGVzdExvY2F0aW9uLnJlZ2lvbigpLCBoaXRUZXN0UmVjdCwKLSAg
ICAgICAgUm9vdFJlbGF0aXZlQ2xpcFJlY3RzLCBJbmNsdWRlT3ZlcmxheVNjcm9sbGJhclNpemUs
IFJlc3BlY3RPdmVyZmxvd0NsaXAsICZvZmZzZXRPZlBhZ2luYXRpb25MYXllckZyb21Sb290KTsK
KyAgICAgICAgUm9vdFJlbGF0aXZlQ2xpcFJlY3RzLCBJbmNsdWRlT3ZlcmxheVNjcm9sbGJhclNp
emUsIFJlc3BlY3RPdmVyZmxvd0NsaXAsICZvZmZzZXRPZlBhZ2luYXRpb25MYXllckZyb21Sb290
LCAmdHJhbnNmb3JtZWRFeHRlbnQpOwogCiAgICAgZm9yIChpbnQgaSA9IGVuY2xvc2luZ1BhZ2lu
YXRpb25GcmFnbWVudHMuc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKICAgICAgICAgY29uc3Qg
TGF5ZXJGcmFnbWVudCYgZnJhZ21lbnQgPSBlbmNsb3NpbmdQYWdpbmF0aW9uRnJhZ21lbnRzLmF0
KGkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgJKHJldmlzaW9u
IDE0NDQ5NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC05NDYsNyArOTQ2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY29sbGVj
dEZyYWdtZW50cyhMYXllckZyYWdtZW50cyYsIGNvbnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIs
IFJlbmRlclJlZ2lvbiosIGNvbnN0IExheW91dFJlY3QmIGRpcnR5UmVjdCwKICAgICAgICAgQ2xp
cFJlY3RzVHlwZSwgT3ZlcmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgaW5PdmVybGF5U2Nyb2xs
YmFyU2l6ZVJlbGV2YW5jeSA9IElnbm9yZU92ZXJsYXlTY3JvbGxiYXJTaXplLAotICAgICAgICBT
aG91bGRSZXNwZWN0T3ZlcmZsb3dDbGlwID0gUmVzcGVjdE92ZXJmbG93Q2xpcCwgY29uc3QgTGF5
b3V0UG9pbnQqIG9mZnNldEZyb21Sb290ID0gMCk7CisgICAgICAgIFNob3VsZFJlc3BlY3RPdmVy
Zmxvd0NsaXAgPSBSZXNwZWN0T3ZlcmZsb3dDbGlwLCBjb25zdCBMYXlvdXRQb2ludCogb2Zmc2V0
RnJvbVJvb3QgPSAwLCBjb25zdCBMYXlvdXRSZWN0KiBsYXllckJvdW5kaW5nQm94ID0gMCk7CiAg
ICAgdm9pZCB1cGRhdGVQYWludGluZ0luZm9Gb3JGcmFnbWVudHMoTGF5ZXJGcmFnbWVudHMmLCBj
b25zdCBMYXllclBhaW50aW5nSW5mbyYsIFBhaW50TGF5ZXJGbGFncywgYm9vbCBzaG91bGRQYWlu
dENvbnRlbnQsIGNvbnN0IExheW91dFBvaW50KiBvZmZzZXRGcm9tUm9vdCk7CiAgICAgdm9pZCBw
YWludEJhY2tncm91bmRGb3JGcmFnbWVudHMoY29uc3QgTGF5ZXJGcmFnbWVudHMmLCBHcmFwaGlj
c0NvbnRleHQqLCBHcmFwaGljc0NvbnRleHQqIHRyYW5zcGFyZW5jeUxheWVyQ29udGV4dCwKICAg
ICAgICAgY29uc3QgTGF5b3V0UmVjdCYgdHJhbnNwYXJlbmN5UGFpbnREaXJ0eVJlY3QsIGJvb2wg
aGF2ZVRyYW5zcGFyZW5jeSwgY29uc3QgTGF5ZXJQYWludGluZ0luZm8mLCBQYWludEJlaGF2aW9y
LCBSZW5kZXJPYmplY3QqIHBhaW50aW5nUm9vdEZvclJlbmRlcmVyKTsKSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDE0NDUxMikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE3IEBACisyMDEzLTAzLTAxICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4K
KworICAgICAgICBbTmV3IE11bHRpY29sdW1uXSBUcmFuc2Zvcm1lZCBvYmplY3RzIGluc2lkZSBm
cmFnbWVudGVkIHRyYW5zcGFyZW50IG9iamVjdHMgZG9uJ3QgcmVuZGVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTEyMjEuCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L211bHRpY29sL21peGVk
LW9wYWNpdHktZml4ZWQtdGVzdC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L211bHRpY29sL21peGVkLW9wYWNpdHktZml4ZWQtdGVzdC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L211bHRpY29sL21peGVkLW9wYWNpdHktdGVzdC1leHBlY3RlZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L211bHRpY29sL21peGVkLW9wYWNpdHktdGVzdC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L211bHRpY29sL3RyYW5zZm9ybS1pbnNpZGUtb3BhY2l0eS1leHBlY3Rl
ZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L211bHRpY29sL3RyYW5zZm9ybS1pbnNpZGUt
b3BhY2l0eS5odG1sOiBBZGRlZC4KKwogMjAxMy0wMy0wMSAgSmFtZXMgUm9iaW5zb24gIDxqYW1l
c3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gTWFyayBzb21lIHNvZnR3YXJl
IGNvbXBvc2l0aW5nIHRlc3RzIGFzIGZhaWxpbmcgYmVmb3JlIGxhbmRpbmcgYW50aS1hbGlhc2lu
ZyBjaGFuZ2VzCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL21peGVkLW9wYWNpdHkt
Zml4ZWQtdGVzdC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
bXVsdGljb2wvbWl4ZWQtb3BhY2l0eS1maXhlZC10ZXN0LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL21peGVkLW9wYWNpdHktZml4ZWQtdGVz
dC1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkgQEAKKzxkaXYgc3R5bGU9
InBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDo0MjBweDsgYm9yZGVyOjJweCBzb2xpZCBibGFjazsg
aGVpZ2h0OjIwMHB4Ij4KKzxkaXYgc3R5bGU9Im9wYWNpdHk6MC41O3Bvc2l0aW9uOnJlbGF0aXZl
Ij4KKzxkaXYgc3R5bGU9ImhlaWdodDoyMDBweDtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVuO3Bvc2l0
aW9uOmFic29sdXRlO3dpZHRoOjIwMHB4O2xlZnQ6MDt0b3A6MCI+PC9kaXY+Cis8ZGl2IHN0eWxl
PSJoZWlnaHQ6MjAwcHg7YmFja2dyb3VuZC1jb2xvcjpncmVlbjtwb3NpdGlvbjphYnNvbHV0ZTt3
aWR0aDoyMDBweDtyaWdodDowO3RvcDowIj48L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOmZp
eGVkO2hlaWdodDo5OHB4O3dpZHRoOjk4cHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7IGxl
ZnQ6MTcwcHg7IHRvcDoyMjBweDtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVuO2JvcmRlcjoxcHggc29s
aWQgbGltZSI+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvbXVsdGljb2wvbWl4ZWQtb3BhY2l0eS1maXhlZC10ZXN0Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9taXhlZC1vcGFjaXR5LWZpeGVkLXRlc3Qu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvbWl4ZWQtb3Bh
Y2l0eS1maXhlZC10ZXN0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTEgQEAKKzxzY3Jp
cHQ+CitpbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVnaW9uQmFzZWRDb2x1bW5zRW5hYmxlZCh0cnVl
KQorPC9zY3JpcHQ+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsgLXdlYmtpdC1jb2x1
bW4tY291bnQ6MjsgLXdlYmtpdC1jb2x1bW4td2lkdGg6MjAwcHg7IHdpZHRoOjQyMHB4OyAtd2Vi
a2l0LWNvbHVtbi1nYXA6MjBweDsgYm9yZGVyOjJweCBzb2xpZCBibGFjazsgaGVpZ2h0OjIwMHB4
Ij4KKzxkaXYgc3R5bGU9Im9wYWNpdHk6MC41Ij4KKzxkaXYgc3R5bGU9ImhlaWdodDo0MDBweDti
YWNrZ3JvdW5kLWNvbG9yOmdyZWVuIj48L2Rpdj4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOmZpeGVk
O2hlaWdodDo5OHB4O3dpZHRoOjk4cHg7YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7IGxlZnQ6
MTcwcHg7IHRvcDoyMjBweDtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVuO2JvcmRlcjoxcHggc29saWQg
bGltZSI+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvbXVsdGljb2wvbWl4ZWQtb3BhY2l0eS10ZXN0LWV4cGVjdGVkLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9taXhlZC1vcGFjaXR5LXRlc3QtZXhwZWN0
ZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvbWl4ZWQt
b3BhY2l0eS10ZXN0LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOSBAQAor
PGRpdiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjQyMHB4OyBib3JkZXI6MnB4IHNv
bGlkIGJsYWNrOyBoZWlnaHQ6MjAwcHgiPgorPGRpdiBzdHlsZT0ib3BhY2l0eTowLjU7cG9zaXRp
b246cmVsYXRpdmUiPgorPGRpdiBzdHlsZT0iaGVpZ2h0OjIwMHB4O2JhY2tncm91bmQtY29sb3I6
Z3JlZW47cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MjAwcHg7bGVmdDowO3RvcDowIj48L2Rpdj4K
KzxkaXYgc3R5bGU9ImhlaWdodDoyMDBweDtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVuO3Bvc2l0aW9u
OmFic29sdXRlO3dpZHRoOjIwMHB4O3JpZ2h0OjA7dG9wOjAiPjwvZGl2PgorPGRpdiBzdHlsZT0i
cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0Ojk4cHg7d2lkdGg6OThweDtiYWNrZ3JvdW5kLWNvbG9y
OmxpZ2h0Z3JheTsgbGVmdDoxNjBweDsgdG9wOjUwcHg7YmFja2dyb3VuZC1jb2xvcjpncmVlbjti
b3JkZXI6MXB4IHNvbGlkIGxpbWUiPgorPC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL21peGVkLW9wYWNpdHktdGVzdC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvbWl4ZWQtb3BhY2l0eS10ZXN0
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL21peGVkLW9w
YWNpdHktdGVzdC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDExIEBACis8c2NyaXB0Pgor
aW50ZXJuYWxzLnNldHRpbmdzLnNldFJlZ2lvbkJhc2VkQ29sdW1uc0VuYWJsZWQodHJ1ZSkKKzwv
c2NyaXB0PgorPGRpdiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IC13ZWJraXQtY29sdW1uLWNv
dW50OjI7IC13ZWJraXQtY29sdW1uLXdpZHRoOjIwMHB4OyB3aWR0aDo0MjBweDsgLXdlYmtpdC1j
b2x1bW4tZ2FwOjIwcHg7IGJvcmRlcjoycHggc29saWQgYmxhY2s7IGhlaWdodDoyMDBweCI+Cis8
ZGl2IHN0eWxlPSJvcGFjaXR5OjAuNSI+Cis8ZGl2IHN0eWxlPSJoZWlnaHQ6NDAwcHg7YmFja2dy
b3VuZC1jb2xvcjpncmVlbiI+PC9kaXY+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTto
ZWlnaHQ6OThweDt3aWR0aDo5OHB4O2JhY2tncm91bmQtY29sb3I6bGlnaHRncmF5OyBsZWZ0OjE2
MHB4OyB0b3A6NTBweDtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVuO2JvcmRlcjoxcHggc29saWQgbGlt
ZSI+Cis8L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cis8L2Rpdj4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvbXVsdGljb2wvdHJhbnNmb3JtLWluc2lkZS1vcGFjaXR5LWV4cGVjdGVkLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC90cmFuc2Zvcm0taW5zaWRlLW9wYWNp
dHktZXhwZWN0ZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbXVsdGlj
b2wvdHJhbnNmb3JtLWluc2lkZS1vcGFjaXR5LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNCBAQAorPGRpdiBzdHlsZT0icG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjQyMHB4
O2JvcmRlcjoycHggc29saWQgYmxhY2s7IGhlaWdodDoyMDBweCI+Cis8ZGl2IHN0eWxlPSJvcGFj
aXR5OjAuNTsgcG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MjAwcHg7aGVpZ2h0OjEwMHB4O2JhY2tn
cm91bmQtY29sb3I6Z3JlZW47cmlnaHQ6MDt0b3A6MCI+PC9kaXY+Cis8L2Rpdj4KKzwvZGl2PgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC90cmFuc2Zvcm0taW5zaWRlLW9wYWNpdHku
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL3RyYW5zZm9ybS1p
bnNpZGUtb3BhY2l0eS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9tdWx0
aWNvbC90cmFuc2Zvcm0taW5zaWRlLW9wYWNpdHkuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxNSBAQAorPGhlYWQ+Cis8c2NyaXB0PgoraW50ZXJuYWxzLnNldHRpbmdzLnNldFJlZ2lvbkJh
c2VkQ29sdW1uc0VuYWJsZWQodHJ1ZSkKKzwvc2NyaXB0PgorPHN0eWxlPgorLnRyYW5zZm9ybWVk
IHsgYmFja2dyb3VuZC1jb2xvcjpncmVlbiB9CisudHJhbnNmb3JtZWQ6aG92ZXIgeyBiYWNrZ3Jv
dW5kLWNvbG9yOm1hcm9vbiB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGRpdiBzdHlsZT0icG9zaXRp
b246cmVsYXRpdmU7IC13ZWJraXQtY29sdW1uLWNvdW50OjI7IC13ZWJraXQtY29sdW1uLXdpZHRo
OjIwMHB4OyB3aWR0aDo0MjBweDsgLXdlYmtpdC1jb2x1bW4tZ2FwOjIwcHg7IGJvcmRlcjoycHgg
c29saWQgYmxhY2s7IGhlaWdodDoyMDBweCI+Cis8ZGl2IHN0eWxlPSJoZWlnaHQ6MTAwcHgiPjwv
ZGl2PgorPGRpdiBzdHlsZT0ib3BhY2l0eTowLjUiPgorPGRpdiBjbGFzcz0idHJhbnNmb3JtZWQi
IHN0eWxlPSJmbG9hdDpsZWZ0O3dpZHRoOjIwMHB4O2hlaWdodDoxMDBweDstd2Via2l0LXRyYW5z
Zm9ybTp0cmFuc2xhdGUoMCwgMTAwcHgpIj48L2Rpdj4KKzwvZGl2PgorPC9kaXY+Cg==
</data>
<flag name="review"
          id="211939"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>