<?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>48829</bug_id>
          
          <creation_ts>2010-11-02 04:56:52 -0700</creation_ts>
          <short_desc>chrome.dll!WebCore::SVGListPropertyTearOff&lt;...&gt;::getItem ReadAV@NULL (578c0f7f21ca517ba29a4eafb7099c1b)</short_desc>
          <delta_ts>2010-11-03 07:13:19 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows Vista</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://code.google.com/p/chromium/issues/detail?id=61572</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Berend-Jan Wever">skylined</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>eric</cc>
    
    <cc>mdelaney7</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>303317</commentid>
    <comment_count>0</comment_count>
    <who name="Berend-Jan Wever">skylined</who>
    <bug_when>2010-11-02 04:56:52 -0700</bug_when>
    <thetext>Repro:
&lt;html&gt;&lt;head&gt;&lt;script&gt;
  function go() {
    var oSvgTextElement = document.createElementNS(&quot;http://www.w3.org/2000/svg&quot;, &quot;text&quot;);
    var oSvgRectElement = document.createElementNS(&quot;http://www.w3.org/2000/svg&quot;,&quot;rect&quot;);
    oSvgTextElement.y.animVal.g;
    oSvgTextElement.y.baseVal.initialize(oSvgRectElement.x.baseVal);
    oSvgTextElement.y.animVal.getItem(0);
  }
&lt;/script&gt;&lt;/head&gt;&lt;body onload=&quot;go();&quot;&gt;&lt;/body&gt;&lt;/html&gt;

id:             chrome.dll!WebCore::SVGListPropertyTearOff&lt;...&gt;::getItem ReadAV@NULL (578c0f7f21ca517ba29a4eafb7099c1b)
description:    Attempt to read from unallocated NULL pointer in chrome.dll!WebCore::SVGListPropertyTearOff&lt;...&gt;::getItem
application:    Chromium 9.0.571.0
stack:          chrome.dll!WebCore::SVGListPropertyTearOff&lt;...&gt;::getItem
                chrome.dll!WebCore::SVGLengthListInternal::getItemCallback
                chrome.dll!v8::internal::HandleApiCallHelper&lt;...&gt;
                chrome.dll!v8::internal::Builtin_HandleApiCall
                chrome.dll!v8::internal::Invoke
                chrome.dll!v8::internal::Execution::Call
                chrome.dll!v8::Function::Call
                chrome.dll!WebCore::V8Proxy::callFunction
                chrome.dll!WebCore::V8LazyEventListener::callListenerFunction
                chrome.dll!WebCore::V8AbstractEventListener::invokeEventHandler
                chrome.dll!WebCore::V8AbstractEventListener::handleEvent
                chrome.dll!WebCore::EventTarget::fireEventListeners
                chrome.dll!WebCore::EventTarget::fireEventListeners
                chrome.dll!WebCore::DOMWindow::dispatchEvent
                chrome.dll!WebCore::DOMWindow::dispatchLoadEvent
                chrome.dll!WebCore::Document::implicitClose
                chrome.dll!WebCore::FrameLoader::checkCompleted
                chrome.dll!WebCore::FrameLoader::finishedParsing
                chrome.dll!WebCore::Document::finishedParsing
                chrome.dll!WebCore::HTMLDocumentParser::prepareToStopParsing
                chrome.dll!WebCore::DocumentWriter::endIfNotLoadingMainResource
                chrome.dll!WebCore::FrameLoader::finishedLoading
                chrome.dll!WebCore::MainResourceLoader::didFinishLoading
                chrome.dll!WebCore::ResourceLoader::didFinishLoading
                chrome.dll!WebCore::ResourceHandleInternal::didFinishLoading
                chrome.dll!webkit_glue::WebURLLoaderImpl::Context::OnCompletedRequest
                chrome.dll!ResourceDispatcher::OnRequestComplete
                chrome.dll!IPC::MessageWithTuple&lt;...&gt;::Dispatch&lt;ResourceDispatcher,void 
                chrome.dll!ResourceDispatcher::DispatchMessageW
                chrome.dll!ResourceDispatcher::OnMessageReceived
                chrome.dll!ChildThread::OnMessageReceived
                chrome.dll!RunnableMethod&lt;...&gt;,void 
                chrome.dll!MessageLoop::RunTask
                chrome.dll!MessageLoop::DoWork
                chrome.dll!base::MessagePumpDefault::Run
                chrome.dll!MessageLoop::RunInternal
                chrome.dll!MessageLoop::Run
                chrome.dll!RendererMain
                chrome.dll!ChromeMain
                chrome.exe!MainDllLoader::Launch
                ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303654</commentid>
    <comment_count>1</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-11-02 14:16:36 -0700</bug_when>
    <thetext>Thanks for fuzzing this code, I&apos;ll investigate tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304014</commentid>
    <comment_count>2</comment_count>
      <attachid>72818</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-11-03 06:58:22 -0700</bug_when>
    <thetext>Created attachment 72818
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304019</commentid>
    <comment_count>3</comment_count>
      <attachid>72818</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-11-03 07:11:21 -0700</bug_when>
    <thetext>Comment on attachment 72818
Patch

LGTM. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304021</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-11-03 07:13:19 -0700</bug_when>
    <thetext>Landed in r71236. Integrated SkyLined testcase.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72818</attachid>
            <date>2010-11-03 06:58:22 -0700</date>
            <delta_ts>2010-11-03 07:11:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>FixCrash1.diff</filename>
            <type>text/plain</type>
            <size>22400</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTIzNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzkgQEAKKzIwMTAtMTEtMDMgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJt
YW5uQHJpbS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgY2hyb21lLmRsbCFXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHlUZWFyT2ZmPC4uLj46Omdl
dEl0ZW0gUmVhZEFWQE5VTEwgKDU3OGMwZjdmMjFjYTUxN2JhMjlhNGVhZmI3MDk5YzFiKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDg4MjkKKworICAg
ICAgICBTaGFyZSBTVkdQcm9wZXJ0eVRlYXJPZmYgd3JhcHBlciBjYWNoZSBiZXR3ZWVuIFNWR0Fu
aW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6YmFzZVZhbC9hbmltVmFsLgorICAgICAgICBXaGVu
IG1vZGlmeWluZyB0aGUgbGlzdCB0aHJvdWdoIGJhc2VWYWwsIGFuZCB0aGVuIGdyYWJiaW5nIHRo
ZSBhbmltVmFsIGxpc3QgYW4gYXNzZXJ0aW9uIHdhcyBmaXJlZCwKKyAgICAgICAgYXMgdGhlIHdy
YXBwZXIgY2FjaGUgd2FzIG91dCBvZiBzeW5jIHdpdGggdGhlIHVuZGVybHlpbmcgU1ZHKkxpc3Qg
dmVjdG9yLgorCisgICAgICAgIFRlc3Q6IHN2Zy9kb20vYmFzZVZhbC1hbmltVmFsLWxpc3QtY3Jh
c2guaHRtbAorCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVy
dHlUZWFyT2ZmLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRl
YXJPZmY6OmJhc2VWYWwpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVy
dHlUZWFyT2ZmOjphbmltVmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFBy
b3BlcnR5VGVhck9mZjo6cmVtb3ZlSXRlbUZyb21MaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6ZGV0YWNoTGlzdFdyYXBwZXJzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6dmFsdWVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZjo6d3JhcHBlcnMp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjpT
VkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVz
L1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9w
ZXJ0eVRlYXJPZmY6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVydHlU
ZWFyT2ZmOjpyZW1vdmVJdGVtRnJvbUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFBy
b3BlcnR5VGVhck9mZjo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5
VGVhck9mZjo6bnVtYmVyT2ZJdGVtcyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVy
dHlUZWFyT2ZmOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0
eVRlYXJPZmY6OmdldEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5VGVh
ck9mZjo6aW5zZXJ0SXRlbUJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVy
dHlUZWFyT2ZmOjpyZXBsYWNlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMaXN0UHJvcGVy
dHlUZWFyT2ZmOjpyZW1vdmVJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0
eVRlYXJPZmY6OmFwcGVuZEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGlzdFByb3BlcnR5
VGVhck9mZjo6U1ZHTGlzdFByb3BlcnR5VGVhck9mZik6CisgICAgICAgIChXZWJDb3JlOjpTVkdM
aXN0UHJvcGVydHlUZWFyT2ZmOjpjb21taXRDaGFuZ2UpOgorCiAyMDEwLTExLTAzICBQYXZlbCBG
ZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpl
cmVteSBPcmxvdy4KSW5kZXg6IFdlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gNzEyMjYpCisrKyBXZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZi5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiwxNyArMzIsMjEgQEAgY2xhc3MgU1ZHUHJvcGVydHlUZWFyT2ZmOwog
dGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBlPgogY2xhc3MgU1ZHQW5pbWF0ZWRMaXN0UHJv
cGVydHlUZWFyT2ZmIDogcHVibGljIFNWR0FuaW1hdGVkUHJvcGVydHkgewogcHVibGljOgorICAg
IHR5cGVkZWYgdHlwZW5hbWUgU1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6TGlzdEl0
ZW1UeXBlIExpc3RJdGVtVHlwZTsKKyAgICB0eXBlZGVmIFNWR1Byb3BlcnR5VGVhck9mZjxMaXN0
SXRlbVR5cGU+IExpc3RJdGVtVGVhck9mZjsKKyAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8TGlz
dEl0ZW1UZWFyT2ZmPiA+IExpc3RXcmFwcGVyQ2FjaGU7CisKICAgICBTVkdQcm9wZXJ0eSogYmFz
ZVZhbCgpCiAgICAgewogICAgICAgICBpZiAoIW1fYmFzZVZhbCkKLSAgICAgICAgICAgIG1fYmFz
ZVZhbCA9IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPjo6Y3JlYXRlKHRoaXMs
IEJhc2VWYWxSb2xlLCBtX3Byb3BlcnR5KTsKKyAgICAgICAgICAgIG1fYmFzZVZhbCA9IFNWR0xp
c3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPjo6Y3JlYXRlKHRoaXMsIEJhc2VWYWxSb2xl
KTsKICAgICAgICAgcmV0dXJuIG1fYmFzZVZhbC5nZXQoKTsKICAgICB9CiAKICAgICBTVkdQcm9w
ZXJ0eSogYW5pbVZhbCgpCiAgICAgewogICAgICAgICBpZiAoIW1fYW5pbVZhbCkKLSAgICAgICAg
ICAgIG1fYW5pbVZhbCA9IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPjo6Y3Jl
YXRlKHRoaXMsIEFuaW1WYWxSb2xlLCBtX3Byb3BlcnR5KTsKKyAgICAgICAgICAgIG1fYW5pbVZh
bCA9IFNWR0xpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPjo6Y3JlYXRlKHRoaXMsIEFu
aW1WYWxSb2xlKTsKICAgICAgICAgcmV0dXJuIG1fYW5pbVZhbC5nZXQoKTsKICAgICB9CiAKQEAg
LTUwLDM5ICs1NCw1NiBAQCBwdWJsaWM6CiAKICAgICBpbnQgcmVtb3ZlSXRlbUZyb21MaXN0KFNW
R1Byb3BlcnR5KiBwcm9wZXJ0eSwgYm9vbCBzaG91bGRTeW5jaHJvbml6ZVdyYXBwZXJzKQogICAg
IHsKLSAgICAgICAgLy8gRklYTUU6IE5vIGFuaW1WYWwgc3VwcG9ydC4KLSAgICAgICAgaWYgKCFt
X2Jhc2VWYWwpCi0gICAgICAgICAgICByZXR1cm4gLTE7Ci0KKyAgICAgICAgLy8gVGhpcyBzaG91
bGQgZXZlciBiZSBjYWxsZWQgZm9yIG91ciBiYXNlVmFsLCBhcyBhbmltVmFsIGNhbid0IG1vZGlm
eSB0aGUgbGlzdC4KICAgICAgICAgdHlwZWRlZiBTVkdQcm9wZXJ0eVRlYXJPZmY8dHlwZW5hbWUg
U1ZHUHJvcGVydHlUcmFpdHM8UHJvcGVydHlUeXBlPjo6TGlzdEl0ZW1UeXBlPiBMaXN0SXRlbVRl
YXJPZmY7CiAgICAgICAgIHJldHVybiBzdGF0aWNfcG9pbnRlcl9jYXN0PFNWR0xpc3RQcm9wZXJ0
eVRlYXJPZmY8UHJvcGVydHlUeXBlPiA+KG1fYmFzZVZhbCktPnJlbW92ZUl0ZW1Gcm9tTGlzdChz
dGF0aWNfY2FzdDxMaXN0SXRlbVRlYXJPZmYqPihwcm9wZXJ0eSksIHNob3VsZFN5bmNocm9uaXpl
V3JhcHBlcnMpOwogICAgIH0KIAogICAgIHZvaWQgZGV0YWNoTGlzdFdyYXBwZXJzKHVuc2lnbmVk
IG5ld0xpc3RTaXplKQogICAgIHsKLSAgICAgICAgaWYgKG1fYmFzZVZhbCkKLSAgICAgICAgICAg
IHN0YXRpY19wb2ludGVyX2Nhc3Q8U1ZHTGlzdFByb3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+
ID4obV9iYXNlVmFsKS0+ZGV0YWNoTGlzdFdyYXBwZXJzKG5ld0xpc3RTaXplKTsKLSAgICAgICAg
aWYgKG1fYW5pbVZhbCkKLSAgICAgICAgICAgIHN0YXRpY19wb2ludGVyX2Nhc3Q8U1ZHTGlzdFBy
b3BlcnR5VGVhck9mZjxQcm9wZXJ0eVR5cGU+ID4obV9hbmltVmFsKS0+ZGV0YWNoTGlzdFdyYXBw
ZXJzKG5ld0xpc3RTaXplKTsKKyAgICAgICAgLy8gU2VlIFNWR1Byb3BlcnR5VGVhck9mZjo6ZGV0
YWNoV3JhcHBlcigpIGZvciBhbiBleHBsYWluYXRpb24gd2hhdCdzIGhhcHBlbmluZyBoZXJlLgor
ICAgICAgICB1bnNpZ25lZCBzaXplID0gbV93cmFwcGVycy5zaXplKCk7CisgICAgICAgIEFTU0VS
VChzaXplID09IG1fdmFsdWVzLnNpemUoKSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgICAgIFJlZlB0cjxMaXN0SXRlbVRlYXJPZmY+JiBp
dGVtID0gbV93cmFwcGVycy5hdChpKTsKKyAgICAgICAgICAgIGlmICghaXRlbSkKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGl0ZW0tPmRldGFjaFdyYXBwZXIoKTsKKyAg
ICAgICAgfQorCisgICAgICAgIC8vIFJlaW5pdGlhbGl6ZSB0aGUgd3JhcHBlciBjYWNoZSB0byBi
ZSBlcXVhbCB0byB0aGUgbmV3IHZhbHVlcyBzaXplLCBhZnRlciB0aGUgWE1MIERPTSBjaGFuZ2Vk
IHRoZSBsaXN0LgorICAgICAgICBpZiAobmV3TGlzdFNpemUpCisgICAgICAgICAgICBtX3dyYXBw
ZXJzLmZpbGwoMCwgbmV3TGlzdFNpemUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX3dy
YXBwZXJzLmNsZWFyKCk7CiAgICAgfQogCisgICAgUHJvcGVydHlUeXBlJiB2YWx1ZXMoKSB7IHJl
dHVybiBtX3ZhbHVlczsgfQorICAgIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzKCkgeyByZXR1
cm4gbV93cmFwcGVyczsgfQorCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBTVkdBbmltYXRl
ZFByb3BlcnR5OwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZWRMaXN0UHJvcGVy
dHlUZWFyT2ZmPFByb3BlcnR5VHlwZT4gPiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1l
bnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFByb3BlcnR5VHlwZSYgcHJv
cGVydHkpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFy
T2ZmPFByb3BlcnR5VHlwZT4gPiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFByb3BlcnR5VHlwZSYgdmFsdWVzKQog
ICAgIHsKICAgICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KTsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPihj
b250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgcHJvcGVydHkpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBl
Pihjb250ZXh0RWxlbWVudCwgYXR0cmlidXRlTmFtZSwgdmFsdWVzKSk7CiAgICAgfQogCi0gICAg
U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50
LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBQcm9wZXJ0eVR5cGUmIHByb3Bl
cnR5KQorICAgIFNWR0FuaW1hdGVkTGlzdFByb3BlcnR5VGVhck9mZihTVkdFbGVtZW50KiBjb250
ZXh0RWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgUHJvcGVydHlU
eXBlJiB2YWx1ZXMpCiAgICAgICAgIDogU1ZHQW5pbWF0ZWRQcm9wZXJ0eShjb250ZXh0RWxlbWVu
dCwgYXR0cmlidXRlTmFtZSkKLSAgICAgICAgLCBtX3Byb3BlcnR5KHByb3BlcnR5KQorICAgICAg
ICAsIG1fdmFsdWVzKHZhbHVlcykKICAgICB7CisgICAgICAgIGlmICghdmFsdWVzLmlzRW1wdHko
KSkKKyAgICAgICAgICAgIG1fd3JhcHBlcnMuZmlsbCgwLCB2YWx1ZXMuc2l6ZSgpKTsKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgUHJvcGVydHlUeXBlJiBtX3Byb3BlcnR5OworICAgIFByb3BlcnR5
VHlwZSYgbV92YWx1ZXM7CisKKyAgICAvLyBGSVhNRTogVGhlIGxpc3Qgd3JhcHBlciBjYWNoZSBp
cyBzaGFyZWQgYmV0d2VlbiBiYXNlVmFsL2FuaW1WYWwuIElmIHdlIGltcGxlbWVudCBhbmltVmFs
LAorICAgIC8vIHdlIG5lZWQgdHdvIHNlcGVyYXRlZCB3cmFwcGVyIGNhY2hlcyBpZiB0aGUgYXR0
cmlidXRlIGdldHMgYW5pbWF0ZWQuCisgICAgTGlzdFdyYXBwZXJDYWNoZSBtX3dyYXBwZXJzOwog
CiAgICAgUmVmUHRyPFNWR1Byb3BlcnR5PiBtX2Jhc2VWYWw7CiAgICAgUmVmUHRyPFNWR1Byb3Bl
cnR5PiBtX2FuaW1WYWw7CkluZGV4OiBXZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3RQcm9w
ZXJ0eVRlYXJPZmYuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xp
c3RQcm9wZXJ0eVRlYXJPZmYuaAkocmV2aXNpb24gNzEyMjYpCisrKyBXZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR0xpc3RQcm9wZXJ0eVRlYXJPZmYuaAkod29ya2luZyBjb3B5KQpAQCAtMzksMzQg
KzM5LDMxIEBAIHB1YmxpYzoKICAgICB0eXBlZGVmIHR5cGVuYW1lIFNWR1Byb3BlcnR5VHJhaXRz
PFByb3BlcnR5VHlwZT46Okxpc3RJdGVtVHlwZSBMaXN0SXRlbVR5cGU7CiAgICAgdHlwZWRlZiBT
VkdQcm9wZXJ0eVRlYXJPZmY8TGlzdEl0ZW1UeXBlPiBMaXN0SXRlbVRlYXJPZmY7CiAgICAgdHlw
ZWRlZiBQYXNzUmVmUHRyPExpc3RJdGVtVGVhck9mZj4gUGFzc0xpc3RJdGVtVGVhck9mZjsKLSAg
ICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8TGlzdEl0ZW1UZWFyT2ZmPiA+IExpc3RXcmFwcGVyQ2Fj
aGU7CisgICAgdHlwZWRlZiBTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlU
eXBlPiBBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY7CisgICAgdHlwZWRlZiB0eXBlbmFtZSBT
VkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY8UHJvcGVydHlUeXBlPjo6TGlzdFdyYXBwZXJD
YWNoZSBMaXN0V3JhcHBlckNhY2hlOwogCi0gICAgLy8gVXNlZCBmb3IgW1NWR0FuaW1hdGVkUHJv
cGVydHldIHR5cGVzIChmb3IgZXhhbXBsZTogU1ZHQW5pbWF0ZWRMZW5ndGhMaXN0OjpiYXNlVmFs
KCkpCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2VsZj4gY3JlYXRlKFNWR0FuaW1hdGVkUHJvcGVy
dHkqIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5Um9sZSByb2xlLCBQcm9wZXJ0eVR5cGUm
IHZhbHVlcykKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZWxmPiBjcmVhdGUoQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmKiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUgcm9sZSkK
ICAgICB7CiAgICAgICAgIEFTU0VSVChhbmltYXRlZFByb3BlcnR5KTsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBTZWxmKGFuaW1hdGVkUHJvcGVydHksIHJvbGUsIHZhbHVlcykpOwotICAg
IH0KLQotICAgIC8vIFVzZWQgZm9yIG5vbi1hbmltYXRlZCBQT0QgdHlwZXMgKGZvciBleGFtcGxl
OiBTVkdTdHJpbmdMaXN0KS4KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZWxmPiBjcmVhdGUoY29u
c3QgUHJvcGVydHlUeXBlJiBpbml0aWFsVmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFNlbGYoaW5pdGlhbFZhbHVlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgU2VsZihhbmltYXRlZFByb3BlcnR5LCByb2xlKSk7CiAgICAgfQogCiAgICAgaW50IHJlbW92
ZUl0ZW1Gcm9tTGlzdChMaXN0SXRlbVRlYXJPZmYqIHJlbW92ZUl0ZW0sIGJvb2wgc2hvdWxkU3lu
Y2hyb25pemVXcmFwcGVycykKICAgICB7CisgICAgICAgIFByb3BlcnR5VHlwZSYgdmFsdWVzID0g
bV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKTsKKyAgICAgICAgTGlzdFdyYXBwZXJDYWNoZSYg
d3JhcHBlcnMgPSBtX2FuaW1hdGVkUHJvcGVydHktPndyYXBwZXJzKCk7CisKICAgICAgICAgLy8g
TG9va3VwIGl0ZW0gaW4gY2FjaGUgYW5kIHJlbW92ZSBpdHMgY29ycmVzcG9uZGluZyB3cmFwcGVy
LgotICAgICAgICB1bnNpZ25lZCBzaXplID0gbV93cmFwcGVycy5zaXplKCk7Ci0gICAgICAgIEFT
U0VSVChzaXplID09IG1fdmFsdWVzLT5zaXplKCkpOworICAgICAgICB1bnNpZ25lZCBzaXplID0g
d3JhcHBlcnMuc2l6ZSgpOworICAgICAgICBBU1NFUlQoc2l6ZSA9PSB2YWx1ZXMuc2l6ZSgpKTsK
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICAg
ICAgUmVmUHRyPExpc3RJdGVtVGVhck9mZj4mIGl0ZW0gPSBtX3dyYXBwZXJzLmF0KGkpOworICAg
ICAgICAgICAgUmVmUHRyPExpc3RJdGVtVGVhck9mZj4mIGl0ZW0gPSB3cmFwcGVycy5hdChpKTsK
ICAgICAgICAgICAgIGlmIChpdGVtICE9IHJlbW92ZUl0ZW0pCiAgICAgICAgICAgICAgICAgY29u
dGludWU7CiAKICAgICAgICAgICAgIGl0ZW0tPmRldGFjaFdyYXBwZXIoKTsKLSAgICAgICAgICAg
IG1fd3JhcHBlcnMucmVtb3ZlKGkpOwotICAgICAgICAgICAgbV92YWx1ZXMtPnJlbW92ZShpKTsK
KyAgICAgICAgICAgIHdyYXBwZXJzLnJlbW92ZShpKTsKKyAgICAgICAgICAgIHZhbHVlcy5yZW1v
dmUoaSk7CiAKICAgICAgICAgICAgIGlmIChzaG91bGRTeW5jaHJvbml6ZVdyYXBwZXJzKQogICAg
ICAgICAgICAgICAgIGNvbW1pdENoYW5nZSgpOwpAQCAtNzcsMjUgKzc0LDYgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogCi0gICAgdm9pZCBkZXRhY2hMaXN0V3JhcHBlcnMo
dW5zaWduZWQgbmV3TGlzdFNpemUpCi0gICAgewotICAgICAgICAvLyBTZWUgU1ZHUHJvcGVydHlU
ZWFyT2ZmOjpkZXRhY2hXcmFwcGVyKCkgZm9yIGFuIGV4cGxhaW5hdGlvbiB3aGF0J3MgaGFwcGVu
aW5nIGhlcmUuCi0gICAgICAgIHVuc2lnbmVkIHNpemUgPSBtX3dyYXBwZXJzLnNpemUoKTsKLSAg
ICAgICAgQVNTRVJUKHNpemUgPT0gbV92YWx1ZXMtPnNpemUoKSk7Ci0gICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgICAgIFJlZlB0cjxMaXN0SXRl
bVRlYXJPZmY+JiBpdGVtID0gbV93cmFwcGVycy5hdChpKTsKLSAgICAgICAgICAgIGlmICghaXRl
bSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGl0ZW0tPmRldGFjaFdy
YXBwZXIoKTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFJlaW5pdGlhbGl6ZSB0aGUgd3JhcHBl
ciBjYWNoZSB0byBiZSBlcXVhbCB0byB0aGUgbmV3IHZhbHVlcyBzaXplLCBhZnRlciB0aGUgWE1M
IERPTSBjaGFuZ2VkIHRoZSBsaXN0LgotICAgICAgICBpZiAobmV3TGlzdFNpemUpCi0gICAgICAg
ICAgICBtX3dyYXBwZXJzLmZpbGwoMCwgbmV3TGlzdFNpemUpOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBtX3dyYXBwZXJzLmNsZWFyKCk7Ci0gICAgfQotCiAgICAgLy8gU1ZHTGlzdCBBUEkK
ICAgICB2b2lkIGNsZWFyKEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHsKQEAgLTEwNCwxMyArODIs
MTMgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAg
ZGV0YWNoTGlzdFdyYXBwZXJzKDApOwotICAgICAgICBtX3ZhbHVlcy0+Y2xlYXIoKTsKKyAgICAg
ICAgbV9hbmltYXRlZFByb3BlcnR5LT5kZXRhY2hMaXN0V3JhcHBlcnMoMCk7CisgICAgICAgIG1f
YW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCkuY2xlYXIoKTsKICAgICB9CiAKICAgICB1bnNpZ25l
ZCBudW1iZXJPZkl0ZW1zKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3ZhbHVlcy0+
c2l6ZSgpOworICAgICAgICByZXR1cm4gbV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKS5zaXpl
KCk7CiAgICAgfQogCiAgICAgUGFzc0xpc3RJdGVtVGVhck9mZiBpbml0aWFsaXplKFBhc3NMaXN0
SXRlbVRlYXJPZmYgcGFzc05ld0l0ZW0sIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMTI2LDE4ICsx
MDQsMjEgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KIAorICAg
ICAgICBQcm9wZXJ0eVR5cGUmIHZhbHVlcyA9IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCk7
CisgICAgICAgIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzID0gbV9hbmltYXRlZFByb3BlcnR5
LT53cmFwcGVycygpOworCiAgICAgICAgIFJlZlB0cjxMaXN0SXRlbVRlYXJPZmY+IG5ld0l0ZW0g
PSBwYXNzTmV3SXRlbTsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFw
cGVycy5zaXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzLnNpemUoKSA9PSB3cmFwcGVycy5z
aXplKCkpOwogCiAgICAgICAgIC8vIFNwZWM6IElmIHRoZSBpbnNlcnRlZCBpdGVtIGlzIGFscmVh
ZHkgaW4gYSBsaXN0LCBpdCBpcyByZW1vdmVkIGZyb20gaXRzIHByZXZpb3VzIGxpc3QgYmVmb3Jl
IGl0IGlzIGluc2VydGVkIGludG8gdGhpcyBsaXN0LgogICAgICAgICByZW1vdmVJdGVtRnJvbUxp
c3RJZk5lZWRlZChuZXdJdGVtLmdldCgpLCAwKTsKIAogICAgICAgICAvLyBTcGVjOiBDbGVhcnMg
YWxsIGV4aXN0aW5nIGN1cnJlbnQgaXRlbXMgZnJvbSB0aGUgbGlzdCBhbmQgcmUtaW5pdGlhbGl6
ZXMgdGhlIGxpc3QgdG8gaG9sZCB0aGUgc2luZ2xlIGl0ZW0gc3BlY2lmaWVkIGJ5IHRoZSBwYXJh
bWV0ZXIuCi0gICAgICAgIGRldGFjaExpc3RXcmFwcGVycygwKTsKLSAgICAgICAgbV92YWx1ZXMt
PmNsZWFyKCk7Ci0gICAgICAgIAotICAgICAgICBtX3ZhbHVlcy0+YXBwZW5kKG5ld0l0ZW0tPnBy
b3BlcnR5UmVmZXJlbmNlKCkpOwotICAgICAgICBtX3dyYXBwZXJzLmFwcGVuZChuZXdJdGVtKTsK
KyAgICAgICAgbV9hbmltYXRlZFByb3BlcnR5LT5kZXRhY2hMaXN0V3JhcHBlcnMoMCk7CisgICAg
ICAgIHZhbHVlcy5jbGVhcigpOworCisgICAgICAgIHZhbHVlcy5hcHBlbmQobmV3SXRlbS0+cHJv
cGVydHlSZWZlcmVuY2UoKSk7CisgICAgICAgIHdyYXBwZXJzLmFwcGVuZChuZXdJdGVtKTsKIAog
ICAgICAgICBjb21taXRDaGFuZ2UoKTsKICAgICAgICAgcmV0dXJuIG5ld0l0ZW0ucmVsZWFzZSgp
OwpAQCAtMTQ1LDIxICsxMjYsMjQgQEAgcHVibGljOgogCiAgICAgUGFzc0xpc3RJdGVtVGVhck9m
ZiBnZXRJdGVtKHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICB7Ci0gICAg
ICAgIGlmIChpbmRleCA+PSBtX3ZhbHVlcy0+c2l6ZSgpKSB7CisgICAgICAgIFByb3BlcnR5VHlw
ZSYgdmFsdWVzID0gbV9hbmltYXRlZFByb3BlcnR5LT52YWx1ZXMoKTsKKyAgICAgICAgaWYgKGlu
ZGV4ID49IHZhbHVlcy5zaXplKCkpIHsKICAgICAgICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7
CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogCisgICAgICAgIExpc3RXcmFwcGVy
Q2FjaGUmIHdyYXBwZXJzID0gbV9hbmltYXRlZFByb3BlcnR5LT53cmFwcGVycygpOworCiAgICAg
ICAgIC8vIFNwZWM6IFJldHVybnMgdGhlIHNwZWNpZmllZCBpdGVtIGZyb20gdGhlIGxpc3QuIFRo
ZSByZXR1cm5lZCBpdGVtIGlzIHRoZSBpdGVtIGl0c2VsZiBhbmQgbm90IGEgY29weS4KICAgICAg
ICAgLy8gQW55IGNoYW5nZXMgbWFkZSB0byB0aGUgaXRlbSBhcmUgaW1tZWRpYXRlbHkgcmVmbGVj
dGVkIGluIHRoZSBsaXN0LgotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNpemUoKSA9PSBtX3dy
YXBwZXJzLnNpemUoKSk7Ci0gICAgICAgIFJlZlB0cjxMaXN0SXRlbVRlYXJPZmY+IHdyYXBwZXIg
PSBtX3dyYXBwZXJzLmF0KGluZGV4KTsKKyAgICAgICAgQVNTRVJUKHZhbHVlcy5zaXplKCkgPT0g
d3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgUmVmUHRyPExpc3RJdGVtVGVhck9mZj4gd3JhcHBl
ciA9IHdyYXBwZXJzLmF0KGluZGV4KTsKICAgICAgICAgaWYgKCF3cmFwcGVyKSB7CiAgICAgICAg
ICAgICAvLyBDcmVhdGUgbmV3IHdyYXBwZXIsIHdoaWNoIGlzIGFsbG93ZWQgdG8gZGlyZWN0bHkg
bW9kaWZ5IHRoZSBpdGVtIGluIHRoZSBsaXN0LCB3L28gY29weWluZyBhbmQgY2FjaGUgdGhlIHdy
YXBwZXIgaW4gb3VyIG1hcC4KICAgICAgICAgICAgIC8vIEl0IGlzIGFsc28gYXNzb2NpYXRlZCB3
aXRoIG91ciBhbmltYXRlZCBwcm9wZXJ0eSwgc28gaXQgY2FuIG5vdGlmeSB0aGUgU1ZHIEVsZW1l
bnQgd2hpY2ggaG9sZHMgdGhlIFNWR0FuaW1hdGVkKkxpc3QKICAgICAgICAgICAgIC8vIHRoYXQg
aXQgaGFzIGJlZW4gbW9kaWZpZWQgKGFuZCB0aHVzIGNhbiBjYWxsIHN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoYXNzb2NpYXRlZEF0dHJpYnV0ZU5hbWUpKS4KLSAgICAgICAgICAgIHdyYXBwZXIgPSBMaXN0
SXRlbVRlYXJPZmY6OmNyZWF0ZShtX2FuaW1hdGVkUHJvcGVydHkuZ2V0KCksIFVuZGVmaW5lZFJv
bGUsIG1fdmFsdWVzLT5hdChpbmRleCkpOwotICAgICAgICAgICAgbV93cmFwcGVycy5hdChpbmRl
eCkgPSB3cmFwcGVyOworICAgICAgICAgICAgd3JhcHBlciA9IExpc3RJdGVtVGVhck9mZjo6Y3Jl
YXRlKG1fYW5pbWF0ZWRQcm9wZXJ0eS5nZXQoKSwgVW5kZWZpbmVkUm9sZSwgdmFsdWVzLmF0KGlu
ZGV4KSk7CisgICAgICAgICAgICB3cmFwcGVycy5hdChpbmRleCkgPSB3cmFwcGVyOwogICAgICAg
ICB9CiAKICAgICAgICAgcmV0dXJuIHdyYXBwZXIucmVsZWFzZSgpOwpAQCAtMTc4LDIyICsxNjIs
MjUgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KIAorICAgICAg
ICBQcm9wZXJ0eVR5cGUmIHZhbHVlcyA9IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+dmFsdWVzKCk7Cisg
ICAgICAgIExpc3RXcmFwcGVyQ2FjaGUmIHdyYXBwZXJzID0gbV9hbmltYXRlZFByb3BlcnR5LT53
cmFwcGVycygpOworCiAgICAgICAgIC8vIFNwZWM6IElmIHRoZSBpbmRleCBpcyBncmVhdGVyIHRo
YW4gb3IgZXF1YWwgdG8gbnVtYmVyT2ZJdGVtcywgdGhlbiB0aGUgbmV3IGl0ZW0gaXMgYXBwZW5k
ZWQgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdC4KLSAgICAgICAgaWYgKGluZGV4ID4gbV92YWx1ZXMt
PnNpemUoKSkKLSAgICAgICAgICAgICBpbmRleCA9IG1fdmFsdWVzLT5zaXplKCk7CisgICAgICAg
IGlmIChpbmRleCA+IHZhbHVlcy5zaXplKCkpCisgICAgICAgICAgICAgaW5kZXggPSB2YWx1ZXMu
c2l6ZSgpOwogCiAgICAgICAgIFJlZlB0cjxMaXN0SXRlbVRlYXJPZmY+IG5ld0l0ZW0gPSBwYXNz
TmV3SXRlbTsKLSAgICAgICAgQVNTRVJUKG1fdmFsdWVzLT5zaXplKCkgPT0gbV93cmFwcGVycy5z
aXplKCkpOworICAgICAgICBBU1NFUlQodmFsdWVzLnNpemUoKSA9PSB3cmFwcGVycy5zaXplKCkp
OwogCiAgICAgICAgIC8vIFNwZWM6IElmIG5ld0l0ZW0gaXMgYWxyZWFkeSBpbiBhIGxpc3QsIGl0
IGlzIHJlbW92ZWQgZnJvbSBpdHMgcHJldmlvdXMgbGlzdCBiZWZvcmUgaXQgaXMgaW5zZXJ0ZWQg
aW50byB0aGlzIGxpc3QuCiAgICAgICAgIHJlbW92ZUl0ZW1Gcm9tTGlzdElmTmVlZGVkKG5ld0l0
ZW0uZ2V0KCksICZpbmRleCk7CiAKICAgICAgICAgLy8gU3BlYzogSW5zZXJ0cyBhIG5ldyBpdGVt
IGludG8gdGhlIGxpc3QgYXQgdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4gVGhlIGluZGV4IG9mIHRo
ZSBpdGVtIGJlZm9yZSB3aGljaCB0aGUgbmV3IGl0ZW0gaXMgdG8gYmUKICAgICAgICAgLy8gaW5z
ZXJ0ZWQuIFRoZSBmaXJzdCBpdGVtIGlzIG51bWJlciAwLiBJZiB0aGUgaW5kZXggaXMgZXF1YWwg
dG8gMCwgdGhlbiB0aGUgbmV3IGl0ZW0gaXMgaW5zZXJ0ZWQgYXQgdGhlIGZyb250IG9mIHRoZSBs
aXN0LgotICAgICAgICBtX3ZhbHVlcy0+aW5zZXJ0KGluZGV4LCBuZXdJdGVtLT5wcm9wZXJ0eVJl
ZmVyZW5jZSgpKTsKKyAgICAgICAgdmFsdWVzLmluc2VydChpbmRleCwgbmV3SXRlbS0+cHJvcGVy
dHlSZWZlcmVuY2UoKSk7CiAKICAgICAgICAgLy8gU3RvcmUgbmV3IHdyYXBwZXIgYXQgcG9zaXRp
b24gJ2luZGV4JywgY2hhbmdlIGl0cyB1bmRlcmx5aW5nIHZhbHVlLCBzbyBtdXRhdGlvbnMgb2Yg
bmV3SXRlbSwgZGlyZWN0bHkgYWZmZWN0IHRoZSBpdGVtIGluIHRoZSBsaXN0LgotICAgICAgICBt
X3dyYXBwZXJzLmluc2VydChpbmRleCwgbmV3SXRlbSk7CisgICAgICAgIHdyYXBwZXJzLmluc2Vy
dChpbmRleCwgbmV3SXRlbSk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJl
dHVybiBuZXdJdGVtLnJlbGVhc2UoKTsKQEAgLTIwNiw3ICsxOTMsOCBAQCBwdWJsaWM6CiAgICAg
ICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChpbmRleCA+PSBtX3Zh
bHVlcy0+c2l6ZSgpKSB7CisgICAgICAgIFByb3BlcnR5VHlwZSYgdmFsdWVzID0gbV9hbmltYXRl
ZFByb3BlcnR5LT52YWx1ZXMoKTsKKyAgICAgICAgaWYgKGluZGV4ID49IHZhbHVlcy5zaXplKCkp
IHsKICAgICAgICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7CiAgICAgICAgICAgICByZXR1cm4g
MDsKICAgICAgICAgfQpAQCAtMjE3LDIxICsyMDUsMjIgQEAgcHVibGljOgogICAgICAgICAgICAg
cmV0dXJuIDA7CiAgICAgICAgIH0KIAorICAgICAgICBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVy
cyA9IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKTsKKyAgICAgICAgQVNTRVJUKHZhbHVl
cy5zaXplKCkgPT0gd3JhcHBlcnMuc2l6ZSgpKTsKICAgICAgICAgUmVmUHRyPExpc3RJdGVtVGVh
ck9mZj4gbmV3SXRlbSA9IHBhc3NOZXdJdGVtOwotICAgICAgICBBU1NFUlQobV92YWx1ZXMtPnNp
emUoKSA9PSBtX3dyYXBwZXJzLnNpemUoKSk7CiAKICAgICAgICAgLy8gU3BlYzogSWYgbmV3SXRl
bSBpcyBhbHJlYWR5IGluIGEgbGlzdCwgaXQgaXMgcmVtb3ZlZCBmcm9tIGl0cyBwcmV2aW91cyBs
aXN0IGJlZm9yZSBpdCBpcyBpbnNlcnRlZCBpbnRvIHRoaXMgbGlzdC4KICAgICAgICAgLy8gU3Bl
YzogSWYgdGhlIGl0ZW0gaXMgYWxyZWFkeSBpbiB0aGlzIGxpc3QsIG5vdGUgdGhhdCB0aGUgaW5k
ZXggb2YgdGhlIGl0ZW0gdG8gcmVwbGFjZSBpcyBiZWZvcmUgdGhlIHJlbW92YWwgb2YgdGhlIGl0
ZW0uCiAgICAgICAgIHJlbW92ZUl0ZW1Gcm9tTGlzdElmTmVlZGVkKG5ld0l0ZW0uZ2V0KCksICZp
bmRleCk7CiAKICAgICAgICAgLy8gRGV0YWNoIHRoZSBleGlzdGluZyB3cmFwcGVyLgotICAgICAg
ICBSZWZQdHI8TGlzdEl0ZW1UZWFyT2ZmPiYgb2xkSXRlbSA9IG1fd3JhcHBlcnMuYXQoaW5kZXgp
OworICAgICAgICBSZWZQdHI8TGlzdEl0ZW1UZWFyT2ZmPiYgb2xkSXRlbSA9IHdyYXBwZXJzLmF0
KGluZGV4KTsKICAgICAgICAgaWYgKG9sZEl0ZW0pCiAgICAgICAgICAgICBvbGRJdGVtLT5kZXRh
Y2hXcmFwcGVyKCk7CiAKICAgICAgICAgLy8gVXBkYXRlIHRoZSB2YWx1ZSBhbmQgdGhlIHdyYXBw
ZXIgYXQgdGhlIGRlc2lyZWQgcG9zaXRpb24gJ2luZGV4Jy4gCi0gICAgICAgIG1fdmFsdWVzLT5h
dChpbmRleCkgPSBuZXdJdGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpOwotICAgICAgICBtX3dyYXBw
ZXJzLmF0KGluZGV4KSA9IG5ld0l0ZW07CisgICAgICAgIHZhbHVlcy5hdChpbmRleCkgPSBuZXdJ
dGVtLT5wcm9wZXJ0eVJlZmVyZW5jZSgpOworICAgICAgICB3cmFwcGVycy5hdChpbmRleCkgPSBu
ZXdJdGVtOwogCiAgICAgICAgIGNvbW1pdENoYW5nZSgpOwogICAgICAgICByZXR1cm4gbmV3SXRl
bS5yZWxlYXNlKCk7CkBAIC0yNDQsMjEgKzIzMywyMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBy
ZXR1cm4gMDsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChpbmRleCA+PSBtX3ZhbHVlcy0+c2l6
ZSgpKSB7CisgICAgICAgIFByb3BlcnR5VHlwZSYgdmFsdWVzID0gbV9hbmltYXRlZFByb3BlcnR5
LT52YWx1ZXMoKTsKKyAgICAgICAgaWYgKGluZGV4ID49IHZhbHVlcy5zaXplKCkpIHsKICAgICAg
ICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAg
ICAgfQogCi0gICAgICAgIEFTU0VSVChtX3ZhbHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6
ZSgpKTsKKyAgICAgICAgTGlzdFdyYXBwZXJDYWNoZSYgd3JhcHBlcnMgPSBtX2FuaW1hdGVkUHJv
cGVydHktPndyYXBwZXJzKCk7CisgICAgICAgIEFTU0VSVCh2YWx1ZXMuc2l6ZSgpID09IHdyYXBw
ZXJzLnNpemUoKSk7CiAKICAgICAgICAgLy8gRGV0YWNoIHRoZSBleGlzdGluZyB3cmFwcGVyLgot
ICAgICAgICBSZWZQdHI8TGlzdEl0ZW1UZWFyT2ZmPiYgb2xkSXRlbSA9IG1fd3JhcHBlcnMuYXQo
aW5kZXgpOworICAgICAgICBSZWZQdHI8TGlzdEl0ZW1UZWFyT2ZmPiYgb2xkSXRlbSA9IHdyYXBw
ZXJzLmF0KGluZGV4KTsKICAgICAgICAgaWYgKG9sZEl0ZW0pIHsKICAgICAgICAgICAgIG9sZEl0
ZW0tPmRldGFjaFdyYXBwZXIoKTsKLSAgICAgICAgICAgIG1fd3JhcHBlcnMucmVtb3ZlKGluZGV4
KTsKKyAgICAgICAgICAgIHdyYXBwZXJzLnJlbW92ZShpbmRleCk7CiAgICAgICAgIH0KIAotICAg
ICAgICBtX3ZhbHVlcy0+cmVtb3ZlKGluZGV4KTsKKyAgICAgICAgdmFsdWVzLnJlbW92ZShpbmRl
eCk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBvbGRJdGVtLnJl
bGVhc2UoKTsKQEAgLTI3Nyw2MiArMjY4LDQ4IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHJldHVy
biAwOwogICAgICAgICB9CiAKKyAgICAgICAgUHJvcGVydHlUeXBlJiB2YWx1ZXMgPSBtX2FuaW1h
dGVkUHJvcGVydHktPnZhbHVlcygpOworICAgICAgICBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVy
cyA9IG1fYW5pbWF0ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKTsKKwogICAgICAgICBSZWZQdHI8TGlz
dEl0ZW1UZWFyT2ZmPiBuZXdJdGVtID0gcGFzc05ld0l0ZW07Ci0gICAgICAgIEFTU0VSVChtX3Zh
bHVlcy0+c2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKKyAgICAgICAgQVNTRVJUKHZhbHVl
cy5zaXplKCkgPT0gd3JhcHBlcnMuc2l6ZSgpKTsKIAogICAgICAgICAvLyBTcGVjOiBJZiBuZXdJ
dGVtIGlzIGFscmVhZHkgaW4gYSBsaXN0LCBpdCBpcyByZW1vdmVkIGZyb20gaXRzIHByZXZpb3Vz
IGxpc3QgYmVmb3JlIGl0IGlzIGluc2VydGVkIGludG8gdGhpcyBsaXN0LgogICAgICAgICByZW1v
dmVJdGVtRnJvbUxpc3RJZk5lZWRlZChuZXdJdGVtLmdldCgpLCAwKTsKIAogICAgICAgICAvLyBB
cHBlbmQgdGhlIHZhbHVlIGFuZCB3cmFwcGVyIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCi0gICAg
ICAgIG1fdmFsdWVzLT5hcHBlbmQobmV3SXRlbS0+cHJvcGVydHlSZWZlcmVuY2UoKSk7Ci0gICAg
ICAgIG1fd3JhcHBlcnMuYXBwZW5kKG5ld0l0ZW0pOworICAgICAgICB2YWx1ZXMuYXBwZW5kKG5l
d0l0ZW0tPnByb3BlcnR5UmVmZXJlbmNlKCkpOworICAgICAgICB3cmFwcGVycy5hcHBlbmQobmV3
SXRlbSk7CiAKICAgICAgICAgY29tbWl0Q2hhbmdlKCk7CiAgICAgICAgIHJldHVybiBuZXdJdGVt
LnJlbGVhc2UoKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgU1ZHTGlzdFByb3BlcnR5VGVhck9m
ZihTVkdBbmltYXRlZFByb3BlcnR5KiBhbmltYXRlZFByb3BlcnR5LCBTVkdQcm9wZXJ0eVJvbGUg
cm9sZSwgUHJvcGVydHlUeXBlJiB2YWx1ZXMpCisgICAgU1ZHTGlzdFByb3BlcnR5VGVhck9mZihB
bmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYqIGFuaW1hdGVkUHJvcGVydHksIFNWR1Byb3BlcnR5
Um9sZSByb2xlKQogICAgICAgICA6IG1fYW5pbWF0ZWRQcm9wZXJ0eShhbmltYXRlZFByb3BlcnR5
KQogICAgICAgICAsIG1fcm9sZShyb2xlKQotICAgICAgICAsIG1fdmFsdWVzKCZ2YWx1ZXMpCi0g
ICAgICAgICwgbV92YWx1ZXNJc0NvcHkoZmFsc2UpCi0gICAgewotICAgICAgICAvLyBVc2luZyBv
cGVyYXRvciAmIGlzIGNvbXBsZXRseSBmaW5lLCBhcyBTVkdBbmltYXRlZFByb3BlcnR5IG93bnMg
dGhpcyByZWZlcmVuY2UsCi0gICAgICAgIC8vIGFuZCB3ZSdyZSBndWFyYW50ZWVkIHRvIGxpdmUg
YXMgbG9uZyBhcyBTVkdBbmltYXRlZFByb3BlcnR5IGRvZXMuCi0gICAgICAgIGlmICghdmFsdWVz
LmlzRW1wdHkoKSkKLSAgICAgICAgICAgIG1fd3JhcHBlcnMuZmlsbCgwLCB2YWx1ZXMuc2l6ZSgp
KTsKLSAgICB9Ci0KLSAgICBTVkdMaXN0UHJvcGVydHlUZWFyT2ZmKGNvbnN0IFByb3BlcnR5VHlw
ZSYgaW5pdGlhbFZhbHVlKQotICAgICAgICA6IG1fYW5pbWF0ZWRQcm9wZXJ0eSgwKQotICAgICAg
ICAsIG1fcm9sZShVbmRlZmluZWRSb2xlKQotICAgICAgICAsIG1fdmFsdWVzKG5ldyBQcm9wZXJ0
eVR5cGUoaW5pdGlhbFZhbHVlKSkKLSAgICAgICAgLCBtX3ZhbHVlc0lzQ29weSh0cnVlKQogICAg
IHsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIH5TVkdMaXN0UHJvcGVydHlUZWFyT2ZmKCkKLSAgICB7
Ci0gICAgICAgIGlmIChtX3ZhbHVlc0lzQ29weSkKLSAgICAgICAgICAgIGRlbGV0ZSBtX3ZhbHVl
czsKKyAgICAgICAgQVNTRVJUKGFuaW1hdGVkUHJvcGVydHkpOworICAgICAgICBBU1NFUlQocm9s
ZSAhPSBVbmRlZmluZWRSb2xlKTsKICAgICB9CiAKICAgICB2b2lkIGNvbW1pdENoYW5nZSgpCiAg
ICAgewotICAgICAgICAvLyBVcGRhdGUgZXhpc3Rpbmcgd3JhcHBlcnMsIGFzIHRoZSBpbmRleCBp
biB0aGUgbV92YWx1ZXMgbGlzdCBoYXMgY2hhbmdlZC4KLSAgICAgICAgdW5zaWduZWQgc2l6ZSA9
IG1fd3JhcHBlcnMuc2l6ZSgpOwotICAgICAgICBBU1NFUlQoc2l6ZSA9PSBtX3ZhbHVlcy0+c2l6
ZSgpKTsKKyAgICAgICAgUHJvcGVydHlUeXBlJiB2YWx1ZXMgPSBtX2FuaW1hdGVkUHJvcGVydHkt
PnZhbHVlcygpOworICAgICAgICBMaXN0V3JhcHBlckNhY2hlJiB3cmFwcGVycyA9IG1fYW5pbWF0
ZWRQcm9wZXJ0eS0+d3JhcHBlcnMoKTsKKworICAgICAgICAvLyBVcGRhdGUgZXhpc3Rpbmcgd3Jh
cHBlcnMsIGFzIHRoZSBpbmRleCBpbiB0aGUgdmFsdWVzIGxpc3QgaGFzIGNoYW5nZWQuCisgICAg
ICAgIHVuc2lnbmVkIHNpemUgPSB3cmFwcGVycy5zaXplKCk7CisgICAgICAgIEFTU0VSVChzaXpl
ID09IHZhbHVlcy5zaXplKCkpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6
ZTsgKytpKSB7Ci0gICAgICAgICAgICBSZWZQdHI8TGlzdEl0ZW1UZWFyT2ZmPiYgaXRlbSA9IG1f
d3JhcHBlcnMuYXQoaSk7CisgICAgICAgICAgICBSZWZQdHI8TGlzdEl0ZW1UZWFyT2ZmPiYgaXRl
bSA9IHdyYXBwZXJzLmF0KGkpOwogICAgICAgICAgICAgaWYgKCFpdGVtKQogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgaXRlbS0+c2V0QW5pbWF0ZWRQcm9wZXJ0eShtX2Fu
aW1hdGVkUHJvcGVydHkuZ2V0KCkpOwotICAgICAgICAgICAgaXRlbS0+c2V0VmFsdWUobV92YWx1
ZXMtPmF0KGkpKTsKKyAgICAgICAgICAgIGl0ZW0tPnNldFZhbHVlKHZhbHVlcy5hdChpKSk7CiAg
ICAgICAgIH0KIAotICAgICAgICBBU1NFUlQoIW1fdmFsdWVzSXNDb3B5KTsKLSAgICAgICAgQVNT
RVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eSk7CiAgICAgICAgIG1fYW5pbWF0ZWRQcm9wZXJ0eS0+Y29t
bWl0Q2hhbmdlKCk7CiAgICAgfQogCkBAIC0zNjMsMTcgKzM0MCwxMCBAQCBwcml2YXRlOgogcHJp
dmF0ZToKICAgICAvLyBCYWNrIHBvaW50ZXIgdG8gdGhlIGFuaW1hdGVkIHByb3BlcnR5IHRoYXQg
Y3JlYXRlZCB1cwogICAgIC8vIEZvciBleGFtcGxlICh0ZXh0LnguYmFzZVZhbCk6IG1fYW5pbWF0
ZWRQcm9wZXJ0eSBwb2ludHMgdG8gdGhlICd4JyBTVkdBbmltYXRlZExlbmd0aExpc3Qgb2JqZWN0
Ci0gICAgUmVmUHRyPFNWR0FuaW1hdGVkUHJvcGVydHk+IG1fYW5pbWF0ZWRQcm9wZXJ0eTsKKyAg
ICBSZWZQdHI8QW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmPiBtX2FuaW1hdGVkUHJvcGVydHk7
CiAKICAgICAvLyBUaGUgcm9sZSBvZiB0aGlzIHByb3BlcnR5IChiYXNlVmFsIG9yIGFuaW1WYWwp
CiAgICAgU1ZHUHJvcGVydHlSb2xlIG1fcm9sZTsKLQotICAgIC8vIEZvciB0aGUgZXhhbXBsZSBh
Ym92ZSAodGV4dC54LmJhc2VWYWwpOiBBIHJlZmVyZW5jZSB0byB0aGUgU1ZHTGVuZ3RoTGlzdCYg
c3RvcmVkIGluIHRoZSBTVkdUZXh0RWxlbWVudCwgd2hpY2ggd2UgY2FuIGRpcmVjdGx5IG1vZGlm
eQotICAgIFByb3BlcnR5VHlwZSogbV92YWx1ZXM7Ci0gICAgYm9vbCBtX3ZhbHVlc0lzQ29weSA6
IDE7Ci0KLSAgICAvLyBBIGxpc3Qgb2Ygd3JhcHBlcnMsIHdoaWNoIGlzIGFsd2F5cyBpbiBzeW5j
IGJldHdlZW4gbV92YWx1ZXMuCi0gICAgTGlzdFdyYXBwZXJDYWNoZSBtX3dyYXBwZXJzOwogfTsK
IAogfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzEyMzQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0xMS0wMyAgTmlrb2xhcyBaaW1t
ZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBjaHJvbWUuZGxsIVdlYkNvcmU6OlNWR0xpc3RQcm9wZXJ0
eVRlYXJPZmY8Li4uPjo6Z2V0SXRlbSBSZWFkQVZATlVMTCAoNTc4YzBmN2YyMWNhNTE3YmEyOWE0
ZWFmYjcwOTljMWIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00ODgyOQorCisgICAgICAgICogc3ZnL2RvbS9iYXNlVmFsLWFuaW1WYWwtbGlzdC1jcmFz
aC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9kb20vYmFzZVZhbC1hbmltVmFs
LWxpc3QtY3Jhc2guaHRtbDogQWRkZWQuCisKIDIwMTAtMTEtMDMgIEFkYW0gUm9iZW4gIDxhcm9i
ZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzb21lIG1vcmUgZmFpbGluZyB0ZXN0cyB0byB0
aGUgV2luZG93cyBTa2lwcGVkIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9kb20vYmFzZVZh
bC1hbmltVmFsLWxpc3QtY3Jhc2gtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N2Zy9kb20vYmFzZVZhbC1hbmltVmFsLWxpc3QtY3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2RvbS9iYXNlVmFsLWFuaW1WYWwtbGlzdC1jcmFz
aC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK1RoaXMgdGVzdCBwYXNz
ZXMgaWYgaXQgZG9lc24ndCBjcmFzaC4KSW5kZXg6IExheW91dFRlc3RzL3N2Zy9kb20vYmFzZVZh
bC1hbmltVmFsLWxpc3QtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcv
ZG9tL2Jhc2VWYWwtYW5pbVZhbC1saXN0LWNyYXNoLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9zdmcvZG9tL2Jhc2VWYWwtYW5pbVZhbC1saXN0LWNyYXNoLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisKK2Z1bmN0aW9uIGdvKCkgeworICAgIHZhciBvU3ZnVGV4dEVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwgInRleHQi
KTsKKyAgICB2YXIgb1N2Z1JlY3RFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJo
dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsICJyZWN0Iik7CisgICAgb1N2Z1RleHRFbGVtZW50
LnkuYW5pbVZhbDsKKyAgICBvU3ZnVGV4dEVsZW1lbnQueS5iYXNlVmFsLmluaXRpYWxpemUob1N2
Z1JlY3RFbGVtZW50LnguYmFzZVZhbCk7CisgICAgb1N2Z1RleHRFbGVtZW50LnkuYW5pbVZhbC5n
ZXRJdGVtKDApOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImdvKCkiPgor
VGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2Vzbid0IGNyYXNoLgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="63143"
          type_id="1"
          status="+"
          setter="krit"
    />
          </attachment>
      

    </bug>

</bugzilla>