<?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>31601</bug_id>
          
          <creation_ts>2009-11-17 16:08:51 -0800</creation_ts>
          <short_desc>Move showDebugBorders and showRepaintCounter to Settings/Preferences</short_desc>
          <delta_ts>2009-11-18 11:24:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Marrin">cmarrin</reporter>
          <assigned_to name="Chris Marrin">cmarrin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>164375</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-11-17 16:08:51 -0800</bug_when>
    <thetext>Right now these are using Mac specific pref accessors. They need to be moved into the Settings system so they can work on other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164623</commentid>
    <comment_count>1</comment_count>
      <attachid>43440</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-11-18 10:24:54 -0800</bug_when>
    <thetext>Created attachment 43440
Patch

This adds prefs to WebKit and Settings to WebCore. You now use defaults write with WebKitShowDebugBorders and WebKitShowRepaintCounter. You can do this while WebKit is running. But since WebKit is not that great about reloading prefs, you often need to do the defaults write twice and then turn on and off a Debug flat (like Accelerated Compositing) and finally reload, to get the change to be taken. Adding a Debug menu item to Safari to turn these on and off would fix all this. Until then the best approach is to use defaults write and then restart Safari. This is the same as today, so it shouldn&apos;t be a problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164627</commentid>
    <comment_count>2</comment_count>
      <attachid>43442</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-11-18 10:31:56 -0800</bug_when>
    <thetext>Created attachment 43442
Replacement patch - gets rid of errant printfs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164636</commentid>
    <comment_count>3</comment_count>
      <attachid>43442</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-11-18 11:17:39 -0800</bug_when>
    <thetext>Comment on attachment 43442
Replacement patch - gets rid of errant printfs

&gt; Index: WebCore/ChangeLog
&gt; ===================================================================
&gt; --- WebCore/ChangeLog	(revision 51121)
&gt; +++ WebCore/ChangeLog	(working copy)
&gt; @@ -1,3 +1,38 @@
&gt; +2009-11-18  Chris Marrin  &lt;cmarrin@apple.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Add Settings for WebKitShowDebugBorders and WebKitShowRepaintCounter
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=31601
&gt; +
&gt; +        These are used to debug accelerated compositing layers

Your changelog should mention stuff about moving them from GraphicsLayerCA to GraphicsLayer, and plumbing them through the backing and compositor.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164637</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-11-18 11:24:01 -0800</bug_when>
    <thetext>Sending        WebCore/ChangeLog
Sending        WebCore/WebCore.base.exp
Sending        WebCore/page/FrameView.cpp
Sending        WebCore/page/Settings.cpp
Sending        WebCore/page/Settings.h
Sending        WebCore/platform/graphics/GraphicsLayer.h
Sending        WebCore/platform/graphics/GraphicsLayerClient.h
Sending        WebCore/platform/graphics/mac/GraphicsLayerCA.mm
Sending        WebCore/rendering/RenderLayerBacking.cpp
Sending        WebCore/rendering/RenderLayerBacking.h
Sending        WebCore/rendering/RenderLayerCompositor.cpp
Sending        WebCore/rendering/RenderLayerCompositor.h
Sending        WebKit/mac/ChangeLog
Sending        WebKit/mac/WebView/WebPreferenceKeysPrivate.h
Sending        WebKit/mac/WebView/WebPreferences.mm
Sending        WebKit/mac/WebView/WebPreferencesPrivate.h
Sending        WebKit/mac/WebView/WebView.mm
Transmitting file data .................
Committed revision 51122.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43440</attachid>
            <date>2009-11-18 10:24:54 -0800</date>
            <delta_ts>2009-11-18 10:31:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>31601.patch</filename>
            <type>text/plain</type>
            <size>20237</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTExOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzkgQEAKKzIwMDktMTEtMTggIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBTZXR0aW5ncyBmb3IgV2ViS2l0U2hvd0RlYnVnQm9yZGVycyBhbmQgV2ViS2l0U2hvd1JlcGFp
bnRDb3VudGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zMTYwMQorCisgICAgICAgIFRoZXNlIGFyZSB1c2VkIHRvIGRlYnVnIGFjY2VsZXJhdGVkIGNv
bXBvc2l0aW5nIGxheWVycworCisgICAgICAgICogV2ViQ29yZS5iYXNlLmV4cDoKKyAgICAgICAg
KiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnVwZGF0
ZUNvbXBvc2l0aW5nTGF5ZXJzKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0
aW5nczo6c2V0U2hvd0RlYnVnQm9yZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6
c2V0U2hvd1JlcGFpbnRDb3VudGVyKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2hvd0RlYnVnQm9yZGVycyk6CisgICAgICAgIChXZWJD
b3JlOjpTZXR0aW5nczo6c2hvd1JlcGFpbnRDb3VudGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
OjpzaG93RGVidWdCb3JkZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnNo
b3dSZXBhaW50Q291bnRlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NM
YXllckNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xh
eWVyQ0EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldHVwQ29udGVu
dHNMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnNob3dEZWJ1Z0JvcmRlcnMpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpzaG93UmVwYWludENvdW50ZXIp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyQ29tcG9zaXRvcjo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y2FjaGVBY2NlbGVyYXRlZENvbXBvc2l0aW5n
RmxhZ3MpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2hvd0RlYnVnQm9yZGVycyk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnNob3dSZXBhaW50Q291
bnRlcik6CisKIDIwMDktMTEtMTcgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCkluZGV4OiBXZWJDb3Jl
L1dlYkNvcmUuYmFzZS5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhw
CShyZXZpc2lvbiA1MTA0OCkKKysrIFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAkod29ya2luZyBj
b3B5KQpAQCAtNjIyLDEyICs2MjIsMTQgQEAgX19aTjdXZWJDb3JlOFNldHRpbmdzMThzZXRGaXhl
ZEZvbnRGYW1pbAogX19aTjdXZWJDb3JlOFNldHRpbmdzMThzZXRNaW5pbXVtRm9udFNpemVFaQog
X19aTjdXZWJDb3JlOFNldHRpbmdzMThzZXRTZXJpZkZvbnRGYW1pbHlFUktOU18xMkF0b21pY1N0
cmluZ0UKIF9fWk43V2ViQ29yZThTZXR0aW5nczE5c2V0RGF0YWJhc2VzRW5hYmxlZEViCitfX1pO
N1dlYkNvcmU4U2V0dGluZ3MxOXNldFNob3dEZWJ1Z0JvcmRlcnNFYgogX19aTjdXZWJDb3JlOFNl
dHRpbmdzMjBzZXRDdXJzaXZlRm9udEZhbWlseUVSS05TXzEyQXRvbWljU3RyaW5nRQogX19aTjdX
ZWJDb3JlOFNldHRpbmdzMjBzZXRGYW50YXN5Rm9udEZhbWlseUVSS05TXzEyQXRvbWljU3RyaW5n
RQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjBzZXRKYXZhU2NyaXB0RW5hYmxlZEViCiBfX1pON1dl
YkNvcmU4U2V0dGluZ3MyMHNldFhTU0F1ZGl0b3JFbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0
aW5nczIxc2V0U3RhbmRhcmRGb250RmFtaWx5RVJLTlNfMTJBdG9taWNTdHJpbmdFCiBfX1pON1dl
YkNvcmU4U2V0dGluZ3MyMXNldFdlYlNlY3VyaXR5RW5hYmxlZEViCitfX1pON1dlYkNvcmU4U2V0
dGluZ3MyMXNldFNob3dSZXBhaW50Q291bnRlckViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyMnNl
dExvY2FsU3RvcmFnZUVuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjJzZXRTYW5zU2Vy
aWZGb250RmFtaWx5RVJLTlNfMTJBdG9taWNTdHJpbmdFCiBfX1pON1dlYkNvcmU4U2V0dGluZ3My
MnNldFNob3dzVVJMc0luVG9vbFRpcHNFYgpJbmRleDogV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHJldmlzaW9uIDUx
MDQ4KQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQz
NSw3ICs0MzUsNyBAQCB2b2lkIEZyYW1lVmlldzo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoCiAg
ICAgICAgIHJldHVybjsKIAogICAgIC8vIFRoaXMgY2FsbCB3aWxsIG1ha2Ugc3VyZSB0aGUgY2Fj
aGVkIGhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgaXMgdXBkYXRlZCBmcm9tIHRoZSBwcmVmCi0g
ICAgdmlldy0+Y29tcG9zaXRvcigpLT5jYWNoZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
RmxhZygpOworICAgIHZpZXctPmNvbXBvc2l0b3IoKS0+Y2FjaGVBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRmxhZ3MoKTsKICAgICAKICAgICBpZiAoIXZpZXctPnVzZXNDb21wb3NpdGluZygpKQogICAg
ICAgICByZXR1cm47CkluZGV4OiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAJKHJldmlzaW9uIDUxMDQ4KQorKysgV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE1LDYgKzExNSw4IEBAIFNl
dHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV9kb3dubG9hZGFibGVCaW5hcnlG
b250c0VuYWJsZWQodHJ1ZSkKICAgICAsIG1feHNzQXVkaXRvckVuYWJsZWQoZmFsc2UpCiAgICAg
LCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKHRydWUpCisgICAgLCBtX3Nob3dEZWJ1
Z0JvcmRlcnMoZmFsc2UpCisgICAgLCBtX3Nob3dSZXBhaW50Q291bnRlcihmYWxzZSkKICAgICAs
IG1fZXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX3dlYkdM
RW5hYmxlZChmYWxzZSkKIHsKQEAgLTUwMCw2ICs1MDIsMjQgQEAgdm9pZCBTZXR0aW5nczo6c2V0
QWNjZWxlcmF0ZWRDb21wb3NpdGluZwogICAgIHNldE5lZWRzUmVhcHBseVN0eWxlc0luQWxsRnJh
bWVzKG1fcGFnZSk7CiB9CiAKK3ZvaWQgU2V0dGluZ3M6OnNldFNob3dEZWJ1Z0JvcmRlcnMoYm9v
bCBlbmFibGVkKQoreworICAgIGlmIChtX3Nob3dEZWJ1Z0JvcmRlcnMgPT0gZW5hYmxlZCkKKyAg
ICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICBtX3Nob3dEZWJ1Z0JvcmRlcnMgPSBlbmFibGVk
OworICAgIHNldE5lZWRzUmVhcHBseVN0eWxlc0luQWxsRnJhbWVzKG1fcGFnZSk7Cit9CisKK3Zv
aWQgU2V0dGluZ3M6OnNldFNob3dSZXBhaW50Q291bnRlcihib29sIGVuYWJsZWQpCit7CisgICAg
aWYgKG1fc2hvd1JlcGFpbnRDb3VudGVyID09IGVuYWJsZWQpCisgICAgICAgIHJldHVybjsKKyAg
ICAgICAgCisgICAgbV9zaG93UmVwYWludENvdW50ZXIgPSBlbmFibGVkOworICAgIHNldE5lZWRz
UmVhcHBseVN0eWxlc0luQWxsRnJhbWVzKG1fcGFnZSk7Cit9CisKIHZvaWQgU2V0dGluZ3M6OnNl
dEV4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICAgICBt
X2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkID0gZW5hYmxlZDsKSW5kZXg6IFdlYkNv
cmUvcGFnZS9TZXR0aW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5o
CShyZXZpc2lvbiA1MTA0OCkKKysrIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNTMsNiArMjUzLDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9p
ZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChib29sKTsKICAgICAgICAgYm9vbCBh
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0VuYWJsZWQ7IH0KIAorICAgICAgICB2b2lkIHNldFNob3dEZWJ1Z0JvcmRl
cnMoYm9vbCk7CisgICAgICAgIGJvb2wgc2hvd0RlYnVnQm9yZGVycygpIGNvbnN0IHsgcmV0dXJu
IG1fc2hvd0RlYnVnQm9yZGVyczsgfQorCisgICAgICAgIHZvaWQgc2V0U2hvd1JlcGFpbnRDb3Vu
dGVyKGJvb2wpOworICAgICAgICBib29sIHNob3dSZXBhaW50Q291bnRlcigpIGNvbnN0IHsgcmV0
dXJuIG1fc2hvd1JlcGFpbnRDb3VudGVyOyB9CisKICAgICAgICAgdm9pZCBzZXRFeHBlcmltZW50
YWxOb3RpZmljYXRpb25zRW5hYmxlZChib29sKTsKICAgICAgICAgYm9vbCBleHBlcmltZW50YWxO
b3RpZmljYXRpb25zRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZXhwZXJpbWVudGFsTm90aWZp
Y2F0aW9uc0VuYWJsZWQ7IH0KIApAQCAtMzMyLDYgKzMzOCw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgYm9vbCBtX2Rvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZCA6IDE7CiAg
ICAgICAgIGJvb2wgbV94c3NBdWRpdG9yRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9hY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCA6IDE7CisgICAgICAgIGJvb2wgbV9zaG93RGVidWdC
b3JkZXJzIDogMTsKKyAgICAgICAgYm9vbCBtX3Nob3dSZXBhaW50Q291bnRlciA6IDE7CiAgICAg
ICAgIGJvb2wgbV9leHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZCA6IDE7CiAgICAgICAg
IGJvb2wgbV93ZWJHTEVuYWJsZWQgOiAxOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuaAkocmV2aXNpb24gNTEwNDgpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjkyLDggKzI5Miw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNPcmllbnRhdGlvbihDb21w
b3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gb3JpZW50YXRpb24pIHsgbV9jb250ZW50c09y
aWVudGF0aW9uID0gb3JpZW50YXRpb247IH0KICAgICBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3Jp
ZW50YXRpb24gY29udGVudHNPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudHNP
cmllbnRhdGlvbjsgfQogCi0gICAgc3RhdGljIGJvb2wgc2hvd0RlYnVnQm9yZGVycygpOwotICAg
IHN0YXRpYyBib29sIHNob3dSZXBhaW50Q291bnRlcigpOworICAgIGJvb2wgc2hvd0RlYnVnQm9y
ZGVycygpIHsgcmV0dXJuIG1fY2xpZW50ID8gbV9jbGllbnQtPnNob3dEZWJ1Z0JvcmRlcnMoKSA6
IGZhbHNlOyB9CisgICAgYm9vbCBzaG93UmVwYWludENvdW50ZXIoKSB7IHJldHVybiBtX2NsaWVu
dCA/IG1fY2xpZW50LT5zaG93UmVwYWludENvdW50ZXIoKSA6IGZhbHNlOyB9CiAgICAgCiAgICAg
dm9pZCB1cGRhdGVEZWJ1Z0luZGljYXRvcnMoKTsKICAgICAKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCShyZXZpc2lvbiA1MTA0OCkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC02Miw2ICs2Miw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5U3luY1JlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSA9IDA7CiAgICAgCiAgICAgdmly
dHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29u
dGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBpbkNsaXAp
ID0gMDsKKyAgICAKKyAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycygpIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKCkgY29uc3QgPSAwOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvR3JhcGhpY3NMYXllckNBLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0dyYXBoaWNzTGF5ZXJDQS5tbQkocmV2aXNpb24gNTEwNDgpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xheWVyQ0EubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTMyOCwxOCArMzI4LDYgQEAgR3JhcGhpY3NMYXllcjo6Q29tcG9zaXRpbmdDb29yZGlu
YXRlc09yaQogICAgIHJldHVybiBDb21wb3NpdGluZ0Nvb3JkaW5hdGVzQm90dG9tVXA7CiB9CiAK
LWJvb2wgR3JhcGhpY3NMYXllcjo6c2hvd0RlYnVnQm9yZGVycygpCi17Ci0gICAgc3RhdGljIGJv
b2wgc2hvd0RlYnVnQm9yZGVycyA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVs
dHNdIGJvb2xGb3JLZXk6QCJXZWJDb3JlTGF5ZXJCb3JkZXJzIl07Ci0gICAgcmV0dXJuIHNob3dE
ZWJ1Z0JvcmRlcnM7Ci19Ci0KLWJvb2wgR3JhcGhpY3NMYXllcjo6c2hvd1JlcGFpbnRDb3VudGVy
KCkKLXsKLSAgICBzdGF0aWMgYm9vbCBzaG93UmVwYWludENvdW50ZXIgPSBbW05TVXNlckRlZmF1
bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OkAiV2ViQ29yZUxheWVyUmVwYWlu
dENvdW50ZXIiXTsKLSAgICByZXR1cm4gc2hvd1JlcGFpbnRDb3VudGVyOwotfQotCiBzdGF0aWMg
TlNEaWN0aW9uYXJ5KiBudWxsQWN0aW9uc0RpY3Rpb25hcnkoKQogewogICAgIE5TTnVsbCogbnVs
bFZhbHVlID0gW05TTnVsbCBudWxsXTsKQEAgLTE4NDQsNiArMTgzMiw3IEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjpzZXR1cENvbnRlbnRzTGF5ZXIKICAgICB9IGVsc2UKICAgICAgICAgW2NvbnRl
bnRzTGF5ZXIgc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludFplcm9dOwogCisgICAgZnByaW50ZihzdGRl
cnIsICJHcmFwaGljc0xheWVyQ0E6IHVzaW5nIHNob3dEZWJ1Z0JvcmRlcnM9JXNcbiIsIHNob3dE
ZWJ1Z0JvcmRlcnMoKSA/ICJ0cnVlIiA6ICJmYWxzZSIpOwogICAgIGlmIChzaG93RGVidWdCb3Jk
ZXJzKCkpIHsKICAgICAgICAgc2V0TGF5ZXJCb3JkZXJDb2xvcihjb250ZW50c0xheWVyLCBDb2xv
cigwLCAwLCAxMjgsIDE4MCkpOwogICAgICAgICBbY29udGVudHNMYXllciBzZXRCb3JkZXJXaWR0
aDoxLjBmXTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAko
cmV2aXNpb24gNTEwNDgpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlkZW8uaCIKICNpbmNsdWRlICJSZW5k
ZXJWaWV3LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKIAogI2luY2x1ZGUgIlJlbmRlckxheWVy
QmFja2luZy5oIgogCkBAIC0xMDI0LDYgKzEwMjUsMTYgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tp
bmc6OnBhaW50Q29udGVudHMoYwogICAgIHBhaW50SW50b0xheWVyKG1fb3duaW5nTGF5ZXIsICZj
b250ZXh0LCBkaXJ0eVJlY3QsIFBhaW50UmVzdHJpY3Rpb25Ob25lLCBwYWludGluZ1BoYXNlLCBy
ZW5kZXJlcigpKTsKIH0KIAorYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnNob3dEZWJ1Z0JvcmRl
cnMoKSBjb25zdAoreworICAgIHJldHVybiBjb21wb3NpdG9yKCkgPyBjb21wb3NpdG9yKCktPnNo
b3dEZWJ1Z0JvcmRlcnMoKSA6IGZhbHNlOworfQorCitib29sIFJlbmRlckxheWVyQmFja2luZzo6
c2hvd1JlcGFpbnRDb3VudGVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29tcG9zaXRvcigpID8g
Y29tcG9zaXRvcigpLT5zaG93UmVwYWludENvdW50ZXIoKSA6IGZhbHNlOworfQorCiBib29sIFJl
bmRlckxheWVyQmFja2luZzo6c3RhcnRBbmltYXRpb24oZG91YmxlIGJlZ2luVGltZSwgY29uc3Qg
QW5pbWF0aW9uKiBhbmltLCBjb25zdCBLZXlmcmFtZUxpc3QmIGtleWZyYW1lcykKIHsKICAgICBi
b29sIGhhc09wYWNpdHkgPSBrZXlmcmFtZXMuY29udGFpbnNQcm9wZXJ0eShDU1NQcm9wZXJ0eU9w
YWNpdHkpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgJKHJldmlz
aW9uIDUxMDQ4KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgJKHdv
cmtpbmcgY29weSkKQEAgLTExOSw2ICsxMTksOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZv
aWQgcGFpbnRDb250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0Jiwg
R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGNsaXApOwogCisgICAg
dmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wg
c2hvd1JlcGFpbnRDb3VudGVyKCkgY29uc3Q7CisKICAgICBJbnRSZWN0IGNvbnRlbnRzQm94KCkg
Y29uc3Q7CiAgICAgCiBwcml2YXRlOgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuY3BwCShyZXZpc2lvbiA1MTA0OCkKKysrIFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5LDgg
QEAgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpSZW5kZXJMYXllckNvbXBvcwogICAgIDogbV9yZW5k
ZXJWaWV3KHJlbmRlclZpZXcpCiAgICAgLCBtX3Jvb3RQbGF0Zm9ybUxheWVyKDApCiAgICAgLCBt
X2hhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcodHJ1ZSkKKyAgICAsIG1fc2hvd0RlYnVnQm9yZGVy
cyhmYWxzZSkKKyAgICAsIG1fc2hvd1JlcGFpbnRDb3VudGVyKGZhbHNlKQogICAgICwgbV9jb21w
b3NpdGluZ0NvbnN1bHRzT3ZlcmxhcCh0cnVlKQogICAgICwgbV9jb21wb3NpdGluZyhmYWxzZSkK
ICAgICAsIG1fcm9vdExheWVyQXR0YWNoZWQoZmFsc2UpCkBAIC0xMDksMTYgKzExMSwyNiBAQCB2
b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZW5hYmxlQ29tcG9zCiAgICAgfQogfQogCi12b2lk
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y2FjaGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxl
ZEZsYWcoKQordm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNhY2hlQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0ZsYWdzKCkKIHsKICAgICBib29sIGhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgPSBm
YWxzZTsKLSAgICBpZiAoU2V0dGluZ3MqIHNldHRpbmdzID0gbV9yZW5kZXJWaWV3LT5kb2N1bWVu
dCgpLT5zZXR0aW5ncygpKQorICAgIGJvb2wgc2hvd0RlYnVnQm9yZGVycyA9IGZhbHNlOworICAg
IGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyID0gZmFsc2U7CisgICAgCisgICAgaWYgKFNldHRpbmdz
KiBzZXR0aW5ncyA9IG1fcmVuZGVyVmlldy0+ZG9jdW1lbnQoKS0+c2V0dGluZ3MoKSkgewogICAg
ICAgICBoYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nID0gc2V0dGluZ3MtPmFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdFbmFibGVkKCk7CisgICAgICAgIHNob3dEZWJ1Z0JvcmRlcnMgPSBzZXR0aW5ncy0+
c2hvd0RlYnVnQm9yZGVycygpOworICAgICAgICBzaG93UmVwYWludENvdW50ZXIgPSBzZXR0aW5n
cy0+c2hvd1JlcGFpbnRDb3VudGVyKCk7CisgICAgfQorCisgICAgZnByaW50ZihzdGRlcnIsICJS
ZW5kZXJMYXllckNvbXBvc2l0b3I6IGNhY2hlIHNldHRpbmdzIC0gc2hvd0RlYnVnQm9yZGVycz0l
c1xuIiwgc2hvd0RlYnVnQm9yZGVycyA/ICJ0cnVlIiA6ICJmYWxzZSIpOwogCi0gICAgaWYgKGhh
c0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcgIT0gbV9oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKQor
ICAgIGlmIChoYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nICE9IG1faGFzQWNjZWxlcmF0ZWRDb21w
b3NpdGluZyB8fCBzaG93RGVidWdCb3JkZXJzICE9IG1fc2hvd0RlYnVnQm9yZGVycyB8fCBzaG93
UmVwYWludENvdW50ZXIgIT0gbV9zaG93UmVwYWludENvdW50ZXIpCiAgICAgICAgIHNldENvbXBv
c2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoKTsKICAgICAgICAgCiAgICAgbV9oYXNBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nID0gaGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZzsKKyAgICBtX3Nob3dEZWJ1
Z0JvcmRlcnMgPSBzaG93RGVidWdCb3JkZXJzOworICAgIG1fc2hvd1JlcGFpbnRDb3VudGVyID0g
c2hvd1JlcGFpbnRDb3VudGVyOwogfQogCiB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2V0
Q29tcG9zaXRpbmdMYXllcnNOZWVkUmVidWlsZChib29sIG5lZWRSZWJ1aWxkKQpJbmRleDogV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgJKHJldmlzaW9uIDUxMDQ4KQor
KysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTYxLDggKzYxLDExIEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhl
IGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGlzIGVuYWJsZWQKICAgICBib29sIGhhc0FjY2VsZXJh
dGVkQ29tcG9zaXRpbmcoKSBjb25zdCB7IHJldHVybiBtX2hhc0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmc7IH0KICAgICAKLSAgICAvLyBDb3B5IHRoZSBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxl
ZEZsYWcgZnJvbSBTZXR0aW5ncwotICAgIHZvaWQgY2FjaGVBY2NlbGVyYXRlZENvbXBvc2l0aW5n
RW5hYmxlZEZsYWcoKTsKKyAgICBib29sIHNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdCB7IHJldHVy
biBtX3Nob3dEZWJ1Z0JvcmRlcnM7IH0KKyAgICBib29sIHNob3dSZXBhaW50Q291bnRlcigpIGNv
bnN0IHsgcmV0dXJuIG1fc2hvd1JlcGFpbnRDb3VudGVyOyB9CisgICAgCisgICAgLy8gQ29weSB0
aGUgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgcmVsYXRlZCBmbGFncyBmcm9tIFNldHRpbmdzCisg
ICAgdm9pZCBjYWNoZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGbGFncygpOwogCiAgICAgLy8gQ2Fs
bGVkIHdoZW4gdGhlIGxheWVyIGhpZXJhcmNoeSBuZWVkcyB0byBiZSB1cGRhdGVkIChjb21wb3Np
dGluZyBsYXllcnMgaGF2ZSBiZWVuCiAgICAgLy8gY3JlYXRlZCwgZGVzdHJveWVkIG9yIHJlLXBh
cmVudGVkKS4KQEAgLTE3MSw2ICsxNzQsOCBAQCBwcml2YXRlOgogICAgIFJlbmRlclZpZXcqIG1f
cmVuZGVyVmlldzsKICAgICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9yb290UGxhdGZvcm1MYXll
cjsKICAgICBib29sIG1faGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZzsKKyAgICBib29sIG1fc2hv
d0RlYnVnQm9yZGVyczsKKyAgICBib29sIG1fc2hvd1JlcGFpbnRDb3VudGVyOwogICAgIGJvb2wg
bV9jb21wb3NpdGluZ0NvbnN1bHRzT3ZlcmxhcDsKICAgICBib29sIG1fY29tcG9zaXRpbmc7CiAg
ICAgYm9vbCBtX3Jvb3RMYXllckF0dGFjaGVkOwpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDUxMTE5KQorKysg
V2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw2MyBAQAorMjAw
OS0xMS0xNyAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFByZWZlcmVuY2VzIGZvciBX
ZWJLaXRTaG93RGVidWdCb3JkZXJzIGFuZCBXZWJLaXRTaG93UmVwYWludENvdW50ZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNjAxCisKKyAgICAg
ICAgVGhlc2UgYXJlIHVzZWQgdG8gZGVidWcgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgbGF5ZXJz
CisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAg
ICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAgICAgICgrW1dlYlByZWZlcmVuY2Vz
IGluaXRpYWxpemVdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2hvd0RlYnVnQm9yZGVy
c10pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRTaG93RGVidWdCb3JkZXJzOl0pOgor
ICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzaG93UmVwYWludENvdW50ZXJdKToKKyAgICAgICAg
KC1bV2ViUHJlZmVyZW5jZXMgc2V0U2hvd1JlcGFpbnRDb3VudGVyOl0pOgorICAgICAgICAqIFdl
YlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3
Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb246
XSk6CisKKzIwMDktMTEtMTggIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBQcmVmZXJl
bmNlcyBmb3IgV2ViS2l0U2hvd0RlYnVnQm9yZGVycyBhbmQgV2ViS2l0U2hvd1JlcGFpbnRDb3Vu
dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTYw
MQorCisgICAgICAgIFRoZXNlIGFyZSB1c2VkIHRvIGRlYnVnIGFjY2VsZXJhdGVkIGNvbXBvc2l0
aW5nIGxheWVycworCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUu
aDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoK1tXZWJQ
cmVmZXJlbmNlcyBpbml0aWFsaXplXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNob3dE
ZWJ1Z0JvcmRlcnNdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0U2hvd0RlYnVnQm9y
ZGVyczpdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2hvd1JlcGFpbnRDb3VudGVyXSk6
CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNldFNob3dSZXBhaW50Q291bnRlcjpdKToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZp
ZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkTm90
aWZpY2F0aW9uOl0pOgorCisyMDA5LTExLTE3ICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgUHJlZmVyZW5jZXMgZm9yIFdlYktpdFNob3dEZWJ1Z0JvcmRlcnMgYW5kIFdlYktpdFNob3dS
ZXBhaW50Q291bnRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzE2MDEKKworICAgICAgICBUaGVzZSBhcmUgdXNlZCB0byBkZWJ1ZyBhY2NlbGVyYXRl
ZCBjb21wb3NpdGluZyBsYXllcnMKKworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAg
ICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOgorICAgICAgICAoLVtXZWJQcmVmZXJl
bmNlcyBzaG93RGVidWdCb3JkZXJzXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNldFNo
b3dEZWJ1Z0JvcmRlcnM6XSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNob3dSZXBhaW50
Q291bnRlcl0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRTaG93UmVwYWludENvdW50
ZXI6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2Vz
Q2hhbmdlZE5vdGlmaWNhdGlvbjpdKToKKwogMjAwOS0xMS0xNyAgQ2hyaXMgTWFycmluICA8Y21h
cnJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAK
ICAgICAgICAgQWRkIFByZWZlcmVuY2VzIGZvciBXZWJLaXRTaG93RGVidWdCb3JkZXJzIGFuZCBX
ZWJLaXRTaG93UmVwYWludENvdW50ZXIKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMxNjAxCiAKICAgICAgICAgVGhlc2UgYXJlIHVzZWQgdG8gZGVidWcg
YWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgbGF5ZXJzCiAKICAgICAgICAgKiBXZWJWaWV3L1dlYlBy
ZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgogICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMu
bW06CiAgICAgICAgICgrW1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVdKToKICAgICAgICAgKC1b
V2ViUHJlZmVyZW5jZXMgc2hvd0RlYnVnQm9yZGVyc10pOgogICAgICAgICAoLVtXZWJQcmVmZXJl
bmNlcyBzZXRTaG93RGVidWdCb3JkZXJzOl0pOgogICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBz
aG93UmVwYWludENvdW50ZXJdKToKICAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0U2hvd1Jl
cGFpbnRDb3VudGVyOl0pOgogICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRl
Lmg6CiAgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgogICAgICAgICAoLVtXZWJWaWV3IF9w
cmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb246XSk6CiAKSW5kZXg6IFdlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgJKHJldmlzaW9uIDUxMDQ4KQorKysg
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC04NSw2ICs4NSw4IEBACiAjZGVmaW5lIFdlYktpdFpvb21zVGV4dE9ubHlQcmVmZXJl
bmNlS2V5IEAiV2ViS2l0Wm9vbXNUZXh0T25seSIKICNkZWZpbmUgV2ViS2l0WFNTQXVkaXRvckVu
YWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0WFNTQXVkaXRvckVuYWJsZWQiCiAjZGVmaW5lIFdl
YktpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkIgorI2RlZmluZSBXZWJLaXRTaG93RGVidWdCb3Jk
ZXJzUHJlZmVyZW5jZUtleSBAIldlYktpdFNob3dEZWJ1Z0JvcmRlcnMiCisjZGVmaW5lIFdlYktp
dFNob3dSZXBhaW50Q291bnRlclByZWZlcmVuY2VLZXkgQCJXZWJLaXRTaG93UmVwYWludENvdW50
ZXIiCiAjZGVmaW5lIFdlYktpdFdlYkdMRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRXZWJH
TEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFBsdWdpbkFsbG93ZWRSdW5UaW1lUHJlZmVyZW5jZUtl
eSBAIldlYktpdFBsdWdpbkFsbG93ZWRSdW5UaW1lIgogCkluZGV4OiBXZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VzLm1tCShyZXZpc2lvbiA1MTA0OCkKKysrIFdlYktpdC9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzUxLDYgKzM1MSw4IEBAIHN0YXRp
YyBXZWJDYWNoZU1vZGVsIGNhY2hlTW9kZWxGb3JNYWluQnUKICAgICAgICAgW05TTnVtYmVyIG51
bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRab29tc1RleHRPbmx5UHJlZmVyZW5jZUtleSwKICAg
ICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRYU1NBdWRpdG9yRW5h
YmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNd
LCAgV2ViS2l0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAorICAg
ICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCBXZWJLaXRTaG93RGVidWdCb3JkZXJz
UHJlZmVyZW5jZUtleSwKKyAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgV2Vi
S2l0U2hvd1JlcGFpbnRDb3VudGVyUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51
bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRXZWJHTEVuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAg
ICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50OjRdLCBXZWJLaXRQbHVnaW5BbGxv
d2VkUnVuVGltZVByZWZlcmVuY2VLZXksCiAgICAgICAgIG5pbF07CkBAIC0xMTUxLDYgKzExNTMs
MjYgQEAgc3RhdGljIE5TU3RyaW5nICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwogICAgIFtzZWxm
IF9zZXRCb29sVmFsdWU6ZW5hYmxlZCBmb3JLZXk6V2ViS2l0QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKIH0KIAorLSAoQk9PTClzaG93RGVidWdCb3JkZXJzCit7
CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0U2hvd0RlYnVnQm9yZGVy
c1ByZWZlcmVuY2VLZXldOworfQorCistICh2b2lkKXNldFNob3dEZWJ1Z0JvcmRlcnM6KEJPT0wp
ZW5hYmxlZAoreworICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZW5hYmxlZCBmb3JLZXk6V2ViS2l0
U2hvd0RlYnVnQm9yZGVyc1ByZWZlcmVuY2VLZXldOworfQorCistIChCT09MKXNob3dSZXBhaW50
Q291bnRlcgoreworICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdFNob3dS
ZXBhaW50Q291bnRlclByZWZlcmVuY2VLZXldOworfQorCistICh2b2lkKXNldFNob3dSZXBhaW50
Q291bnRlcjooQk9PTCllbmFibGVkCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTplbmFibGVk
IGZvcktleTpXZWJLaXRTaG93UmVwYWludENvdW50ZXJQcmVmZXJlbmNlS2V5XTsKK30KKwogLSAo
Qk9PTCl3ZWJHTEVuYWJsZWQKIHsKICAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpX
ZWJLaXRXZWJHTEVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKSW5kZXg6IFdlYktpdC9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgJKHJldmlzaW9uIDUxMDQ4KQorKysgV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDks
NiArMTQ5LDEyIEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNSZW1vdmVkTm8KIC0g
KEJPT0wpYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ7CiAtICh2b2lkKXNldEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdFbmFibGVkOihCT09MKWVuYWJsZWQ7CiAKKy0gKEJPT0wpc2hvd0RlYnVn
Qm9yZGVyczsKKy0gKHZvaWQpc2V0U2hvd0RlYnVnQm9yZGVyczooQk9PTClzaG93OworCistIChC
T09MKXNob3dSZXBhaW50Q291bnRlcjsKKy0gKHZvaWQpc2V0U2hvd1JlcGFpbnRDb3VudGVyOihC
T09MKXNob3c7CisKIC0gKEJPT0wpd2ViR0xFbmFibGVkOwogLSAodm9pZClzZXRXZWJHTEVuYWJs
ZWQ6KEJPT0wpZW5hYmxlZDsKIApJbmRleDogV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHJldmlzaW9uIDUx
MDQ4KQorKysgV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAg
LTEzMDMsNiArMTMwMyw5IEBAIHN0YXRpYyBib29sIGZhc3REb2N1bWVudFRlYXJkb3duRW5hYmxl
ZCgKICAgICBzZXR0aW5ncy0+c2V0WFNTQXVkaXRvckVuYWJsZWQoW3ByZWZlcmVuY2VzIGlzWFNT
QXVkaXRvckVuYWJsZWRdKTsKICAgICBzZXR0aW5ncy0+c2V0RW5mb3JjZUNTU01JTUVUeXBlSW5T
dHJpY3RNb2RlKCFXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFwcGxlLmlXZWIiLCAt
MSwgMi4xKSk7CiAgICAgc2V0dGluZ3MtPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
KFtwcmVmZXJlbmNlcyBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZF0pOworICAgIHNldHRp
bmdzLT5zZXRTaG93RGVidWdCb3JkZXJzKFtwcmVmZXJlbmNlcyBzaG93RGVidWdCb3JkZXJzXSk7
CisgICAgc2V0dGluZ3MtPnNldFNob3dSZXBhaW50Q291bnRlcihbcHJlZmVyZW5jZXMgc2hvd1Jl
cGFpbnRDb3VudGVyXSk7CisgICAgZnByaW50ZihzdGRlcnIsICJXZWJWaWV3OiBjb3B5IHByZWZz
IHRvIHNldHRpbmdzIC0gc2hvd0RlYnVnQm9yZGVycz0lc1xuIiwgW3ByZWZlcmVuY2VzIHNob3dE
ZWJ1Z0JvcmRlcnNdID8gInRydWUiIDogImZhbHNlIik7CiAgICAgc2V0dGluZ3MtPnNldFBsdWdp
bkFsbG93ZWRSdW5UaW1lKFtwcmVmZXJlbmNlcyBwbHVnaW5BbGxvd2VkUnVuVGltZV0pOwogICAg
IHNldHRpbmdzLT5zZXRXZWJHTEVuYWJsZWQoW3ByZWZlcmVuY2VzIHdlYkdMRW5hYmxlZF0pOwog
fQo=
</data>
<flag name="review"
          id="25146"
          type_id="1"
          status="-"
          setter="cmarrin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43442</attachid>
            <date>2009-11-18 10:31:56 -0800</date>
            <delta_ts>2009-11-18 11:17:38 -0800</delta_ts>
            <desc>Replacement patch - gets rid of errant printfs</desc>
            <filename>31601.patch</filename>
            <type>text/plain</type>
            <size>17378</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTEyMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzggQEAKKzIwMDktMTEtMTggIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBTZXR0aW5ncyBmb3IgV2ViS2l0U2hvd0RlYnVnQm9yZGVycyBhbmQgV2ViS2l0U2hvd1JlcGFp
bnRDb3VudGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zMTYwMQorCisgICAgICAgIFRoZXNlIGFyZSB1c2VkIHRvIGRlYnVnIGFjY2VsZXJhdGVkIGNv
bXBvc2l0aW5nIGxheWVycworCisgICAgICAgICogV2ViQ29yZS5iYXNlLmV4cDoKKyAgICAgICAg
KiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnVwZGF0
ZUNvbXBvc2l0aW5nTGF5ZXJzKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0
aW5nczo6c2V0U2hvd0RlYnVnQm9yZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6
c2V0U2hvd1JlcGFpbnRDb3VudGVyKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2hvd0RlYnVnQm9yZGVycyk6CisgICAgICAgIChXZWJD
b3JlOjpTZXR0aW5nczo6c2hvd1JlcGFpbnRDb3VudGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
OjpzaG93RGVidWdCb3JkZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnNo
b3dSZXBhaW50Q291bnRlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NM
YXllckNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0xh
eWVyQ0EubW06CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnNob3dEZWJ1Z0JvcmRlcnMpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpzaG93UmVwYWludENvdW50ZXIp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyQ29tcG9zaXRvcjo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y2FjaGVBY2NlbGVyYXRlZENvbXBvc2l0aW5n
RmxhZ3MpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6c2hvd0RlYnVnQm9yZGVycyk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnNob3dSZXBhaW50Q291
bnRlcik6CisKIDIwMDktMTEtMTggIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgpJbmRleDogV2ViQ29y
ZS9XZWJDb3JlLmJhc2UuZXhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4
cAkocmV2aXNpb24gNTExMjEpCisrKyBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAJKHdvcmtpbmcg
Y29weSkKQEAgLTYyMiwxMiArNjIyLDE0IEBAIF9fWk43V2ViQ29yZThTZXR0aW5nczE4c2V0Rml4
ZWRGb250RmFtaWwKIF9fWk43V2ViQ29yZThTZXR0aW5nczE4c2V0TWluaW11bUZvbnRTaXplRWkK
IF9fWk43V2ViQ29yZThTZXR0aW5nczE4c2V0U2VyaWZGb250RmFtaWx5RVJLTlNfMTJBdG9taWNT
dHJpbmdFCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MxOXNldERhdGFiYXNlc0VuYWJsZWRFYgorX19a
TjdXZWJDb3JlOFNldHRpbmdzMTlzZXRTaG93RGVidWdCb3JkZXJzRWIKIF9fWk43V2ViQ29yZThT
ZXR0aW5nczIwc2V0Q3Vyc2l2ZUZvbnRGYW1pbHlFUktOU18xMkF0b21pY1N0cmluZ0UKIF9fWk43
V2ViQ29yZThTZXR0aW5nczIwc2V0RmFudGFzeUZvbnRGYW1pbHlFUktOU18xMkF0b21pY1N0cmlu
Z0UKIF9fWk43V2ViQ29yZThTZXR0aW5nczIwc2V0SmF2YVNjcmlwdEVuYWJsZWRFYgogX19aTjdX
ZWJDb3JlOFNldHRpbmdzMjBzZXRYU1NBdWRpdG9yRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0
dGluZ3MyMXNldFN0YW5kYXJkRm9udEZhbWlseUVSS05TXzEyQXRvbWljU3RyaW5nRQogX19aTjdX
ZWJDb3JlOFNldHRpbmdzMjFzZXRXZWJTZWN1cml0eUVuYWJsZWRFYgorX19aTjdXZWJDb3JlOFNl
dHRpbmdzMjFzZXRTaG93UmVwYWludENvdW50ZXJFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjJz
ZXRMb2NhbFN0b3JhZ2VFbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczIyc2V0U2Fuc1Nl
cmlmRm9udEZhbWlseUVSS05TXzEyQXRvbWljU3RyaW5nRQogX19aTjdXZWJDb3JlOFNldHRpbmdz
MjJzZXRTaG93c1VSTHNJblRvb2xUaXBzRWIKSW5kZXg6IFdlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCShyZXZpc2lvbiA1
MTEyMSkKKysrIFdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
MzUsNyArNDM1LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKAog
ICAgICAgICByZXR1cm47CiAKICAgICAvLyBUaGlzIGNhbGwgd2lsbCBtYWtlIHN1cmUgdGhlIGNh
Y2hlZCBoYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nIGlzIHVwZGF0ZWQgZnJvbSB0aGUgcHJlZgot
ICAgIHZpZXctPmNvbXBvc2l0b3IoKS0+Y2FjaGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxl
ZEZsYWcoKTsKKyAgICB2aWV3LT5jb21wb3NpdG9yKCktPmNhY2hlQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0ZsYWdzKCk7CiAgICAgCiAgICAgaWYgKCF2aWV3LT51c2VzQ29tcG9zaXRpbmcoKSkKICAg
ICAgICAgcmV0dXJuOwpJbmRleDogV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCShyZXZpc2lvbiA1MTEyMSkKKysrIFdlYkNv
cmUvcGFnZS9TZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNSw2ICsxMTUsOCBAQCBT
ZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fZG93bmxvYWRhYmxlQmluYXJ5
Rm9udHNFbmFibGVkKHRydWUpCiAgICAgLCBtX3hzc0F1ZGl0b3JFbmFibGVkKGZhbHNlKQogICAg
ICwgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKQorICAgICwgbV9zaG93RGVi
dWdCb3JkZXJzKGZhbHNlKQorICAgICwgbV9zaG93UmVwYWludENvdW50ZXIoZmFsc2UpCiAgICAg
LCBtX2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkKGZhbHNlKQogICAgICwgbV93ZWJH
TEVuYWJsZWQoZmFsc2UpCiB7CkBAIC01MDAsNiArNTAyLDI0IEBAIHZvaWQgU2V0dGluZ3M6OnNl
dEFjY2VsZXJhdGVkQ29tcG9zaXRpbmcKICAgICBzZXROZWVkc1JlYXBwbHlTdHlsZXNJbkFsbEZy
YW1lcyhtX3BhZ2UpOwogfQogCit2b2lkIFNldHRpbmdzOjpzZXRTaG93RGVidWdCb3JkZXJzKGJv
b2wgZW5hYmxlZCkKK3sKKyAgICBpZiAobV9zaG93RGVidWdCb3JkZXJzID09IGVuYWJsZWQpCisg
ICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgbV9zaG93RGVidWdCb3JkZXJzID0gZW5hYmxl
ZDsKKyAgICBzZXROZWVkc1JlYXBwbHlTdHlsZXNJbkFsbEZyYW1lcyhtX3BhZ2UpOworfQorCit2
b2lkIFNldHRpbmdzOjpzZXRTaG93UmVwYWludENvdW50ZXIoYm9vbCBlbmFibGVkKQoreworICAg
IGlmIChtX3Nob3dSZXBhaW50Q291bnRlciA9PSBlbmFibGVkKQorICAgICAgICByZXR1cm47Cisg
ICAgICAgIAorICAgIG1fc2hvd1JlcGFpbnRDb3VudGVyID0gZW5hYmxlZDsKKyAgICBzZXROZWVk
c1JlYXBwbHlTdHlsZXNJbkFsbEZyYW1lcyhtX3BhZ2UpOworfQorCiB2b2lkIFNldHRpbmdzOjpz
ZXRFeHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAg
bV9leHBlcmltZW50YWxOb3RpZmljYXRpb25zRW5hYmxlZCA9IGVuYWJsZWQ7CkluZGV4OiBXZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aAkocmV2aXNpb24gNTExMjEpCisrKyBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAkod29ya2luZyBj
b3B5KQpAQCAtMjUzLDYgKzI1MywxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZv
aWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoYm9vbCk7CiAgICAgICAgIGJvb2wg
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJh
dGVkQ29tcG9zaXRpbmdFbmFibGVkOyB9CiAKKyAgICAgICAgdm9pZCBzZXRTaG93RGVidWdCb3Jk
ZXJzKGJvb2wpOworICAgICAgICBib29sIHNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdCB7IHJldHVy
biBtX3Nob3dEZWJ1Z0JvcmRlcnM7IH0KKworICAgICAgICB2b2lkIHNldFNob3dSZXBhaW50Q291
bnRlcihib29sKTsKKyAgICAgICAgYm9vbCBzaG93UmVwYWludENvdW50ZXIoKSBjb25zdCB7IHJl
dHVybiBtX3Nob3dSZXBhaW50Q291bnRlcjsgfQorCiAgICAgICAgIHZvaWQgc2V0RXhwZXJpbWVu
dGFsTm90aWZpY2F0aW9uc0VuYWJsZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgZXhwZXJpbWVudGFs
Tm90aWZpY2F0aW9uc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2V4cGVyaW1lbnRhbE5vdGlm
aWNhdGlvbnNFbmFibGVkOyB9CiAKQEAgLTMzMiw2ICszMzgsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIGJvb2wgbV9kb3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJsZWQgOiAxOwog
ICAgICAgICBib29sIG1feHNzQXVkaXRvckVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1fYWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgOiAxOworICAgICAgICBib29sIG1fc2hvd0RlYnVn
Qm9yZGVycyA6IDE7CisgICAgICAgIGJvb2wgbV9zaG93UmVwYWludENvdW50ZXIgOiAxOwogICAg
ICAgICBib29sIG1fZXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQgOiAxOwogICAgICAg
ICBib29sIG1fd2ViR0xFbmFibGVkIDogMTsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmgJKHJldmlzaW9uIDUxMTIxKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5Miw4ICsyOTIs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzT3JpZW50YXRpb24oQ29t
cG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIG9yaWVudGF0aW9uKSB7IG1fY29udGVudHNP
cmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOyB9CiAgICAgQ29tcG9zaXRpbmdDb29yZGluYXRlc09y
aWVudGF0aW9uIGNvbnRlbnRzT3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRz
T3JpZW50YXRpb247IH0KIAotICAgIHN0YXRpYyBib29sIHNob3dEZWJ1Z0JvcmRlcnMoKTsKLSAg
ICBzdGF0aWMgYm9vbCBzaG93UmVwYWludENvdW50ZXIoKTsKKyAgICBib29sIHNob3dEZWJ1Z0Jv
cmRlcnMoKSB7IHJldHVybiBtX2NsaWVudCA/IG1fY2xpZW50LT5zaG93RGVidWdCb3JkZXJzKCkg
OiBmYWxzZTsgfQorICAgIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyKCkgeyByZXR1cm4gbV9jbGll
bnQgPyBtX2NsaWVudC0+c2hvd1JlcGFpbnRDb3VudGVyKCkgOiBmYWxzZTsgfQogICAgIAogICAg
IHZvaWQgdXBkYXRlRGVidWdJbmRpY2F0b3JzKCk7CiAgICAgCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAkocmV2aXNpb24gNTExMjEp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtNjIsNiArNjIsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG5v
dGlmeVN5bmNSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgPSAwOwogICAgIAogICAgIHZp
cnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0Nv
bnRleHQmLCBHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZSwgY29uc3QgSW50UmVjdCYgaW5DbGlw
KSA9IDA7CisgICAgCisgICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcigpIGNvbnN0ID0gMDsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0dyYXBoaWNzTGF5ZXJDQS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9HcmFwaGljc0xheWVyQ0EubW0JKHJldmlzaW9uIDUxMTIxKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NMYXllckNBLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0zMjgsMTggKzMyOCw2IEBAIEdyYXBoaWNzTGF5ZXI6OkNvbXBvc2l0aW5nQ29vcmRp
bmF0ZXNPcmkKICAgICByZXR1cm4gQ29tcG9zaXRpbmdDb29yZGluYXRlc0JvdHRvbVVwOwogfQog
Ci1ib29sIEdyYXBoaWNzTGF5ZXI6OnNob3dEZWJ1Z0JvcmRlcnMoKQotewotICAgIHN0YXRpYyBi
b29sIHNob3dEZWJ1Z0JvcmRlcnMgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1
bHRzXSBib29sRm9yS2V5OkAiV2ViQ29yZUxheWVyQm9yZGVycyJdOwotICAgIHJldHVybiBzaG93
RGVidWdCb3JkZXJzOwotfQotCi1ib29sIEdyYXBoaWNzTGF5ZXI6OnNob3dSZXBhaW50Q291bnRl
cigpCi17Ci0gICAgc3RhdGljIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyID0gW1tOU1VzZXJEZWZh
dWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpAIldlYkNvcmVMYXllclJlcGFp
bnRDb3VudGVyIl07Ci0gICAgcmV0dXJuIHNob3dSZXBhaW50Q291bnRlcjsKLX0KLQogc3RhdGlj
IE5TRGljdGlvbmFyeSogbnVsbEFjdGlvbnNEaWN0aW9uYXJ5KCkKIHsKICAgICBOU051bGwqIG51
bGxWYWx1ZSA9IFtOU051bGwgbnVsbF07CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHAJKHJldmlzaW9uIDUxMTIxKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQAogI2lu
Y2x1ZGUgIlJlbmRlckxheWVyQ29tcG9zaXRvci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZGVvLmgi
CiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAKICNpbmNs
dWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKIApAQCAtMTAyNCw2ICsxMDI1LDE2IEBAIHZvaWQg
UmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludENvbnRlbnRzKGMKICAgICBwYWludEludG9MYXllciht
X293bmluZ0xheWVyLCAmY29udGV4dCwgZGlydHlSZWN0LCBQYWludFJlc3RyaWN0aW9uTm9uZSwg
cGFpbnRpbmdQaGFzZSwgcmVuZGVyZXIoKSk7CiB9CiAKK2Jvb2wgUmVuZGVyTGF5ZXJCYWNraW5n
OjpzaG93RGVidWdCb3JkZXJzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29tcG9zaXRvcigpID8g
Y29tcG9zaXRvcigpLT5zaG93RGVidWdCb3JkZXJzKCkgOiBmYWxzZTsKK30KKworYm9vbCBSZW5k
ZXJMYXllckJhY2tpbmc6OnNob3dSZXBhaW50Q291bnRlcigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGNvbXBvc2l0b3IoKSA/IGNvbXBvc2l0b3IoKS0+c2hvd1JlcGFpbnRDb3VudGVyKCkgOiBmYWxz
ZTsKK30KKwogYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0QW5pbWF0aW9uKGRvdWJsZSBi
ZWdpblRpbWUsIGNvbnN0IEFuaW1hdGlvbiogYW5pbSwgY29uc3QgS2V5ZnJhbWVMaXN0JiBrZXlm
cmFtZXMpCiB7CiAgICAgYm9vbCBoYXNPcGFjaXR5ID0ga2V5ZnJhbWVzLmNvbnRhaW5zUHJvcGVy
dHkoQ1NTUHJvcGVydHlPcGFjaXR5KTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5oCShyZXZpc2lvbiA1MTEyMSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTksNiArMTE5LDkgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciosIEdy
YXBoaWNzQ29udGV4dCYsIEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0
JiBjbGlwKTsKIAorICAgIHZpcnR1YWwgYm9vbCBzaG93RGVidWdCb3JkZXJzKCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBib29sIHNob3dSZXBhaW50Q291bnRlcigpIGNvbnN0OworCiAgICAgSW50UmVj
dCBjb250ZW50c0JveCgpIGNvbnN0OwogICAgIAogcHJpdmF0ZToKSW5kZXg6IFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAkocmV2aXNpb24gNTExMjEpCisrKyBX
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC03OSw2ICs3OSw4IEBAIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6UmVuZGVyTGF5ZXJDb21w
b3MKICAgICA6IG1fcmVuZGVyVmlldyhyZW5kZXJWaWV3KQogICAgICwgbV9yb290UGxhdGZvcm1M
YXllcigwKQogICAgICwgbV9oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKHRydWUpCisgICAgLCBt
X3Nob3dEZWJ1Z0JvcmRlcnMoZmFsc2UpCisgICAgLCBtX3Nob3dSZXBhaW50Q291bnRlcihmYWxz
ZSkKICAgICAsIG1fY29tcG9zaXRpbmdDb25zdWx0c092ZXJsYXAodHJ1ZSkKICAgICAsIG1fY29t
cG9zaXRpbmcoZmFsc2UpCiAgICAgLCBtX3Jvb3RMYXllckF0dGFjaGVkKGZhbHNlKQpAQCAtMTA5
LDE2ICsxMTEsMjQgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmVuYWJsZUNvbXBvcwog
ICAgIH0KIH0KIAotdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNhY2hlQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0VuYWJsZWRGbGFnKCkKK3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjYWNo
ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGbGFncygpCiB7CiAgICAgYm9vbCBoYXNBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nID0gZmFsc2U7Ci0gICAgaWYgKFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fcmVu
ZGVyVmlldy0+ZG9jdW1lbnQoKS0+c2V0dGluZ3MoKSkKKyAgICBib29sIHNob3dEZWJ1Z0JvcmRl
cnMgPSBmYWxzZTsKKyAgICBib29sIHNob3dSZXBhaW50Q291bnRlciA9IGZhbHNlOworICAgIAor
ICAgIGlmIChTZXR0aW5ncyogc2V0dGluZ3MgPSBtX3JlbmRlclZpZXctPmRvY3VtZW50KCktPnNl
dHRpbmdzKCkpIHsKICAgICAgICAgaGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyA9IHNldHRpbmdz
LT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpOworICAgICAgICBzaG93RGVidWdCb3Jk
ZXJzID0gc2V0dGluZ3MtPnNob3dEZWJ1Z0JvcmRlcnMoKTsKKyAgICAgICAgc2hvd1JlcGFpbnRD
b3VudGVyID0gc2V0dGluZ3MtPnNob3dSZXBhaW50Q291bnRlcigpOworICAgIH0KIAotICAgIGlm
IChoYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nICE9IG1faGFzQWNjZWxlcmF0ZWRDb21wb3NpdGlu
ZykKKyAgICBpZiAoaGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZyAhPSBtX2hhc0FjY2VsZXJhdGVk
Q29tcG9zaXRpbmcgfHwgc2hvd0RlYnVnQm9yZGVycyAhPSBtX3Nob3dEZWJ1Z0JvcmRlcnMgfHwg
c2hvd1JlcGFpbnRDb3VudGVyICE9IG1fc2hvd1JlcGFpbnRDb3VudGVyKQogICAgICAgICBzZXRD
b21wb3NpdGluZ0xheWVyc05lZWRSZWJ1aWxkKCk7CiAgICAgICAgIAogICAgIG1faGFzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZyA9IGhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmc7CisgICAgbV9zaG93
RGVidWdCb3JkZXJzID0gc2hvd0RlYnVnQm9yZGVyczsKKyAgICBtX3Nob3dSZXBhaW50Q291bnRl
ciA9IHNob3dSZXBhaW50Q291bnRlcjsKIH0KIAogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OnNldENvbXBvc2l0aW5nTGF5ZXJzTmVlZFJlYnVpbGQoYm9vbCBuZWVkUmVidWlsZCkKSW5kZXg6
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCShyZXZpc2lvbiA1MTEy
MSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCSh3b3JraW5n
IGNvcHkpCkBAIC02MSw4ICs2MSwxMSBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyB0cnVlIGlm
IHRoZSBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBpcyBlbmFibGVkCiAgICAgYm9vbCBoYXNBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9oYXNBY2NlbGVyYXRlZENvbXBv
c2l0aW5nOyB9CiAgICAgCi0gICAgLy8gQ29weSB0aGUgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Vu
YWJsZWRGbGFnIGZyb20gU2V0dGluZ3MKLSAgICB2b2lkIGNhY2hlQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0VuYWJsZWRGbGFnKCk7CisgICAgYm9vbCBzaG93RGVidWdCb3JkZXJzKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaG93RGVidWdCb3JkZXJzOyB9CisgICAgYm9vbCBzaG93UmVwYWludENvdW50ZXIo
KSBjb25zdCB7IHJldHVybiBtX3Nob3dSZXBhaW50Q291bnRlcjsgfQorICAgIAorICAgIC8vIENv
cHkgdGhlIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIHJlbGF0ZWQgZmxhZ3MgZnJvbSBTZXR0aW5n
cworICAgIHZvaWQgY2FjaGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nRmxhZ3MoKTsKIAogICAgIC8v
IENhbGxlZCB3aGVuIHRoZSBsYXllciBoaWVyYXJjaHkgbmVlZHMgdG8gYmUgdXBkYXRlZCAoY29t
cG9zaXRpbmcgbGF5ZXJzIGhhdmUgYmVlbgogICAgIC8vIGNyZWF0ZWQsIGRlc3Ryb3llZCBvciBy
ZS1wYXJlbnRlZCkuCkBAIC0xNzEsNiArMTc0LDggQEAgcHJpdmF0ZToKICAgICBSZW5kZXJWaWV3
KiBtX3JlbmRlclZpZXc7CiAgICAgT3duUHRyPEdyYXBoaWNzTGF5ZXI+IG1fcm9vdFBsYXRmb3Jt
TGF5ZXI7CiAgICAgYm9vbCBtX2hhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmc7CisgICAgYm9vbCBt
X3Nob3dEZWJ1Z0JvcmRlcnM7CisgICAgYm9vbCBtX3Nob3dSZXBhaW50Q291bnRlcjsKICAgICBi
b29sIG1fY29tcG9zaXRpbmdDb25zdWx0c092ZXJsYXA7CiAgICAgYm9vbCBtX2NvbXBvc2l0aW5n
OwogICAgIGJvb2wgbV9yb290TGF5ZXJBdHRhY2hlZDsKSW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1MTEyMSkK
KysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMDktMTEtMTggIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBQcmVmZXJlbmNlcyBm
b3IgV2ViS2l0U2hvd0RlYnVnQm9yZGVycyBhbmQgV2ViS2l0U2hvd1JlcGFpbnRDb3VudGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTYwMQorCisg
ICAgICAgIFRoZXNlIGFyZSB1c2VkIHRvIGRlYnVnIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGxh
eWVycworCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoK1tXZWJQcmVmZXJl
bmNlcyBpbml0aWFsaXplXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNob3dEZWJ1Z0Jv
cmRlcnNdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0U2hvd0RlYnVnQm9yZGVyczpd
KToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2hvd1JlcGFpbnRDb3VudGVyXSk6CisgICAg
ICAgICgtW1dlYlByZWZlcmVuY2VzIHNldFNob3dSZXBhaW50Q291bnRlcjpdKToKKyAgICAgICAg
KiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2Vi
Vmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0
aW9uOl0pOgorCiAyMDA5LTExLTE3ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KSW5kZXg6IFdlYktp
dC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgJKHJldmlzaW9uIDUx
MTIxKQorKysgV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC04NSw2ICs4NSw4IEBACiAjZGVmaW5lIFdlYktpdFpvb21zVGV4dE9u
bHlQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Wm9vbXNUZXh0T25seSIKICNkZWZpbmUgV2ViS2l0WFNT
QXVkaXRvckVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0WFNTQXVkaXRvckVuYWJsZWQiCiAj
ZGVmaW5lIFdlYktpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkUHJlZmVyZW5jZUtleSBA
IldlYktpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkIgorI2RlZmluZSBXZWJLaXRTaG93
RGVidWdCb3JkZXJzUHJlZmVyZW5jZUtleSBAIldlYktpdFNob3dEZWJ1Z0JvcmRlcnMiCisjZGVm
aW5lIFdlYktpdFNob3dSZXBhaW50Q291bnRlclByZWZlcmVuY2VLZXkgQCJXZWJLaXRTaG93UmVw
YWludENvdW50ZXIiCiAjZGVmaW5lIFdlYktpdFdlYkdMRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJX
ZWJLaXRXZWJHTEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFBsdWdpbkFsbG93ZWRSdW5UaW1lUHJl
ZmVyZW5jZUtleSBAIldlYktpdFBsdWdpbkFsbG93ZWRSdW5UaW1lIgogCkluZGV4OiBXZWJLaXQv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCShyZXZpc2lvbiA1MTEyMSkKKysrIFdlYktpdC9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzUxLDYgKzM1MSw4
IEBAIHN0YXRpYyBXZWJDYWNoZU1vZGVsIGNhY2hlTW9kZWxGb3JNYWluQnUKICAgICAgICAgW05T
TnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRab29tc1RleHRPbmx5UHJlZmVyZW5j
ZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRYU1NB
dWRpdG9yRW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRo
Qm9vbDpZRVNdLCAgV2ViS2l0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWRQcmVmZXJlbmNl
S2V5LAorICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCBXZWJLaXRTaG93RGVi
dWdCb3JkZXJzUHJlZmVyZW5jZUtleSwKKyAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29s
Ok5PXSwgV2ViS2l0U2hvd1JlcGFpbnRDb3VudGVyUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05T
TnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRXZWJHTEVuYWJsZWRQcmVmZXJlbmNl
S2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50OjRdLCBXZWJLaXRQ
bHVnaW5BbGxvd2VkUnVuVGltZVByZWZlcmVuY2VLZXksCiAgICAgICAgIG5pbF07CkBAIC0xMTUx
LDYgKzExNTMsMjYgQEAgc3RhdGljIE5TU3RyaW5nICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwog
ICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZW5hYmxlZCBmb3JLZXk6V2ViS2l0QWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKIH0KIAorLSAoQk9PTClzaG93RGVidWdC
b3JkZXJzCit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0U2hvd0Rl
YnVnQm9yZGVyc1ByZWZlcmVuY2VLZXldOworfQorCistICh2b2lkKXNldFNob3dEZWJ1Z0JvcmRl
cnM6KEJPT0wpZW5hYmxlZAoreworICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZW5hYmxlZCBmb3JL
ZXk6V2ViS2l0U2hvd0RlYnVnQm9yZGVyc1ByZWZlcmVuY2VLZXldOworfQorCistIChCT09MKXNo
b3dSZXBhaW50Q291bnRlcgoreworICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5Oldl
YktpdFNob3dSZXBhaW50Q291bnRlclByZWZlcmVuY2VLZXldOworfQorCistICh2b2lkKXNldFNo
b3dSZXBhaW50Q291bnRlcjooQk9PTCllbmFibGVkCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1
ZTplbmFibGVkIGZvcktleTpXZWJLaXRTaG93UmVwYWludENvdW50ZXJQcmVmZXJlbmNlS2V5XTsK
K30KKwogLSAoQk9PTCl3ZWJHTEVuYWJsZWQKIHsKICAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1
ZUZvcktleTpXZWJLaXRXZWJHTEVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKSW5kZXg6IFdlYktpdC9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgJKHJldmlzaW9uIDUxMTIxKQorKysg
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xNDksNiArMTQ5LDEyIEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNSZW1v
dmVkTm8KIC0gKEJPT0wpYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ7CiAtICh2b2lkKXNl
dEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkOihCT09MKWVuYWJsZWQ7CiAKKy0gKEJPT0wp
c2hvd0RlYnVnQm9yZGVyczsKKy0gKHZvaWQpc2V0U2hvd0RlYnVnQm9yZGVyczooQk9PTClzaG93
OworCistIChCT09MKXNob3dSZXBhaW50Q291bnRlcjsKKy0gKHZvaWQpc2V0U2hvd1JlcGFpbnRD
b3VudGVyOihCT09MKXNob3c7CisKIC0gKEJPT0wpd2ViR0xFbmFibGVkOwogLSAodm9pZClzZXRX
ZWJHTEVuYWJsZWQ6KEJPT0wpZW5hYmxlZDsKIApJbmRleDogV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHJl
dmlzaW9uIDUxMTIxKQorKysgV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTEzMDMsNiArMTMwMyw4IEBAIHN0YXRpYyBib29sIGZhc3REb2N1bWVudFRlYXJk
b3duRW5hYmxlZCgKICAgICBzZXR0aW5ncy0+c2V0WFNTQXVkaXRvckVuYWJsZWQoW3ByZWZlcmVu
Y2VzIGlzWFNTQXVkaXRvckVuYWJsZWRdKTsKICAgICBzZXR0aW5ncy0+c2V0RW5mb3JjZUNTU01J
TUVUeXBlSW5TdHJpY3RNb2RlKCFXS0FwcFZlcnNpb25DaGVja0xlc3NUaGFuKEAiY29tLmFwcGxl
LmlXZWIiLCAtMSwgMi4xKSk7CiAgICAgc2V0dGluZ3MtPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdFbmFibGVkKFtwcmVmZXJlbmNlcyBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZF0pOwor
ICAgIHNldHRpbmdzLT5zZXRTaG93RGVidWdCb3JkZXJzKFtwcmVmZXJlbmNlcyBzaG93RGVidWdC
b3JkZXJzXSk7CisgICAgc2V0dGluZ3MtPnNldFNob3dSZXBhaW50Q291bnRlcihbcHJlZmVyZW5j
ZXMgc2hvd1JlcGFpbnRDb3VudGVyXSk7CiAgICAgc2V0dGluZ3MtPnNldFBsdWdpbkFsbG93ZWRS
dW5UaW1lKFtwcmVmZXJlbmNlcyBwbHVnaW5BbGxvd2VkUnVuVGltZV0pOwogICAgIHNldHRpbmdz
LT5zZXRXZWJHTEVuYWJsZWQoW3ByZWZlcmVuY2VzIHdlYkdMRW5hYmxlZF0pOwogfQo=
</data>
<flag name="review"
          id="25148"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>