<?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>132106</bug_id>
          
          <creation_ts>2014-04-23 21:11:31 -0700</creation_ts>
          <short_desc>[Cocoa] fix CF leaks found by code inspection</short_desc>
          <delta_ts>2014-04-23 21:48:42 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1003514</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-23 21:11:31 -0700</bug_when>
    <thetext>[Cocoa] fix CF leaks found by code inspection</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003516</commentid>
    <comment_count>1</comment_count>
      <attachid>230044</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-23 21:14:46 -0700</bug_when>
    <thetext>Created attachment 230044
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003521</commentid>
    <comment_count>2</comment_count>
      <attachid>230044</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-04-23 21:27:27 -0700</bug_when>
    <thetext>Comment on attachment 230044
Patch

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

r=me. Nice finds!

&gt; Source/WebCore/plugins/mac/PluginPackageMac.cpp:138
&gt; +        RetainPtr&lt;CFStringRef&gt; homeDir = adoptCF(homeDirectoryPath().createCFString());

We don&apos;t need adoptCF() here; createCFString() returns a RetainPtr&lt;CFStringRef&gt;.

&gt; Source/WebCore/plugins/mac/PluginPackageMac.cpp:255
&gt; +    RetainPtr&lt;CFStringRef&gt; path = adoptCF(m_path.createCFString());

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003531</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-23 21:46:52 -0700</bug_when>
    <thetext>Committed r167746: &lt;http://trac.webkit.org/changeset/167746&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003532</commentid>
    <comment_count>4</comment_count>
      <attachid>230044</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-23 21:47:25 -0700</bug_when>
    <thetext>Comment on attachment 230044
Patch

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

&gt;&gt; Source/WebCore/plugins/mac/PluginPackageMac.cpp:138
&gt;&gt; +        RetainPtr&lt;CFStringRef&gt; homeDir = adoptCF(homeDirectoryPath().createCFString());
&gt; 
&gt; We don&apos;t need adoptCF() here; createCFString() returns a RetainPtr&lt;CFStringRef&gt;.

Not even sure how this compiles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003535</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-23 21:48:42 -0700</bug_when>
    <thetext>*** Bug 132108 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230044</attachid>
            <date>2014-04-23 21:14:46 -0700</date>
            <delta_ts>2014-04-23 21:47:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132106-20140423211429.patch</filename>
            <type>text/plain</type>
            <size>19272</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3NzQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjY4ODZhNjA4Nzk0NDBm
OGNjY2Y4NDM3ZjQ3MjNjYjNkZjY0NDNjMi4uOGVlMWI3ZTg4ZDYwYmU5MDQ1NDlkMzFlZTA0NmU3
MmZkYjJiOTRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE0LTA0LTIzICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIGZpeCBDRiBsZWFr
cyBmb3VuZCBieSBjb2RlIGluc3BlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzMjEwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjp0cmFja0Rpc3BsYXlOYW1lKTogQWRkZWQgYSBtaXNzaW5n
IGFkb3B0Q0YuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9MYW5ndWFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpkaXNwbGF5TmFtZUZvckxhbmd1YWdlTG9jYWxlKTogQWRkZWQgYSBtaXNzaW5nIGFk
b3B0Q0YuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6Om9wZW5UeXBlVGFibGUpOiBB
ZGRlZCBhIG1pc3NpbmcgYWRvcHRDRi4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9jZi9JbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZDRi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZDRjo6bGFiZWwpOiBBZGRlZCB0d28gbWlz
c2luZyBhZG9wdENGLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFWRldyYXBwZXI6OmNyZWF0ZUltYWdlRm9yVGltZUluUmVjdCk6IEFkZGVkIHR3byBtaXNz
aW5nIGFkb3B0Q0YuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9QREZEb2N1bWVu
dEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBERkRvY3VtZW50SW1hZ2U6OmNyZWF0ZVBE
RkRvY3VtZW50KTogQWRkZWQgbWlzc2luZyBhZG9wdENGLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6Y2FzY2FkZVRvTGFzdFJlc29ydEZvbnREZXNjcmlwdG9yKTogQWRkZWQgdHdvIG1pc3Npbmcg
YWRvcHRDRi4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udDo6cHJpbWFyeUZvbnREYXRhSXNTeXN0ZW1Gb250KTogQWRk
ZWQgbWlzc2luZyBhZG9wdENGLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1Np
bXBsZUZvbnREYXRhTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6aGFzQ3VzdG9tVHJhY2tpbmcp
OiBBZGRlZCBtaXNzaW5nIGFkb3B0Q0YuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNv
ZGVycy9JbWFnZURlY29kZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2Rlcjo6cWNt
c091dHB1dERldmljZVByb2ZpbGUpOiBBZGRlZCBDRlJlbGVhc2UuCisKKyAgICAgICAgKiBwbHVn
aW5zL21hYy9QbHVnaW5QYWNrYWdlTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlYWRQTGlz
dEZpbGUpOiBBZGRlZCB0d28gbWlzc2luZyBhZG9wdENGLgorCiAyMDE0LTA0LTIzICBCZW5qYW1p
biBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdW1dLMl0gRml4
IGEgZmV3IG1pc3Rha2VzIGFmZmVjdGluZyB0aGUgaW5pdGlhbCBsYXlvdXQgYW5kIHRoZSBpbml0
aWFsIHVub2JzY3VyZWQgcmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0
aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRp
b25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmNwcAppbmRleCAxNmYxMTQ3N2IyNDE2YzRmNzFjZmEw
MDFjZWMyNmY4M2QzNjlmNzFiLi41NzMzMzJkNmExN2YwZmU1NjIyMjc0NTI2YzU4NTNhMGM5ZDA3
NzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5j
ZXNNZWRpYUFGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVy
ZW5jZXNNZWRpYUFGLmNwcApAQCAtNjA4LDcgKzYwOCw3IEBAIHN0YXRpYyBTdHJpbmcgdHJhY2tE
aXNwbGF5TmFtZShUZXh0VHJhY2sqIHRyYWNrKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgU3RyaW5nIGxhbmd1YWdlQW5kTG9jYWxlID0gQ0ZMb2NhbGVD
b3B5RGlzcGxheU5hbWVGb3JQcm9wZXJ0eVZhbHVlKGN1cnJlbnRMb2NhbGUuZ2V0KCksIGtDRkxv
Y2FsZUlkZW50aWZpZXIsIHRyYWNrTGFuZ3VhZ2VJZGVudGlmaWVyLmNyZWF0ZUNGU3RyaW5nKCku
Z2V0KCkpOworICAgICAgICBTdHJpbmcgbGFuZ3VhZ2VBbmRMb2NhbGUgPSBhZG9wdENGKENGTG9j
YWxlQ29weURpc3BsYXlOYW1lRm9yUHJvcGVydHlWYWx1ZShjdXJyZW50TG9jYWxlLmdldCgpLCBr
Q0ZMb2NhbGVJZGVudGlmaWVyLCB0cmFja0xhbmd1YWdlSWRlbnRpZmllci5jcmVhdGVDRlN0cmlu
ZygpLmdldCgpKSkuZ2V0KCk7CiAgICAgICAgIGlmICghbGFuZ3VhZ2VBbmRMb2NhbGUuaXNFbXB0
eSgpKQogICAgICAgICAgICAgZGlzcGxheU5hbWUuYXBwZW5kKGxhbmd1YWdlQW5kTG9jYWxlKTsK
ICAgICAgICAgZWxzZSBpZiAoIWxhbmd1YWdlLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xhbmd1YWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xhbmd1YWdlLmNwcAppbmRleCBmNTY4M2QwMzdjN2I3MzVkYmI2YjBiZWIyMWI2ZTBlZDhmMWZm
MTZiLi5jMjg5MmU0NWZmZDk2NDM3MjVkYzg0YTdjYzBlMjY5YmU3MGYwNzZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MYW5ndWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTGFuZ3VhZ2UuY3BwCkBAIC0xNDgsMTAgKzE0OCw4IEBAIHNpemVfdCBpbmRl
eE9mQmVzdE1hdGNoaW5nTGFuZ3VhZ2VJbkxpc3QoY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgY29u
c3QgVmVjdG9yPFN0CiBTdHJpbmcgZGlzcGxheU5hbWVGb3JMYW5ndWFnZUxvY2FsZShjb25zdCBT
dHJpbmcmIGxvY2FsZU5hbWUpCiB7CiAjaWYgVVNFKENGKSAmJiAhUExBVEZPUk0oV0lOKQotICAg
IGlmICghbG9jYWxlTmFtZS5pc051bGwoKSAmJiAhbG9jYWxlTmFtZS5pc0VtcHR5KCkpIHsKLSAg
ICAgICAgUmV0YWluUHRyPENGTG9jYWxlUmVmPiBjdXJyZW50TG9jYWxlID0gYWRvcHRDRihDRkxv
Y2FsZUNvcHlDdXJyZW50KCkpOwotICAgICAgICByZXR1cm4gQ0ZMb2NhbGVDb3B5RGlzcGxheU5h
bWVGb3JQcm9wZXJ0eVZhbHVlKGN1cnJlbnRMb2NhbGUuZ2V0KCksIGtDRkxvY2FsZUlkZW50aWZp
ZXIsIGxvY2FsZU5hbWUuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSk7Ci0gICAgfQorICAgIGlmICgh
bG9jYWxlTmFtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBhZG9wdENGKENGTG9jYWxlQ29w
eURpc3BsYXlOYW1lRm9yUHJvcGVydHlWYWx1ZShhZG9wdENGKENGTG9jYWxlQ29weUN1cnJlbnQo
KSkuZ2V0KCksIGtDRkxvY2FsZUlkZW50aWZpZXIsIGxvY2FsZU5hbWUuY3JlYXRlQ0ZTdHJpbmco
KS5nZXQoKSkpLmdldCgpOwogI2VuZGlmCiAgICAgcmV0dXJuIGxvY2FsZU5hbWU7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRh
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEu
Y3BwCmluZGV4IDE5ZDY3NjE0YjFjMTc1NDViNGM0NWRiMjQzNzhkNDYxY2I3MWM1YzEuLmE4MGZk
OTI4ZjljMTk3Nzg5ZGZjNmU5NDA4NTRkMWYzNTkzMzJiNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwCkBAIC0xNzcs
OCArMTc3LDggQEAgY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgRm9udFBsYXRmb3JtRGF0YTo6b3Bl
cmF0b3I9KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIG90aGUKICNpZiBPUyhEQVJXSU4pICYmIFVT
RShDRykKIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBGb250UGxhdGZvcm1EYXRhOjpvcGVuVHlw
ZVRhYmxlKHVpbnQzMl90IHRhYmxlKSBjb25zdAogewotICAgIGlmIChDRkRhdGFSZWYgZGF0YSA9
IENHRm9udENvcHlUYWJsZUZvclRhZyhjZ0ZvbnQoKSwgdGFibGUpKQotICAgICAgICByZXR1cm4g
U2hhcmVkQnVmZmVyOjp3cmFwQ0ZEYXRhKGRhdGEpOworICAgIGlmIChSZXRhaW5QdHI8Q0ZEYXRh
UmVmPiBkYXRhID0gYWRvcHRDRihDR0ZvbnRDb3B5VGFibGVGb3JUYWcoY2dGb250KCksIHRhYmxl
KSkpCisgICAgICAgIHJldHVybiBTaGFyZWRCdWZmZXI6OndyYXBDRkRhdGEoZGF0YS5nZXQoKSk7
CiAgICAgCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUFWQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L2NmL0luYmFuZFRleHRUcmFja1ByaXZhdGVBVkNGLmNwcAppbmRleCAxZWVjYmE1MjI3MDYyOTA3
ZmNhNjNjN2NhNzEwZGZkM2IwMjkzMzQwLi4yYWJiNzJkYTAwZmIxNzNhZTNlNTRkNDE0MjFmNjcx
Y2Q4NDEzZjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vY2YvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWQ0YuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9JbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQVZDRi5jcHAKQEAgLTE0OCw4ICsxNDgsOCBAQCBBdG9taWNTdHJpbmcgSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUFWQ0Y6OmxhYmVsKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGVtcHR5
QXRvbTsKIAogICAgIC8vIElmIHBvc3NpYmxlLCByZXR1cm4gYSB0aXRsZSBpbiBvbmUgb2YgdGhl
IHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2VzLgotICAgIFJldGFpblB0cjxDRkFycmF5UmVmPiBw
cmVmZXJyZWRMYW5ndWFnZXMgPSBDRkxvY2FsZUNvcHlQcmVmZXJyZWRMYW5ndWFnZXMoKTsKLSAg
ICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gdGl0bGVzRm9yUHJlZmVycmVkTGFuZ3VhZ2VzID0gQVZD
Rk1lZGlhU2VsZWN0aW9uQ29weU9wdGlvbnNGcm9tQXJyYXlGaWx0ZXJlZEFuZFNvcnRlZEFjY29y
ZGluZ1RvUHJlZmVycmVkTGFuZ3VhZ2VzKHRpdGxlcy5nZXQoKSwgcHJlZmVycmVkTGFuZ3VhZ2Vz
LmdldCgpKTsKKyAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gcHJlZmVycmVkTGFuZ3VhZ2VzID0g
YWRvcHRDRihDRkxvY2FsZUNvcHlQcmVmZXJyZWRMYW5ndWFnZXMoKSk7CisgICAgUmV0YWluUHRy
PENGQXJyYXlSZWY+IHRpdGxlc0ZvclByZWZlcnJlZExhbmd1YWdlcyA9IGFkb3B0Q0YoQVZDRk1l
ZGlhU2VsZWN0aW9uQ29weU9wdGlvbnNGcm9tQXJyYXlGaWx0ZXJlZEFuZFNvcnRlZEFjY29yZGlu
Z1RvUHJlZmVycmVkTGFuZ3VhZ2VzKHRpdGxlcy5nZXQoKSwgcHJlZmVycmVkTGFuZ3VhZ2VzLmdl
dCgpKSk7CiAgICAgQ0ZJbmRleCBwcmVmZXJyZWRUaXRsZXNDb3VudCA9IENGQXJyYXlHZXRDb3Vu
dCh0aXRsZXNGb3JQcmVmZXJyZWRMYW5ndWFnZXMuZ2V0KCkpOwogICAgIGlmIChwcmVmZXJyZWRU
aXRsZXNDb3VudCkgewogICAgICAgICBBVkNGTWV0YWRhdGFJdGVtUmVmIHRpdGxlTWV0YWRhdGEg
PSBzdGF0aWNfY2FzdDxBVkNGTWV0YWRhdGFJdGVtUmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4
KHRpdGxlc0ZvclByZWZlcnJlZExhbmd1YWdlcy5nZXQoKSwgMCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAK
aW5kZXggMjkyYzZjNTYxNDEwY2E3YmQxOGNiNGEwYThiNzY0YjMzOWJiZWQ4Mi4uN2RhNjc1ZDY3
NTU1MDE2N2RmYTA3NGM0MWQxNThiMzZhNWYwMWQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCkBAIC0x
NzU3LDggKzE3NTcsOSBAQCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gQVZGV3JhcHBlcjo6Y3JlYXRl
SW1hZ2VGb3JUaW1lSW5SZWN0KGZsb2F0IHRpbWUsIGNvbnN0IEludAogI2VuZGlmCiAKICAgICBB
VkNGQXNzZXRJbWFnZUdlbmVyYXRvclNldE1heGltdW1TaXplKG1faW1hZ2VHZW5lcmF0b3IuZ2V0
KCksIENHU2l6ZShyZWN0LnNpemUoKSkpOwotICAgIENHSW1hZ2VSZWYgcmF3aW1hZ2UgPSBBVkNG
QXNzZXRJbWFnZUdlbmVyYXRvckNvcHlDR0ltYWdlQXRUaW1lKG1faW1hZ2VHZW5lcmF0b3IuZ2V0
KCksIENNVGltZU1ha2VXaXRoU2Vjb25kcyh0aW1lLCA2MDApLCAwLCAwKTsKLSAgICBDR0ltYWdl
UmVmIGltYWdlID0gQ0dJbWFnZUNyZWF0ZUNvcHlXaXRoQ29sb3JTcGFjZShyYXdpbWFnZSwgIENH
Q29sb3JTcGFjZUNyZWF0ZURldmljZVJHQigpKTsKKyAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4g
cmF3aW1hZ2UgPSBhZG9wdENGKEFWQ0ZBc3NldEltYWdlR2VuZXJhdG9yQ29weUNHSW1hZ2VBdFRp
bWUobV9pbWFnZUdlbmVyYXRvci5nZXQoKSwgQ01UaW1lTWFrZVdpdGhTZWNvbmRzKHRpbWUsIDYw
MCksIDAsIDApKTsKKyAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gaW1hZ2UgPSBhZG9wdENGKENH
SW1hZ2VDcmVhdGVDb3B5V2l0aENvbG9yU3BhY2UocmF3aW1hZ2UuZ2V0KCksIGFkb3B0Q0YoQ0dD
b2xvclNwYWNlQ3JlYXRlRGV2aWNlUkdCKCkpLmdldCgpKSk7CisKICNpZiAhTE9HX0RJU0FCTEVE
CiAgICAgZG91YmxlIGR1cmF0aW9uID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBz
dGFydDsKICAgICBMT0coTWVkaWEsICJBVkZXcmFwcGVyOjpjcmVhdGVJbWFnZUZvclRpbWVJblJl
Y3QoJXApIC0gY3JlYXRpbmcgaW1hZ2UgdG9vayAlLjRmIiwgdGhpcywgbmFycm93UHJlY2lzaW9u
VG9GbG9hdChkdXJhdGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9QREZEb2N1bWVudEltYWdlLmNwcAppbmRleCA5ZmU5MTAxNzhiZGRlM2Ey
OTM1N2YwZTM3OGU1MzQ3YzY1MGUwMzFiLi40MDIyZmFkMTFlN2E2NDNmMDJhYzRhMTVlYTYzZjJh
MzE1OTNhMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9QREZEb2N1bWVudEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9QREZEb2N1bWVudEltYWdlLmNwcApAQCAtMjA5LDEwICsyMDksMTEgQEAgdm9pZCBQ
REZEb2N1bWVudEltYWdlOjpkZXN0cm95RGVjb2RlZERhdGEoYm9vbCkKIH0KIAogI2lmICFVU0Uo
UERGS0lUX0ZPUl9QREZET0NVTUVOVElNQUdFKQorCiB2b2lkIFBERkRvY3VtZW50SW1hZ2U6OmNy
ZWF0ZVBERkRvY3VtZW50KCkKIHsKICAgICBSZXRhaW5QdHI8Q0dEYXRhUHJvdmlkZXJSZWY+IGRh
dGFQcm92aWRlciA9IGFkb3B0Q0YoQ0dEYXRhUHJvdmlkZXJDcmVhdGVXaXRoQ0ZEYXRhKGRhdGEo
KS0+Y3JlYXRlQ0ZEYXRhKCkuZ2V0KCkpKTsKLSAgICBtX2RvY3VtZW50ID0gQ0dQREZEb2N1bWVu
dENyZWF0ZVdpdGhQcm92aWRlcihkYXRhUHJvdmlkZXIuZ2V0KCkpOworICAgIG1fZG9jdW1lbnQg
PSBhZG9wdENGKENHUERGRG9jdW1lbnRDcmVhdGVXaXRoUHJvdmlkZXIoZGF0YVByb3ZpZGVyLmdl
dCgpKSk7CiB9CiAKIHZvaWQgUERGRG9jdW1lbnRJbWFnZTo6Y29tcHV0ZUJvdW5kc0ZvckN1cnJl
bnRQYWdlKCkKQEAgLTI1Niw2ICsyNTcsNyBAQCB2b2lkIFBERkRvY3VtZW50SW1hZ2U6OmRyYXdQ
REZQYWdlKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCkKICAgICAvLyBDR1BERiBwYWdlcyBhcmUg
aW5kZXhlZCBmcm9tIDEuCiAgICAgQ0dDb250ZXh0RHJhd1BERlBhZ2UoY29udGV4dC0+cGxhdGZv
cm1Db250ZXh0KCksIENHUERGRG9jdW1lbnRHZXRQYWdlKG1fZG9jdW1lbnQuZ2V0KCksIDEpKTsK
IH0KKwogI2VuZGlmIC8vICFVU0UoUERGS0lUX0ZPUl9QREZET0NVTUVOVElNQUdFKQogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxh
dGZvcm1EYXRhQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KaW5kZXggMmU3ZmRkOWU4NjExODliNjhiYjE5NjAx
MTEzYzFiMDA3N2M0ZTMzNi4uM2ZmMTgyM2ZmZTIyODg3Mzc0OTE0ODhiMTIwNjA0Mzg1NTc3ZmQ0
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9u
dFBsYXRmb3JtRGF0YUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQpAQCAtMjcyLDkgKzI3MiwxMyBAQCBz
dGF0aWMgQ1RGb250RGVzY3JpcHRvclJlZiBjYXNjYWRlVG9MYXN0UmVzb3J0Rm9udERlc2NyaXB0
b3IoKQogICAgIGlmIChkZXNjcmlwdG9yKQogICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjsKIAor
ICAgIFJldGFpblB0cjxDVEZvbnREZXNjcmlwdG9yUmVmPiBsYXN0UmVzb3J0ID0gYWRvcHRDRihD
VEZvbnREZXNjcmlwdG9yQ3JlYXRlV2l0aE5hbWVBbmRTaXplKENGU1RSKCJMYXN0UmVzb3J0Iiks
IDApKTsKKworICAgIGNvbnN0IHZvaWQqIGRlc2NyaXB0b3JzW10gPSB7IGxhc3RSZXNvcnQuZ2V0
KCkgfTsKKyAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gYXJyYXkgPSBhZG9wdENGKENGQXJyYXlD
cmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGVzY3JpcHRvcnMsIFdURl9BUlJBWV9MRU5HVEgo
ZGVzY3JpcHRvcnMpLCAma0NGVHlwZUFycmF5Q2FsbEJhY2tzKSk7CisKICAgICBjb25zdCB2b2lk
KiBrZXlzW10gPSB7IGtDVEZvbnRDYXNjYWRlTGlzdEF0dHJpYnV0ZSB9OwotICAgIGNvbnN0IHZv
aWQqIGRlc2NyaXB0b3JzW10gPSB7IENURm9udERlc2NyaXB0b3JDcmVhdGVXaXRoTmFtZUFuZFNp
emUoQ0ZTVFIoIkxhc3RSZXNvcnQiKSwgMCkgfTsKLSAgICBjb25zdCB2b2lkKiB2YWx1ZXNbXSA9
IHsgQ0ZBcnJheUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBkZXNjcmlwdG9ycywgV1RGX0FS
UkFZX0xFTkdUSChkZXNjcmlwdG9ycyksICZrQ0ZUeXBlQXJyYXlDYWxsQmFja3MpIH07CisgICAg
Y29uc3Qgdm9pZCogdmFsdWVzW10gPSB7IGFycmF5LmdldCgpIH07CiAgICAgUmV0YWluUHRyPENG
RGljdGlvbmFyeVJlZj4gYXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGtleXMsIHZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSChrZXlzKSwg
JmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNh
bGxCYWNrcykpOwogCiAgICAgZGVzY3JpcHRvciA9IENURm9udERlc2NyaXB0b3JDcmVhdGVXaXRo
QXR0cmlidXRlcyhhdHRyaWJ1dGVzLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMubW0KaW5kZXggZTFlZWUyZDgxNWViZTYwMDU5YTdhYTQ1
OWQzNGExMGU2Zjg5NzE3My4uNzVkZTQ1ZWNmMDcwN2FjZjE2NzdmNGQ4NzZlZjc4MmM1OTQ5Nzgz
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRNYWMu
bW0KQEAgLTU0Myw4ICs1NDMsNyBAQCBEYXNoQXJyYXkgRm9udDo6ZGFzaGVzRm9ySW50ZXJzZWN0
aW9uc1dpdGhSZWN0KGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QgRmxvYXRQbwogYm9vbCBGb250
OjpwcmltYXJ5Rm9udERhdGFJc1N5c3RlbUZvbnQoKSBjb25zdAogewogI2lmIFBMQVRGT1JNKElP
UykgfHwgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+IDEwOTAKLSAgICBSZXRhaW5Q
dHI8Q1RGb250RGVzY3JpcHRvclJlZj4gZGVzY3JpcHRvciA9IENURm9udENvcHlGb250RGVzY3Jp
cHRvcihwcmltYXJ5Rm9udCgpLT5wbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSk7Ci0gICAgcmV0dXJu
IENURm9udERlc2NyaXB0b3JJc1N5c3RlbVVJRm9udChkZXNjcmlwdG9yLmdldCgpKTsKKyAgICBy
ZXR1cm4gQ1RGb250RGVzY3JpcHRvcklzU3lzdGVtVUlGb250KGFkb3B0Q0YoQ1RGb250Q29weUZv
bnREZXNjcmlwdG9yKHByaW1hcnlGb250KCktPnBsYXRmb3JtRGF0YSgpLmN0Rm9udCgpKSkuZ2V0
KCkpOwogI2Vsc2UKICAgICAvLyBTeXN0ZW0gZm9udHMgYXJlIGhpZGRlbiBieSBoYXZpbmcgYSBu
YW1lIHRoYXQgYmVnaW5zIHdpdGggYSBwZXJpb2QsIHNvIHNpbXBseSBzZWFyY2gKICAgICAvLyBm
b3IgdGhhdCBoZXJlIHJhdGhlciB0aGFuIHRyeSB0byBrZWVwIHRoZSBsaXN0IHVwIHRvIGRhdGUu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2ltcGxl
Rm9udERhdGFNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2lt
cGxlRm9udERhdGFNYWMubW0KaW5kZXggYThkZDUwZWUzMzAxMzQxZWViMDU5NjFmZWIyNTNmZDBl
YmExNzhhMy4uNzIzNTdmYWRmNzFlY2M0YWM5NDFhNDJmZDQzNzI2OTQ4MDZmMTU2OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1NpbXBsZUZvbnREYXRh
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9TaW1wbGVG
b250RGF0YU1hYy5tbQpAQCAtMzcyLDggKzM3Miw3IEBAIHN0YXRpYyBib29sIGhhc0N1c3RvbVRy
YWNraW5nKENURm9udFJlZiBmb250KQogICAgIFVOVVNFRF9QQVJBTShmb250KTsKICAgICByZXR1
cm4gZmFsc2U7CiAjZWxzZQotICAgIFJldGFpblB0cjxDVEZvbnREZXNjcmlwdG9yUmVmPiBkZXNj
cmlwdG9yID0gQ1RGb250Q29weUZvbnREZXNjcmlwdG9yKGZvbnQpOwotICAgIHJldHVybiBDVEZv
bnREZXNjcmlwdG9ySXNTeXN0ZW1VSUZvbnQoZGVzY3JpcHRvci5nZXQoKSk7CisgICAgcmV0dXJu
IENURm9udERlc2NyaXB0b3JJc1N5c3RlbVVJRm9udChhZG9wdENGKENURm9udENvcHlGb250RGVz
Y3JpcHRvcihmb250KSkuZ2V0KCkpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmgKaW5kZXggZjRhMTc5
NGE0ODY5ODkxYjUyYjYzZmM5M2U4OWNjZDI3ZmNmZWQ1Yy4uMjhmMGE5NTRkNmVlMmM5YzU5NzRk
OWZhNGYwMGM2ZTdiNDliNmNkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmgKQEAgLTMyMCw2ICszMjAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBsZW5ndGggPSBDRkRh
dGFHZXRMZW5ndGgoaWNjUHJvZmlsZSk7CiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2ln
bmVkIGNoYXIqIHN5c3RlbVByb2ZpbGUgPSBDRkRhdGFHZXRCeXRlUHRyKGljY1Byb2ZpbGUpOwog
ICAgICAgICAgICAgICAgICAgICBvdXRwdXREZXZpY2VQcm9maWxlID0gcWNtc19wcm9maWxlX2Zy
b21fbWVtb3J5KHN5c3RlbVByb2ZpbGUsIGxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgIENG
UmVsZWFzZShpY2NQcm9maWxlKTsKICAgICAgICAgICAgICAgICB9CiAjZWxzZQogICAgICAgICAg
ICAgICAgIC8vIEZJWE1FOiBhZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgbW9uaXRvcnMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5QYWNrYWdlTWFjLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblBhY2thZ2VNYWMuY3BwCmluZGV4IGZl
ZTI3ZWRkOWM3NmJjYWM2MDhlZDdiYTc3OWY0M2YwNjM1ODBjMmQuLmI4ZWEwYzVjNzEzYWU3ZWFm
YTViNmZiMzUxNjU0OTFhOGMyNjEyZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdp
bnMvbWFjL1BsdWdpblBhY2thZ2VNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMv
bWFjL1BsdWdpblBhY2thZ2VNYWMuY3BwCkBAIC0yOCwxNSArMjgsMTQgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJQbHVnaW5QYWNrYWdlLmgiCiAKLSNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+CiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgotI2luY2x1ZGUgIm5wcnVu
dGltZV9pbXBsLmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YWJhc2UuaCIKICNpbmNsdWRlICJQbHVn
aW5EZWJ1Zy5oIgogI2luY2x1ZGUgIldlYkNvcmVOU1N0cmluZ0V4dHJhcy5oIgotI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KLQorI2luY2x1ZGUgIm5wcnVudGltZV9pbXBsLmgiCiAjaW5j
bHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiAjZGVmaW5lIFBsdWdp
bk5hbWVPckRlc2NyaXB0aW9uU3RyaW5nTnVtYmVyICAgICAxMjYKICNkZWZpbmUgTUlNRURlc2Ny
aXB0aW9uU3RyaW5nTnVtYmVyICAgICAgICAgICAgIDEyNwpAQCAtNjcsNyArNjYsNyBAQCB2b2lk
IFBsdWdpblBhY2thZ2U6OmRldGVybWluZVF1aXJrcyhjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQog
CiB0eXBlZGVmIHZvaWQgKCpCUF9DcmVhdGVQbHVnaW5NSU1FVHlwZXNQcmVmZXJlbmNlc0Z1bmNQ
dHIpKHZvaWQpOwogCi1zdGF0aWMgV1RGOjpSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiByZWFk
UExpc3RGaWxlKENGU3RyaW5nUmVmIGZpbGVOYW1lLCBib29sIGNyZWF0ZUZpbGUsIENGQnVuZGxl
UmVmIGJ1bmRsZSkKK3N0YXRpYyBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiByZWFkUExpc3RG
aWxlKENGU3RyaW5nUmVmIGZpbGVOYW1lLCBib29sIGNyZWF0ZUZpbGUsIENGQnVuZGxlUmVmIGJ1
bmRsZSkKIHsKICAgICBpZiAoY3JlYXRlRmlsZSkgewogICAgICAgICBCUF9DcmVhdGVQbHVnaW5N
SU1FVHlwZXNQcmVmZXJlbmNlc0Z1bmNQdHIgZnVuY1B0ciA9CkBAIC03NiwxNyArNzUsMTUgQEAg
c3RhdGljIFdURjo6UmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gcmVhZFBMaXN0RmlsZShDRlN0
cmluZ1JlZiBmaWxlTmFtZSwgYm9vbAogICAgICAgICAgICAgZnVuY1B0cigpOwogICAgIH0KIAot
ICAgIFdURjo6UmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gbWFwOwotICAgIFdURjo6UmV0YWlu
UHRyPENGVVJMUmVmPiB1cmwgPQotICAgICAgICBDRlVSTENyZWF0ZVdpdGhGaWxlU3lzdGVtUGF0
aChrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBmaWxlTmFtZSwga0NGVVJMUE9TSVhQYXRoU3R5bGUsIGZh
bHNlKTsKKyAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBtYXA7CisgICAgUmV0YWluUHRy
PENGVVJMUmVmPiB1cmwgPSBhZG9wdENGKENGVVJMQ3JlYXRlV2l0aEZpbGVTeXN0ZW1QYXRoKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGZpbGVOYW1lLCBrQ0ZVUkxQT1NJWFBhdGhTdHlsZSwgZmFsc2Up
KTsKIAogICAgIENGRGF0YVJlZiByZXNvdXJjZSA9IDA7CiAgICAgU0ludDMyIGNvZGU7CiAgICAg
aWYgKCFDRlVSTENyZWF0ZURhdGFBbmRQcm9wZXJ0aWVzRnJvbVJlc291cmNlKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIHVybC5nZXQoKSwgJnJlc291cmNlLCAwLCAwLCAmY29kZSkpCiAgICAgICAgIHJl
dHVybiBtYXA7CiAKLSAgICBXVEY6OlJldGFpblB0cjxDRlByb3BlcnR5TGlzdFJlZj4gcHJvcGVy
dHlMaXN0ID0KLSAgICAgICAgICAgIENGUHJvcGVydHlMaXN0Q3JlYXRlRnJvbVhNTERhdGEoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgcmVzb3VyY2UsIGtDRlByb3BlcnR5TGlzdEltbXV0YWJsZSwgMCk7
CisgICAgUmV0YWluUHRyPENGUHJvcGVydHlMaXN0UmVmPiBwcm9wZXJ0eUxpc3QgPSBhZG9wdENG
KENGUHJvcGVydHlMaXN0Q3JlYXRlRnJvbVhNTERhdGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcmVz
b3VyY2UsIGtDRlByb3BlcnR5TGlzdEltbXV0YWJsZSwgMCkpOwogCiAgICAgQ0ZSZWxlYXNlKHJl
c291cmNlKTsKIApAQCAtMTE5LDcgKzExNiw3IEBAIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiBzdHJp
bmdMaXN0RnJvbVJlc291cmNlSWQoU0ludDE2IGlkKQogCiAgICAgZm9yIChTSW50MTYgaSA9IDA7
IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgIHVuc2lnbmVkIGNoYXIgbGVuZ3RoID0gKnA7Ci0g
ICAgICAgIFdURjo6UmV0YWluUHRyPENGU3RyaW5nUmVmPiBzdHIgPSBhZG9wdENGKENGU3RyaW5n
Q3JlYXRlV2l0aFBhc2NhbFN0cmluZygwLCBwLCBlbmNvZGluZykpOworICAgICAgICBSZXRhaW5Q
dHI8Q0ZTdHJpbmdSZWY+IHN0ciA9IGFkb3B0Q0YoQ0ZTdHJpbmdDcmVhdGVXaXRoUGFzY2FsU3Ry
aW5nKDAsIHAsIGVuY29kaW5nKSk7CiAgICAgICAgIGxpc3QuYXBwZW5kKHN0ci5nZXQoKSk7CiAg
ICAgICAgIHAgKz0gMSArIGxlbmd0aDsKICAgICB9CkBAIC0xMzIsMTkgKzEyOSwxOSBAQCBib29s
IFBsdWdpblBhY2thZ2U6OmZldGNoSW5mbygpCiAgICAgaWYgKCFsb2FkKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIFdURjo6UmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gbWltZURp
Y3Q7CisgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gbWltZURpY3Q7CiAKLSAgICBXVEY6
OlJldGFpblB0cjxDRlR5cGVSZWY+IG1pbWVUeXBlc0ZpbGVOYW1lID0gQ0ZCdW5kbGVHZXRWYWx1
ZUZvckluZm9EaWN0aW9uYXJ5S2V5KG1fbW9kdWxlLCBDRlNUUigiV2ViUGx1Z2luTUlNRVR5cGVz
RmlsZW5hbWUiKSk7CisgICAgUmV0YWluUHRyPENGVHlwZVJlZj4gbWltZVR5cGVzRmlsZU5hbWUg
PSBDRkJ1bmRsZUdldFZhbHVlRm9ySW5mb0RpY3Rpb25hcnlLZXkobV9tb2R1bGUsIENGU1RSKCJX
ZWJQbHVnaW5NSU1FVHlwZXNGaWxlbmFtZSIpKTsKICAgICBpZiAobWltZVR5cGVzRmlsZU5hbWUg
JiYgQ0ZHZXRUeXBlSUQobWltZVR5cGVzRmlsZU5hbWUuZ2V0KCkpID09IENGU3RyaW5nR2V0VHlw
ZUlEKCkpIHsKIAotICAgICAgICBXVEY6OlJldGFpblB0cjxDRlN0cmluZ1JlZj4gZmlsZU5hbWUg
PSAoQ0ZTdHJpbmdSZWYpbWltZVR5cGVzRmlsZU5hbWUuZ2V0KCk7Ci0gICAgICAgIFdURjo6UmV0
YWluUHRyPENGU3RyaW5nUmVmPiBob21lRGlyID0gYWRvcHRDRihob21lRGlyZWN0b3J5UGF0aCgp
LmNyZWF0ZUNGU3RyaW5nKCkpOwotICAgICAgICBXVEY6OlJldGFpblB0cjxDRlN0cmluZ1JlZj4g
cGF0aCA9IGFkb3B0Q0YoQ0ZTdHJpbmdDcmVhdGVXaXRoRm9ybWF0KDAsIDAsIENGU1RSKCIlQC9M
aWJyYXJ5L1ByZWZlcmVuY2VzLyVAIiksIGhvbWVEaXIuZ2V0KCksIGZpbGVOYW1lLmdldCgpKSk7
CisgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZmlsZU5hbWUgPSAoQ0ZTdHJpbmdSZWYp
bWltZVR5cGVzRmlsZU5hbWUuZ2V0KCk7CisgICAgICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4g
aG9tZURpciA9IGFkb3B0Q0YoaG9tZURpcmVjdG9yeVBhdGgoKS5jcmVhdGVDRlN0cmluZygpKTsK
KyAgICAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBwYXRoID0gYWRvcHRDRihDRlN0cmluZ0Ny
ZWF0ZVdpdGhGb3JtYXQoMCwgMCwgQ0ZTVFIoIiVAL0xpYnJhcnkvUHJlZmVyZW5jZXMvJUAiKSwg
aG9tZURpci5nZXQoKSwgZmlsZU5hbWUuZ2V0KCkpKTsKIAotICAgICAgICBXVEY6OlJldGFpblB0
cjxDRkRpY3Rpb25hcnlSZWY+IHBsaXN0ID0gcmVhZFBMaXN0RmlsZShwYXRoLmdldCgpLCAvKmNy
ZWF0ZUZpbGUqLyBmYWxzZSwgbV9tb2R1bGUpOworICAgICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9u
YXJ5UmVmPiBwbGlzdCA9IHJlYWRQTGlzdEZpbGUocGF0aC5nZXQoKSwgLypjcmVhdGVGaWxlKi8g
ZmFsc2UsIG1fbW9kdWxlKTsKICAgICAgICAgaWYgKHBsaXN0KSB7CiAgICAgICAgICAgICAvLyBJ
ZiB0aGUgcGxpc3QgaXNuJ3QgbG9jYWxpemVkLCBoYXZlIHRoZSBwbHVnLWluIHJlY3JlYXRlIGl0
IGluIHRoZSBwcmVmZXJyZWQgbGFuZ3VhZ2UuCi0gICAgICAgICAgICBXVEY6OlJldGFpblB0cjxD
RlN0cmluZ1JlZj4gbG9jYWxpemF0aW9uTmFtZSA9CisgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+IGxvY2FsaXphdGlvbk5hbWUgPQogICAgICAgICAgICAgICAgIChDRlN0cmluZ1Jl
ZilDRkRpY3Rpb25hcnlHZXRWYWx1ZShwbGlzdC5nZXQoKSwgQ0ZTVFIoIldlYlBsdWdpbkxvY2Fs
aXphdGlvbk5hbWUiKSk7CiAgICAgICAgICAgICBDRkxvY2FsZVJlZiBsb2NhbGUgPSBDRkxvY2Fs
ZUNvcHlDdXJyZW50KCk7CiAgICAgICAgICAgICBpZiAobG9jYWxpemF0aW9uTmFtZSAhPSBDRkxv
Y2FsZUdldElkZW50aWZpZXIobG9jYWxlKSkKQEAgLTE3Miw5ICsxNjksOSBAQCBib29sIFBsdWdp
blBhY2thZ2U6OmZldGNoSW5mbygpCiAgICAgICAgICAgICBTdHJpbmcgbWltZVR5cGUgPSAoQ0ZT
dHJpbmdSZWYpa2V5c1tpXTsKICAgICAgICAgICAgIG1pbWVUeXBlID0gbWltZVR5cGUubG93ZXIo
KTsKIAotICAgICAgICAgICAgV1RGOjpSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBleHRlbnNp
b25zRGljdCA9IChDRkRpY3Rpb25hcnlSZWYpdmFsdWVzW2ldOworICAgICAgICAgICAgUmV0YWlu
UHRyPENGRGljdGlvbmFyeVJlZj4gZXh0ZW5zaW9uc0RpY3QgPSAoQ0ZEaWN0aW9uYXJ5UmVmKXZh
bHVlc1tpXTsKIAotICAgICAgICAgICAgV1RGOjpSZXRhaW5QdHI8Q0ZOdW1iZXJSZWY+IGVuYWJs
ZWQgPSAoQ0ZOdW1iZXJSZWYpQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoZXh0ZW5zaW9uc0RpY3QuZ2V0
KCksIENGU1RSKCJXZWJQbHVnaW5UeXBlRW5hYmxlZCIpKTsKKyAgICAgICAgICAgIFJldGFpblB0
cjxDRk51bWJlclJlZj4gZW5hYmxlZCA9IChDRk51bWJlclJlZilDRkRpY3Rpb25hcnlHZXRWYWx1
ZShleHRlbnNpb25zRGljdC5nZXQoKSwgQ0ZTVFIoIldlYlBsdWdpblR5cGVFbmFibGVkIikpOwog
ICAgICAgICAgICAgaWYgKGVuYWJsZWQpIHsKICAgICAgICAgICAgICAgICBpbnQgZW5hYmxlZFZh
bHVlID0gMDsKICAgICAgICAgICAgICAgICBpZiAoQ0ZOdW1iZXJHZXRWYWx1ZShlbmFibGVkLmdl
dCgpLCBrQ0ZOdW1iZXJJbnRUeXBlLCAmZW5hYmxlZFZhbHVlKSAmJiBlbmFibGVkVmFsdWUgPT0g
MCkKQEAgLTE4Miw3ICsxNzksNyBAQCBib29sIFBsdWdpblBhY2thZ2U6OmZldGNoSW5mbygpCiAg
ICAgICAgICAgICB9CiAKICAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IG1pbWVFeHRlbnNpb25z
OwotICAgICAgICAgICAgV1RGOjpSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gZXh0ZW5zaW9ucyA9IChD
RkFycmF5UmVmKUNGRGljdGlvbmFyeUdldFZhbHVlKGV4dGVuc2lvbnNEaWN0LmdldCgpLCBDRlNU
UigiV2ViUGx1Z2luRXh0ZW5zaW9ucyIpKTsKKyAgICAgICAgICAgIFJldGFpblB0cjxDRkFycmF5
UmVmPiBleHRlbnNpb25zID0gKENGQXJyYXlSZWYpQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUoZXh0ZW5z
aW9uc0RpY3QuZ2V0KCksIENGU1RSKCJXZWJQbHVnaW5FeHRlbnNpb25zIikpOwogICAgICAgICAg
ICAgaWYgKGV4dGVuc2lvbnMpIHsKICAgICAgICAgICAgICAgICBDRkluZGV4IGV4dGVuc2lvbkNv
dW50ID0gQ0ZBcnJheUdldENvdW50KGV4dGVuc2lvbnMuZ2V0KCkpOwogICAgICAgICAgICAgICAg
IGZvciAoQ0ZJbmRleCBpID0gMDsgaSA8IGV4dGVuc2lvbkNvdW50OyArK2kpIHsKQEAgLTI1NSw4
ICsyNTIsOCBAQCBib29sIFBsdWdpblBhY2thZ2U6OmxvYWQoKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKLSAgICBXVEY6OlJldGFpblB0cjxDRlN0cmluZ1JlZj4gcGF0aCA9IGFkb3B0
Q0YobV9wYXRoLmNyZWF0ZUNGU3RyaW5nKCkpOwotICAgIFdURjo6UmV0YWluUHRyPENGVVJMUmVm
PiB1cmwgPSBhZG9wdENGKENGVVJMQ3JlYXRlV2l0aEZpbGVTeXN0ZW1QYXRoKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIHBhdGguZ2V0KCksCisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBwYXRoID0g
YWRvcHRDRihtX3BhdGguY3JlYXRlQ0ZTdHJpbmcoKSk7CisgICAgUmV0YWluUHRyPENGVVJMUmVm
PiB1cmwgPSBhZG9wdENGKENGVVJMQ3JlYXRlV2l0aEZpbGVTeXN0ZW1QYXRoKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIHBhdGguZ2V0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQ0ZVUkxQT1NJWFBhdGhTdHls
ZSwgZmFsc2UpKTsKICAgICBtX21vZHVsZSA9IENGQnVuZGxlQ3JlYXRlKE5VTEwsIHVybC5nZXQo
KSk7CiAgICAgaWYgKCFtX21vZHVsZSB8fCAhQ0ZCdW5kbGVMb2FkRXhlY3V0YWJsZShtX21vZHVs
ZSkpIHsK
</data>
<flag name="review"
          id="254415"
          type_id="1"
          status="+"
          setter="kling"
    />
    <flag name="commit-queue"
          id="254416"
          type_id="3"
          status="-"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>