<?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>94534</bug_id>
          
          <creation_ts>2012-08-20 15:08:39 -0700</creation_ts>
          <short_desc>Add support for window.performance.memory.jsHeapSizeLimit on JSC</short_desc>
          <delta_ts>2014-08-13 04:27:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></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>
          
          <blocked>86636</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="George Staikos">staikos</reporter>
          <assigned_to name="George Staikos">staikos</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rakuco</cc>
    
    <cc>syoichi</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>700024</commentid>
    <comment_count>0</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-08-20 15:08:39 -0700</bug_when>
    <thetext>Patch coming up.  Relatively straightforward to plumb through, but one debate is whether this should factor in the max multiplier or the current multiplier.  I chose the latter and discussion with Yong Li comes to agreement that this is probably the right choice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700034</commentid>
    <comment_count>1</comment_count>
      <attachid>159531</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-08-20 15:16:17 -0700</bug_when>
    <thetext>Created attachment 159531
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700042</commentid>
    <comment_count>2</comment_count>
      <attachid>159531</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-08-20 15:20:58 -0700</bug_when>
    <thetext>Comment on attachment 159531
Patch

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

I buy the change, but fix the changelog.

&gt; Source/WebCore/ChangeLog:8
&gt; +        Additional information of the change such as approach, rationale. Please add per-function descriptions below (OOPS!).

You should write something here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700047</commentid>
    <comment_count>3</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-08-20 15:22:46 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 159531 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=159531&amp;action=review
&gt; 
&gt; I buy the change, but fix the changelog.
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        Additional information of the change such as approach, rationale. Please add per-function descriptions below (OOPS!).
&gt; 
&gt; You should write something here.

Whoops, I have a bad habit of forgetting to press save. :)  Thanks.  Fixing now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700056</commentid>
    <comment_count>4</comment_count>
      <attachid>159536</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-08-20 15:25:35 -0700</bug_when>
    <thetext>Created attachment 159536
Patch

Trying again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700065</commentid>
    <comment_count>5</comment_count>
      <attachid>159536</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-08-20 15:30:06 -0700</bug_when>
    <thetext>Comment on attachment 159536
Patch

On second thought, I don&apos;t buy that this is right.  This will give a pathological overestimation of the heap size.  Why not have the GC save the result of its maxSize() computation in a field in Heap or JSGlobalData or something and then fetch that?  That will be more accurate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700073</commentid>
    <comment_count>6</comment_count>
      <attachid>159540</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-08-20 15:34:54 -0700</bug_when>
    <thetext>Created attachment 159540
Patch

Somehow the MemoryInfo.idl change didn&apos;t apply.  Adding it back</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700075</commentid>
    <comment_count>7</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-08-20 15:36:50 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 159536 [details])
&gt; On second thought, I don&apos;t buy that this is right.  This will give a pathological overestimation of the heap size.  Why not have the GC save the result of its maxSize() computation in a field in Heap or JSGlobalData or something and then fetch that?  That will be more accurate.

That&apos;s totalJSHeapSize unless I misunderstand you.

        readonly attribute unsigned long totalJSHeapSize;
        readonly attribute unsigned long usedJSHeapSize;
        readonly attribute unsigned long jsHeapSizeLimit;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700077</commentid>
    <comment_count>8</comment_count>
      <attachid>159540</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-08-20 15:37:18 -0700</bug_when>
    <thetext>Comment on attachment 159540
Patch

See previous comment.  This will be more correct if you save the result of computing maxSize() during GC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700080</commentid>
    <comment_count>9</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-08-20 15:37:45 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; (From update of attachment 159536 [details] [details])
&gt; &gt; On second thought, I don&apos;t buy that this is right.  This will give a pathological overestimation of the heap size.  Why not have the GC save the result of its maxSize() computation in a field in Heap or JSGlobalData or something and then fetch that?  That will be more accurate.
&gt; 
&gt; That&apos;s totalJSHeapSize unless I misunderstand you.
&gt; 
&gt;         readonly attribute unsigned long totalJSHeapSize;
&gt;         readonly attribute unsigned long usedJSHeapSize;
&gt;         readonly attribute unsigned long jsHeapSizeLimit;

Oh, sorry, our wires crossed.  Let me look more carefully!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700081</commentid>
    <comment_count>10</comment_count>
      <attachid>159540</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-08-20 15:39:17 -0700</bug_when>
    <thetext>Comment on attachment 159540
Patch

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

&gt; Source/WebCore/bindings/js/ScriptGCEvent.cpp:51
&gt;      JSGlobalData* globalData = JSDOMWindow::commonJSGlobalData();
&gt;      info.totalJSHeapSize = globalData-&gt;heap.capacity();
&gt;      info.usedJSHeapSize = globalData-&gt;heap.size();
&gt; -    info.jsHeapSizeLimit = 0;
&gt; +    info.jsHeapSizeLimit = globalData-&gt;heap.maxSize();

Two issues:

1) When is this called?  My understanding is that this can be called at any time.

2) Even if this was only called during GC, you&apos;re doing a second walk over all blocks in the heap.  That&apos;s what m_objectSpace.size() does.  It would be *far better* if you had the GC save its result of computing maxSize() in a field and then grabbed that here.

One less walk over the heap and it&apos;s guaranteed to be correct no matter when it&apos;s called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700087</commentid>
    <comment_count>11</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-08-20 15:42:23 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Oh, sorry, our wires crossed.  Let me look more carefully!

Twice actually :)  No problem.  My only concern was whether I should factor in the 2x multiplier on the limit or not, but I think it&apos;s more useful as it is and the expanded limit can be more of a safety net.  Content that uses this value will hopefully be better behaved as a result.

(In reply to comment #10)
&gt; (From update of attachment 159540 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=159540&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/js/ScriptGCEvent.cpp:51
&gt; &gt;      JSGlobalData* globalData = JSDOMWindow::commonJSGlobalData();
&gt; &gt;      info.totalJSHeapSize = globalData-&gt;heap.capacity();
&gt; &gt;      info.usedJSHeapSize = globalData-&gt;heap.size();
&gt; &gt; -    info.jsHeapSizeLimit = 0;
&gt; &gt; +    info.jsHeapSizeLimit = globalData-&gt;heap.maxSize();
&gt; 
&gt; Two issues:
&gt; 
&gt; 1) When is this called?  My understanding is that this can be called at any time.
&gt; 
&gt; 2) Even if this was only called during GC, you&apos;re doing a second walk over all blocks in the heap.  That&apos;s what m_objectSpace.size() does.  It would be *far better* if you had the GC save its result of computing maxSize() in a field and then grabbed that here.
&gt; 
&gt; One less walk over the heap and it&apos;s guaranteed to be correct no matter when it&apos;s called.

    I could do that.  It can be called at any time.  I guess then I&apos;d have to call it at Heap creation time to initialize it too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700102</commentid>
    <comment_count>12</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-08-20 15:49:53 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; 2) Even if this was only called during GC, you&apos;re doing a second walk over all blocks in the heap.  That&apos;s what m_objectSpace.size() does.  It would be *far better* if you had the GC save its result of computing maxSize() in a field and then grabbed that here.
&gt; 
&gt; One less walk over the heap and it&apos;s guaranteed to be correct no matter when it&apos;s called.

Actually how do you want to handle this?  m_objectSpace.size() is only implicitly called by the new function.  The real problem seems to be ::size() which was already there.

I&apos;m not sure it really matters about the performance for this specific call that much since it should probably only be called once at startup by a web app anyway.  That said, fewer cycles = better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701900</commentid>
    <comment_count>13</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-08-22 07:55:14 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #10)
&gt; &gt; 2) Even if this was only called during GC, you&apos;re doing a second walk over all blocks in the heap.  That&apos;s what m_objectSpace.size() does.  It would be *far better* if you had the GC save its result of computing maxSize() in a field and then grabbed that here.
&gt; &gt; 
&gt; &gt; One less walk over the heap and it&apos;s guaranteed to be correct no matter when it&apos;s called.
&gt; 
&gt; Actually how do you want to handle this?  m_objectSpace.size() is only implicitly called by the new function.  The real problem seems to be ::size() which was already there.
&gt; 
&gt; I&apos;m not sure it really matters about the performance for this specific call that much since it should probably only be called once at startup by a web app anyway.  That said, fewer cycles = better.

Ping...  don&apos;t want to start writing patches until I understand what you&apos;re after.  I&apos;m also very hesitant to change the size() code given that it looks like it could cause a lot of subtle breakage if not done just right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711010</commentid>
    <comment_count>14</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-09-04 05:24:31 -0700</bug_when>
    <thetext>Need a response on this.  I don&apos;t see how reworking the class is related to this change.  It just moves one piece of code into a more accessible area so it can be called again.  if it&apos;s a problem, I think it&apos;s already a problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976956</commentid>
    <comment_count>15</comment_count>
      <attachid>159540</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-02-05 11:13:08 -0800</bug_when>
    <thetext>Comment on attachment 159540
Patch

Clearing review flag on patches from before 2014. If this patch is still relevant, please reset the r? flag.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159531</attachid>
            <date>2012-08-20 15:16:17 -0700</date>
            <delta_ts>2012-08-20 15:25:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>94525.patch</filename>
            <type>text/plain</type>
            <size>14616</size>
            <attacher name="George Staikos">staikos</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI2MDc3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDEyLTA4LTIwICBHZW9yZ2UgU3RhaWtvcyAgPHN0YWlrb3NAd2Via2l0Lm9yZz4KKworICAg
ICAgICBBZGQgc3VwcG9ydCBmb3Igd2luZG93LnBlcmZvcm1hbmNlLm1lbW9yeS5qc0hlYXBTaXpl
TGltaXQgb24gSlNDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NDUzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZhY3RvciBvdXQgdGhlIG1heFNpemUoKSBjYWxjdWxhdGlvbiBpbnRvIGEgZnVuY3Rpb24g
dGhhdCBjYW4gYmUgY2FsbGVkCisgICAgICAgIGZyb20gY29sbGVjdCgpIGFuZCBleHRlcm5hbGx5
LiAgRXhwb3J0IGl0LgorCisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6
SGVhcDo6bWF4U2l6ZSk6IENyZWF0ZWQuCisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpI
ZWFwOjpjb2xsZWN0KTogQ2FsbCBtYXhTaXplKCkuCisgICAgICAgICogaGVhcC9IZWFwLmg6CisK
IDIwMTItMDgtMTkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBU
aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gYWJzdHJhY3QgdmFsdWVzIGFuZCBzdHJ1Y3R1cmUgdHJh
bnNpdGlvbiB3YXRjaHBvaW50cyBzaG91bGQgYmUgcmF0aW9uYWxpemVkCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmNwcAkocmV2aXNpb24gMTI2MDU3KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxMSw2ICs2MTEsMTEg
QEAgc2l6ZV90IEhlYXA6OmNhcGFjaXR5KCkKICAgICByZXR1cm4gbV9vYmplY3RTcGFjZS5jYXBh
Y2l0eSgpICsgbV9zdG9yYWdlU3BhY2UuY2FwYWNpdHkoKTsKIH0KIAorc2l6ZV90IEhlYXA6Om1h
eFNpemUoKQoreworICAgIHJldHVybiBtYXgobWluSGVhcFNpemUobV9oZWFwVHlwZSwgbV9yYW1T
aXplKSwgcHJvcG9ydGlvbmFsSGVhcFNpemUoc2l6ZSgpLCBtX3JhbVNpemUpKTsKK30KKwogc2l6
ZV90IEhlYXA6OnByb3RlY3RlZEdsb2JhbE9iamVjdENvdW50KCkKIHsKICAgICByZXR1cm4gZm9y
RWFjaFByb3RlY3RlZENlbGw8Q291bnRJZkdsb2JhbE9iamVjdD4oKTsKQEAgLTc2MCw3ICs3NjUs
NyBAQCB2b2lkIEhlYXA6OmNvbGxlY3QoU3dlZXBUb2dnbGUgc3dlZXBUb2dnCiAgICAgICAgIC8v
IFRvIGF2b2lkIHBhdGhvbG9naWNhbCBHQyBjaHVybiBpbiB2ZXJ5IHNtYWxsIGFuZCB2ZXJ5IGxh
cmdlIGhlYXBzLCB3ZSBzZXQKICAgICAgICAgLy8gdGhlIG5ldyBhbGxvY2F0aW9uIGxpbWl0IGJh
c2VkIG9uIHRoZSBjdXJyZW50IHNpemUgb2YgdGhlIGhlYXAsIHdpdGggYQogICAgICAgICAvLyBm
aXhlZCBtaW5pbXVtLgotICAgICAgICBzaXplX3QgbWF4SGVhcFNpemUgPSBtYXgobWluSGVhcFNp
emUobV9oZWFwVHlwZSwgbV9yYW1TaXplKSwgcHJvcG9ydGlvbmFsSGVhcFNpemUoY3VycmVudEhl
YXBTaXplLCBtX3JhbVNpemUpKTsKKyAgICAgICAgc2l6ZV90IG1heEhlYXBTaXplID0gbWF4U2l6
ZSgpOwogICAgICAgICBtX2J5dGVzQWxsb2NhdGVkTGltaXQgPSBtYXhIZWFwU2l6ZSAtIGN1cnJl
bnRIZWFwU2l6ZTsKICAgICB9CiAgICAgbV9ieXRlc0FsbG9jYXRlZCA9IDA7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5oCShyZXZpc2lvbiAxMjYwNTcpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw2ICsxMzgsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBqZXR0aXNvbkRGR0NvZGVCbG9jayhQYXNzT3du
UHRyPENvZGVCbG9jaz4pOwogCiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHNpemVfdCBzaXpl
KCk7CisgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHNpemVfdCBtYXhTaXplKCk7CiAgICAgICAg
IEpTX0VYUE9SVF9QUklWQVRFIHNpemVfdCBjYXBhY2l0eSgpOwogICAgICAgICBKU19FWFBPUlRf
UFJJVkFURSBzaXplX3Qgb2JqZWN0Q291bnQoKTsKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
c2l6ZV90IGdsb2JhbE9iamVjdENvdW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjYw
NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyNSBAQAorMjAxMi0wOC0yMCAgR2VvcmdlIFN0YWlrb3MgIDxzdGFpa29zQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHdpbmRvdy5wZXJmb3JtYW5jZS5tZW1vcnkuanNI
ZWFwU2l6ZUxpbWl0IG9uIEpTQworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTQ1MzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9mIHRoZSBjaGFuZ2Ugc3VjaCBhcyBh
cHByb2FjaCwgcmF0aW9uYWxlLiBQbGVhc2UgYWRkIHBlci1mdW5jdGlvbiBkZXNjcmlwdGlvbnMg
YmVsb3cgKE9PUFMhKS4KKworICAgICAgICB3aW5kb3ctcGVyZm9ybWFuY2UgdGVzdCBhbHJlYWR5
IGNvdmVycyB0aGlzLCB0aG91Z2ggbm90IHdlbGwuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOiBSZW1vdmUgSlNNZW1vcnlJbmZvQ3VzdG9tLmNwcAorICAgICAgICAqIFRhcmdldC5w
cmk6IGRpdHRvCisgICAgICAgICogVXNlSlNDLmNtYWtlOiBkaXR0bworICAgICAgICAqIFdlYkNv
cmUuZ3lwaTogZGl0dG8KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajog
ZGl0dG8KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IGRpdHRv
CisgICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcDogZGl0dG8KKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU01lbW9yeUluZm9DdXN0b20uY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdEdDRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2NyaXB0R0NFdmVudDo6Z2V0SGVhcFNpemUpOiBDYWxsIEhlYXA6Om1heFNpemUoKQorCiAyMDEy
LTA4LTE2ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
W2Nocm9taXVtXSBDaGFuZ2UgV2ViTGF5ZXIgZnJvbSBhIGNvbmNyZXRlIHR5cGUgdG8gYSBwdXJl
IHZpcnR1YWwgaW50ZXJmYWNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHJl
dmlzaW9uIDEyNjA1NykKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0JKHdv
cmtpbmcgY29weSkKQEAgLTIyODYsNyArMjI4Niw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmggXAogCVNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVkaWFMaXN0Q3VzdG9tLmNwcCBcCi0JU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZW1vcnlJbmZvQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAgXApJbmRleDogU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCShyZXZpc2lvbiAxMjYwNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTYsNyArMTU2LDYgQEAgU09VUkNFUyArPSBcCiAgICAgIGJpbmRpbmdz
L2pzL0pTTG9jYXRpb25DdXN0b20uY3BwIFwKICAgICAgYmluZGluZ3MvanMvSlNNYWluVGhyZWFk
RXhlY1N0YXRlLmNwcCBcCiAgICAgIGJpbmRpbmdzL2pzL0pTTWVkaWFMaXN0Q3VzdG9tLmNwcCBc
Ci0gICAgIGJpbmRpbmdzL2pzL0pTTWVtb3J5SW5mb0N1c3RvbS5jcHAgXAogICAgICBiaW5kaW5n
cy9qcy9KU01lc3NhZ2VDaGFubmVsQ3VzdG9tLmNwcCBcCiAgICAgIGJpbmRpbmdzL2pzL0pTTWVz
c2FnZUV2ZW50Q3VzdG9tLmNwcCBcCiAgICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0
b20uY3BwIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UJKHJldmlzaW9uIDEyNjA1NykKKysrIFNvdXJj
ZS9XZWJDb3JlL1VzZUpTQy5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTA2LDcgKzEwNiw2IEBA
IExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTTG9jYXRpb25D
dXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmNwcAogICAg
IGJpbmRpbmdzL2pzL0pTTWVkaWFMaXN0Q3VzdG9tLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTTWVt
b3J5SW5mb0N1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ3VzdG9t
LmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcAogICAgIGJpbmRp
bmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZp
c2lvbiAxMjYwNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29w
eSkKQEAgLTIwNTMsNyArMjA1Myw2IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNYWlu
VGhyZWFkRXhlY1N0YXRlLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNYWluVGhy
ZWFkRXhlY1N0YXRlLmgnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVkaWFMaXN0Q3Vz
dG9tLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNZW1vcnlJbmZvQ3VzdG9tLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAnLApJbmRleDog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9u
IDEyNjA1NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC02ODY5NCw1OCArNjg2OTQsNiBAQAogCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGJpbmRpbmdzXGpzXEpTTWVtb3J5SW5mb0N1c3RvbS5jcHAiCi0JCQkJCT4KLQkJCQkJPEZpbGVD
b25maWd1cmF0aW9uCi0JCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKLQkJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgotCQkJCQkJPgotCQkJCQkJPFRvb2wKLQkJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgotCQkJCQkJLz4KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQkJPEZp
bGVDb25maWd1cmF0aW9uCi0JCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCi0JCQkJCQk+Ci0JCQkJCQk8VG9vbAotCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCi0JCQkJCQkvPgotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4z
MiIKLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQkJPgotCQkJCQkJPFRvb2wK
LQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkJLz4KLQkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCQlOYW1lPSJSZWxlYXNl
X0NhaXJvX0NGTGl0ZXxXaW4zMiIKLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJ
CQkJPgotCQkJCQkJPFRvb2wKLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkJ
Lz4KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uCi0J
CQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
LQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgotCQkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKLQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgotCQkJCQkJPgotCQkJCQkJPFRvb2wKLQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgotCQkJCQkJLz4KLQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8L0ZpbGU+
Ci0JCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU01lc3NhZ2VD
aGFubmVsQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDEyNjA1NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzcxOCw3ICszNzE4LDYgQEAKIAkJOUZB
MzdFRkIxMTcyRkRBNjAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUZBMzdFRjcxMTcyRkQ5MzAwQzRDRDU1
IC8qIEpTU2NyaXB0UHJvZmlsZS5oICovOyB9OwogCQk5RkEzN0VGQzExNzJGREE2MDBDNENENTUg
LyogSlNTY3JpcHRQcm9maWxlTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5RkEzN0VGODExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9m
aWxlTm9kZS5jcHAgKi87IH07CiAJCTlGQTM3RUZEMTE3MkZEQTYwMEM0Q0Q1NSAvKiBKU1Njcmlw
dFByb2ZpbGVOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5RkEzN0VGOTExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlTm9kZS5oICov
OyB9OwotCQk5RkRDOEZGMjEyRkFCMDA2MDA5OUFCMUMgLyogSlNNZW1vcnlJbmZvQ3VzdG9tLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGREM4RkYx
MTJGQUIwMDYwMDk5QUIxQyAvKiBKU01lbW9yeUluZm9DdXN0b20uY3BwICovOyB9OwogCQk5RkZF
M0U3QTExQjU5QzVEMDAzNzg3NEUgLyogTWVtb3J5SW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RkZFM0U3ODExQjU5QzVEMDAzNzg3NEUgLyog
TWVtb3J5SW5mby5jcHAgKi87IH07CiAJCTlGRkUzRTdCMTFCNTlDNUQwMDM3ODc0RSAvKiBNZW1v
cnlJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
RkZFM0U3OTExQjU5QzVEMDAzNzg3NEUgLyogTWVtb3J5SW5mby5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlGRkUzRUE1MTFCNUE0MzkwMDM3ODc0
RSAvKiBKU01lbW9yeUluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOUZGRTNFQTMxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5jcHAg
Ki87IH07CkBAIC0xMDkwNiw3ICsxMDkwNSw2IEBACiAJCTlGQTM3RUY3MTE3MkZEOTMwMEM0Q0Q1
NSAvKiBKU1NjcmlwdFByb2ZpbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNTY3JpcHRQcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGQTM3RUY4
MTE3MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGVOb2RlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTU2NyaXB0UHJvZmlsZU5vZGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5RkEzN0VGOTExNzJGRDkzMDBDNENENTUgLyogSlNTY3Jp
cHRQcm9maWxlTm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Njcmlw
dFByb2ZpbGVOb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTlGREM4RkYxMTJG
QUIwMDYwMDk5QUIxQyAvKiBKU01lbW9yeUluZm9DdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNNZW1vcnlJbmZvQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOUZGRTNFNzgxMUI1OUM1RDAwMzc4NzRFIC8qIE1lbW9yeUluZm8u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVtb3J5SW5mby5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGRkUzRTc5MTFCNTlDNUQwMDM3ODc0RSAv
KiBNZW1vcnlJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeUlu
Zm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUZGRTNFN0MxMUI1OUM2RTAwMzc4
NzRFIC8qIE1lbW9yeUluZm8uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lbW9yeUluZm8u
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjAzMDUsNyArMjAzMDMsNiBAQAog
CQkJCTFDNUZBRUU2MERDRkRBNjgwMEQ1OEY3OCAvKiBKU0phdmFTY3JpcHRDYWxsRnJhbWVDdXN0
b20uY3BwICovLAogCQkJCUJDRTFDNDNGMEQ5ODMwRjQwMDNCMDJGMiAvKiBKU0xvY2F0aW9uQ3Vz
dG9tLmNwcCAqLywKIAkJCQkxNDY0RTA2QjEzNUVDMTA2MDBGREIwMEEgLyogSlNNZWRpYUxpc3RD
dXN0b20uY3BwICovLAotCQkJCTlGREM4RkYxMTJGQUIwMDYwMDk5QUIxQyAvKiBKU01lbW9yeUlu
Zm9DdXN0b20uY3BwICovLAogCQkJCUUxQTVGOTlBMEU3RUFBMjUwMEFGODVFQSAvKiBKU01lc3Nh
Z2VDaGFubmVsQ3VzdG9tLmNwcCAqLywKIAkJCQk0MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyog
SlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovLAogCQkJCUUxQURFRDQ2MEU3NkI4REQwMDRBMUE1
RSAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCAqLywKQEAgLTI3MTkxLDcgKzI3MTg4LDYgQEAK
IAkJCQlEM0E5NEE0NjEyMkRDNDBGMDBBMzdCQkMgLyogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlGREJENDgwQzE1OUJDNjg3MDA5M0VCNEYgLyogSlNNZWRpYVN0cmVh
bUF1ZGlvU291cmNlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5RkZFM0VBNTExQjVBNDM5
MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTlGREM4RkYy
MTJGQUIwMDYwMDk5QUIxQyAvKiBKU01lbW9yeUluZm9DdXN0b20uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTEwNzQwMEQwRTc3QkRDMDAwMzNBRjI0IC8qIEpTTWVzc2FnZUNoYW5uZWwuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRTFBNUY5OUIwRTdFQUEyNTAwQUY4NUVBIC8qIEpTTWVzc2FnZUNo
YW5uZWxDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU3OTNFQzgwRDBDRTcyRDAwN0ZD
MEFDIC8qIEpTTWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCShyZXZpc2lv
biAxMjYwNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5P
bmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsNyArMTExLDYgQEAKICNpbmNsdWRlICJKU0xv
Y2F0aW9uQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuY3BwIgog
I2luY2x1ZGUgIkpTTWVkaWFMaXN0Q3VzdG9tLmNwcCIKLSNpbmNsdWRlICJKU01lbW9yeUluZm9D
dXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwIgogI2luY2x1
ZGUgIkpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU01lc3NhZ2VQb3J0Q3Vz
dG9tLmNwcCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVtb3J5SW5mb0N1
c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZW1v
cnlJbmZvQ3VzdG9tLmNwcAkocmV2aXNpb24gMTI2MDU3KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNNZW1vcnlJbmZvQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw0NCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0g
KgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiSlNNZW1vcnlJbmZvLmgiCi0K
LXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotSlNWYWx1ZSBK
U01lbW9yeUluZm86OmpzSGVhcFNpemVMaW1pdChFeGVjU3RhdGUqKSBjb25zdAotewotICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRHQ0V2ZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRHQ0V2ZW50LmNwcAkocmV2aXNpb24g
MTI2MDU3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0R0NFdmVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgdm9pZCBTY3JpcHRHQ0V2ZW50OjpnZXRI
ZWFwU2l6ZShIZWFwSW5mbwogICAgIEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSA9IEpTRE9NV2lu
ZG93Ojpjb21tb25KU0dsb2JhbERhdGEoKTsKICAgICBpbmZvLnRvdGFsSlNIZWFwU2l6ZSA9IGds
b2JhbERhdGEtPmhlYXAuY2FwYWNpdHkoKTsKICAgICBpbmZvLnVzZWRKU0hlYXBTaXplID0gZ2xv
YmFsRGF0YS0+aGVhcC5zaXplKCk7Ci0gICAgaW5mby5qc0hlYXBTaXplTGltaXQgPSAwOworICAg
IGluZm8uanNIZWFwU2l6ZUxpbWl0ID0gZ2xvYmFsRGF0YS0+aGVhcC5tYXhTaXplKCk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="review"
          id="169879"
          type_id="1"
          status="-"
          setter="fpizlo"
    />
    <flag name="commit-queue"
          id="169880"
          type_id="3"
          status="-"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159536</attachid>
            <date>2012-08-20 15:25:35 -0700</date>
            <delta_ts>2012-08-20 15:34:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>94525.patch</filename>
            <type>text/plain</type>
            <size>14629</size>
            <attacher name="George Staikos">staikos</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI2MDc3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDEyLTA4LTIwICBHZW9yZ2UgU3RhaWtvcyAgPHN0YWlrb3NAd2Via2l0Lm9yZz4KKworICAg
ICAgICBBZGQgc3VwcG9ydCBmb3Igd2luZG93LnBlcmZvcm1hbmNlLm1lbW9yeS5qc0hlYXBTaXpl
TGltaXQgb24gSlNDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NDUzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZhY3RvciBvdXQgdGhlIG1heFNpemUoKSBjYWxjdWxhdGlvbiBpbnRvIGEgZnVuY3Rpb24g
dGhhdCBjYW4gYmUgY2FsbGVkCisgICAgICAgIGZyb20gY29sbGVjdCgpIGFuZCBleHRlcm5hbGx5
LiAgRXhwb3J0IGl0LgorCisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6
SGVhcDo6bWF4U2l6ZSk6IENyZWF0ZWQuCisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpI
ZWFwOjpjb2xsZWN0KTogQ2FsbCBtYXhTaXplKCkuCisgICAgICAgICogaGVhcC9IZWFwLmg6CisK
IDIwMTItMDgtMTkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBU
aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gYWJzdHJhY3QgdmFsdWVzIGFuZCBzdHJ1Y3R1cmUgdHJh
bnNpdGlvbiB3YXRjaHBvaW50cyBzaG91bGQgYmUgcmF0aW9uYWxpemVkCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmNwcAkocmV2aXNpb24gMTI2MDU3KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxMSw2ICs2MTEsMTEg
QEAgc2l6ZV90IEhlYXA6OmNhcGFjaXR5KCkKICAgICByZXR1cm4gbV9vYmplY3RTcGFjZS5jYXBh
Y2l0eSgpICsgbV9zdG9yYWdlU3BhY2UuY2FwYWNpdHkoKTsKIH0KIAorc2l6ZV90IEhlYXA6Om1h
eFNpemUoKQoreworICAgIHJldHVybiBtYXgobWluSGVhcFNpemUobV9oZWFwVHlwZSwgbV9yYW1T
aXplKSwgcHJvcG9ydGlvbmFsSGVhcFNpemUoc2l6ZSgpLCBtX3JhbVNpemUpKTsKK30KKwogc2l6
ZV90IEhlYXA6OnByb3RlY3RlZEdsb2JhbE9iamVjdENvdW50KCkKIHsKICAgICByZXR1cm4gZm9y
RWFjaFByb3RlY3RlZENlbGw8Q291bnRJZkdsb2JhbE9iamVjdD4oKTsKQEAgLTc2MCw3ICs3NjUs
NyBAQCB2b2lkIEhlYXA6OmNvbGxlY3QoU3dlZXBUb2dnbGUgc3dlZXBUb2dnCiAgICAgICAgIC8v
IFRvIGF2b2lkIHBhdGhvbG9naWNhbCBHQyBjaHVybiBpbiB2ZXJ5IHNtYWxsIGFuZCB2ZXJ5IGxh
cmdlIGhlYXBzLCB3ZSBzZXQKICAgICAgICAgLy8gdGhlIG5ldyBhbGxvY2F0aW9uIGxpbWl0IGJh
c2VkIG9uIHRoZSBjdXJyZW50IHNpemUgb2YgdGhlIGhlYXAsIHdpdGggYQogICAgICAgICAvLyBm
aXhlZCBtaW5pbXVtLgotICAgICAgICBzaXplX3QgbWF4SGVhcFNpemUgPSBtYXgobWluSGVhcFNp
emUobV9oZWFwVHlwZSwgbV9yYW1TaXplKSwgcHJvcG9ydGlvbmFsSGVhcFNpemUoY3VycmVudEhl
YXBTaXplLCBtX3JhbVNpemUpKTsKKyAgICAgICAgc2l6ZV90IG1heEhlYXBTaXplID0gbWF4U2l6
ZSgpOwogICAgICAgICBtX2J5dGVzQWxsb2NhdGVkTGltaXQgPSBtYXhIZWFwU2l6ZSAtIGN1cnJl
bnRIZWFwU2l6ZTsKICAgICB9CiAgICAgbV9ieXRlc0FsbG9jYXRlZCA9IDA7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5oCShyZXZpc2lvbiAxMjYwNTcpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw2ICsxMzgsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBqZXR0aXNvbkRGR0NvZGVCbG9jayhQYXNzT3du
UHRyPENvZGVCbG9jaz4pOwogCiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHNpemVfdCBzaXpl
KCk7CisgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHNpemVfdCBtYXhTaXplKCk7CiAgICAgICAg
IEpTX0VYUE9SVF9QUklWQVRFIHNpemVfdCBjYXBhY2l0eSgpOwogICAgICAgICBKU19FWFBPUlRf
UFJJVkFURSBzaXplX3Qgb2JqZWN0Q291bnQoKTsKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
c2l6ZV90IGdsb2JhbE9iamVjdENvdW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjYw
NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyNiBAQAorMjAxMi0wOC0yMCAgR2VvcmdlIFN0YWlrb3MgIDxzdGFpa29zQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHdpbmRvdy5wZXJmb3JtYW5jZS5tZW1vcnkuanNI
ZWFwU2l6ZUxpbWl0IG9uIEpTQworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTQ1MzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBqc0hlYXBTaXplTGltaXQgd2FzIHByZXZpb3VzbHkgdW5pbXBsZW1lbnRlZCBv
biBKU0MuICBQbHVtYiB0aGUgZGF0YQorICAgICAgICB0aHJvdWdoIGZyb20gSlNDIEhlYXAgYW5k
IHJlbW92ZSB0aGUgY3VzdG9tIGJpbmRpbmcuCisKKyAgICAgICAgd2luZG93LXBlcmZvcm1hbmNl
IHRlc3QgYWxyZWFkeSBjb3ZlcnMgdGhpcywgdGhvdWdoIG5vdCB3ZWxsLgorCisgICAgICAgICog
R05VbWFrZWZpbGUubGlzdC5hbTogUmVtb3ZlIEpTTWVtb3J5SW5mb0N1c3RvbS5jcHAKKyAgICAg
ICAgKiBUYXJnZXQucHJpOiBkaXR0bworICAgICAgICAqIFVzZUpTQy5jbWFrZTogZGl0dG8KKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6IGRpdHRvCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2o6IGRpdHRvCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOiBkaXR0bworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5j
cHA6IGRpdHRvCisgICAgICAgICogYmluZGluZ3MvanMvSlNNZW1vcnlJbmZvQ3VzdG9tLmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRHQ0V2ZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdEdDRXZlbnQ6OmdldEhlYXBTaXplKTogQ2FsbCBIZWFwOjptYXhT
aXplKCkKKwogMjAxMi0wOC0xNiAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtjaHJvbWl1bV0gQ2hhbmdlIFdlYkxheWVyIGZyb20gYSBjb25jcmV0ZSB0
eXBlIHRvIGEgcHVyZSB2aXJ0dWFsIGludGVyZmFjZQpJbmRleDogU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCShyZXZpc2lvbiAxMjYwNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0yMjg2LDcgKzIyODYsNiBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNT
dGF0ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNT
dGF0ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lZGlhTGlzdEN1c3RvbS5j
cHAgXAotCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVtb3J5SW5mb0N1c3RvbS5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwIFwK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQkocmV2aXNpb24gMTI2MDU3KQorKysgU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQkod29ya2luZyBjb3B5KQpAQCAtMTU2LDcgKzE1Niw2IEBAIFNPVVJDRVMgKz0gXAog
ICAgICBiaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcCBcCiAgICAgIGJpbmRpbmdzL2pz
L0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5jcHAgXAogICAgICBiaW5kaW5ncy9qcy9KU01lZGlhTGlz
dEN1c3RvbS5jcHAgXAotICAgICBiaW5kaW5ncy9qcy9KU01lbW9yeUluZm9DdXN0b20uY3BwIFwK
ICAgICAgYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAgXAogICAgICBiaW5k
aW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgXAogICAgICBiaW5kaW5ncy9qcy9KU01l
c3NhZ2VQb3J0Q3VzdG9tLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCShyZXZpc2lvbiAxMjYw
NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTEw
Niw3ICsxMDYsNiBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9q
cy9KU0xvY2F0aW9uQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNT
dGF0ZS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU01lZGlhTGlzdEN1c3RvbS5jcHAKLSAgICBiaW5k
aW5ncy9qcy9KU01lbW9yeUluZm9DdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNNZXNzYWdl
Q2hhbm5lbEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5j
cHAKICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcApJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQkocmV2aXNpb24gMTI2MDU3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CSh3b3JraW5nIGNvcHkpCkBAIC0yMDUzLDcgKzIwNTMsNiBAQAogICAgICAgICAgICAgJ2JpbmRp
bmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9K
U01lZGlhTGlzdEN1c3RvbS5jcHAnLAotICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVtb3J5
SW5mb0N1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5u
ZWxDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1
c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20u
Y3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCShyZXZpc2lvbiAxMjYwNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtNjg2OTQsNTggKzY4Njk0LDYgQEAKIAkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU01lbW9yeUluZm9DdXN0b20uY3BwIgotCQkJCQk+
Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCi0JCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIK
LQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQkJPgotCQkJCQkJPFRvb2wKLQkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkJLz4KLQkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCQlOYW1lPSJEZWJ1Z19DYWly
b19DRkxpdGV8V2luMzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4K
LQkJCQkJCTxUb29sCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0J
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJ
TmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKLQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCi0JCQkJCQk+Ci0JCQkJCQk8VG9vbAotCQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCi0JCQkJCQkvPgotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KLQkJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3Nc
anNcSlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1
cmF0aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMjYwNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM3MTgsNyArMzcx
OCw2IEBACiAJCTlGQTM3RUZCMTE3MkZEQTYwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGQTM3RUY3MTE3
MkZEOTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuaCAqLzsgfTsKIAkJOUZBMzdFRkMxMTcy
RkRBNjAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUZBMzdFRjgxMTcyRkQ5MzAwQzRDRDU1IC8q
IEpTU2NyaXB0UHJvZmlsZU5vZGUuY3BwICovOyB9OwogCQk5RkEzN0VGRDExNzJGREE2MDBDNENE
NTUgLyogSlNTY3JpcHRQcm9maWxlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUZBMzdFRjkxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJv
ZmlsZU5vZGUuaCAqLzsgfTsKLQkJOUZEQzhGRjIxMkZBQjAwNjAwOTlBQjFDIC8qIEpTTWVtb3J5
SW5mb0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5RkRDOEZGMTEyRkFCMDA2MDA5OUFCMUMgLyogSlNNZW1vcnlJbmZvQ3VzdG9tLmNwcCAq
LzsgfTsKIAkJOUZGRTNFN0ExMUI1OUM1RDAwMzc4NzRFIC8qIE1lbW9yeUluZm8uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUZGRTNFNzgxMUI1OUM1
RDAwMzc4NzRFIC8qIE1lbW9yeUluZm8uY3BwICovOyB9OwogCQk5RkZFM0U3QjExQjU5QzVEMDAz
Nzg3NEUgLyogTWVtb3J5SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOUZGRTNFNzkxMUI1OUM1RDAwMzc4NzRFIC8qIE1lbW9yeUluZm8uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5RkZFM0VBNTEx
QjVBNDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGRkUzRUEzMTFCNUE0MzkwMDM3ODc0RSAvKiBKU01l
bW9yeUluZm8uY3BwICovOyB9OwpAQCAtMTA5MDYsNyArMTA5MDUsNiBAQAogCQk5RkEzN0VGNzEx
NzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTU2NyaXB0UHJvZmlsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5RkEzN0VGODExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlTm9kZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NjcmlwdFByb2ZpbGVOb2Rl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUZBMzdFRjkxMTcyRkQ5MzAwQzRD
RDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNTY3JpcHRQcm9maWxlTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk5RkRDOEZGMTEyRkFCMDA2MDA5OUFCMUMgLyogSlNNZW1vcnlJbmZvQ3VzdG9tLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVtb3J5SW5mb0N1c3RvbS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGRkUzRTc4MTFCNTlDNUQwMDM3ODc0RSAv
KiBNZW1vcnlJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1l
bW9yeUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RkZFM0U3OTExQjU5
QzVEMDAzNzg3NEUgLyogTWVtb3J5SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNZW1vcnlJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGRkUzRTdD
MTFCNTlDNkUwMDM3ODc0RSAvKiBNZW1vcnlJbmZvLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBNZW1vcnlJbmZvLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwMzA1LDcg
KzIwMzAzLDYgQEAKIAkJCQkxQzVGQUVFNjBEQ0ZEQTY4MDBENThGNzggLyogSlNKYXZhU2NyaXB0
Q2FsbEZyYW1lQ3VzdG9tLmNwcCAqLywKIAkJCQlCQ0UxQzQzRjBEOTgzMEY0MDAzQjAyRjIgLyog
SlNMb2NhdGlvbkN1c3RvbS5jcHAgKi8sCiAJCQkJMTQ2NEUwNkIxMzVFQzEwNjAwRkRCMDBBIC8q
IEpTTWVkaWFMaXN0Q3VzdG9tLmNwcCAqLywKLQkJCQk5RkRDOEZGMTEyRkFCMDA2MDA5OUFCMUMg
LyogSlNNZW1vcnlJbmZvQ3VzdG9tLmNwcCAqLywKIAkJCQlFMUE1Rjk5QTBFN0VBQTI1MDBBRjg1
RUEgLyogSlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAgKi8sCiAJCQkJNDEwQjdFNzExMDQ1RkFC
MDAwRDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlFMUFERUQ0NjBF
NzZCOEREMDA0QTFBNUUgLyogSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAgKi8sCkBAIC0yNzE5MSw3
ICsyNzE4OCw2IEBACiAJCQkJRDNBOTRBNDYxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVy
eUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRCRDQ4MEMxNTlCQzY4NzAwOTNFQjRGIC8q
IEpTTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOUZG
RTNFQTUxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQk5RkRDOEZGMjEyRkFCMDA2MDA5OUFCMUMgLyogSlNNZW1vcnlJbmZvQ3VzdG9tLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUUxMDc0MDBEMEU3N0JEQzAwMDMzQUYyNCAvKiBKU01lc3NhZ2VD
aGFubmVsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQTVGOTlCMEU3RUFBMjUwMEFGODVFQSAv
KiBKU01lc3NhZ2VDaGFubmVsQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc1NzkzRUM4
MEQwQ0U3MkQwMDdGQzBBQyAvKiBKU01lc3NhZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25l
LmNwcAkocmV2aXNpb24gMTI2MDU3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNC
aW5kaW5nc0FsbEluT25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTExLDcgKzExMSw2IEBACiAj
aW5jbHVkZSAiSlNMb2NhdGlvbkN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhl
Y1N0YXRlLmNwcCIKICNpbmNsdWRlICJKU01lZGlhTGlzdEN1c3RvbS5jcHAiCi0jaW5jbHVkZSAi
SlNNZW1vcnlJbmZvQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU01lc3NhZ2VDaGFubmVsQ3VzdG9t
LmNwcCIKICNpbmNsdWRlICJKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNN
ZXNzYWdlUG9ydEN1c3RvbS5jcHAiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U01lbW9yeUluZm9DdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTWVtb3J5SW5mb0N1c3RvbS5jcHAJKHJldmlzaW9uIDEyNjA1NykKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVtb3J5SW5mb0N1c3RvbS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0g
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIkpTTWVt
b3J5SW5mby5oIgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLUpTVmFsdWUgSlNNZW1vcnlJbmZvOjpqc0hlYXBTaXplTGltaXQoRXhlY1N0YXRlKikgY29u
c3QKLXsKLSAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0R0NFdmVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0R0NFdmVudC5j
cHAJKHJldmlzaW9uIDEyNjA1NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dEdDRXZlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBAIHZvaWQgU2NyaXB0
R0NFdmVudDo6Z2V0SGVhcFNpemUoSGVhcEluZm8KICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERh
dGEgPSBKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCk7CiAgICAgaW5mby50b3RhbEpT
SGVhcFNpemUgPSBnbG9iYWxEYXRhLT5oZWFwLmNhcGFjaXR5KCk7CiAgICAgaW5mby51c2VkSlNI
ZWFwU2l6ZSA9IGdsb2JhbERhdGEtPmhlYXAuc2l6ZSgpOwotICAgIGluZm8uanNIZWFwU2l6ZUxp
bWl0ID0gMDsKKyAgICBpbmZvLmpzSGVhcFNpemVMaW1pdCA9IGdsb2JhbERhdGEtPmhlYXAubWF4
U2l6ZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>
<flag name="review"
          id="169883"
          type_id="1"
          status="-"
          setter="staikos"
    />
    <flag name="commit-queue"
          id="169884"
          type_id="3"
          status="-"
          setter="staikos"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159540</attachid>
            <date>2012-08-20 15:34:54 -0700</date>
            <delta_ts>2014-02-05 11:13:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>94525.patch</filename>
            <type>text/plain</type>
            <size>15188</size>
            <attacher name="George Staikos">staikos</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTI2MDc3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDEyLTA4LTIwICBHZW9yZ2UgU3RhaWtvcyAgPHN0YWlrb3NAd2Via2l0Lm9yZz4KKworICAg
ICAgICBBZGQgc3VwcG9ydCBmb3Igd2luZG93LnBlcmZvcm1hbmNlLm1lbW9yeS5qc0hlYXBTaXpl
TGltaXQgb24gSlNDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NDUzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZhY3RvciBvdXQgdGhlIG1heFNpemUoKSBjYWxjdWxhdGlvbiBpbnRvIGEgZnVuY3Rpb24g
dGhhdCBjYW4gYmUgY2FsbGVkCisgICAgICAgIGZyb20gY29sbGVjdCgpIGFuZCBleHRlcm5hbGx5
LiAgRXhwb3J0IGl0LgorCisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6
SGVhcDo6bWF4U2l6ZSk6IENyZWF0ZWQuCisgICAgICAgIChKU0MpOgorICAgICAgICAoSlNDOjpI
ZWFwOjpjb2xsZWN0KTogQ2FsbCBtYXhTaXplKCkuCisgICAgICAgICogaGVhcC9IZWFwLmg6CisK
IDIwMTItMDgtMTkgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBU
aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gYWJzdHJhY3QgdmFsdWVzIGFuZCBzdHJ1Y3R1cmUgdHJh
bnNpdGlvbiB3YXRjaHBvaW50cyBzaG91bGQgYmUgcmF0aW9uYWxpemVkCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmNwcAkocmV2aXNpb24gMTI2MDU3KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxMSw2ICs2MTEsMTEg
QEAgc2l6ZV90IEhlYXA6OmNhcGFjaXR5KCkKICAgICByZXR1cm4gbV9vYmplY3RTcGFjZS5jYXBh
Y2l0eSgpICsgbV9zdG9yYWdlU3BhY2UuY2FwYWNpdHkoKTsKIH0KIAorc2l6ZV90IEhlYXA6Om1h
eFNpemUoKQoreworICAgIHJldHVybiBtYXgobWluSGVhcFNpemUobV9oZWFwVHlwZSwgbV9yYW1T
aXplKSwgcHJvcG9ydGlvbmFsSGVhcFNpemUoc2l6ZSgpLCBtX3JhbVNpemUpKTsKK30KKwogc2l6
ZV90IEhlYXA6OnByb3RlY3RlZEdsb2JhbE9iamVjdENvdW50KCkKIHsKICAgICByZXR1cm4gZm9y
RWFjaFByb3RlY3RlZENlbGw8Q291bnRJZkdsb2JhbE9iamVjdD4oKTsKQEAgLTc2MCw3ICs3NjUs
NyBAQCB2b2lkIEhlYXA6OmNvbGxlY3QoU3dlZXBUb2dnbGUgc3dlZXBUb2dnCiAgICAgICAgIC8v
IFRvIGF2b2lkIHBhdGhvbG9naWNhbCBHQyBjaHVybiBpbiB2ZXJ5IHNtYWxsIGFuZCB2ZXJ5IGxh
cmdlIGhlYXBzLCB3ZSBzZXQKICAgICAgICAgLy8gdGhlIG5ldyBhbGxvY2F0aW9uIGxpbWl0IGJh
c2VkIG9uIHRoZSBjdXJyZW50IHNpemUgb2YgdGhlIGhlYXAsIHdpdGggYQogICAgICAgICAvLyBm
aXhlZCBtaW5pbXVtLgotICAgICAgICBzaXplX3QgbWF4SGVhcFNpemUgPSBtYXgobWluSGVhcFNp
emUobV9oZWFwVHlwZSwgbV9yYW1TaXplKSwgcHJvcG9ydGlvbmFsSGVhcFNpemUoY3VycmVudEhl
YXBTaXplLCBtX3JhbVNpemUpKTsKKyAgICAgICAgc2l6ZV90IG1heEhlYXBTaXplID0gbWF4U2l6
ZSgpOwogICAgICAgICBtX2J5dGVzQWxsb2NhdGVkTGltaXQgPSBtYXhIZWFwU2l6ZSAtIGN1cnJl
bnRIZWFwU2l6ZTsKICAgICB9CiAgICAgbV9ieXRlc0FsbG9jYXRlZCA9IDA7CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSGVhcC5oCShyZXZpc2lvbiAxMjYwNTcpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9IZWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzOCw2ICsxMzgsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBqZXR0aXNvbkRGR0NvZGVCbG9jayhQYXNzT3du
UHRyPENvZGVCbG9jaz4pOwogCiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHNpemVfdCBzaXpl
KCk7CisgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHNpemVfdCBtYXhTaXplKCk7CiAgICAgICAg
IEpTX0VYUE9SVF9QUklWQVRFIHNpemVfdCBjYXBhY2l0eSgpOwogICAgICAgICBKU19FWFBPUlRf
UFJJVkFURSBzaXplX3Qgb2JqZWN0Q291bnQoKTsKICAgICAgICAgSlNfRVhQT1JUX1BSSVZBVEUg
c2l6ZV90IGdsb2JhbE9iamVjdENvdW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjYw
NzcpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwyNyBAQAorMjAxMi0wOC0yMCAgR2VvcmdlIFN0YWlrb3MgIDxzdGFpa29zQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHdpbmRvdy5wZXJmb3JtYW5jZS5tZW1vcnkuanNI
ZWFwU2l6ZUxpbWl0IG9uIEpTQworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTQ1MzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBqc0hlYXBTaXplTGltaXQgd2FzIHByZXZpb3VzbHkgdW5pbXBsZW1lbnRlZCBv
biBKU0MuICBQbHVtYiB0aGUgZGF0YQorICAgICAgICB0aHJvdWdoIGZyb20gSlNDIEhlYXAgYW5k
IHJlbW92ZSB0aGUgY3VzdG9tIGJpbmRpbmcuCisKKyAgICAgICAgd2luZG93LXBlcmZvcm1hbmNl
IHRlc3QgYWxyZWFkeSBjb3ZlcnMgdGhpcywgdGhvdWdoIG5vdCB3ZWxsLgorCisgICAgICAgICog
R05VbWFrZWZpbGUubGlzdC5hbTogUmVtb3ZlIEpTTWVtb3J5SW5mb0N1c3RvbS5jcHAKKyAgICAg
ICAgKiBUYXJnZXQucHJpOiBkaXR0bworICAgICAgICAqIFVzZUpTQy5jbWFrZTogZGl0dG8KKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6IGRpdHRvCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2o6IGRpdHRvCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOiBkaXR0bworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5j
cHA6IGRpdHRvCisgICAgICAgICogYmluZGluZ3MvanMvSlNNZW1vcnlJbmZvQ3VzdG9tLmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHRHQ0V2ZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdEdDRXZlbnQ6OmdldEhlYXBTaXplKTogQ2FsbCBIZWFwOjptYXhT
aXplKCkKKyAgICAgICAgKiBwYWdlL01lbW9yeUluZm8uaWRsOiBEZS1jdXN0b20gdGhlIGJpbmRp
bmcKKwogMjAxMi0wOC0xNiAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFtjaHJvbWl1bV0gQ2hhbmdlIFdlYkxheWVyIGZyb20gYSBjb25jcmV0ZSB0eXBl
IHRvIGEgcHVyZSB2aXJ0dWFsIGludGVyZmFjZQpJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCShyZXZpc2lvbiAxMjYwNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0yMjg2LDcgKzIyODYsNiBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0
ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0
ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lZGlhTGlzdEN1c3RvbS5jcHAg
XAotCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVtb3J5SW5mb0N1c3RvbS5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwIFwKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQkocmV2aXNpb24gMTI2MDU3KQorKysgU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQkod29ya2luZyBjb3B5KQpAQCAtMTU2LDcgKzE1Niw2IEBAIFNPVVJDRVMgKz0gXAogICAg
ICBiaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcCBcCiAgICAgIGJpbmRpbmdzL2pzL0pT
TWFpblRocmVhZEV4ZWNTdGF0ZS5jcHAgXAogICAgICBiaW5kaW5ncy9qcy9KU01lZGlhTGlzdEN1
c3RvbS5jcHAgXAotICAgICBiaW5kaW5ncy9qcy9KU01lbW9yeUluZm9DdXN0b20uY3BwIFwKICAg
ICAgYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAgXAogICAgICBiaW5kaW5n
cy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgXAogICAgICBiaW5kaW5ncy9qcy9KU01lc3Nh
Z2VQb3J0Q3VzdG9tLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCShyZXZpc2lvbiAxMjYwNTcp
CisrKyBTb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTEwNiw3
ICsxMDYsNiBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9K
U0xvY2F0aW9uQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0
ZS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU01lZGlhTGlzdEN1c3RvbS5jcHAKLSAgICBiaW5kaW5n
cy9qcy9KU01lbW9yeUluZm9DdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hh
bm5lbEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAK
ICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcApJbmRleDogU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQkocmV2aXNpb24gMTI2MDU3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3
b3JraW5nIGNvcHkpCkBAIC0yMDUzLDcgKzIwNTMsNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdz
L2pzL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pz
L0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU01l
ZGlhTGlzdEN1c3RvbS5jcHAnLAotICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVtb3J5SW5m
b0N1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxD
dXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3Rv
bS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3Bw
JywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CShyZXZpc2lvbiAxMjYwNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtNjg2OTQsNTggKzY4Njk0LDYgQEAKIAkJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU01lbW9yeUluZm9DdXN0b20uY3BwIgotCQkJCQk+Ci0J
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCi0JCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKLQkJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQkJPgotCQkJCQkJPFRvb2wKLQkJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkJLz4KLQkJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KLQkJCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19D
RkxpdGV8V2luMzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4KLQkJ
CQkJCTxUb29sCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0JCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQkJTmFt
ZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCi0JCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKLQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgotCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCi0JCQkJCQk+Ci0JCQkJCQk8VG9vbAotCQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCi0JCQkJCQkvPgotCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KLQkJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCi0JCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJCT4KLQkJCQkJCTxUb29sCi0JCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJCS8+Ci0JCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0J
CQkJPC9GaWxlPgotCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNc
SlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAxMjYwNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTM3MTgsNyArMzcxOCw2
IEBACiAJCTlGQTM3RUZCMTE3MkZEQTYwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGQTM3RUY3MTE3MkZE
OTMwMEM0Q0Q1NSAvKiBKU1NjcmlwdFByb2ZpbGUuaCAqLzsgfTsKIAkJOUZBMzdFRkMxMTcyRkRB
NjAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUZBMzdFRjgxMTcyRkQ5MzAwQzRDRDU1IC8qIEpT
U2NyaXB0UHJvZmlsZU5vZGUuY3BwICovOyB9OwogCQk5RkEzN0VGRDExNzJGREE2MDBDNENENTUg
LyogSlNTY3JpcHRQcm9maWxlTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOUZBMzdFRjkxMTcyRkQ5MzAwQzRDRDU1IC8qIEpTU2NyaXB0UHJvZmls
ZU5vZGUuaCAqLzsgfTsKLQkJOUZEQzhGRjIxMkZBQjAwNjAwOTlBQjFDIC8qIEpTTWVtb3J5SW5m
b0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5RkRDOEZGMTEyRkFCMDA2MDA5OUFCMUMgLyogSlNNZW1vcnlJbmZvQ3VzdG9tLmNwcCAqLzsg
fTsKIAkJOUZGRTNFN0ExMUI1OUM1RDAwMzc4NzRFIC8qIE1lbW9yeUluZm8uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUZGRTNFNzgxMUI1OUM1RDAw
Mzc4NzRFIC8qIE1lbW9yeUluZm8uY3BwICovOyB9OwogCQk5RkZFM0U3QjExQjU5QzVEMDAzNzg3
NEUgLyogTWVtb3J5SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUZGRTNFNzkxMUI1OUM1RDAwMzc4NzRFIC8qIE1lbW9yeUluZm8uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5RkZFM0VBNTExQjVB
NDM5MDAzNzg3NEUgLyogSlNNZW1vcnlJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGRkUzRUEzMTFCNUE0MzkwMDM3ODc0RSAvKiBKU01lbW9y
eUluZm8uY3BwICovOyB9OwpAQCAtMTA5MDYsNyArMTA5MDUsNiBAQAogCQk5RkEzN0VGNzExNzJG
RDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTU2NyaXB0UHJvZmlsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5RkEzN0VGODExNzJGRDkzMDBDNENENTUgLyogSlNTY3JpcHRQcm9maWxlTm9kZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NjcmlwdFByb2ZpbGVOb2RlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUZBMzdFRjkxMTcyRkQ5MzAwQzRDRDU1
IC8qIEpTU2NyaXB0UHJvZmlsZU5vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNTY3JpcHRQcm9maWxlTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5
RkRDOEZGMTEyRkFCMDA2MDA5OUFCMUMgLyogSlNNZW1vcnlJbmZvQ3VzdG9tLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVtb3J5SW5mb0N1c3RvbS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGRkUzRTc4MTFCNTlDNUQwMDM3ODc0RSAvKiBN
ZW1vcnlJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lbW9y
eUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RkZFM0U3OTExQjU5QzVE
MDAzNzg3NEUgLyogTWVtb3J5SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZW1vcnlJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGRkUzRTdDMTFC
NTlDNkUwMDM3ODc0RSAvKiBNZW1vcnlJbmZvLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBN
ZW1vcnlJbmZvLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwMzA1LDcgKzIw
MzAzLDYgQEAKIAkJCQkxQzVGQUVFNjBEQ0ZEQTY4MDBENThGNzggLyogSlNKYXZhU2NyaXB0Q2Fs
bEZyYW1lQ3VzdG9tLmNwcCAqLywKIAkJCQlCQ0UxQzQzRjBEOTgzMEY0MDAzQjAyRjIgLyogSlNM
b2NhdGlvbkN1c3RvbS5jcHAgKi8sCiAJCQkJMTQ2NEUwNkIxMzVFQzEwNjAwRkRCMDBBIC8qIEpT
TWVkaWFMaXN0Q3VzdG9tLmNwcCAqLywKLQkJCQk5RkRDOEZGMTEyRkFCMDA2MDA5OUFCMUMgLyog
SlNNZW1vcnlJbmZvQ3VzdG9tLmNwcCAqLywKIAkJCQlFMUE1Rjk5QTBFN0VBQTI1MDBBRjg1RUEg
LyogSlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAgKi8sCiAJCQkJNDEwQjdFNzExMDQ1RkFCMDAw
RDgyMjRGIC8qIEpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlFMUFERUQ0NjBFNzZC
OEREMDA0QTFBNUUgLyogSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAgKi8sCkBAIC0yNzE5MSw3ICsy
NzE4OCw2IEBACiAJCQkJRDNBOTRBNDYxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxp
c3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRCRDQ4MEMxNTlCQzY4NzAwOTNFQjRGIC8qIEpT
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOUZGRTNF
QTUxMUI1QTQzOTAwMzc4NzRFIC8qIEpTTWVtb3J5SW5mby5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk5RkRDOEZGMjEyRkFCMDA2MDA5OUFCMUMgLyogSlNNZW1vcnlJbmZvQ3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUUxMDc0MDBEMEU3N0JEQzAwMDMzQUYyNCAvKiBKU01lc3NhZ2VDaGFu
bmVsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQTVGOTlCMEU3RUFBMjUwMEFGODVFQSAvKiBK
U01lc3NhZ2VDaGFubmVsQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc1NzkzRUM4MEQw
Q0U3MkQwMDdGQzBBQyAvKiBKU01lc3NhZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNw
cAkocmV2aXNpb24gMTI2MDU3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5k
aW5nc0FsbEluT25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTExLDcgKzExMSw2IEBACiAjaW5j
bHVkZSAiSlNMb2NhdGlvbkN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNNYWluVGhyZWFkRXhlY1N0
YXRlLmNwcCIKICNpbmNsdWRlICJKU01lZGlhTGlzdEN1c3RvbS5jcHAiCi0jaW5jbHVkZSAiSlNN
ZW1vcnlJbmZvQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU01lc3NhZ2VDaGFubmVsQ3VzdG9tLmNw
cCIKICNpbmNsdWRlICJKU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNNZXNz
YWdlUG9ydEN1c3RvbS5jcHAiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01l
bW9yeUluZm9DdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTWVtb3J5SW5mb0N1c3RvbS5jcHAJKHJldmlzaW9uIDEyNjA1NykKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVtb3J5SW5mb0N1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
ICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIkpTTWVtb3J5
SW5mby5oIgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LUpTVmFsdWUgSlNNZW1vcnlJbmZvOjpqc0hlYXBTaXplTGltaXQoRXhlY1N0YXRlKikgY29uc3QK
LXsKLSAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0R0NFdmVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0R0NFdmVudC5jcHAJ
KHJldmlzaW9uIDEyNjA1NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdEdD
RXZlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCw3IEBAIHZvaWQgU2NyaXB0R0NF
dmVudDo6Z2V0SGVhcFNpemUoSGVhcEluZm8KICAgICBKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEg
PSBKU0RPTVdpbmRvdzo6Y29tbW9uSlNHbG9iYWxEYXRhKCk7CiAgICAgaW5mby50b3RhbEpTSGVh
cFNpemUgPSBnbG9iYWxEYXRhLT5oZWFwLmNhcGFjaXR5KCk7CiAgICAgaW5mby51c2VkSlNIZWFw
U2l6ZSA9IGdsb2JhbERhdGEtPmhlYXAuc2l6ZSgpOwotICAgIGluZm8uanNIZWFwU2l6ZUxpbWl0
ID0gMDsKKyAgICBpbmZvLmpzSGVhcFNpemVMaW1pdCA9IGdsb2JhbERhdGEtPmhlYXAubWF4U2l6
ZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL01lbW9yeUluZm8uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTWVt
b3J5SW5mby5pZGwJKHJldmlzaW9uIDEyNjA1NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTWVt
b3J5SW5mby5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKIAogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB0b3RhbEpTSGVhcFNpemU7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHVzZWRKU0hlYXBTaXplOwotICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgW0pTQ3VzdG9tR2V0dGVyXSB1bnNpZ25lZCBsb25nIGpzSGVh
cFNpemVMaW1pdDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcganNI
ZWFwU2l6ZUxpbWl0OwogCiAgICAgfTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>