<?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>34942</bug_id>
          
          <creation_ts>2010-02-15 07:26:51 -0800</creation_ts>
          <short_desc>Fullscreen API naming is inconsistent</short_desc>
          <delta_ts>2010-03-12 18:15:50 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.6</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="Antoine Quint">ml</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bdakin</cc>
    
    <cc>cmarrin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>190451</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">ml</who>
    <bug_when>2010-02-15 07:26:51 -0800</bug_when>
    <thetext>We currently have the following custom APIs for the &lt;video&gt; element in order to enter full-screen:

    readonly attribute boolean webkitSupportsFullscreen;
    readonly attribute boolean webkitDisplayingFullscreen;

    void webkitEnterFullScreen()
        raises (DOMException);
    void webkitExitFullScreen();

Note that the properties use a lower-case &quot;s&quot; for &quot;screen&quot; while the methods use an uppercase &quot;S&quot; for &quot;Screen&quot;. I believe the &quot;S&quot; should be uppercase in all instances, but more importantly, the naming should be consistent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191057</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2010-02-17 09:18:55 -0800</bug_when>
    <thetext>This inconsistency extends to the rest of the code, so I&apos;d like us to go through and make it consistent throughout when fixing this. When doing fullscreen for Windows, I was careful to use Fullscreen throughout. That seems to be the more common usage in the rest of the code (although not by much) and I think it makes sense if you consider &quot;fullscreen&quot; to be one word rather than two.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197272</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-03-08 12:32:07 -0800</bug_when>
    <thetext>&lt;rdar://problem/7729165&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199256</commentid>
    <comment_count>3</comment_count>
      <attachid>50643</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2010-03-12 17:05:17 -0800</bug_when>
    <thetext>Created attachment 50643
Patch

I polled the audience and &quot;fullscreen&quot; won.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199259</commentid>
    <comment_count>4</comment_count>
      <attachid>50643</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-03-12 17:17:15 -0800</bug_when>
    <thetext>Comment on attachment 50643
Patch

&gt; Index: WebCore/html/HTMLVideoElement.idl
&gt; ===================================================================
&gt; --- WebCore/html/HTMLVideoElement.idl	(revision 55928)
&gt; +++ WebCore/html/HTMLVideoElement.idl	(working copy)
&gt; @@ -33,6 +33,10 @@ module html {
&gt;  
&gt;          readonly attribute boolean webkitSupportsFullscreen;
&gt;          readonly attribute boolean webkitDisplayingFullscreen;
&gt; +
&gt; +        [NeedsUserGestureCheck] void webkitEnterFullscreen()
&gt; +            raises (DOMException);
&gt; +        void webkitExitFullscreen();
&gt;      
&gt;          [NeedsUserGestureCheck] void webkitEnterFullScreen()
&gt;              raises (DOMException);

I think you file a bugzilla to remove the old versions, and add a comment referencing it.

&gt; Index: WebKit/mac/ChangeLog
&gt; ===================================================================
&gt; --- WebKit/mac/ChangeLog	(revision 55944)
&gt; +++ WebKit/mac/ChangeLog	(working copy)
&gt; @@ -1,3 +1,31 @@
&gt; +2010-03-12  Beth Dakin  &lt;bdakin@apple.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Fix for https://bugs.webkit.org/show_bug.cgi?id=34942 Fullscreen 
&gt; +        API naming is inconsistent
&gt; +        -and corresponding-
&gt; +        &lt;rdar://problem/7729165&gt;
&gt; +
&gt; +        This patch changes all occurrences of &quot;fullScreen&quot; to the more 
&gt; +        popular &quot;fullscreen.&quot;
&gt; +
&gt; +        * Plugins/Hosted/NetscapePluginHostProxy.h:
&gt; +        (WebKit::NetscapePluginHostProxy::isFullscreenWindowShowing):
&gt; +        * Plugins/Hosted/NetscapePluginHostProxy.mm:
&gt; +        (WebKit::NetscapePluginHostProxy::NetscapePluginHostProxy):
&gt; +        (WebKit::NetscapePluginHostProxy::didEnterFullscreen):
&gt; +        (WebKit::NetscapePluginHostProxy::didExitFullscreen):
&gt; +        (WebKit::NetscapePluginHostProxy::setFullscreenWindowIsShowing):
&gt; +        (WKPCSetFullscreenWindowIsShowing):
&gt; +        * Plugins/Hosted/WebKitPluginClient.defs:
&gt; +        * Plugins/WebNetscapePluginView.mm:
&gt; +        (-[WebNetscapePluginView _workaroundSilverlightFullscreenBug:]):
&gt; +        (-[WebNetscapePluginView _createPlugin]):
&gt; +        (-[WebNetscapePluginView _destroyPlugin]):
&gt; +        * WebView/WebVideoFullscreenHUDWindowController.mm:
&gt; +        (-[WebVideoFullscreenHUDWindowController windowDidLoad]):

I think it&apos;s fine if you don&apos;t change the plugin-related code in this patch; up to you.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199269</commentid>
    <comment_count>5</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2010-03-12 17:41:15 -0800</bug_when>
    <thetext>Fixed with r55946.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199278</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-12 18:15:50 -0800</bug_when>
    <thetext>This may have broken video tests on Snow Leopard:
media/video-source-none-supported.html	expected	actual	diff	pretty diff
plugins/keyboard-events.html	expected	actual	diff	pretty diff
http/tests/media/video-cancel-load.html	expected	actual	diff	pretty diff

http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20(Tests)/r55947%20(6631)/results.html

But the Snow Leopard Bot it so flakey it&apos;s difficult to tell.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50643</attachid>
            <date>2010-03-12 17:05:17 -0800</date>
            <delta_ts>2010-03-12 17:17:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>forReview.txt</filename>
            <type>text/plain</type>
            <size>18385</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTk0NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTAtMDMtMTIgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBm
b3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0OTQyIEZ1bGxzY3Jl
ZW4gCisgICAgICAgIEFQSSBuYW1pbmcgaXMgaW5jb25zaXN0ZW50CisgICAgICAgIC1hbmQgY29y
cmVzcG9uZGluZy0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc3MjkxNjU+CisKKyAgICAgICAg
VGhpcyBwYXRjaCBjaGFuZ2VzIGFsbCBvY2N1cnJlbmNlcyBvZiAiZnVsbFNjcmVlbiIgdG8gdGhl
IG1vcmUgCisgICAgICAgIHBvcHVsYXIgImZ1bGxzY3JlZW4uIiB3ZWJraXRFbnRlckZ1bGxTY3Jl
ZW4gYW5kIAorICAgICAgICB3ZWJraXRFeGl0RnVsbFNjcmVlbiBoYXZlIGJlZW4gbWFpbnRhaW5l
ZCBmb3Igbm93IGZvciBiYWNrd2FyZHMgCisgICAgICAgIGNvbXBhdGliaWxpdHkuIAorCisgICAg
ICAgICogaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxW
aWRlb0VsZW1lbnQ6OndlYmtpdEVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVmlkZW9FbGVtZW50Ojp3ZWJraXRFeGl0RnVsbHNjcmVlbik6CisgICAgICAgICogaHRtbC9I
VE1MVmlkZW9FbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Ojp3
ZWJraXRFbnRlckZ1bGxTY3JlZW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVu
dDo6d2Via2l0RXhpdEZ1bGxTY3JlZW4pOgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVu
dC5pZGw6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJveHku
aDoKKwogMjAxMC0wMy0xMSAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCkluZGV4OiBXZWJDb3JlL2h0
bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxW
aWRlb0VsZW1lbnQuY3BwCShyZXZpc2lvbiA1NTkyOCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MVmlk
ZW9FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE0LDcgKzIxNCw3IEBAIGJvb2wgSFRN
TFZpZGVvRWxlbWVudDo6aGFzQXZhaWxhYmxlVmlkZW8KICAgICByZXR1cm4gcGxheWVyKCktPmhh
c0F2YWlsYWJsZVZpZGVvRnJhbWUoKTsKIH0KIAotdm9pZCBIVE1MVmlkZW9FbGVtZW50Ojp3ZWJr
aXRFbnRlckZ1bGxTY3JlZW4oYm9vbCBpc1VzZXJHZXN0dXJlLCBFeGNlcHRpb25Db2RlJiBlYykK
K3ZvaWQgSFRNTFZpZGVvRWxlbWVudDo6d2Via2l0RW50ZXJGdWxsc2NyZWVuKGJvb2wgaXNVc2Vy
R2VzdHVyZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKGlzRnVsbHNjcmVlbigpKQog
ICAgICAgICByZXR1cm47CkBAIC0yMjksNyArMjI5LDcgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50
Ojp3ZWJraXRFbnRlckZ1bGxTYwogICAgIGVudGVyRnVsbHNjcmVlbigpOwogfQogCi12b2lkIEhU
TUxWaWRlb0VsZW1lbnQ6OndlYmtpdEV4aXRGdWxsU2NyZWVuKCkKK3ZvaWQgSFRNTFZpZGVvRWxl
bWVudDo6d2Via2l0RXhpdEZ1bGxzY3JlZW4oKQogewogICAgIGlmIChpc0Z1bGxzY3JlZW4oKSkK
ICAgICAgICAgZXhpdEZ1bGxzY3JlZW4oKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MVmlkZW9F
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAko
cmV2aXNpb24gNTU5MjgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OSwxMiArNDksMTYgQEAgcHVibGljOgogICAgIGNvbnN0IEtVUkwmIHBv
c3RlcigpIGNvbnN0IHsgcmV0dXJuIG1fcG9zdGVyVVJMOyB9CiAgICAgdm9pZCBzZXRQb3N0ZXIo
Y29uc3QgU3RyaW5nJik7CiAKLS8vIGZ1bGxzY3JlZW4KLSAgICB2b2lkIHdlYmtpdEVudGVyRnVs
bFNjcmVlbihib29sIGlzVXNlckdlc3R1cmUsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHdl
YmtpdEV4aXRGdWxsU2NyZWVuKCk7CisgICAgLy8gRnVsbHNjcmVlbgorICAgIHZvaWQgd2Via2l0
RW50ZXJGdWxsc2NyZWVuKGJvb2wgaXNVc2VyR2VzdHVyZSwgRXhjZXB0aW9uQ29kZSYpOworICAg
IHZvaWQgd2Via2l0RXhpdEZ1bGxzY3JlZW4oKTsKICAgICBib29sIHdlYmtpdFN1cHBvcnRzRnVs
bHNjcmVlbigpOwogICAgIGJvb2wgd2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4oKTsKIAorICAg
IC8vIE1haW50YWluICJGdWxsU2NyZWVuIiBjYXBpdGFsaXphdGlvbiBzY2hlbWUgZm9yIGJhY2t3
YXJkcyBjb21wYXRpYmlsaXR5LgorICAgIHZvaWQgd2Via2l0RW50ZXJGdWxsU2NyZWVuKGJvb2wg
aXNVc2VyR2VzdHVyZSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgd2Via2l0RW50ZXJGdWxsc2NyZWVu
KGlzVXNlckdlc3R1cmUsIGVjKTsgfQorICAgIHZvaWQgd2Via2l0RXhpdEZ1bGxTY3JlZW4oKSB7
IHdlYmtpdEV4aXRGdWxsc2NyZWVuKCk7IH0KKwogICAgIGJvb2wgc2hvdWxkRGlzcGxheVBvc3Rl
ckltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGREaXNwbGF5UG9zdGVySW1hZ2U7IH0KIAog
ICAgIC8vIFVzZWQgYnkgY2FudmFzIHRvIGdhaW4gcmF3IHBpeGVsIGFjY2VzcwpJbmRleDogV2Vi
Q29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRt
bC9IVE1MVmlkZW9FbGVtZW50LmlkbAkocmV2aXNpb24gNTU5MjgpCisrKyBXZWJDb3JlL2h0bWwv
SFRNTFZpZGVvRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDEwIEBAIG1v
ZHVsZSBodG1sIHsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiB3ZWJraXRT
dXBwb3J0c0Z1bGxzY3JlZW47CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHdl
YmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuOworCisgICAgICAgIFtOZWVkc1VzZXJHZXN0dXJlQ2hl
Y2tdIHZvaWQgd2Via2l0RW50ZXJGdWxsc2NyZWVuKCkKKyAgICAgICAgICAgIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCB3ZWJraXRFeGl0RnVsbHNjcmVlbigpOwogICAgIAog
ICAgICAgICBbTmVlZHNVc2VyR2VzdHVyZUNoZWNrXSB2b2lkIHdlYmtpdEVudGVyRnVsbFNjcmVl
bigpCiAgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CkluZGV4OiBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByb3h5LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcm94eS5oCShyZXZpc2lvbiA1
NTkyOCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJveHku
aAkod29ya2luZyBjb3B5KQpAQCAtNDAsOCArNDAsOCBAQCBlbnVtIE1lZGlhUGxheWVyUHJveHlO
b3RpZmljYXRpb25UeXBlIHsKICAgICBNZWRpYVBsYXllck5vdGlmaWNhdGlvblN0YXJ0VXNpbmdO
ZXR3b3JrLAogICAgIE1lZGlhUGxheWVyTm90aWZpY2F0aW9uU3RvcFVzaW5nTmV0d29yaywKIAot
ICAgIE1lZGlhUGxheWVyTm90aWZpY2F0aW9uRW50ZXJlZEZ1bGxTY3JlZW4sCi0gICAgTWVkaWFQ
bGF5ZXJOb3RpZmljYXRpb25FeGl0ZWRGdWxsU2NyZWVuLAorICAgIE1lZGlhUGxheWVyTm90aWZp
Y2F0aW9uRW50ZXJlZEZ1bGxzY3JlZW4sCisgICAgTWVkaWFQbGF5ZXJOb3RpZmljYXRpb25FeGl0
ZWRGdWxsc2NyZWVuLAogICAgIAogICAgIE1lZGlhUGxheWVyTm90aWZpY2F0aW9uUmVhZHlGb3JJ
bnNwZWN0aW9uLAogICAgIE1lZGlhUGxheWVyTm90aWZpY2F0aW9uUmVhZHlGb3JQbGF5YmFjaywK
SW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hh
bmdlTG9nCShyZXZpc2lvbiA1NTk0NCkKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTAtMDMtMTIgIEJldGggRGFraW4gIDxiZGFraW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZpeCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0OTQy
IEZ1bGxzY3JlZW4gCisgICAgICAgIEFQSSBuYW1pbmcgaXMgaW5jb25zaXN0ZW50CisgICAgICAg
IC1hbmQgY29ycmVzcG9uZGluZy0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc3MjkxNjU+CisK
KyAgICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIGFsbCBvY2N1cnJlbmNlcyBvZiAiZnVsbFNjcmVl
biIgdG8gdGhlIG1vcmUgCisgICAgICAgIHBvcHVsYXIgImZ1bGxzY3JlZW4uIgorCisgICAgICAg
ICogUGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkuaDoKKyAgICAgICAgKFdl
YktpdDo6TmV0c2NhcGVQbHVnaW5Ib3N0UHJveHk6OmlzRnVsbHNjcmVlbldpbmRvd1Nob3dpbmcp
OgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tOgor
ICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6TmV0c2NhcGVQbHVnaW5I
b3N0UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6ZGlk
RW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5Ib3N0UHJv
eHk6OmRpZEV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5I
b3N0UHJveHk6OnNldEZ1bGxzY3JlZW5XaW5kb3dJc1Nob3dpbmcpOgorICAgICAgICAoV0tQQ1Nl
dEZ1bGxzY3JlZW5XaW5kb3dJc1Nob3dpbmcpOgorICAgICAgICAqIFBsdWdpbnMvSG9zdGVkL1dl
YktpdFBsdWdpbkNsaWVudC5kZWZzOgorICAgICAgICAqIFBsdWdpbnMvV2ViTmV0c2NhcGVQbHVn
aW5WaWV3Lm1tOgorICAgICAgICAoLVtXZWJOZXRzY2FwZVBsdWdpblZpZXcgX3dvcmthcm91bmRT
aWx2ZXJsaWdodEZ1bGxzY3JlZW5CdWc6XSk6CisgICAgICAgICgtW1dlYk5ldHNjYXBlUGx1Z2lu
VmlldyBfY3JlYXRlUGx1Z2luXSk6CisgICAgICAgICgtW1dlYk5ldHNjYXBlUGx1Z2luVmlldyBf
ZGVzdHJveVBsdWdpbl0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVE
V2luZG93Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2lu
ZG93Q29udHJvbGxlciB3aW5kb3dEaWRMb2FkXSk6CisKIDIwMTAtMDMtMTIgIEFuZHkgRXN0ZXMg
IDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEJyYWR5IEVpZHNvbi4K
SW5kZXg6IFdlYktpdC9tYWMvUGx1Z2lucy9XZWJOZXRzY2FwZVBsdWdpblZpZXcubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L21hYy9QbHVnaW5zL1dlYk5ldHNjYXBlUGx1Z2luVmlldy5tbQkocmV2
aXNpb24gNTU5MjgpCisrKyBXZWJLaXQvbWFjL1BsdWdpbnMvV2ViTmV0c2NhcGVQbHVnaW5WaWV3
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC04Miw3ICs4Miw3IEBACiAjZGVmaW5lIExvZ2luV2luZG93
RGlkU3dpdGNoRnJvbVVzZXJOb3RpZmljYXRpb24gICAgQCJXZWJMb2dpbldpbmRvd0RpZFN3aXRj
aEZyb21Vc2VyTm90aWZpY2F0aW9uIgogI2RlZmluZSBMb2dpbldpbmRvd0RpZFN3aXRjaFRvVXNl
ck5vdGlmaWNhdGlvbiAgICAgIEAiV2ViTG9naW5XaW5kb3dEaWRTd2l0Y2hUb1VzZXJOb3RpZmlj
YXRpb24iCiAjZGVmaW5lIFdLTlZTdXBwb3J0c0NvbXBvc2l0aW5nQ29yZUFuaW1hdGlvblBsdWdp
bnNCb29sIDc0NjU2ICAvKiBUUlVFIGlmIHRoZSBicm93c2VyIHN1cHBvcnRzIGhhcmR3YXJlIGNv
bXBvc2l0aW5nIG9mIENvcmUgQW5pbWF0aW9uIHBsdWctaW5zICAqLwotc3RhdGljIGNvbnN0IGlu
dCBXS05WU2lsdmVybGlnaHRGdWxsU2NyZWVuUGVyZm9ybWFuY2VJc3N1ZUZpeGVkID0gNzI4ODU0
NjsgLyogVFJVRSBpZiBTaXZlcmxpZ2h0IGFkZHJlc3NlZCBpdHMgdW5kZXJseWluZyAgYnVnIGlu
IDxyZGFyOi8vcHJvYmxlbS83Mjg4NTQ2PiAqLworc3RhdGljIGNvbnN0IGludCBXS05WU2lsdmVy
bGlnaHRGdWxsc2NyZWVuUGVyZm9ybWFuY2VJc3N1ZUZpeGVkID0gNzI4ODU0NjsgLyogVFJVRSBp
ZiBTaXZlcmxpZ2h0IGFkZHJlc3NlZCBpdHMgdW5kZXJseWluZyAgYnVnIGluIDxyZGFyOi8vcHJv
YmxlbS83Mjg4NTQ2PiAqLwogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CkBAIC0yMzEwLDEzICsyMzEwLDEzIEBAIC0gKEJPT0wpX3Nob3VsZENhbmNl
bFNyY1N0cmVhbQogLy8gMSkgTWljcm9zb2Z0IHJlbGVhc2VzIGEgZ2VudWluZSBmaXggZm9yIDcy
ODg1NDYuCiAvLyAyKSBFbm91Z2ggU2lsdmVybGlnaHQgdXNlcnMgdXBkYXRlIHRvIHRoZSBuZXcg
U2lsdmVybGlnaHQuCiAvLyBGb3Igbm93LCB3ZSdsbCBkaXN0aW5ndWlzaCBvbGRlciBicm9rZW4g
dmVyc2lvbnMgb2YgU2lsdmVybGlnaHQgYnkgYXNraW5nIHRoZSBwbHVnLWluIGlmIGl0IHJlc29s
dmVkIGl0cyBmdWxsIHNjcmVlbiBiYWRuZXNzLgotLSAodm9pZClfd29ya2Fyb3VuZFNpbHZlcmxp
Z2h0RnVsbFNjcmVlbkJ1ZzooQk9PTClpbml0aWFsaXplZFBsdWdpbgorLSAodm9pZClfd29ya2Fy
b3VuZFNpbHZlcmxpZ2h0RnVsbHNjcmVlbkJ1ZzooQk9PTClpbml0aWFsaXplZFBsdWdpbgogewog
I2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9M
RU9QQVJEKQogICAgIEFTU0VSVChfaXNTaWx2ZXJsaWdodCk7Ci0gICAgTlBCb29sIGlzRnVsbFNj
cmVlblBlcmZvcm1hbmNlSXNzdWVGaXhlZCA9IDA7CisgICAgTlBCb29sIGlzRnVsbHNjcmVlblBl
cmZvcm1hbmNlSXNzdWVGaXhlZCA9IDA7CiAgICAgTlBQbHVnaW5GdW5jcyAqcGx1Z2luRnVuY3Mg
PSBbX3BsdWdpblBhY2thZ2UuZ2V0KCkgcGx1Z2luRnVuY3NdOwotICAgIGlmIChwbHVnaW5GdW5j
cy0+Z2V0dmFsdWUgJiYgcGx1Z2luRnVuY3MtPmdldHZhbHVlKHBsdWdpbiwgc3RhdGljX2Nhc3Q8
TlBQVmFyaWFibGU+KFdLTlZTaWx2ZXJsaWdodEZ1bGxTY3JlZW5QZXJmb3JtYW5jZUlzc3VlRml4
ZWQpLCAmaXNGdWxsU2NyZWVuUGVyZm9ybWFuY2VJc3N1ZUZpeGVkKSA9PSBOUEVSUl9OT19FUlJP
UiAmJiBpc0Z1bGxTY3JlZW5QZXJmb3JtYW5jZUlzc3VlRml4ZWQpCisgICAgaWYgKHBsdWdpbkZ1
bmNzLT5nZXR2YWx1ZSAmJiBwbHVnaW5GdW5jcy0+Z2V0dmFsdWUocGx1Z2luLCBzdGF0aWNfY2Fz
dDxOUFBWYXJpYWJsZT4oV0tOVlNpbHZlcmxpZ2h0RnVsbHNjcmVlblBlcmZvcm1hbmNlSXNzdWVG
aXhlZCksICZpc0Z1bGxzY3JlZW5QZXJmb3JtYW5jZUlzc3VlRml4ZWQpID09IE5QRVJSX05PX0VS
Uk9SICYmIGlzRnVsbHNjcmVlblBlcmZvcm1hbmNlSXNzdWVGaXhlZCkKICAgICAgICAgcmV0dXJu
OwogICAgIAogICAgIHN0YXRpYyBDR0xQaXhlbEZvcm1hdE9iaiBwaXhlbEZvcm1hdE9iamVjdCA9
IDA7CkBAIC0yMzU3LDcgKzIzNTcsNyBAQCAtIChOUEVycm9yKV9jcmVhdGVQbHVnaW4KICAgICBO
UEVycm9yIG5wRXJyID0gW19wbHVnaW5QYWNrYWdlLmdldCgpIHBsdWdpbkZ1bmNzXS0+bmV3cCgo
Y2hhciAqKVtfTUlNRVR5cGUuZ2V0KCkgY1N0cmluZ10sIHBsdWdpbiwgX21vZGUsIGFyZ3NDb3Vu
dCwgY0F0dHJpYnV0ZXMsIGNWYWx1ZXMsIE5VTEwpOwogICAgIFtbc2VsZiBjbGFzc10gc2V0Q3Vy
cmVudFBsdWdpblZpZXc6bmlsXTsKICAgICBpZiAoX2lzU2lsdmVybGlnaHQpCi0gICAgICAgIFtz
ZWxmIF93b3JrYXJvdW5kU2lsdmVybGlnaHRGdWxsU2NyZWVuQnVnOllFU107CisgICAgICAgIFtz
ZWxmIF93b3JrYXJvdW5kU2lsdmVybGlnaHRGdWxsc2NyZWVuQnVnOllFU107CiAgICAgTE9HKFBs
dWdpbnMsICJOUFBfTmV3OiAlZCIsIG5wRXJyKTsKICAgICByZXR1cm4gbnBFcnI7CiB9CkBAIC0y
MzY3LDcgKzIzNjcsNyBAQCAtICh2b2lkKV9kZXN0cm95UGx1Z2luCiAgICAgUGx1Z2luTWFpblRo
cmVhZFNjaGVkdWxlcjo6c2NoZWR1bGVyKCkudW5yZWdpc3RlclBsdWdpbihwbHVnaW4pOwogICAg
IAogICAgIGlmIChfaXNTaWx2ZXJsaWdodCkKLSAgICAgICAgW3NlbGYgX3dvcmthcm91bmRTaWx2
ZXJsaWdodEZ1bGxTY3JlZW5CdWc6Tk9dOworICAgICAgICBbc2VsZiBfd29ya2Fyb3VuZFNpbHZl
cmxpZ2h0RnVsbHNjcmVlbkJ1ZzpOT107CiAgICAgCiAgICAgTlBFcnJvciBucEVycjsKICAgICBu
cEVyciA9ICFbX3BsdWdpblBhY2thZ2UuZ2V0KCkgcGx1Z2luRnVuY3NdLT5kZXN0cm95KHBsdWdp
biwgTlVMTCk7CkluZGV4OiBXZWJLaXQvbWFjL1BsdWdpbnMvSG9zdGVkL05ldHNjYXBlUGx1Z2lu
SG9zdFByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRz
Y2FwZVBsdWdpbkhvc3RQcm94eS5oCShyZXZpc2lvbiA1NTkyOCkKKysrIFdlYktpdC9tYWMvUGx1
Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAt
NTQsOCArNTQsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc01lbnVCYXJWaXNpYmxlKCkgY29uc3Qg
eyByZXR1cm4gbV9tZW51QmFySXNWaXNpYmxlOyB9CiAgICAgdm9pZCBzZXRNZW51QmFyVmlzaWJs
ZShib29sKTsKIAotICAgIGJvb2wgaXNGdWxsU2NyZWVuV2luZG93U2hvd2luZygpIGNvbnN0IHsg
cmV0dXJuIG1fZnVsbFNjcmVlbldpbmRvd0lzU2hvd2luZzsgfQotICAgIHZvaWQgc2V0RnVsbFNj
cmVlbldpbmRvd0lzU2hvd2luZyhib29sKTsKKyAgICBib29sIGlzRnVsbHNjcmVlbldpbmRvd1No
b3dpbmcoKSBjb25zdCB7IHJldHVybiBtX2Z1bGxzY3JlZW5XaW5kb3dJc1Nob3dpbmc7IH0KKyAg
ICB2b2lkIHNldEZ1bGxzY3JlZW5XaW5kb3dJc1Nob3dpbmcoYm9vbCk7CiAKICAgICB2b2lkIHNl
dE1vZGFsKGJvb2wpOwogCkBAIC03Myw4ICs3Myw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBiZWdp
bk1vZGFsKCk7CiAgICAgdm9pZCBlbmRNb2RhbCgpOwogCi0gICAgdm9pZCBkaWRFbnRlckZ1bGxT
Y3JlZW4oKSBjb25zdDsKLSAgICB2b2lkIGRpZEV4aXRGdWxsU2NyZWVuKCkgY29uc3Q7CisgICAg
dm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oKSBjb25zdDsKKyAgICB2b2lkIGRpZEV4aXRGdWxsc2Ny
ZWVuKCkgY29uc3Q7CiAKICAgICBzdGF0aWMgdm9pZCBkZWFkTmFtZU5vdGlmaWNhdGlvbkNhbGxi
YWNrKENGTWFjaFBvcnRSZWYsIHZvaWQgKm1zZywgQ0ZJbmRleCBzaXplLCB2b2lkICppbmZvKTsK
IApAQCAtOTYsNyArOTYsNyBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxXZWJQbGFjZWhvbGRl
ck1vZGFsV2luZG93ICo+IG1fcGxhY2Vob2xkZXJXaW5kb3c7CiAgICAgdW5zaWduZWQgbV9pc01v
ZGFsOwogICAgIGJvb2wgbV9tZW51QmFySXNWaXNpYmxlOwotICAgIGJvb2wgbV9mdWxsU2NyZWVu
V2luZG93SXNTaG93aW5nOworICAgIGJvb2wgbV9mdWxsc2NyZWVuV2luZG93SXNTaG93aW5nOwog
ICAgIGNvbnN0IFByb2Nlc3NTZXJpYWxOdW1iZXIgbV9wbHVnaW5Ib3N0UFNOOwogCiAgICAgdW5z
aWduZWQgbV9wcm9jZXNzaW5nUmVxdWVzdHM7CkluZGV4OiBXZWJLaXQvbWFjL1BsdWdpbnMvSG9z
dGVkL05ldHNjYXBlUGx1Z2luSG9zdFByb3h5Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMv
UGx1Z2lucy9Ib3N0ZWQvTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHkubW0JKHJldmlzaW9uIDU1OTI4
KQorKysgV2ViS2l0L21hYy9QbHVnaW5zL0hvc3RlZC9OZXRzY2FwZVBsdWdpbkhvc3RQcm94eS5t
bQkod29ya2luZyBjb3B5KQpAQCAtOTUsNyArOTUsNyBAQCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94
eTo6TmV0c2NhcGVQbHVnaW5ICiAgICAgLCBtX3BsdWdpbkhvc3RQb3J0KHBsdWdpbkhvc3RQb3J0
KQogICAgICwgbV9pc01vZGFsKGZhbHNlKQogICAgICwgbV9tZW51QmFySXNWaXNpYmxlKHRydWUp
Ci0gICAgLCBtX2Z1bGxTY3JlZW5XaW5kb3dJc1Nob3dpbmcoZmFsc2UpCisgICAgLCBtX2Z1bGxz
Y3JlZW5XaW5kb3dJc1Nob3dpbmcoZmFsc2UpCiAgICAgLCBtX3BsdWdpbkhvc3RQU04ocGx1Z2lu
SG9zdFBTTikKICAgICAsIG1fcHJvY2Vzc2luZ1JlcXVlc3RzKDApCiAgICAgLCBtX3Nob3VsZENh
Y2hlTWlzc2luZ1Byb3BlcnRpZXNBbmRNZXRob2RzKHNob3VsZENhY2hlTWlzc2luZ1Byb3BlcnRp
ZXNBbmRNZXRob2RzKQpAQCAtMjAyLDEyICsyMDIsMTIgQEAgdm9pZCBOZXRzY2FwZVBsdWdpbkhv
c3RQcm94eTo6c2V0TWVudUJhcgogICAgIFtOU01lbnUgc2V0TWVudUJhclZpc2libGU6dmlzaWJs
ZV07CiB9CiAKLXZvaWQgTmV0c2NhcGVQbHVnaW5Ib3N0UHJveHk6OmRpZEVudGVyRnVsbFNjcmVl
bigpIGNvbnN0Cit2b2lkIE5ldHNjYXBlUGx1Z2luSG9zdFByb3h5OjpkaWRFbnRlckZ1bGxzY3Jl
ZW4oKSBjb25zdAogewogICAgIFNldEZyb250UHJvY2VzcygmbV9wbHVnaW5Ib3N0UFNOKTsKIH0K
IAotdm9pZCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6ZGlkRXhpdEZ1bGxTY3JlZW4oKSBjb25z
dAordm9pZCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6ZGlkRXhpdEZ1bGxzY3JlZW4oKSBjb25z
dAogewogICAgIC8vIElmIHRoZSBwbHVnLWluIGhvc3QgaXMgdGhlIGN1cnJlbnQgYXBwbGljYXRp
b24gdGhlbiB3ZSBzaG91bGQgYnJpbmcgb3Vyc2VsdmVzIHRvIHRoZSBmcm9udCB3aGVuIGl0IGV4
aXRzIGZ1bGwtc2NyZWVuIG1vZGUuCiAKQEAgLTIyMywxNiArMjIzLDE2IEBAIHZvaWQgTmV0c2Nh
cGVQbHVnaW5Ib3N0UHJveHk6OmRpZEV4aXRGdWwKICAgICBTZXRGcm9udFByb2Nlc3MoJmN1cnJl
bnRQcm9jZXNzKTsKIH0KIAotdm9pZCBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eTo6c2V0RnVsbFNj
cmVlbldpbmRvd0lzU2hvd2luZyhib29sIGlzU2hvd2luZykKK3ZvaWQgTmV0c2NhcGVQbHVnaW5I
b3N0UHJveHk6OnNldEZ1bGxzY3JlZW5XaW5kb3dJc1Nob3dpbmcoYm9vbCBpc1Nob3dpbmcpCiB7
Ci0gICAgaWYgKG1fZnVsbFNjcmVlbldpbmRvd0lzU2hvd2luZyA9PSBpc1Nob3dpbmcpCisgICAg
aWYgKG1fZnVsbHNjcmVlbldpbmRvd0lzU2hvd2luZyA9PSBpc1Nob3dpbmcpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1fZnVsbFNjcmVlbldpbmRvd0lzU2hvd2luZyA9IGlzU2hvd2luZzsKLSAg
ICBpZiAobV9mdWxsU2NyZWVuV2luZG93SXNTaG93aW5nKQotICAgICAgICBkaWRFbnRlckZ1bGxT
Y3JlZW4oKTsKKyAgICBtX2Z1bGxzY3JlZW5XaW5kb3dJc1Nob3dpbmcgPSBpc1Nob3dpbmc7Cisg
ICAgaWYgKG1fZnVsbHNjcmVlbldpbmRvd0lzU2hvd2luZykKKyAgICAgICAgZGlkRW50ZXJGdWxs
c2NyZWVuKCk7CiAgICAgZWxzZQotICAgICAgICBkaWRFeGl0RnVsbFNjcmVlbigpOworICAgICAg
ICBkaWRFeGl0RnVsbHNjcmVlbigpOwogCiB9CiAKQEAgLTg5MiwxMyArODkyLDEzIEBAIGtlcm5f
cmV0dXJuX3QgV0tQQ1NldE1lbnVCYXJWaXNpYmxlKG1hY2gKICAgICByZXR1cm4gS0VSTl9TVUND
RVNTOwogfQogCi1rZXJuX3JldHVybl90IFdLUENTZXRGdWxsU2NyZWVuV2luZG93SXNTaG93aW5n
KG1hY2hfcG9ydF90IGNsaWVudFBvcnQsIGJvb2xlYW5fdCBmdWxsU2NyZWVuV2luZG93SXNTaG93
aW5nKQora2Vybl9yZXR1cm5fdCBXS1BDU2V0RnVsbHNjcmVlbldpbmRvd0lzU2hvd2luZyhtYWNo
X3BvcnRfdCBjbGllbnRQb3J0LCBib29sZWFuX3QgZnVsbHNjcmVlbldpbmRvd0lzU2hvd2luZykK
IHsKICAgICBOZXRzY2FwZVBsdWdpbkhvc3RQcm94eSogaG9zdFByb3h5ID0gcGx1Z2luUHJveHlN
YXAoKS5nZXQoY2xpZW50UG9ydCk7CiAgICAgaWYgKCFob3N0UHJveHkpCiAgICAgICAgIHJldHVy
biBLRVJOX0ZBSUxVUkU7CiAKLSAgICBob3N0UHJveHktPnNldEZ1bGxTY3JlZW5XaW5kb3dJc1No
b3dpbmcoZnVsbFNjcmVlbldpbmRvd0lzU2hvd2luZyk7CisgICAgaG9zdFByb3h5LT5zZXRGdWxs
c2NyZWVuV2luZG93SXNTaG93aW5nKGZ1bGxzY3JlZW5XaW5kb3dJc1Nob3dpbmcpOwogCiAgICAg
cmV0dXJuIEtFUk5fU1VDQ0VTUzsKIH0KSW5kZXg6IFdlYktpdC9tYWMvUGx1Z2lucy9Ib3N0ZWQv
V2ViS2l0UGx1Z2luQ2xpZW50LmRlZnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9QbHVnaW5z
L0hvc3RlZC9XZWJLaXRQbHVnaW5DbGllbnQuZGVmcwkocmV2aXNpb24gNTU5MjgpCisrKyBXZWJL
aXQvbWFjL1BsdWdpbnMvSG9zdGVkL1dlYktpdFBsdWdpbkNsaWVudC5kZWZzCSh3b3JraW5nIGNv
cHkpCkBAIC0yMzQsNyArMjM0LDcgQEAgc2ltcGxlcm91dGluZSBQQ0Jvb2xlYW5BbmREYXRhUmVw
bHkoY2xpZQogc2ltcGxlcm91dGluZSBQQ1J1blN5bmNPcGVuUGFuZWwoY2xpZW50UG9ydCA6bWFj
aF9wb3J0X3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYW5lbERhdGEgOmRh
dGFfdCk7CiAKLXNpbXBsZXJvdXRpbmUgUENTZXRGdWxsU2NyZWVuV2luZG93SXNTaG93aW5nKGNs
aWVudFBvcnQgOm1hY2hfcG9ydF90Oworc2ltcGxlcm91dGluZSBQQ1NldEZ1bGxzY3JlZW5XaW5k
b3dJc1Nob3dpbmcoY2xpZW50UG9ydCA6bWFjaF9wb3J0X3Q7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpc1Nob3dpbmcgOmJvb2xlYW5fdCk7CiAKIHNpbXBs
ZXJvdXRpbmUgUENTZXRFeGNlcHRpb24oY2xpZW50UG9ydCA6bWFjaF9wb3J0X3Q7CkluZGV4OiBX
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVE
V2luZG93Q29udHJvbGxlci5tbQkocmV2aXNpb24gNTU5MjgpCisrKyBXZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlkZW9GdWxsc2NyZWVuSFVEV2luZG93Q29udHJvbGxlci5tbQkod29ya2luZyBjb3B5
KQpAQCAtMzQ2LDkgKzM0Niw5IEBAIC0gKHZvaWQpd2luZG93RGlkTG9hZAogICAgIHN0YXRpYyBj
b25zdCBDR0Zsb2F0IHZvbHVtZUJ1dHRvbkhlaWdodCA9IDE2OwogICAgIHN0YXRpYyBjb25zdCBD
R0Zsb2F0IHZvbHVtZVVwQnV0dG9uTGVmdE1hcmdpbiA9IDQ7CiAgICAgc3RhdGljIGNvbnN0IENH
RmxvYXQgdm9sdW1lQ29udHJvbHNUb3BNYXJnaW4gPSAxMzsKLSAgICBzdGF0aWMgY29uc3QgQ0dG
bG9hdCBleGl0RnVsbFNjcmVlbkJ1dHRvbldpZHRoID0gMjU7Ci0gICAgc3RhdGljIGNvbnN0IENH
RmxvYXQgZXhpdEZ1bGxTY3JlZW5CdXR0b25IZWlnaHQgPSAyMTsKLSAgICBzdGF0aWMgY29uc3Qg
Q0dGbG9hdCBleGl0RnVsbFNjcmVlbkJ1dHRvblRvcE1hcmdpbiA9IDExOworICAgIHN0YXRpYyBj
b25zdCBDR0Zsb2F0IGV4aXRGdWxsc2NyZWVuQnV0dG9uV2lkdGggPSAyNTsKKyAgICBzdGF0aWMg
Y29uc3QgQ0dGbG9hdCBleGl0RnVsbHNjcmVlbkJ1dHRvbkhlaWdodCA9IDIxOworICAgIHN0YXRp
YyBjb25zdCBDR0Zsb2F0IGV4aXRGdWxsc2NyZWVuQnV0dG9uVG9wTWFyZ2luID0gMTE7CiAgICAg
c3RhdGljIGNvbnN0IENHRmxvYXQgdGltZWxpbmVXaWR0aCA9IDMxNTsKICAgICBzdGF0aWMgY29u
c3QgQ0dGbG9hdCB0aW1lbGluZUhlaWdodCA9IDE0OwogICAgIHN0YXRpYyBjb25zdCBDR0Zsb2F0
IHRpbWVsaW5lQm90dG9tTWFyZ2luID0gNzsKQEAgLTM4MCw4ICszODAsOCBAQCAtICh2b2lkKXdp
bmRvd0RpZExvYWQKICAgICBbX3BsYXlCdXR0b24gc2V0QWN0aW9uOkBzZWxlY3Rvcih0b2dnbGVQ
bGF5aW5nOildOwogICAgIFtjb250ZW50VmlldyBhZGRTdWJ2aWV3Ol9wbGF5QnV0dG9uXTsKIAot
ICAgIENHRmxvYXQgY2xvc2VUb1JpZ2h0ID0gd2luZG93V2lkdGggLSBob3Jpem9udGFsTWFyZ2lu
IC0gZXhpdEZ1bGxTY3JlZW5CdXR0b25XaWR0aDsKLSAgICBOU0NvbnRyb2wgKmV4aXRGdWxsc2Ny
ZWVuQnV0dG9uID0gY3JlYXRlQ29udHJvbFdpdGhNZWRpYVVJQ29udHJvbFR5cGUoV0tNZWRpYVVJ
Q29udHJvbEV4aXRGdWxsc2NyZWVuQnV0dG9uLCBOU01ha2VSZWN0KGNsb3NlVG9SaWdodCwgd2lu
ZG93SGVpZ2h0IC0gZXhpdEZ1bGxTY3JlZW5CdXR0b25Ub3BNYXJnaW4gLSBleGl0RnVsbFNjcmVl
bkJ1dHRvbkhlaWdodCwgZXhpdEZ1bGxTY3JlZW5CdXR0b25XaWR0aCwgZXhpdEZ1bGxTY3JlZW5C
dXR0b25IZWlnaHQpKTsKKyAgICBDR0Zsb2F0IGNsb3NlVG9SaWdodCA9IHdpbmRvd1dpZHRoIC0g
aG9yaXpvbnRhbE1hcmdpbiAtIGV4aXRGdWxsc2NyZWVuQnV0dG9uV2lkdGg7CisgICAgTlNDb250
cm9sICpleGl0RnVsbHNjcmVlbkJ1dHRvbiA9IGNyZWF0ZUNvbnRyb2xXaXRoTWVkaWFVSUNvbnRy
b2xUeXBlKFdLTWVkaWFVSUNvbnRyb2xFeGl0RnVsbHNjcmVlbkJ1dHRvbiwgTlNNYWtlUmVjdChj
bG9zZVRvUmlnaHQsIHdpbmRvd0hlaWdodCAtIGV4aXRGdWxsc2NyZWVuQnV0dG9uVG9wTWFyZ2lu
IC0gZXhpdEZ1bGxzY3JlZW5CdXR0b25IZWlnaHQsIGV4aXRGdWxsc2NyZWVuQnV0dG9uV2lkdGgs
IGV4aXRGdWxsc2NyZWVuQnV0dG9uSGVpZ2h0KSk7CiAgICAgW2V4aXRGdWxsc2NyZWVuQnV0dG9u
IHNldEFjdGlvbjpAc2VsZWN0b3IoZXhpdEZ1bGxzY3JlZW46KV07CiAgICAgW2V4aXRGdWxsc2Ny
ZWVuQnV0dG9uIHNldFRhcmdldDpzZWxmXTsKICAgICBbY29udGVudFZpZXcgYWRkU3Vidmlldzpl
eGl0RnVsbHNjcmVlbkJ1dHRvbl07CkluZGV4OiBXZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gNTU5NDQpCisrKyBXZWJLaXQv
d2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEwLTAzLTEy
ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNDk0MiBGdWxsc2NyZWVuIAorICAgICAgICBBUEkgbmFtaW5nIGlz
IGluY29uc2lzdGVudAorICAgICAgICAtYW5kIGNvcnJlc3BvbmRpbmctCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83NzI5MTY1PgorCisgICAgICAgIFRoaXMgcGF0Y2ggY2hhbmdlcyBhbGwgb2Nj
dXJyZW5jZXMgb2YgImZ1bGxTY3JlZW4iIHRvIHRoZSBtb3JlIAorICAgICAgICBwb3B1bGFyICJm
dWxsc2NyZWVuLiIKKworICAgICAgICAqIEZ1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAoRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6b25Nb3VzZURvd24pOgorICAgICAg
ICAoRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6b25Nb3VzZU1vdmUpOgorICAgICAgICAoRnVs
bHNjcmVlblZpZGVvQ29udHJvbGxlcjo6b25Nb3VzZVVwKToKKyAgICAgICAgKiBGdWxsc2NyZWVu
VmlkZW9Db250cm9sbGVyLmg6CisgICAgICAgIChGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpm
dWxsc2NyZWVuVG9IVURDb29yZGluYXRlcyk6CisKIDIwMTAtMDMtMTIgIEJldGggRGFraW4gIDxi
ZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCkluZGV4
OiBXZWJLaXQvd2luL0Z1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC93aW4vRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDU1OTQy
KQorKysgV2ViS2l0L3dpbi9GdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTEzLDcgKzUxMyw3IEBAIHZvaWQgRnVsbHNjcmVlblZpZGVvQ29udHJvbGxlcjo6
dGltZXJGaXIKIAogdm9pZCBGdWxsc2NyZWVuVmlkZW9Db250cm9sbGVyOjpvbk1vdXNlRG93bihj
b25zdCBJbnRQb2ludCYgcG9pbnQpCiB7Ci0gICAgSW50UG9pbnQgY29udmVydGVkUG9pbnQoZnVs
bFNjcmVlblRvSFVEQ29vcmRpbmF0ZXMocG9pbnQpKTsKKyAgICBJbnRQb2ludCBjb252ZXJ0ZWRQ
b2ludChmdWxsc2NyZWVuVG9IVURDb29yZGluYXRlcyhwb2ludCkpOwogCiAgICAgLy8gRG9uJ3Qg
Ym90aGVyIGhpdCB0ZXN0aW5nIGlmIHdlJ3JlIG91dHNpZGUgdGhlIGJvdW5kcyBvZiB0aGUgd2lu
ZG93CiAgICAgaWYgKGNvbnZlcnRlZFBvaW50LngoKSA8IDAgfHwgY29udmVydGVkUG9pbnQueCgp
ID49IHdpbmRvd1dpZHRoIHx8IGNvbnZlcnRlZFBvaW50LnkoKSA8IDAgfHwgY29udmVydGVkUG9p
bnQueSgpID49IHdpbmRvd0hlaWdodCkKQEAgLTU1Miw3ICs1NTIsNyBAQCB2b2lkIEZ1bGxzY3Jl
ZW5WaWRlb0NvbnRyb2xsZXI6Om9uTW91c2VECiAKIHZvaWQgRnVsbHNjcmVlblZpZGVvQ29udHJv
bGxlcjo6b25Nb3VzZU1vdmUoY29uc3QgSW50UG9pbnQmIHBvaW50KQogewotICAgIEludFBvaW50
IGNvbnZlcnRlZFBvaW50KGZ1bGxTY3JlZW5Ub0hVRENvb3JkaW5hdGVzKHBvaW50KSk7CisgICAg
SW50UG9pbnQgY29udmVydGVkUG9pbnQoZnVsbHNjcmVlblRvSFVEQ29vcmRpbmF0ZXMocG9pbnQp
KTsKIAogICAgIGlmIChtX2hpdFdpZGdldCkgewogICAgICAgICBtX2hpdFdpZGdldC0+ZHJhZyhj
b252ZXJ0ZWRQb2ludCwgZmFsc2UpOwpAQCAtNTY3LDcgKzU2Nyw3IEBAIHZvaWQgRnVsbHNjcmVl
blZpZGVvQ29udHJvbGxlcjo6b25Nb3VzZU0KIAogdm9pZCBGdWxsc2NyZWVuVmlkZW9Db250cm9s
bGVyOjpvbk1vdXNlVXAoY29uc3QgSW50UG9pbnQmIHBvaW50KQogewotICAgIEludFBvaW50IGNv
bnZlcnRlZFBvaW50KGZ1bGxTY3JlZW5Ub0hVRENvb3JkaW5hdGVzKHBvaW50KSk7CisgICAgSW50
UG9pbnQgY29udmVydGVkUG9pbnQoZnVsbHNjcmVlblRvSFVEQ29vcmRpbmF0ZXMocG9pbnQpKTsK
ICAgICBtX21vdmluZ1dpbmRvdyA9IGZhbHNlOwogCiAgICAgaWYgKG1faGl0V2lkZ2V0KSB7Cklu
ZGV4OiBXZWJLaXQvd2luL0Z1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvd2luL0Z1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIuaAkocmV2aXNpb24gNTU5Mjgp
CisrKyBXZWJLaXQvd2luL0Z1bGxzY3JlZW5WaWRlb0NvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMTI4LDcgKzEyOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBiZWdpblNjcnViYmluZygp
OwogICAgIHZvaWQgZW5kU2NydWJiaW5nKCk7CiAKLSAgICBXZWJDb3JlOjpJbnRQb2ludCBmdWxs
U2NyZWVuVG9IVURDb29yZGluYXRlcyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQpIGNv
bnN0CisgICAgV2ViQ29yZTo6SW50UG9pbnQgZnVsbHNjcmVlblRvSFVEQ29vcmRpbmF0ZXMoY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvaW50KSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJu
IFdlYkNvcmU6OkludFBvaW50KHBvaW50LngoKS0gbV9odWRQb3NpdGlvbi54KCksIHBvaW50Lnko
KSAtIG1faHVkUG9zaXRpb24ueSgpKTsKICAgICB9Cg==
</data>
<flag name="review"
          id="33819"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>