<?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>116463</bug_id>
          
          <creation_ts>2013-05-20 13:27:29 -0700</creation_ts>
          <short_desc>Clients should have a way to extend rendering suppression</short_desc>
          <delta_ts>2013-05-28 13:37:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>891325</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-05-20 13:27:29 -0700</bug_when>
    <thetext>For example, some apps do DOM manipulation after the page has finished loading, and would like to defer painting/etc. until after that happens.

&lt;rdar://problem/13738496&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891339</commentid>
    <comment_count>1</comment_count>
      <attachid>202319</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-05-20 14:14:50 -0700</bug_when>
    <thetext>Created attachment 202319
bad patch

a patch, but I need to rename everything to make it clear that this extends the existing rendering suppression mechanism, but is not itself an effective one (for example, grabbing a token at random while the page is up will *not* stop rendering from happening... only if you have one when the page load finishes).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891350</commentid>
    <comment_count>2</comment_count>
      <attachid>202319</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2013-05-20 15:03:36 -0700</bug_when>
    <thetext>Comment on attachment 202319
bad patch

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

&gt; Source/WebCore/dom/Document.cpp:1329
&gt; +#ifndef NDEBUG
&gt; +    if (!view()-&gt;visualUpdatesAllowedByClient())
&gt; +        WTFLogAlways(&quot;Visual updates are disallowed by client, but watchdog is forcing visual updates to be allowed.\n&quot;);
&gt; +#endif

I think it&apos;s weird that we still fire this timer even if the client is explicitly suppressing visual updates. As you mentioned on IRC, if they want some sort of slow-loading timer then they can implement it themselves.

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:86
&gt; +WK_EXPORT unsigned WKBundlePageAcquireRenderingSuppressionToken(WKBundlePageRef page) WARN_UNUSED_RETURN;
&gt; +WK_EXPORT void WKBundlePageRelinquishRenderingSuppressionToken(WKBundlePageRef page, unsigned token);

We talked about these names on IRC. Here was my suggestion:

typedef unsigned WKRenderingSuppressionToken;
WK_EXPORT WKRenderingSuppressionToken WKBundlePageExtendIncrementalRenderingSuppression(WKBundlePageRef) WARN_UNUSED_RETURN;

And then you suggested this for the corresponding stop function:

WK_EXPORT void WKBundlePageStopExtendingIncrementalRenderingSuppression(WKBundlePageRef, WKRenderingSuppressionToken);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891360</commentid>
    <comment_count>3</comment_count>
      <attachid>202327</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-05-20 15:37:00 -0700</bug_when>
    <thetext>Created attachment 202327
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891387</commentid>
    <comment_count>4</comment_count>
      <attachid>202327</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2013-05-20 16:22:11 -0700</bug_when>
    <thetext>Comment on attachment 202327
patch

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

&gt; Source/WebCore/page/FrameView.h:426
&gt; +    bool visualUpdatesAllowedByClient() { return m_visualUpdatesAllowedByClient; }

This can be const-qualified.

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:87
&gt; +WK_EXPORT WKRenderingSuppressionToken WKBundlePageExtendIncrementalRenderingSuppression(WKBundlePageRef page) WARN_UNUSED_RETURN;
&gt; +WK_EXPORT void WKBundlePageStopExtendingIncrementalRenderingSuppression(WKBundlePageRef page, WKRenderingSuppressionToken token);

You don&apos;t need to name these arguments since their types are self-descriptive.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:4189
&gt; +    unsigned token = ++m_maximumRenderingSuppressionToken;

Could be m_maximumRenderingSuppressionToken++ so that 0 is allowed to be a token.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891396</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-05-20 16:43:17 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/150388</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894485</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-05-28 13:37:02 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 202327 [details])
&gt; &gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:4189
&gt; &gt; +    unsigned token = ++m_maximumRenderingSuppressionToken;
&gt; 
&gt; Could be m_maximumRenderingSuppressionToken++ so that 0 is allowed to be a token.

In retrospect, this was a Bad Idea because 0 is not a good thing to try to put in a HashSet, apparently.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202319</attachid>
            <date>2013-05-20 14:14:50 -0700</date>
            <delta_ts>2013-05-20 15:37:00 -0700</delta_ts>
            <desc>bad patch</desc>
            <filename>suppression-tokens.diff</filename>
            <type>text/plain</type>
            <size>13601</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiZmQwZThhLi41OTJlOTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMTMtMDUtMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgQ2xpZW50cyBzaG91bGQgaGF2ZSBhIHdheSB0byBleHRlbmQgcmVuZGVyaW5nIHN1
cHByZXNzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTY0NjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEzNzM4NDk2PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgIEV4cG9ydCBGcmFtZVZpZXc6OnNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQu
CisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkKToKKyAgICAgICAgTW92ZSByZW5kZXJpbmctc3Vw
cHJlc3Npb24gd2F0Y2hkb2cgaW50byBzZXRWaXN1YWxVcGRhdGVzQWxsb3dlZChib29sKS4KKyAg
ICAgICAgc2V0VmlzdWFsVXBkYXRlc0FsbG93ZWQoUmVhZHlTdGF0ZSkgc2hvdWxkIG5vdCByZS1l
bmFibGUgdmlzdWFsIHVwZGF0ZXMKKyAgICAgICAgaWYgdGhlIGNsaWVudCBpcyBpdHNlbGYgZGlz
YWJsaW5nIHZpc3VhbCB1cGRhdGVzLgorCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dmlz
dWFsVXBkYXRlc1N1cHByZXNzaW9uVGltZXJGaXJlZCk6CisgICAgICAgIExvZyBpZiB0aGUgd2F0
Y2hkb2cgZmlyZXMgYW5kIHRoZSBjbGllbnQgaXMgc3RpbGwgZGlzYWJsaW5nIHZpc3VhbAorICAg
ICAgICB1cGRhdGVzLCBvbmx5IGluIGRlYnVnIGJ1aWxkcy4KKworICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQpOgorICAgICAgICBBY3R1
YWxseSByZS1lbmFibGUgdmlzdWFsIHVwZGF0ZXMgaWYgd2UgZGVmZXJyZWQgdGhlIHJlLWVuYWJs
aW5nIGFib3ZlCisgICAgICAgICh3aGVuIHRoZSBwYWdlIGZpbmlzaGVzIGxvYWRpbmcsIGJ1dCB0
aGUgY2xpZW50IGhhZCB0aGVtIGRpc2FibGVkKS4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAoRG9jdW1lbnQpOiBBZGQgc2V0VmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVu
dC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZVZpZXc6OkZyYW1lVmlldyk6IFZpc3VhbCB1cGRhdGVzIGFyZSBhbGxvd2VkIGJ5IGRlZmF1bHQu
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkQnlD
bGllbnQpOgorICAgICAgICBGb3J3YXJkIHRocm91Z2ggdG8gdGhlIGRvY3VtZW50LCBidXQgd2Ug
YWxzbyBuZWVkIHRvIHBlcnNpc3QgdGhlIHN0YXRlCisgICAgICAgIGhlcmUgaW4gRnJhbWVWaWV3
IHNvIHRoYXQgaXQgc3Vydml2ZXMgdGhyb3VnaCBuYXZpZ2F0aW9uLgorCisgICAgICAgICogcGFn
ZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0VmlzdWFsVXBk
YXRlc0FsbG93ZWRCeUNsaWVudCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3
Ojp2aXN1YWxVcGRhdGVzQWxsb3dlZEJ5Q2xpZW50KTogQWRkZWQuCisgICAgICAgIEFkZGVkIHN0
b3JhZ2UgZm9yIG1fdmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudC4KKwogMjAxMy0wNS0xOCAg
QW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5
IHRoZSBTdG9yYWdlQXJlYSBzZXR0ZXIgZnVuY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4
IGI1Y2M3YTMuLjI3YzJkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xMTYxLDYgKzExNjEs
NyBAQCBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjRwYWludENvbnRlbnRzRm9yU25hcHNob3RFUE5T
XzE1R3JhcGhpY3NDb250ZXh0RVJLTlNfN0ludAogX19aTjdXZWJDb3JlOUZyYW1lVmlldzI2YWRq
dXN0UGFnZUhlaWdodERlcHJlY2F0ZWRFUGZmZmYKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcyNmFk
anVzdFRpbGVkQmFja2luZ0NvdmVyYWdlRXYKIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcyOXNldFNo
b3VsZFVwZGF0ZVdoaWxlT2Zmc2NyZWVuRWIKK19fWk43V2ViQ29yZTlGcmFtZVZpZXczMXNldFZp
c3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnRFYgogX19aTjdXZWJDb3JlOUZyYW1lVmlldzM3c2V0
U2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZEViCiBfX1pON1dlYkNvcmU5RnJhbWVW
aWV3Mzd1cGRhdGVMYXlvdXRBbmRTdHlsZUlmTmVlZGVkUmVjdXJzaXZlRXYKIF9fWk43V2ViQ29y
ZTlGcmFtZVZpZXczOHNjcm9sbFBvc2l0aW9uQ2hhbmdlZFZpYVBsYXRmb3JtV2lkZ2V0RXYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDc1ZWFmZTguLmVhMjVlYTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcApAQCAtMTI2NCw3ICsxMjY0LDYgQEAgdm9pZCBEb2N1bWVudDo6c2V0VmlzdWFs
VXBkYXRlc0FsbG93ZWQoUmVhZHlTdGF0ZSByZWFkeVN0YXRlKQogICAgIGNhc2UgTG9hZGluZzoK
ICAgICAgICAgQVNTRVJUKCFtX3Zpc3VhbFVwZGF0ZXNTdXBwcmVzc2lvblRpbWVyLmlzQWN0aXZl
KCkpOwogICAgICAgICBBU1NFUlQobV92aXN1YWxVcGRhdGVzQWxsb3dlZCk7Ci0gICAgICAgIG1f
dmlzdWFsVXBkYXRlc1N1cHByZXNzaW9uVGltZXIuc3RhcnRPbmVTaG90KHNldHRpbmdzKCktPmlu
Y3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzKCkpOwogICAgICAg
ICBzZXRWaXN1YWxVcGRhdGVzQWxsb3dlZChmYWxzZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgSW50ZXJhY3RpdmU6CkBAIC0xMjczLDcgKzEyNzIsMTAgQEAgdm9pZCBEb2N1bWVudDo6c2V0
VmlzdWFsVXBkYXRlc0FsbG93ZWQoUmVhZHlTdGF0ZSByZWFkeVN0YXRlKQogICAgIGNhc2UgQ29t
cGxldGU6CiAgICAgICAgIGlmIChtX3Zpc3VhbFVwZGF0ZXNTdXBwcmVzc2lvblRpbWVyLmlzQWN0
aXZlKCkpIHsKICAgICAgICAgICAgIEFTU0VSVCghbV92aXN1YWxVcGRhdGVzQWxsb3dlZCk7Ci0g
ICAgICAgICAgICBtX3Zpc3VhbFVwZGF0ZXNTdXBwcmVzc2lvblRpbWVyLnN0b3AoKTsKKworICAg
ICAgICAgICAgaWYgKCF2aWV3KCktPnZpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQoKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgICAgIHNldFZpc3VhbFVwZGF0ZXNBbGxv
d2VkKHRydWUpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIEFTU0VSVChtX3Zpc3VhbFVw
ZGF0ZXNBbGxvd2VkKTsKQEAgLTEyODgsNiArMTI5MCwxMSBAQCB2b2lkIERvY3VtZW50OjpzZXRW
aXN1YWxVcGRhdGVzQWxsb3dlZChib29sIHZpc3VhbFVwZGF0ZXNBbGxvd2VkKQogCiAgICAgbV92
aXN1YWxVcGRhdGVzQWxsb3dlZCA9IHZpc3VhbFVwZGF0ZXNBbGxvd2VkOwogCisgICAgaWYgKHZp
c3VhbFVwZGF0ZXNBbGxvd2VkKQorICAgICAgICBtX3Zpc3VhbFVwZGF0ZXNTdXBwcmVzc2lvblRp
bWVyLnN0b3AoKTsKKyAgICBlbHNlCisgICAgICAgIG1fdmlzdWFsVXBkYXRlc1N1cHByZXNzaW9u
VGltZXIuc3RhcnRPbmVTaG90KHNldHRpbmdzKCktPmluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJl
c3Npb25UaW1lb3V0SW5TZWNvbmRzKCkpOworCiAgICAgaWYgKCF2aXN1YWxVcGRhdGVzQWxsb3dl
ZCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xMzE1LDkgKzEzMjIsMjEgQEAgdm9pZCBEb2N1bWVu
dDo6c2V0VmlzdWFsVXBkYXRlc0FsbG93ZWQoYm9vbCB2aXN1YWxVcGRhdGVzQWxsb3dlZCkKIHZv
aWQgRG9jdW1lbnQ6OnZpc3VhbFVwZGF0ZXNTdXBwcmVzc2lvblRpbWVyRmlyZWQoVGltZXI8RG9j
dW1lbnQ+KikKIHsKICAgICBBU1NFUlQoIW1fdmlzdWFsVXBkYXRlc0FsbG93ZWQpOworCisjaWZu
ZGVmIE5ERUJVRworICAgIGlmICghdmlldygpLT52aXN1YWxVcGRhdGVzQWxsb3dlZEJ5Q2xpZW50
KCkpCisgICAgICAgIFdURkxvZ0Fsd2F5cygiVmlzdWFsIHVwZGF0ZXMgYXJlIGRpc2FsbG93ZWQg
YnkgY2xpZW50LCBidXQgd2F0Y2hkb2cgaXMgZm9yY2luZyB2aXN1YWwgdXBkYXRlcyB0byBiZSBh
bGxvd2VkLlxuIik7CisjZW5kaWYKKwogICAgIHNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkKHRydWUp
OwogfQogCit2b2lkIERvY3VtZW50OjpzZXRWaXN1YWxVcGRhdGVzQWxsb3dlZEJ5Q2xpZW50KGJv
b2wgdmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudCkKK3sKKyAgICBpZiAodmlzdWFsVXBkYXRl
c0FsbG93ZWRCeUNsaWVudCAmJiBtX3JlYWR5U3RhdGUgPT0gQ29tcGxldGUgJiYgIXZpc3VhbFVw
ZGF0ZXNBbGxvd2VkKCkpCisgICAgICAgIHNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkKHRydWUpOwor
fQorCiBTdHJpbmcgRG9jdW1lbnQ6OmVuY29kaW5nKCkgY29uc3QKIHsKICAgICBpZiAoVGV4dFJl
c291cmNlRGVjb2RlciogZCA9IGRlY29kZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMmVm
ZTZhNi4uMjRmMDhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEyMTgsNiArMTIxOCw4IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgZW5zdXJlUGx1Z0luc0luamVjdGVkU2NyaXB0KERPTVdyYXBw
ZXJXb3JsZCopOwogCisgICAgdm9pZCBzZXRWaXN1YWxVcGRhdGVzQWxsb3dlZEJ5Q2xpZW50KGJv
b2wpOworCiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBLVVJMJiwgdW5z
aWduZWQgPSBEZWZhdWx0RG9jdW1lbnRDbGFzcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAppbmRleCA4YmY2ZmE0Li4wNzJmNDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBA
IC0yMDIsNiArMjAyLDcgQEAgRnJhbWVWaWV3OjpGcmFtZVZpZXcoRnJhbWUqIGZyYW1lKQogI2lm
IEVOQUJMRShDU1NfRklMVEVSUykKICAgICAsIG1faGFzU29mdHdhcmVGaWx0ZXJzKGZhbHNlKQog
I2VuZGlmCisgICAgLCBtX3Zpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQodHJ1ZSkKIHsKICAg
ICBpbml0KCk7CiAKQEAgLTQxNjUsNCArNDE2NiwxNCBAQCB2b2lkIEZyYW1lVmlldzo6ZmlyZVBh
aW50UmVsYXRlZE1pbGVzdG9uZXMoKQogICAgIH0KIH0KIAordm9pZCBGcmFtZVZpZXc6OnNldFZp
c3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQoYm9vbCB2aXN1YWxVcGRhdGVzQWxsb3dlZCkKK3sK
KyAgICBpZiAobV92aXN1YWxVcGRhdGVzQWxsb3dlZEJ5Q2xpZW50ID09IHZpc3VhbFVwZGF0ZXNB
bGxvd2VkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Zpc3VhbFVwZGF0ZXNBbGxvd2VkQnlD
bGllbnQgPSB2aXN1YWxVcGRhdGVzQWxsb3dlZDsKKworICAgIG1fZnJhbWUtPmRvY3VtZW50KCkt
PnNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQodmlzdWFsVXBkYXRlc0FsbG93ZWQpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCA5
NWMzNDExLi5kMTYyM2M5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTQyMyw2ICs0MjMs
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaXJlUGFpbnRSZWxhdGVkTWlsZXN0b25lcygpOwogICAg
IExheW91dE1pbGVzdG9uZXMgbWlsZXN0b25lc1BlbmRpbmdQYWludCgpIGNvbnN0IHsgcmV0dXJu
IG1fbWlsZXN0b25lc1BlbmRpbmdQYWludDsgfQogCisgICAgYm9vbCB2aXN1YWxVcGRhdGVzQWxs
b3dlZEJ5Q2xpZW50KCkgeyByZXR1cm4gbV92aXN1YWxVcGRhdGVzQWxsb3dlZEJ5Q2xpZW50OyB9
CisgICAgdm9pZCBzZXRWaXN1YWxVcGRhdGVzQWxsb3dlZEJ5Q2xpZW50KGJvb2wpOworCiBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29uc3QgSW50
U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50
UmVjdCYgY2xpcFJlY3QpOwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxDb250ZW50c1Nsb3dQYXRo
KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QpOwpAQCAtNjM4LDYgKzY0MSw4IEBAIHByaXZhdGU6
CiAgICAgLy8gdGhlIHZpZXdwb3J0IGdpdmVuIGJ5IHRoZSB3aW5kb3cgb3Igdmlld2luZyBhcmVh
IG9mIHRoZSBVQS4KICAgICBJbnRTaXplIG1faW5pdGlhbFZpZXdwb3J0U2l6ZTsKICNlbmRpZgor
CisgICAgYm9vbCBtX3Zpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQ7CiB9OwogCiBpbmxpbmUg
dm9pZCBGcmFtZVZpZXc6OmluY3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlDaGFyYWN0ZXJDb3VudCh1
bnNpZ25lZCBjb3VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlNjUyMDg3Li4zM2Q0N2RjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzYgQEAKKzIwMTMtMDUtMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRv
bkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xpZW50cyBzaG91bGQgaGF2ZSBhIHdheSB0byBleHRl
bmQgcmVuZGVyaW5nIHN1cHByZXNzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTY0NjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEzNzM4NDk2
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwOgorICAgICAgICAo
V0tCdW5kbGVQYWdlQWNxdWlyZVJlbmRlcmluZ1N1cHByZXNzaW9uVG9rZW4pOiBBZGRlZC4KKyAg
ICAgICAgKFdLQnVuZGxlUGFnZVJlbGlucXVpc2hSZW5kZXJpbmdTdXBwcmVzc2lvblRva2VuKTog
QWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2VQcml2YXRlLmg6CisgICAgICAgIFRoZXNlIG9ubHkgaGF2ZSBhbnkgZWZmZWN0IGlmIFN1
cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZyBpcyBhbHNvIGVuYWJsZWQuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRl
ZEZvck5ld1BhZ2UpOgorICAgICAgICBJbmZvcm0gdGhlIEZyYW1lVmlldyBpZiB0aGVyZSBhcmUg
YW55IG91dHN0YW5kaW5nIHJlbmRlcmluZyBzdXBwcmVzc2lvbiB0b2tlbnMuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OldlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjphY3F1aXJlUmVuZGVyaW5n
U3VwcHJlc3Npb25Ub2tlbik6CisgICAgICAgIFJldHVybiB0aGUgbmV4dCBhdmFpbGFibGUgcmVu
ZGVyaW5nIHN1cHByZXNzaW9uIHRva2VuLgorICAgICAgICBBZGQgaXQgdG8gdGhlIGxpc3Qgb2Yg
YWN0aXZlIHRva2Vucy4KKyAgICAgICAgSW5mb3JtIHRoZSBGcmFtZVZpZXcgdGhhdCB3ZSB3YW50
IHRvIHN1cHByZXNzIHJlbmRlcmluZy4KKworICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZWxp
bnF1aXNoUmVuZGVyaW5nU3VwcHJlc3Npb25Ub2tlbik6CisgICAgICAgIFJlbW92ZSB0aGUgZ2l2
ZW4gdG9rZW4gZnJvbSB0aGUgbGlzdCBvZiBhY3RpdmUgdG9rZW5zLgorICAgICAgICBVbi1zdXBw
cmVzcyByZW5kZXJpbmcgaWYgYXBwcm9wcmlhdGUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpoYXNBY3RpdmVSZW5k
ZXJpbmdTdXBwcmVzc2lvblRva2Vucyk6CisgICAgICAgIFJldHVybiBpZiB0aGVyZSBhcmUgYW55
IGFjdGl2ZSByZW5kZXJpbmcgc3VwcHJlc3Npb24gdG9rZW5zLgorCiAyMDEzLTA1LTE4ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxpZnkgdGhl
IFN0b3JhZ2VBcmVhIHNldHRlciBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNw
cAppbmRleCAzZDVlOGUxLi5iZjc0OWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3Bw
CkBAIC01MDYsMyArNTA2LDEzIEBAIGJvb2wgV0tCdW5kbGVQYWdlQ2FuU2hvd01JTUVUeXBlKFdL
QnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS1N0cmluZ1JlZiBtaW1lVHlwZVJlCiB7CiAgICAgcmV0
dXJuIHRvSW1wbChwYWdlUmVmKS0+Y2FuU2hvd01JTUVUeXBlKHRvV1RGU3RyaW5nKG1pbWVUeXBl
UmVmKSk7CiB9CisKK3Vuc2lnbmVkIFdLQnVuZGxlUGFnZUFjcXVpcmVSZW5kZXJpbmdTdXBwcmVz
c2lvblRva2VuKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmKQoreworICAgIHJldHVybiB0b0ltcGwo
cGFnZVJlZiktPmFjcXVpcmVSZW5kZXJpbmdTdXBwcmVzc2lvblRva2VuKCk7Cit9CisKK3ZvaWQg
V0tCdW5kbGVQYWdlUmVsaW5xdWlzaFJlbmRlcmluZ1N1cHByZXNzaW9uVG9rZW4oV0tCdW5kbGVQ
YWdlUmVmIHBhZ2VSZWYsIHVuc2lnbmVkIHRva2VuKQoreworICAgIHRvSW1wbChwYWdlUmVmKS0+
cmVsaW5xdWlzaFJlbmRlcmluZ1N1cHByZXNzaW9uVG9rZW4odG9rZW4pOworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUGFnZVByaXZhdGUuaAppbmRleCA5YTUyNjg3Li4xNjFiYzFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUGFnZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVByaXZhdGUuaApAQCAtODEsNiArODEsMTAgQEAg
V0tfRVhQT1JUIHZvaWQqIFdLQWNjZXNzaWJpbGl0eUZvY3VzZWRPYmplY3QoV0tCdW5kbGVQYWdl
UmVmKTsKIFdLX0VYUE9SVCBXS0FycmF5UmVmIFdLQnVuZGxlUGFnZUNvcHlDb250ZXh0TWVudUl0
ZW1UaXRsZXMoV0tCdW5kbGVQYWdlUmVmKTsKIFdLX0VYUE9SVCBXS0FycmF5UmVmIFdLQnVuZGxl
UGFnZUNvcHlDb250ZXh0TWVudUF0UG9pbnRJbldpbmRvdyhXS0J1bmRsZVBhZ2VSZWYsIFdLUG9p
bnQpOwogCisvLyBUaGlzIG9ubHkgd29ya3MgaWYgdGhlIFN1cHByZXNzZXNJbmNyZW1lbnRhbFJl
bmRlcmluZyBwcmVmZXJlbmNlIGlzIHNldCBhcyB3ZWxsLgorV0tfRVhQT1JUIHVuc2lnbmVkIFdL
QnVuZGxlUGFnZUFjcXVpcmVSZW5kZXJpbmdTdXBwcmVzc2lvblRva2VuKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlKSBXQVJOX1VOVVNFRF9SRVRVUk47CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VS
ZWxpbnF1aXNoUmVuZGVyaW5nU3VwcHJlc3Npb25Ub2tlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
dW5zaWduZWQgdG9rZW4pOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCAxMTNlMzYyLi4wZmFjZWYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTIzMCw2ICsxMjMwLDcgQEAgdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpCiAg
ICAgICAgIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT52aWV3KCktPmVuYWJsZUF1dG9TaXplTW9kZSh0
cnVlLCBJbnRTaXplKG1pbmltdW1MYXlvdXRXaWR0aCwgMSksIEludFNpemUobWF4aW11bVNpemUs
IG1heGltdW1TaXplKSk7CiAKICAgICBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+dmlldygpLT5zZXRQ
cm9oaWJpdHNTY3JvbGxpbmcoc2hvdWxkRGlzYWJsZVNjcm9sbGluZyk7CisgICAgbV9mcmFtZS0+
Y29yZUZyYW1lKCktPnZpZXcoKS0+c2V0VmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudCghd2Vi
UGFnZS0+aGFzQWN0aXZlUmVuZGVyaW5nU3VwcHJlc3Npb25Ub2tlbnMoKSk7CiAKICNpZiBVU0Uo
VElMRURfQkFDS0lOR19TVE9SRSkKICAgICBpZiAoc2hvdWxkVXNlRml4ZWRMYXlvdXQpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBmNmIy
ZGE2Li41MzMzZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC0yODcsNiArMjg3LDcgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBw
YWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAjZW5k
aWYKICAgICAsIG1faW5zcGVjdG9yQ2xpZW50KDApCiAgICAgLCBtX2JhY2tncm91bmRDb2xvcihD
b2xvcjo6d2hpdGUpCisgICAgLCBtX21heGltdW1SZW5kZXJpbmdTdXBwcmVzc2lvblRva2VuKDAp
CiB7CiAgICAgQVNTRVJUKG1fcGFnZUlEKTsKICAgICAvLyBGSVhNRTogVGhpcyBpcyBhIG5vbi1p
ZGVhbCBsb2NhdGlvbiBmb3IgdGhpcyBTZXR0aW5nIGFuZApAQCAtNDE4Myw0ICs0MTg0LDIzIEBA
IHZvaWQgV2ViUGFnZTo6cmVwb3J0VXNlZEZlYXR1cmVzKCkKICAgICBtX2xvYWRlckNsaWVudC5m
ZWF0dXJlc1VzZWRJblBhZ2UodGhpcywgbmFtZWRGZWF0dXJlcyk7CiB9CiAKK3Vuc2lnbmVkIFdl
YlBhZ2U6OmFjcXVpcmVSZW5kZXJpbmdTdXBwcmVzc2lvblRva2VuKCkKK3sKKyAgICB1bnNpZ25l
ZCB0b2tlbiA9ICsrbV9tYXhpbXVtUmVuZGVyaW5nU3VwcHJlc3Npb25Ub2tlbjsKKworICAgIG1f
YWN0aXZlUmVuZGVyaW5nU3VwcHJlc3Npb25Ub2tlbnMuYWRkKHRva2VuKTsKKyAgICBtX3BhZ2Ut
Pm1haW5GcmFtZSgpLT52aWV3KCktPnNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQoZmFs
c2UpOworCisgICAgcmV0dXJuIHRva2VuOworfQorCit2b2lkIFdlYlBhZ2U6OnJlbGlucXVpc2hS
ZW5kZXJpbmdTdXBwcmVzc2lvblRva2VuKHVuc2lnbmVkIHRva2VuKQoreworICAgIGlmICghbV9h
Y3RpdmVSZW5kZXJpbmdTdXBwcmVzc2lvblRva2Vucy5jb250YWlucyh0b2tlbikpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fYWN0aXZlUmVuZGVyaW5nU3VwcHJlc3Npb25Ub2tlbnMucmVtb3Zl
KHRva2VuKTsKKyAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCktPnNldFZpc3VhbFVwZGF0
ZXNBbGxvd2VkQnlDbGllbnQoIWhhc0FjdGl2ZVJlbmRlcmluZ1N1cHByZXNzaW9uVG9rZW5zKCkp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDg1NDU2ODUuLjAwYmQwYWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNjU2LDYgKzY1NiwxMCBAQCBw
dWJsaWM6CiAgICAgYm9vbCBtYXRjaGVzUHJpbWFyeVBsdWdJbihjb25zdCBTdHJpbmcmIHBhZ2VP
cmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBl
KSBjb25zdDsKICNlbmRpZgogCisgICAgdW5zaWduZWQgYWNxdWlyZVJlbmRlcmluZ1N1cHByZXNz
aW9uVG9rZW4oKTsKKyAgICB2b2lkIHJlbGlucXVpc2hSZW5kZXJpbmdTdXBwcmVzc2lvblRva2Vu
KHVuc2lnbmVkIHRva2VuKTsKKyAgICBib29sIGhhc0FjdGl2ZVJlbmRlcmluZ1N1cHByZXNzaW9u
VG9rZW5zKCkgeyByZXR1cm4gIW1fYWN0aXZlUmVuZGVyaW5nU3VwcHJlc3Npb25Ub2tlbnMuaXNF
bXB0eSgpOyB9CisKIHByaXZhdGU6CiAgICAgV2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKIApAQCAtMTAxNSw2ICsxMDE5LDkgQEAgcHJp
dmF0ZToKIAogICAgIEhhc2hTZXQ8U3RyaW5nLCBDYXNlRm9sZGluZ0hhc2g+IG1fbWltZVR5cGVz
V2l0aEN1c3RvbVJlcHJlc2VudGF0aW9uczsKICAgICBXZWJDb3JlOjpDb2xvciBtX2JhY2tncm91
bmRDb2xvcjsKKworICAgIEhhc2hTZXQ8dW5zaWduZWQ+IG1fYWN0aXZlUmVuZGVyaW5nU3VwcHJl
c3Npb25Ub2tlbnM7CisgICAgdW5zaWduZWQgbV9tYXhpbXVtUmVuZGVyaW5nU3VwcHJlc3Npb25U
b2tlbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202327</attachid>
            <date>2013-05-20 15:37:00 -0700</date>
            <delta_ts>2013-05-20 16:22:11 -0700</delta_ts>
            <desc>patch</desc>
            <filename>suppression-tokens.diff</filename>
            <type>text/plain</type>
            <size>13961</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiZmQwZThhLi4xZjExZGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIg
QEAKKzIwMTMtMDUtMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgQ2xpZW50cyBzaG91bGQgaGF2ZSBhIHdheSB0byBleHRlbmQgcmVuZGVyaW5nIHN1
cHByZXNzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTY0NjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEzNzM4NDk2PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgIEV4cG9ydCBGcmFtZVZpZXc6OnNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQu
CisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkKToKKyAgICAgICAgTW92ZSByZW5kZXJpbmctc3Vw
cHJlc3Npb24gd2F0Y2hkb2cgaW50byBzZXRWaXN1YWxVcGRhdGVzQWxsb3dlZChib29sKS4KKyAg
ICAgICAgc2V0VmlzdWFsVXBkYXRlc0FsbG93ZWQoUmVhZHlTdGF0ZSkgc2hvdWxkIG5vdCByZS1l
bmFibGUgdmlzdWFsIHVwZGF0ZXMKKyAgICAgICAgaWYgdGhlIGNsaWVudCBpcyBpdHNlbGYgZGlz
YWJsaW5nIHZpc3VhbCB1cGRhdGVzLgorCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6dmlz
dWFsVXBkYXRlc1N1cHByZXNzaW9uVGltZXJGaXJlZCk6CisgICAgICAgIElmIHRoZSB3YXRjaGRv
ZyBmaXJlcyBhbmQgdGhlIGNsaWVudCBpcyBzdGlsbCBkaXNhYmxpbmcgdmlzdWFsCisgICAgICAg
IHVwZGF0ZXMsIHdlIHNob3VsZCBub3QgcmUtZW5hYmxlIHZpc3VhbCB1cGRhdGVzLCBidXQgaW5z
dGVhZAorICAgICAgICB3YWl0IGZvciB0aGUgY2xpZW50LgorCisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6c2V0VmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudCk6CisgICAgICAgIEFjdHVh
bGx5IHJlLWVuYWJsZSB2aXN1YWwgdXBkYXRlcyBpZiB3ZSBkZWZlcnJlZCB0aGUgcmUtZW5hYmxp
bmcgYWJvdmUKKyAgICAgICAgKHdoZW4gdGhlIHBhZ2UgZmluaXNoZXMgbG9hZGluZywgYnV0IHRo
ZSBjbGllbnQgaGFkIHRoZW0gZGlzYWJsZWQpLgorCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6
CisgICAgICAgIChEb2N1bWVudCk6IEFkZCBzZXRWaXN1YWxVcGRhdGVzQWxsb3dlZEJ5Q2xpZW50
LgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6RnJhbWVWaWV3KTogVmlzdWFsIHVwZGF0ZXMgYXJlIGFsbG93ZWQgYnkgZGVmYXVsdC4K
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0VmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNs
aWVudCk6CisgICAgICAgIEZvcndhcmQgdGhyb3VnaCB0byB0aGUgZG9jdW1lbnQsIGJ1dCB3ZSBh
bHNvIG5lZWQgdG8gcGVyc2lzdCB0aGUgc3RhdGUKKyAgICAgICAgaGVyZSBpbiBGcmFtZVZpZXcg
c28gdGhhdCBpdCBzdXJ2aXZlcyB0aHJvdWdoIG5hdmlnYXRpb24uCisKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRWaXN1YWxVcGRh
dGVzQWxsb3dlZEJ5Q2xpZW50KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OnZpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQpOiBBZGRlZC4KKyAgICAgICAgQWRkZWQgc3Rv
cmFnZSBmb3IgbV92aXN1YWxVcGRhdGVzQWxsb3dlZEJ5Q2xpZW50LgorCiAyMDEzLTA1LTE4ICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxpZnkg
dGhlIFN0b3JhZ2VBcmVhIHNldHRlciBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXgg
YjVjYzdhMy4uMjdjMmRhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTExNjEsNiArMTE2MSw3
IEBAIF9fWk43V2ViQ29yZTlGcmFtZVZpZXcyNHBhaW50Q29udGVudHNGb3JTbmFwc2hvdEVQTlNf
MTVHcmFwaGljc0NvbnRleHRFUktOU183SW50CiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MjZhZGp1
c3RQYWdlSGVpZ2h0RGVwcmVjYXRlZEVQZmZmZgogX19aTjdXZWJDb3JlOUZyYW1lVmlldzI2YWRq
dXN0VGlsZWRCYWNraW5nQ292ZXJhZ2VFdgogX19aTjdXZWJDb3JlOUZyYW1lVmlldzI5c2V0U2hv
dWxkVXBkYXRlV2hpbGVPZmZzY3JlZW5FYgorX19aTjdXZWJDb3JlOUZyYW1lVmlldzMxc2V0Vmlz
dWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudEViCiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3MzdzZXRT
Y3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkRWIKIF9fWk43V2ViQ29yZTlGcmFtZVZp
ZXczN3VwZGF0ZUxheW91dEFuZFN0eWxlSWZOZWVkZWRSZWN1cnNpdmVFdgogX19aTjdXZWJDb3Jl
OUZyYW1lVmlldzM4c2Nyb2xsUG9zaXRpb25DaGFuZ2VkVmlhUGxhdGZvcm1XaWRnZXRFdgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNzVlYWZlOC4uNDBlNDMwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCkBAIC0xMjY0LDcgKzEyNjQsNiBAQCB2b2lkIERvY3VtZW50OjpzZXRWaXN1YWxV
cGRhdGVzQWxsb3dlZChSZWFkeVN0YXRlIHJlYWR5U3RhdGUpCiAgICAgY2FzZSBMb2FkaW5nOgog
ICAgICAgICBBU1NFUlQoIW1fdmlzdWFsVXBkYXRlc1N1cHByZXNzaW9uVGltZXIuaXNBY3RpdmUo
KSk7CiAgICAgICAgIEFTU0VSVChtX3Zpc3VhbFVwZGF0ZXNBbGxvd2VkKTsKLSAgICAgICAgbV92
aXN1YWxVcGRhdGVzU3VwcHJlc3Npb25UaW1lci5zdGFydE9uZVNob3Qoc2V0dGluZ3MoKS0+aW5j
cmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXRJblNlY29uZHMoKSk7CiAgICAgICAg
IHNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkKGZhbHNlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBJbnRlcmFjdGl2ZToKQEAgLTEyNzMsNyArMTI3MiwxMCBAQCB2b2lkIERvY3VtZW50OjpzZXRW
aXN1YWxVcGRhdGVzQWxsb3dlZChSZWFkeVN0YXRlIHJlYWR5U3RhdGUpCiAgICAgY2FzZSBDb21w
bGV0ZToKICAgICAgICAgaWYgKG1fdmlzdWFsVXBkYXRlc1N1cHByZXNzaW9uVGltZXIuaXNBY3Rp
dmUoKSkgewogICAgICAgICAgICAgQVNTRVJUKCFtX3Zpc3VhbFVwZGF0ZXNBbGxvd2VkKTsKLSAg
ICAgICAgICAgIG1fdmlzdWFsVXBkYXRlc1N1cHByZXNzaW9uVGltZXIuc3RvcCgpOworCisgICAg
ICAgICAgICBpZiAoIXZpZXcoKS0+dmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudCgpKQorICAg
ICAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICAgICAgc2V0VmlzdWFsVXBkYXRlc0FsbG93
ZWQodHJ1ZSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgQVNTRVJUKG1fdmlzdWFsVXBk
YXRlc0FsbG93ZWQpOwpAQCAtMTI4OCw2ICsxMjkwLDExIEBAIHZvaWQgRG9jdW1lbnQ6OnNldFZp
c3VhbFVwZGF0ZXNBbGxvd2VkKGJvb2wgdmlzdWFsVXBkYXRlc0FsbG93ZWQpCiAKICAgICBtX3Zp
c3VhbFVwZGF0ZXNBbGxvd2VkID0gdmlzdWFsVXBkYXRlc0FsbG93ZWQ7CiAKKyAgICBpZiAodmlz
dWFsVXBkYXRlc0FsbG93ZWQpCisgICAgICAgIG1fdmlzdWFsVXBkYXRlc1N1cHByZXNzaW9uVGlt
ZXIuc3RvcCgpOworICAgIGVsc2UKKyAgICAgICAgbV92aXN1YWxVcGRhdGVzU3VwcHJlc3Npb25U
aW1lci5zdGFydE9uZVNob3Qoc2V0dGluZ3MoKS0+aW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVz
c2lvblRpbWVvdXRJblNlY29uZHMoKSk7CisKICAgICBpZiAoIXZpc3VhbFVwZGF0ZXNBbGxvd2Vk
KQogICAgICAgICByZXR1cm47CiAKQEAgLTEzMTUsOSArMTMyMiwyMSBAQCB2b2lkIERvY3VtZW50
OjpzZXRWaXN1YWxVcGRhdGVzQWxsb3dlZChib29sIHZpc3VhbFVwZGF0ZXNBbGxvd2VkKQogdm9p
ZCBEb2N1bWVudDo6dmlzdWFsVXBkYXRlc1N1cHByZXNzaW9uVGltZXJGaXJlZChUaW1lcjxEb2N1
bWVudD4qKQogewogICAgIEFTU0VSVCghbV92aXN1YWxVcGRhdGVzQWxsb3dlZCk7CisKKyAgICAv
LyBJZiB0aGUgY2xpZW50IGlzIGV4dGVuZGluZyB0aGUgdmlzdWFsIHVwZGF0ZSBzdXBwcmVzc2lv
biBwZXJpb2QgZXhwbGljaXRseSwgdGhlCisgICAgLy8gd2F0Y2hkb2cgc2hvdWxkIG5vdCByZS1l
bmFibGUgdmlzdWFsIHVwZGF0ZXMgaXRzZWxmLCBidXQgc2hvdWxkIHdhaXQgZm9yIHRoZSBjbGll
bnQuCisgICAgaWYgKCF2aWV3KCktPnZpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQoKSkKKyAg
ICAgICAgcmV0dXJuOworCiAgICAgc2V0VmlzdWFsVXBkYXRlc0FsbG93ZWQodHJ1ZSk7CiB9CiAK
K3ZvaWQgRG9jdW1lbnQ6OnNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQoYm9vbCB2aXN1
YWxVcGRhdGVzQWxsb3dlZEJ5Q2xpZW50KQoreworICAgIGlmICh2aXN1YWxVcGRhdGVzQWxsb3dl
ZEJ5Q2xpZW50ICYmIG1fcmVhZHlTdGF0ZSA9PSBDb21wbGV0ZSAmJiAhdmlzdWFsVXBkYXRlc0Fs
bG93ZWQoKSkKKyAgICAgICAgc2V0VmlzdWFsVXBkYXRlc0FsbG93ZWQodHJ1ZSk7Cit9CisKIFN0
cmluZyBEb2N1bWVudDo6ZW5jb2RpbmcoKSBjb25zdAogewogICAgIGlmIChUZXh0UmVzb3VyY2VE
ZWNvZGVyKiBkID0gZGVjb2RlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAyZWZlNmE2Li4y
NGYwOGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTIxOCw2ICsxMjE4LDggQEAgcHVibGlj
OgogCiAgICAgdm9pZCBlbnN1cmVQbHVnSW5zSW5qZWN0ZWRTY3JpcHQoRE9NV3JhcHBlcldvcmxk
Kik7CiAKKyAgICB2b2lkIHNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQoYm9vbCk7CisK
IHByb3RlY3RlZDoKICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0IEtVUkwmLCB1bnNpZ25lZCA9
IERlZmF1bHREb2N1bWVudENsYXNzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4
IDhiZjZmYTQuLjA3MmY0NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTIwMiw2
ICsyMDIsNyBAQCBGcmFtZVZpZXc6OkZyYW1lVmlldyhGcmFtZSogZnJhbWUpCiAjaWYgRU5BQkxF
KENTU19GSUxURVJTKQogICAgICwgbV9oYXNTb2Z0d2FyZUZpbHRlcnMoZmFsc2UpCiAjZW5kaWYK
KyAgICAsIG1fdmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudCh0cnVlKQogewogICAgIGluaXQo
KTsKIApAQCAtNDE2NSw0ICs0MTY2LDE0IEBAIHZvaWQgRnJhbWVWaWV3OjpmaXJlUGFpbnRSZWxh
dGVkTWlsZXN0b25lcygpCiAgICAgfQogfQogCit2b2lkIEZyYW1lVmlldzo6c2V0VmlzdWFsVXBk
YXRlc0FsbG93ZWRCeUNsaWVudChib29sIHZpc3VhbFVwZGF0ZXNBbGxvd2VkKQoreworICAgIGlm
IChtX3Zpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQgPT0gdmlzdWFsVXBkYXRlc0FsbG93ZWQp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fdmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudCA9
IHZpc3VhbFVwZGF0ZXNBbGxvd2VkOworCisgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2V0Vmlz
dWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudCh2aXN1YWxVcGRhdGVzQWxsb3dlZCk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDk1YzM0MTEu
LmQxNjIzYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNDIzLDYgKzQyMyw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIGZpcmVQYWludFJlbGF0ZWRNaWxlc3RvbmVzKCk7CiAgICAgTGF5b3V0
TWlsZXN0b25lcyBtaWxlc3RvbmVzUGVuZGluZ1BhaW50KCkgY29uc3QgeyByZXR1cm4gbV9taWxl
c3RvbmVzUGVuZGluZ1BhaW50OyB9CiAKKyAgICBib29sIHZpc3VhbFVwZGF0ZXNBbGxvd2VkQnlD
bGllbnQoKSB7IHJldHVybiBtX3Zpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQ7IH0KKyAgICB2
b2lkIHNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQoYm9vbCk7CisKIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsQ29udGVudHNGYXN0UGF0aChjb25zdCBJbnRTaXplJiBz
Y3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBj
bGlwUmVjdCk7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbENvbnRlbnRzU2xvd1BhdGgoY29uc3Qg
SW50UmVjdCYgdXBkYXRlUmVjdCk7CkBAIC02MzgsNiArNjQxLDggQEAgcHJpdmF0ZToKICAgICAv
LyB0aGUgdmlld3BvcnQgZ2l2ZW4gYnkgdGhlIHdpbmRvdyBvciB2aWV3aW5nIGFyZWEgb2YgdGhl
IFVBLgogICAgIEludFNpemUgbV9pbml0aWFsVmlld3BvcnRTaXplOwogI2VuZGlmCisKKyAgICBi
b29sIG1fdmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudDsKIH07CiAKIGlubGluZSB2b2lkIEZy
YW1lVmlldzo6aW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eUNoYXJhY3RlckNvdW50KHVuc2lnbmVk
IGNvdW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IGU2NTIwODcuLmM1NTIyZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxMy0wNS0yMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KKworICAgICAgICBDbGllbnRzIHNob3VsZCBoYXZlIGEgd2F5IHRvIGV4dGVuZCByZW5k
ZXJpbmcgc3VwcHJlc3Npb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExNjQ2MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTM3Mzg0OTY+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXS0J1bmRs
ZVBhZ2VFeHRlbmRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uKTogQWRkZWQuCisgICAg
ICAgIChXS0J1bmRsZVBhZ2VTdG9wRXh0ZW5kaW5nSW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVz
c2lvbik6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlUHJpdmF0ZS5oOgorICAgICAgICBUaGVzZSBvbmx5IGhhdmUgYW55IGVmZmVj
dCBpZiBTdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmcgaXMgYWxzbyBlbmFibGVkLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9D
b21taXR0ZWRGb3JOZXdQYWdlKToKKyAgICAgICAgSW5mb3JtIHRoZSBGcmFtZVZpZXcgaWYgdGhl
cmUgYXJlIGFueSBvdXRzdGFuZGluZyByZW5kZXJpbmcgc3VwcHJlc3Npb24gdG9rZW5zLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZXh0ZW5kSW5j
cmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvbik6CisgICAgICAgIFJldHVybiB0aGUgbmV4dCBh
dmFpbGFibGUgcmVuZGVyaW5nIHN1cHByZXNzaW9uIHRva2VuLgorICAgICAgICBBZGQgaXQgdG8g
dGhlIGxpc3Qgb2YgYWN0aXZlIHRva2Vucy4KKyAgICAgICAgSW5mb3JtIHRoZSBGcmFtZVZpZXcg
dGhhdCB3ZSB3YW50IHRvIHN1cHByZXNzIHJlbmRlcmluZy4KKworICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpzdG9wRXh0ZW5kaW5nSW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvbik6Cisg
ICAgICAgIFJlbW92ZSB0aGUgZ2l2ZW4gdG9rZW4gZnJvbSB0aGUgbGlzdCBvZiBhY3RpdmUgdG9r
ZW5zLgorICAgICAgICBVbi1zdXBwcmVzcyByZW5kZXJpbmcgaWYgYXBwcm9wcmlhdGUuCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpzaG91bGRFeHRlbmRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uKToKKyAg
ICAgICAgUmV0dXJuIGlmIHRoZXJlIGFyZSBhbnkgYWN0aXZlIHJlbmRlcmluZyBzdXBwcmVzc2lv
biB0b2tlbnMuCisKIDIwMTMtMDUtMTggIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxl
LmNvbT4KIAogICAgICAgICBTaW1wbGlmeSB0aGUgU3RvcmFnZUFyZWEgc2V0dGVyIGZ1bmN0aW9u
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCmluZGV4IDNkNWU4ZTEuLmQ0NWU0OGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKQEAgLTUwNiwzICs1MDYsMTMgQEAgYm9vbCBX
S0J1bmRsZVBhZ2VDYW5TaG93TUlNRVR5cGUoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdLU3Ry
aW5nUmVmIG1pbWVUeXBlUmUKIHsKICAgICByZXR1cm4gdG9JbXBsKHBhZ2VSZWYpLT5jYW5TaG93
TUlNRVR5cGUodG9XVEZTdHJpbmcobWltZVR5cGVSZWYpKTsKIH0KKworV0tSZW5kZXJpbmdTdXBw
cmVzc2lvblRva2VuIFdLQnVuZGxlUGFnZUV4dGVuZEluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJl
c3Npb24oV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwYWdl
UmVmKS0+ZXh0ZW5kSW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvbigpOworfQorCit2b2lk
IFdLQnVuZGxlUGFnZVN0b3BFeHRlbmRpbmdJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9u
KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS1JlbmRlcmluZ1N1cHByZXNzaW9uVG9rZW4gdG9r
ZW4pCit7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5zdG9wRXh0ZW5kaW5nSW5jcmVtZW50YWxSZW5k
ZXJpbmdTdXBwcmVzc2lvbih0b2tlbik7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdl
UHJpdmF0ZS5oCmluZGV4IDlhNTI2ODcuLjA5MDg0YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlUHJpdmF0ZS5oCkBAIC04MSw2ICs4MSwxMSBAQCBXS19FWFBPUlQgdm9pZCogV0tB
Y2Nlc3NpYmlsaXR5Rm9jdXNlZE9iamVjdChXS0J1bmRsZVBhZ2VSZWYpOwogV0tfRVhQT1JUIFdL
QXJyYXlSZWYgV0tCdW5kbGVQYWdlQ29weUNvbnRleHRNZW51SXRlbVRpdGxlcyhXS0J1bmRsZVBh
Z2VSZWYpOwogV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tCdW5kbGVQYWdlQ29weUNvbnRleHRNZW51
QXRQb2ludEluV2luZG93KFdLQnVuZGxlUGFnZVJlZiwgV0tQb2ludCk7CiAKKy8vIFRoaXMgb25s
eSB3b3JrcyBpZiB0aGUgU3VwcHJlc3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nIHByZWZlcmVuY2Ug
aXMgc2V0IGFzIHdlbGwuCit0eXBlZGVmIHVuc2lnbmVkIFdLUmVuZGVyaW5nU3VwcHJlc3Npb25U
b2tlbjsKK1dLX0VYUE9SVCBXS1JlbmRlcmluZ1N1cHByZXNzaW9uVG9rZW4gV0tCdW5kbGVQYWdl
RXh0ZW5kSW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvbihXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSkgV0FSTl9VTlVTRURfUkVUVVJOOworV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU3RvcEV4
dGVuZGluZ0luY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb24oV0tCdW5kbGVQYWdlUmVmIHBh
Z2UsIFdLUmVuZGVyaW5nU3VwcHJlc3Npb25Ub2tlbiB0b2tlbik7CisKICNpZmRlZiBfX2NwbHVz
cGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDEx
M2UzNjIuLjBlZjdkZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0x
MjMwLDYgKzEyMzAsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9D
b21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICAgICAgbV9mcmFtZS0+Y29yZUZyYW1lKCktPnZpZXco
KS0+ZW5hYmxlQXV0b1NpemVNb2RlKHRydWUsIEludFNpemUobWluaW11bUxheW91dFdpZHRoLCAx
KSwgSW50U2l6ZShtYXhpbXVtU2l6ZSwgbWF4aW11bVNpemUpKTsKIAogICAgIG1fZnJhbWUtPmNv
cmVGcmFtZSgpLT52aWV3KCktPnNldFByb2hpYml0c1Njcm9sbGluZyhzaG91bGREaXNhYmxlU2Ny
b2xsaW5nKTsKKyAgICBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+dmlldygpLT5zZXRWaXN1YWxVcGRh
dGVzQWxsb3dlZEJ5Q2xpZW50KCF3ZWJQYWdlLT5zaG91bGRFeHRlbmRJbmNyZW1lbnRhbFJlbmRl
cmluZ1N1cHByZXNzaW9uKCkpOwogCiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAg
aWYgKHNob3VsZFVzZUZpeGVkTGF5b3V0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZjZiMmRhNi4uOTE2MGU0MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMjg3LDYgKzI4Nyw3
IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogI2VuZGlmCiAgICAgLCBtX2luc3BlY3RvckNsaWVu
dCgwKQogICAgICwgbV9iYWNrZ3JvdW5kQ29sb3IoQ29sb3I6OndoaXRlKQorICAgICwgbV9tYXhp
bXVtUmVuZGVyaW5nU3VwcHJlc3Npb25Ub2tlbigwKQogewogICAgIEFTU0VSVChtX3BhZ2VJRCk7
CiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYSBub24taWRlYWwgbG9jYXRpb24gZm9yIHRoaXMgU2V0
dGluZyBhbmQKQEAgLTQxODMsNCArNDE4NCwyMyBAQCB2b2lkIFdlYlBhZ2U6OnJlcG9ydFVzZWRG
ZWF0dXJlcygpCiAgICAgbV9sb2FkZXJDbGllbnQuZmVhdHVyZXNVc2VkSW5QYWdlKHRoaXMsIG5h
bWVkRmVhdHVyZXMpOwogfQogCit1bnNpZ25lZCBXZWJQYWdlOjpleHRlbmRJbmNyZW1lbnRhbFJl
bmRlcmluZ1N1cHByZXNzaW9uKCkKK3sKKyAgICB1bnNpZ25lZCB0b2tlbiA9ICsrbV9tYXhpbXVt
UmVuZGVyaW5nU3VwcHJlc3Npb25Ub2tlbjsKKworICAgIG1fYWN0aXZlUmVuZGVyaW5nU3VwcHJl
c3Npb25Ub2tlbnMuYWRkKHRva2VuKTsKKyAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCkt
PnNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkQnlDbGllbnQoZmFsc2UpOworCisgICAgcmV0dXJuIHRv
a2VuOworfQorCit2b2lkIFdlYlBhZ2U6OnN0b3BFeHRlbmRpbmdJbmNyZW1lbnRhbFJlbmRlcmlu
Z1N1cHByZXNzaW9uKHVuc2lnbmVkIHRva2VuKQoreworICAgIGlmICghbV9hY3RpdmVSZW5kZXJp
bmdTdXBwcmVzc2lvblRva2Vucy5jb250YWlucyh0b2tlbikpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fYWN0aXZlUmVuZGVyaW5nU3VwcHJlc3Npb25Ub2tlbnMucmVtb3ZlKHRva2VuKTsKKyAg
ICBtX3BhZ2UtPm1haW5GcmFtZSgpLT52aWV3KCktPnNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkQnlD
bGllbnQoIXNob3VsZEV4dGVuZEluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb24oKSk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKaW5kZXggODU0NTY4NS4uYWM5NTNiOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02NTYsNiArNjU2LDEwIEBAIHB1Ymxp
YzoKICAgICBib29sIG1hdGNoZXNQcmltYXJ5UGx1Z0luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdp
biwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNv
bnN0OwogI2VuZGlmCiAKKyAgICB1bnNpZ25lZCBleHRlbmRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1
cHByZXNzaW9uKCk7CisgICAgdm9pZCBzdG9wRXh0ZW5kaW5nSW5jcmVtZW50YWxSZW5kZXJpbmdT
dXBwcmVzc2lvbih1bnNpZ25lZCB0b2tlbik7CisgICAgYm9vbCBzaG91bGRFeHRlbmRJbmNyZW1l
bnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uKCkgeyByZXR1cm4gIW1fYWN0aXZlUmVuZGVyaW5nU3Vw
cHJlc3Npb25Ub2tlbnMuaXNFbXB0eSgpOyB9CisKIHByaXZhdGU6CiAgICAgV2ViUGFnZSh1aW50
NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKIApAQCAtMTAx
NSw2ICsxMDE5LDkgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hTZXQ8U3RyaW5nLCBDYXNlRm9sZGlu
Z0hhc2g+IG1fbWltZVR5cGVzV2l0aEN1c3RvbVJlcHJlc2VudGF0aW9uczsKICAgICBXZWJDb3Jl
OjpDb2xvciBtX2JhY2tncm91bmRDb2xvcjsKKworICAgIEhhc2hTZXQ8dW5zaWduZWQ+IG1fYWN0
aXZlUmVuZGVyaW5nU3VwcHJlc3Npb25Ub2tlbnM7CisgICAgdW5zaWduZWQgbV9tYXhpbXVtUmVu
ZGVyaW5nU3VwcHJlc3Npb25Ub2tlbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>
<flag name="review"
          id="223756"
          type_id="1"
          status="+"
          setter="aestes"
    />
          </attachment>
      

    </bug>

</bugzilla>