<?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>177103</bug_id>
          
          <creation_ts>2017-09-18 14:29:19 -0700</creation_ts>
          <short_desc>Make ImageFrame::duration() return Seconds instead of float</short_desc>
          <delta_ts>2017-09-27 12:26:13 -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>Images</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jer.noble</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1350092</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-09-18 14:29:19 -0700</bug_when>
    <thetext>There has been a confusion about the units that this function returns. The ImageFrame is used for two different purposes. It is used by ImageFrameCache to ensure the decoded frame and its meta data are cached when they have to. And it is also used by ScalableImageDecoder to help decoding the image frames fast. The ImageFrame which is cached by ImageFrameCache has the duration in seconds while the ScalableImageDecoder caches its ImageFrame with milli-seconds durations. To clear things, make all the duration in seconds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350094</commentid>
    <comment_count>1</comment_count>
      <attachid>321131</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-09-18 14:31:40 -0700</bug_when>
    <thetext>Created attachment 321131
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350131</commentid>
    <comment_count>2</comment_count>
      <attachid>321143</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-09-18 15:56:28 -0700</bug_when>
    <thetext>Created attachment 321143
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350165</commentid>
    <comment_count>3</comment_count>
      <attachid>321143</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-09-18 16:56:07 -0700</bug_when>
    <thetext>Comment on attachment 321143
Patch

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

&gt; Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp:363
&gt; +        return Seconds(0.1f);

0.1_s or 100_ms

&gt; Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp:364
&gt; +    return Seconds(duration);

Can this just be &quot;return { duration }&quot;?

&gt; Source/WebCore/platform/image-decoders/ScalableImageDecoder.cpp:206
&gt; +        return { };

0_s

&gt; Source/WebCore/platform/image-decoders/ScalableImageDecoder.cpp:212
&gt; +    if (buffer-&gt;duration() &lt; Seconds(0.011f))

11_ms

&gt; Source/WebCore/platform/image-decoders/ScalableImageDecoder.cpp:213
&gt; +        return Seconds(0.100f);

100_ms</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350190</commentid>
    <comment_count>4</comment_count>
      <attachid>321162</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-09-18 18:04:58 -0700</bug_when>
    <thetext>Created attachment 321162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350215</commentid>
    <comment_count>5</comment_count>
      <attachid>321162</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-18 19:45:36 -0700</bug_when>
    <thetext>Comment on attachment 321162
Patch

Clearing flags on attachment: 321162

Committed r222196: &lt;http://trac.webkit.org/changeset/222196&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1350216</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-18 19:45:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353377</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-09-27 12:26:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/34693275&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321131</attachid>
            <date>2017-09-18 14:31:40 -0700</date>
            <delta_ts>2017-09-18 15:56:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177103-20170918143139.patch</filename>
            <type>text/plain</type>
            <size>13767</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMjE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM5IEBACisyMDE3LTA5LTE4ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBJbWFn
ZUZyYW1lOjpkdXJhdGlvbigpIHJldHVybiBTZWNvbmRzIGluc3RlYWQgb2YgZmxvYXQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzEwMworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZURl
Y29kZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmg6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUZyYW1lOjpzZXREdXJhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUZyYW1lOjpkdXJhdGlvbiBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VGcmFtZUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRnJhbWVDYWNo
ZTo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlRnJhbWVDYWNoZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlRGVjb2RlckNHLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckNHOjpmcmFtZUR1cmF0aW9uQXRJbmRleCBjb25z
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VEZWNvZGVyQ0cuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJsZUltYWdlRGVjb2Rlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY2FsYWJsZUltYWdlRGVjb2Rlcjo6ZnJhbWVEdXJhdGlvbkF0
SW5kZXggY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL1NjYWxhYmxl
SW1hZ2VEZWNvZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvZ2lmL0dJ
RkltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHSUZJbWFnZURlY29kZXI6OmZy
YW1lQ29tcGxldGUpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJ
bWFnZURlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UE5HSW1hZ2VEZWNvZGVyOjpyZWFk
Q2h1bmtzKToKKyAgICAgICAgKFdlYkNvcmU6OlBOR0ltYWdlRGVjb2Rlcjo6ZnJhbWVIZWFkZXIp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UE5HSW1hZ2VEZWNvZGVyOjppbml0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBOR0ltYWdlRGVjb2Rlcjo6Y2xlYXJGcmFtZUJ1ZmZl
ckNhY2hlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBOR0ltYWdlRGVjb2Rlcjo6aW5p
dEZyYW1lQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBOR0ltYWdlRGVjb2Rl
cjo6ZnJhbWVDb21wbGV0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQTkdJbWFnZURl
Y29kZXI6OnByb2Nlc3NpbmdTdGFydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQTkdJ
bWFnZURlY29kZXI6OnByb2Nlc3NpbmdGaW5pc2gpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UE5HSW1hZ2VEZWNvZGVyOjpmYWxsYmFja05vdEFuaW1hdGVkKTogRGVsZXRlZC4KKwogMjAx
Ny0wOS0xOCAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByMjIyMTcwLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCShyZXZpc2lvbiAyMjIxNTgpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC05NCw3ICs5NCw3IEBAIHB1YmxpYzoKIAogICAgIFN1YnNhbXBsaW5nTGV2ZWwgZnJh
bWVTdWJzYW1wbGluZ0xldmVsQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1f
c291cmNlLmZyYW1lU3Vic2FtcGxpbmdMZXZlbEF0SW5kZXgoaW5kZXgpOyB9CiAKLSAgICBmbG9h
dCBmcmFtZUR1cmF0aW9uQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fc291
cmNlLmZyYW1lRHVyYXRpb25BdEluZGV4KGluZGV4KTsgfQorICAgIFNlY29uZHMgZnJhbWVEdXJh
dGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5mcmFtZUR1
cmF0aW9uQXRJbmRleChpbmRleCk7IH0KICAgICBJbWFnZU9yaWVudGF0aW9uIGZyYW1lT3JpZW50
YXRpb25BdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2UuZnJhbWVP
cmllbnRhdGlvbkF0SW5kZXgoaW5kZXgpOyB9CiAKICAgICBzaXplX3QgY3VycmVudEZyYW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9jdXJyZW50RnJhbWU7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oCShyZXZpc2lvbiAyMjIxNTgpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZURlY29kZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRl
ICJOYXRpdmVJbWFnZS5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0
Zi9TZWNvbmRzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKQEAgLTYwLDcgKzYxLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBmcmFtZUlzQ29tcGxldGVBdEluZGV4KHNpemVfdCkgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgSW1hZ2VPcmllbnRhdGlvbiBmcmFtZU9yaWVudGF0aW9uQXRJbmRleChz
aXplX3QpIGNvbnN0ID0gMDsKIAotICAgIHZpcnR1YWwgZmxvYXQgZnJhbWVEdXJhdGlvbkF0SW5k
ZXgoc2l6ZV90KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTZWNvbmRzIGZyYW1lRHVyYXRpb25B
dEluZGV4KHNpemVfdCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBmcmFtZUhhc0FscGhh
QXRJbmRleChzaXplX3QpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZnJhbWVBbGxvd1N1
YnNhbXBsaW5nQXRJbmRleChzaXplX3QpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHVuc2lnbmVk
IGZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCwgU3Vic2FtcGxpbmdMZXZlbCA9IFN1YnNhbXBsaW5n
TGV2ZWw6OkRlZmF1bHQpIGNvbnN0ID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmgJKHJldmlzaW9uIDIyMjE1OCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAt
MzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkltYWdlVHlwZXMuaCIKICNpbmNsdWRlICJJbnRTaXpl
LmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2UuaCIKKyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTgwLDggKzgxLDggQEAgcHVibGljOgogICAgIHZv
aWQgc2V0T3JpZW50YXRpb24oSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikgeyBtX29yaWVu
dGF0aW9uID0gb3JpZW50YXRpb247IH07CiAgICAgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZW50YXRpb247IH0KIAotICAgIHZvaWQgc2V0RHVyYXRp
b24oZmxvYXQgZHVyYXRpb24pIHsgbV9kdXJhdGlvbiA9IGR1cmF0aW9uOyB9Ci0gICAgZmxvYXQg
ZHVyYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2R1cmF0aW9uOyB9CisgICAgdm9pZCBzZXREdXJh
dGlvbihjb25zdCBTZWNvbmRzJiBkdXJhdGlvbikgeyBtX2R1cmF0aW9uID0gZHVyYXRpb247IH0K
KyAgICBTZWNvbmRzIGR1cmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kdXJhdGlvbjsgfQogCiAg
ICAgdm9pZCBzZXRIYXNBbHBoYShib29sIGhhc0FscGhhKSB7IG1faGFzQWxwaGEgPSBoYXNBbHBo
YTsgfQogICAgIGJvb2wgaGFzQWxwaGEoKSBjb25zdCB7IHJldHVybiAhaGFzTWV0YWRhdGEoKSB8
fCBtX2hhc0FscGhhOyB9CkBAIC0xMTIsNyArMTEzLDcgQEAgcHJpdmF0ZToKICAgICBEZWNvZGlu
Z09wdGlvbnMgbV9kZWNvZGluZ09wdGlvbnM7CiAKICAgICBJbWFnZU9yaWVudGF0aW9uIG1fb3Jp
ZW50YXRpb24geyBEZWZhdWx0SW1hZ2VPcmllbnRhdGlvbiB9OwotICAgIGZsb2F0IG1fZHVyYXRp
b24geyAwIH07CisgICAgU2Vjb25kcyBtX2R1cmF0aW9uOwogICAgIGJvb2wgbV9oYXNBbHBoYSB7
IHRydWUgfTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlRnJhbWVDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcAkocmV2aXNpb24gMjIyMTU4KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTM0LDkgKzUzNCw5IEBAIHVuc2lnbmVkIEltYWdlRnJhbWVDYWNoZTo6ZnJhbWVC
eXRlc0F0SW4KICAgICByZXR1cm4gZnJhbWVNZXRhZGF0YUF0SW5kZXhDYWNoZUlmTmVlZGVkPHVu
c2lnbmVkPihpbmRleCwgKCZJbWFnZUZyYW1lOjpmcmFtZUJ5dGVzKSwgbnVsbHB0ciwgSW1hZ2VG
cmFtZTo6Q2FjaGluZzo6TWV0YWRhdGEsIHN1YnNhbXBsaW5nTGV2ZWwpOwogfQogCi1mbG9hdCBJ
bWFnZUZyYW1lQ2FjaGU6OmZyYW1lRHVyYXRpb25BdEluZGV4KHNpemVfdCBpbmRleCkKK1NlY29u
ZHMgSW1hZ2VGcmFtZUNhY2hlOjpmcmFtZUR1cmF0aW9uQXRJbmRleChzaXplX3QgaW5kZXgpCiB7
Ci0gICAgcmV0dXJuIGZyYW1lTWV0YWRhdGFBdEluZGV4Q2FjaGVJZk5lZWRlZDxmbG9hdD4oaW5k
ZXgsICgmSW1hZ2VGcmFtZTo6ZHVyYXRpb24pLCBudWxscHRyLCBJbWFnZUZyYW1lOjpDYWNoaW5n
OjpNZXRhZGF0YSk7CisgICAgcmV0dXJuIGZyYW1lTWV0YWRhdGFBdEluZGV4Q2FjaGVJZk5lZWRl
ZDxTZWNvbmRzPihpbmRleCwgKCZJbWFnZUZyYW1lOjpkdXJhdGlvbiksIG51bGxwdHIsIEltYWdl
RnJhbWU6OkNhY2hpbmc6Ok1ldGFkYXRhKTsKIH0KIAogSW1hZ2VPcmllbnRhdGlvbiBJbWFnZUZy
YW1lQ2FjaGU6OmZyYW1lT3JpZW50YXRpb25BdEluZGV4KHNpemVfdCBpbmRleCkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5o
CShyZXZpc2lvbiAyMjIxNTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZUZyYW1lQ2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDcgKzEwMyw3IEBAIHB1Ymxp
YzoKICAgICAvLyBJbWFnZUZyYW1lIG1ldGFkYXRhIHdoaWNoIGZvcmNlcyBjYWNoaW5nIG9yIHJl
LWNhY2hpbmcgdGhlIEltYWdlRnJhbWUuCiAgICAgSW50U2l6ZSBmcmFtZVNpemVBdEluZGV4KHNp
emVfdCwgU3Vic2FtcGxpbmdMZXZlbCA9IFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQpOwogICAg
IHVuc2lnbmVkIGZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCwgU3Vic2FtcGxpbmdMZXZlbCA9IFN1
YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQpOwotICAgIGZsb2F0IGZyYW1lRHVyYXRpb25BdEluZGV4
KHNpemVfdCk7CisgICAgU2Vjb25kcyBmcmFtZUR1cmF0aW9uQXRJbmRleChzaXplX3QpOwogICAg
IEltYWdlT3JpZW50YXRpb24gZnJhbWVPcmllbnRhdGlvbkF0SW5kZXgoc2l6ZV90KTsKIAogICAg
IE5hdGl2ZUltYWdlUHRyIGZyYW1lSW1hZ2VBdEluZGV4KHNpemVfdCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgJKHJldmlzaW9uIDIy
MjE1OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEwMSw3ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAgLy8gSW1hZ2VG
cmFtZSBtZXRhZGF0YSB3aGljaCBmb3JjZXMgY2FjaGluZyBvciByZS1jYWNoaW5nIHRoZSBJbWFn
ZUZyYW1lLgogICAgIEludFNpemUgZnJhbWVTaXplQXRJbmRleChzaXplX3QgaW5kZXgsIFN1YnNh
bXBsaW5nTGV2ZWwgc3Vic2FtcGxpbmdMZXZlbCA9IFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQp
IHsgcmV0dXJuIG1fZnJhbWVDYWNoZS0+ZnJhbWVTaXplQXRJbmRleChpbmRleCwgc3Vic2FtcGxp
bmdMZXZlbCk7IH0KICAgICB1bnNpZ25lZCBmcmFtZUJ5dGVzQXRJbmRleChzaXplX3QgaW5kZXgs
IFN1YnNhbXBsaW5nTGV2ZWwgc3Vic2FtcGxpbmdMZXZlbCA9IFN1YnNhbXBsaW5nTGV2ZWw6OkRl
ZmF1bHQpIHsgcmV0dXJuIG1fZnJhbWVDYWNoZS0+ZnJhbWVCeXRlc0F0SW5kZXgoaW5kZXgsIHN1
YnNhbXBsaW5nTGV2ZWwpOyB9Ci0gICAgZmxvYXQgZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90
IGluZGV4KSB7IHJldHVybiBtX2ZyYW1lQ2FjaGUtPmZyYW1lRHVyYXRpb25BdEluZGV4KGluZGV4
KTsgfQorICAgIFNlY29uZHMgZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4KSB7IHJl
dHVybiBtX2ZyYW1lQ2FjaGUtPmZyYW1lRHVyYXRpb25BdEluZGV4KGluZGV4KTsgfQogICAgIElt
YWdlT3JpZW50YXRpb24gZnJhbWVPcmllbnRhdGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4KSB7IHJl
dHVybiBtX2ZyYW1lQ2FjaGUtPmZyYW1lT3JpZW50YXRpb25BdEluZGV4KGluZGV4KTsgfQogCiAg
ICAgTmF0aXZlSW1hZ2VQdHIgZnJhbWVJbWFnZUF0SW5kZXgoc2l6ZV90IGluZGV4KSB7IHJldHVy
biBtX2ZyYW1lQ2FjaGUtPmZyYW1lSW1hZ2VBdEluZGV4KGluZGV4KTsgfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VEZWNvZGVyQ0cuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlRGVjb2RlckNH
LmNwcAkocmV2aXNpb24gMjIyMTU4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VEZWNvZGVyQ0cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzAsNyArMzMwLDcg
QEAgSW1hZ2VPcmllbnRhdGlvbiBJbWFnZURlY29kZXJDRzo6ZnJhbWVPcgogICAgIHJldHVybiBv
cmllbnRhdGlvbkZyb21Qcm9wZXJ0aWVzKHByb3BlcnRpZXMuZ2V0KCkpOwogfQogCi1mbG9hdCBJ
bWFnZURlY29kZXJDRzo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAor
U2Vjb25kcyBJbWFnZURlY29kZXJDRzo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4
KSBjb25zdAogewogICAgIGZsb2F0IGR1cmF0aW9uID0gMDsKICAgICBSZXRhaW5QdHI8Q0ZEaWN0
aW9uYXJ5UmVmPiBwcm9wZXJ0aWVzID0gYWRvcHRDRihDR0ltYWdlU291cmNlQ29weVByb3BlcnRp
ZXNBdEluZGV4KG1fbmF0aXZlRGVjb2Rlci5nZXQoKSwgaW5kZXgsIGltYWdlU291cmNlT3B0aW9u
cygpLmdldCgpKSk7CkBAIC0zNjAsOCArMzYwLDggQEAgZmxvYXQgSW1hZ2VEZWNvZGVyQ0c6OmZy
YW1lRHVyYXRpb25BdEluZAogICAgIC8vIGEgZHVyYXRpb24gb2YgPD0gMTAgbXMuIFNlZSA8cmRh
cjovL3Byb2JsZW0vNzY4OTMwMD4gYW5kIDxodHRwOi8vd2Via2l0Lm9yZy9iLzM2MDgyPgogICAg
IC8vIGZvciBtb3JlIGluZm9ybWF0aW9uLgogICAgIGlmIChkdXJhdGlvbiA8IDAuMDExZikKLSAg
ICAgICAgcmV0dXJuIDAuMWY7Ci0gICAgcmV0dXJuIGR1cmF0aW9uOworICAgICAgICByZXR1cm4g
U2Vjb25kcygwLjFmKTsKKyAgICByZXR1cm4gU2Vjb25kcyhkdXJhdGlvbik7CiB9CiAKIGJvb2wg
SW1hZ2VEZWNvZGVyQ0c6OmZyYW1lQWxsb3dTdWJzYW1wbGluZ0F0SW5kZXgoc2l6ZV90KSBjb25z
dApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VEZWNvZGVy
Q0cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZURlY29kZXJDRy5oCShyZXZpc2lvbiAyMjIxNTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZURlY29kZXJDRy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw3
ICs1Myw3IEBAIHB1YmxpYzoKICAgICBib29sIGZyYW1lSXNDb21wbGV0ZUF0SW5kZXgoc2l6ZV90
KSBjb25zdCBmaW5hbDsKICAgICBJbWFnZU9yaWVudGF0aW9uIGZyYW1lT3JpZW50YXRpb25BdElu
ZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CiAKLSAgICBmbG9hdCBmcmFtZUR1cmF0aW9uQXRJbmRl
eChzaXplX3QpIGNvbnN0IGZpbmFsOworICAgIFNlY29uZHMgZnJhbWVEdXJhdGlvbkF0SW5kZXgo
c2l6ZV90KSBjb25zdCBmaW5hbDsKICAgICBib29sIGZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVf
dCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBmcmFtZUFsbG93U3Vic2FtcGxpbmdBdEluZGV4KHNp
emVfdCkgY29uc3QgZmluYWw7CiAgICAgdW5zaWduZWQgZnJhbWVCeXRlc0F0SW5kZXgoc2l6ZV90
LCBTdWJzYW1wbGluZ0xldmVsID0gU3Vic2FtcGxpbmdMZXZlbDo6RGVmYXVsdCkgY29uc3QgZmlu
YWw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJs
ZUltYWdlRGVjb2Rlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFnZURlY29kZXIuY3BwCShyZXZpc2lvbiAyMjIxNTgp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJsZUltYWdl
RGVjb2Rlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5NiwyMyArMTk2LDIyIEBAIHVuc2lnbmVk
IFNjYWxhYmxlSW1hZ2VEZWNvZGVyOjpmcmFtZUJ5dGUKICAgICByZXR1cm4gKG1fc2l6ZS5hcmVh
KCkgKiBzaXplb2YoUkdCQTMyKSkudW5zYWZlR2V0KCk7CiB9CiAKLWZsb2F0IFNjYWxhYmxlSW1h
Z2VEZWNvZGVyOjpmcmFtZUR1cmF0aW9uQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0CitTZWNv
bmRzIFNjYWxhYmxlSW1hZ2VEZWNvZGVyOjpmcmFtZUR1cmF0aW9uQXRJbmRleChzaXplX3QgaW5k
ZXgpIGNvbnN0CiB7CiAgICAgLy8gRklYTUUoMTc2MDg5KTogYXNraW5nIGZvciB0aGUgZHVyYXRp
b24gb2YgYSBzdWItaW1hZ2Ugc2hvdWxkIG5vdCByZXF1aXJlIGRlY29kaW5nCiAgICAgLy8gdGhl
IGVudGlyZSBmcmFtZS4gVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgaW1wbGVtZW50YWJsZSBpbiBh
IHdheSB0aGF0CiAgICAgLy8gYWxsb3dzIGNvbnN0LgogICAgIEltYWdlRnJhbWUqIGJ1ZmZlciA9
IGNvbnN0X2Nhc3Q8U2NhbGFibGVJbWFnZURlY29kZXIqPih0aGlzKS0+ZnJhbWVCdWZmZXJBdElu
ZGV4KGluZGV4KTsKICAgICBpZiAoIWJ1ZmZlciB8fCBidWZmZXItPmlzSW52YWxpZCgpKQotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICAKICAgICAvLyBNYW55IGFu
bm95aW5nIGFkcyBzcGVjaWZ5IGEgMCBkdXJhdGlvbiB0byBtYWtlIGFuIGltYWdlIGZsYXNoIGFz
IHF1aWNrbHkgYXMgcG9zc2libGUuCiAgICAgLy8gV2UgZm9sbG93IEZpcmVmb3gncyBiZWhhdmlv
ciBhbmQgdXNlIGEgZHVyYXRpb24gb2YgMTAwIG1zIGZvciBhbnkgZnJhbWVzIHRoYXQgc3BlY2lm
eQogICAgIC8vIGEgZHVyYXRpb24gb2YgPD0gMTAgbXMuIFNlZSA8cmRhcjovL3Byb2JsZW0vNzY4
OTMwMD4gYW5kIDxodHRwOi8vd2Via2l0Lm9yZy9iLzM2MDgyPgogICAgIC8vIGZvciBtb3JlIGlu
Zm9ybWF0aW9uLgotICAgIGNvbnN0IGZsb2F0IGR1cmF0aW9uID0gYnVmZmVyLT5kdXJhdGlvbigp
IC8gMTAwMC4wZjsKLSAgICBpZiAoZHVyYXRpb24gPCAwLjAxMWYpCi0gICAgICAgIHJldHVybiAw
LjEwMGY7Ci0gICAgcmV0dXJuIGR1cmF0aW9uOworICAgIGlmIChidWZmZXItPmR1cmF0aW9uKCkg
PCBTZWNvbmRzKDAuMDExZikpCisgICAgICAgIHJldHVybiBTZWNvbmRzKDAuMTAwZik7CisgICAg
cmV0dXJuIGJ1ZmZlci0+ZHVyYXRpb24oKTsKIH0KIAogTmF0aXZlSW1hZ2VQdHIgU2NhbGFibGVJ
bWFnZURlY29kZXI6OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KHNpemVfdCBpbmRleCwgU3Vic2Ft
cGxpbmdMZXZlbCwgY29uc3QgRGVjb2RpbmdPcHRpb25zJikKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL1NjYWxhYmxlSW1hZ2VEZWNvZGVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFn
ZURlY29kZXIuaAkocmV2aXNpb24gMjIyMTU4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFnZURlY29kZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MTQzLDcgKzE0Myw3IEBAIHB1YmxpYzoKICAgICAvLyBOdW1iZXIgb2YgYnl0ZXMgaW4gdGhlIGRl
Y29kZWQgZnJhbWUgcmVxdWVzdGVkLiBSZXR1cm4gMCBpZiBub3QgeWV0IGRlY29kZWQuCiAgICAg
dW5zaWduZWQgZnJhbWVCeXRlc0F0SW5kZXgoc2l6ZV90LCBTdWJzYW1wbGluZ0xldmVsID0gU3Vi
c2FtcGxpbmdMZXZlbDo6RGVmYXVsdCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBmbG9hdCBmcmFt
ZUR1cmF0aW9uQXRJbmRleChzaXplX3QpIGNvbnN0IG92ZXJyaWRlOworICAgIFNlY29uZHMgZnJh
bWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90KSBjb25zdCBmaW5hbDsKIAogICAgIE5hdGl2ZUltYWdl
UHRyIGNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KHNpemVfdCwgU3Vic2FtcGxpbmdMZXZlbCA9IFN1
YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQsIGNvbnN0IERlY29kaW5nT3B0aW9ucyYgPSBEZWNvZGlu
Z01vZGU6OlN5bmNocm9ub3VzKSBvdmVycmlkZTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW1hZ2UtZGVjb2RlcnMvZ2lmL0dJRkltYWdlRGVjb2Rlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvZ2lmL0dJRkltYWdlRGVj
b2Rlci5jcHAJKHJldmlzaW9uIDIyMjE1OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL2dpZi9HSUZJbWFnZURlY29kZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NDgsNyArMjQ4LDcgQEAgYm9vbCBHSUZJbWFnZURlY29kZXI6OmZyYW1lQ29tcGxldGUodW5zaQog
ICAgICAgICByZXR1cm4gZmFsc2U7IC8vIGluaXRGcmFtZUJ1ZmZlcigpIGhhcyBhbHJlYWR5IGNh
bGxlZCBzZXRGYWlsZWQoKS4KIAogICAgIGJ1ZmZlci5zZXREZWNvZGluZ1N0YXR1cyhEZWNvZGlu
Z1N0YXR1czo6Q29tcGxldGUpOwotICAgIGJ1ZmZlci5zZXREdXJhdGlvbihmcmFtZUR1cmF0aW9u
KTsKKyAgICBidWZmZXIuc2V0RHVyYXRpb24oU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhmcmFt
ZUR1cmF0aW9uKSk7CiAgICAgYnVmZmVyLnNldERpc3Bvc2FsTWV0aG9kKGRpc3Bvc2FsTWV0aG9k
KTsKIAogICAgIGlmICghbV9jdXJyZW50QnVmZmVyU2F3QWxwaGEpIHsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9Q
TkdJbWFnZURlY29kZXIuY3BwCShyZXZpc2lvbiAyMjIxNTgpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNjUwLDkgKzY1MCw5IEBAIHZvaWQgUE5HSW1hZ2VEZWNvZGVyOjpyZWFkQ2h1bmtz
KHBuZ191bmsKICAgICAgICAgICAgIEltYWdlRnJhbWUmIGJ1ZmZlciA9IG1fZnJhbWVCdWZmZXJD
YWNoZVttX2N1cnJlbnRGcmFtZV07CiAKICAgICAgICAgICAgIGlmICghbV9kZWxheURlbm9taW5h
dG9yKQotICAgICAgICAgICAgICAgIGJ1ZmZlci5zZXREdXJhdGlvbihtX2RlbGF5TnVtZXJhdG9y
ICogMTApOworICAgICAgICAgICAgICAgIGJ1ZmZlci5zZXREdXJhdGlvbihTZWNvbmRzOjpmcm9t
TWlsbGlzZWNvbmRzKG1fZGVsYXlOdW1lcmF0b3IgKiAxMCk7CiAgICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgYnVmZmVyLnNldER1cmF0aW9uKG1fZGVsYXlOdW1lcmF0b3IgKiAxMDAw
IC8gbV9kZWxheURlbm9taW5hdG9yKTsKKyAgICAgICAgICAgICAgICBidWZmZXIuc2V0RHVyYXRp
b24oU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhtX2RlbGF5TnVtZXJhdG9yICogMTAwMCAvIG1f
ZGVsYXlEZW5vbWluYXRvcik7CiAKICAgICAgICAgICAgIGlmIChtX2Rpc3Bvc2UgPT0gMikKICAg
ICAgICAgICAgICAgICBidWZmZXIuc2V0RGlzcG9zYWxNZXRob2QoSW1hZ2VGcmFtZTo6RGlzcG9z
YWxNZXRob2Q6OlJlc3RvcmVUb1ByZXZpb3VzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321143</attachid>
            <date>2017-09-18 15:56:28 -0700</date>
            <delta_ts>2017-09-18 18:04:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177103-20170918155628.patch</filename>
            <type>text/plain</type>
            <size>14006</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMjE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDE3LTA5LTE4ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBJbWFn
ZUZyYW1lOjpkdXJhdGlvbigpIHJldHVybiBTZWNvbmRzIGluc3RlYWQgb2YgZmxvYXQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzEwMworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNjYWxhYmxlSW1hZ2VE
ZWNvZGVyIHN0b3JlcyBtaWxsaXNlY29uZHMgZm9yIHRoZSBkdXJhdGlvbiBvZiBpdHMgSW1hZ2VG
cmFtZXMuCisgICAgICAgIEJ1dCBJbWFnZUZyYW1lQ2FjaGUgc3RvcmUgc2Vjb25kcyBmb3IgdGhl
IGR1cmF0aW9uIG9mIGl0cyBJbWFnZUZyYW1lcy4KKyAgICAgICAgVG8gZml4IHRoaXMgaXNzdWUg
dXNlIFNlY29uZHMgZm9yIHRoZSBJbWFnZUZyYW1lIGR1cmF0aW9uLgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZURlY29kZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1l
Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUZyYW1lOjpzZXREdXJhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpJbWFnZUZyYW1lOjpkdXJhdGlvbiBjb25zdCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
RnJhbWVDYWNoZTo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlU291cmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6ZnJhbWVEdXJhdGlv
bkF0SW5kZXgpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlRGVjb2RlckNH
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRGVjb2RlckNHOjpmcmFtZUR1cmF0aW9uQXRJ
bmRleCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VEZWNvZGVy
Q0cuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2FsYWJsZUltYWdlRGVj
b2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY2FsYWJsZUltYWdlRGVjb2Rlcjo6ZnJhbWVE
dXJhdGlvbkF0SW5kZXggY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L1NjYWxhYmxlSW1hZ2VEZWNvZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2Rl
cnMvZ2lmL0dJRkltYWdlRGVjb2Rlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHSUZJbWFnZURl
Y29kZXI6OmZyYW1lQ29tcGxldGUpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L3BuZy9QTkdJbWFnZURlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UE5HSW1hZ2VEZWNv
ZGVyOjpyZWFkQ2h1bmtzKToKKyAgICAgICAgKFdlYkNvcmU6OlBOR0ltYWdlRGVjb2Rlcjo6ZnJh
bWVIZWFkZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UE5HSW1hZ2VEZWNvZGVyOjpp
bml0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBOR0ltYWdlRGVjb2Rlcjo6Y2xlYXJG
cmFtZUJ1ZmZlckNhY2hlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBOR0ltYWdlRGVj
b2Rlcjo6aW5pdEZyYW1lQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBOR0lt
YWdlRGVjb2Rlcjo6ZnJhbWVDb21wbGV0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQ
TkdJbWFnZURlY29kZXI6OnByb2Nlc3NpbmdTdGFydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpQTkdJbWFnZURlY29kZXI6OnByb2Nlc3NpbmdGaW5pc2gpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UE5HSW1hZ2VEZWNvZGVyOjpmYWxsYmFja05vdEFuaW1hdGVkKTogRGVsZXRl
ZC4KKwogMjAxNy0wOS0xOCAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjIyMTcwLgpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCShyZXZpc2lvbiAyMjIx
NTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC05NCw3ICs5NCw3IEBAIHB1YmxpYzoKIAogICAgIFN1YnNhbXBsaW5n
TGV2ZWwgZnJhbWVTdWJzYW1wbGluZ0xldmVsQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0IHsg
cmV0dXJuIG1fc291cmNlLmZyYW1lU3Vic2FtcGxpbmdMZXZlbEF0SW5kZXgoaW5kZXgpOyB9CiAK
LSAgICBmbG9hdCBmcmFtZUR1cmF0aW9uQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0IHsgcmV0
dXJuIG1fc291cmNlLmZyYW1lRHVyYXRpb25BdEluZGV4KGluZGV4KTsgfQorICAgIFNlY29uZHMg
ZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdCB7IHJldHVybiBtX3NvdXJj
ZS5mcmFtZUR1cmF0aW9uQXRJbmRleChpbmRleCk7IH0KICAgICBJbWFnZU9yaWVudGF0aW9uIGZy
YW1lT3JpZW50YXRpb25BdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9zb3Vy
Y2UuZnJhbWVPcmllbnRhdGlvbkF0SW5kZXgoaW5kZXgpOyB9CiAKICAgICBzaXplX3QgY3VycmVu
dEZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50RnJhbWU7IH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRGVjb2Rlci5oCShyZXZpc2lvbiAy
MjIxNTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZURlY29kZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkludFNpemUuaCIK
ICNpbmNsdWRlICJOYXRpdmVJbWFnZS5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2lu
Y2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKQEAgLTYwLDcgKzYxLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBmcmFtZUlzQ29tcGxldGVBdEluZGV4KHNpemVfdCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgSW1hZ2VPcmllbnRhdGlvbiBmcmFtZU9yaWVudGF0aW9u
QXRJbmRleChzaXplX3QpIGNvbnN0ID0gMDsKIAotICAgIHZpcnR1YWwgZmxvYXQgZnJhbWVEdXJh
dGlvbkF0SW5kZXgoc2l6ZV90KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTZWNvbmRzIGZyYW1l
RHVyYXRpb25BdEluZGV4KHNpemVfdCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBmcmFt
ZUhhc0FscGhhQXRJbmRleChzaXplX3QpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZnJh
bWVBbGxvd1N1YnNhbXBsaW5nQXRJbmRleChzaXplX3QpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IHVuc2lnbmVkIGZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCwgU3Vic2FtcGxpbmdMZXZlbCA9IFN1
YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQpIGNvbnN0ID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmgJKHJldmlzaW9uIDIyMjE1OCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWUuaAkod29ya2luZyBj
b3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkltYWdlVHlwZXMuaCIKICNpbmNsdWRl
ICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2UuaCIKKyNpbmNsdWRlIDx3dGYvU2Vj
b25kcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTgwLDggKzgxLDggQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0T3JpZW50YXRpb24oSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikg
eyBtX29yaWVudGF0aW9uID0gb3JpZW50YXRpb247IH07CiAgICAgSW1hZ2VPcmllbnRhdGlvbiBv
cmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZW50YXRpb247IH0KIAotICAgIHZvaWQg
c2V0RHVyYXRpb24oZmxvYXQgZHVyYXRpb24pIHsgbV9kdXJhdGlvbiA9IGR1cmF0aW9uOyB9Ci0g
ICAgZmxvYXQgZHVyYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2R1cmF0aW9uOyB9CisgICAgdm9p
ZCBzZXREdXJhdGlvbihjb25zdCBTZWNvbmRzJiBkdXJhdGlvbikgeyBtX2R1cmF0aW9uID0gZHVy
YXRpb247IH0KKyAgICBTZWNvbmRzIGR1cmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kdXJhdGlv
bjsgfQogCiAgICAgdm9pZCBzZXRIYXNBbHBoYShib29sIGhhc0FscGhhKSB7IG1faGFzQWxwaGEg
PSBoYXNBbHBoYTsgfQogICAgIGJvb2wgaGFzQWxwaGEoKSBjb25zdCB7IHJldHVybiAhaGFzTWV0
YWRhdGEoKSB8fCBtX2hhc0FscGhhOyB9CkBAIC0xMTIsNyArMTEzLDcgQEAgcHJpdmF0ZToKICAg
ICBEZWNvZGluZ09wdGlvbnMgbV9kZWNvZGluZ09wdGlvbnM7CiAKICAgICBJbWFnZU9yaWVudGF0
aW9uIG1fb3JpZW50YXRpb24geyBEZWZhdWx0SW1hZ2VPcmllbnRhdGlvbiB9OwotICAgIGZsb2F0
IG1fZHVyYXRpb24geyAwIH07CisgICAgU2Vjb25kcyBtX2R1cmF0aW9uOwogICAgIGJvb2wgbV9o
YXNBbHBoYSB7IHRydWUgfTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcAkocmV2aXNpb24gMjIyMTU4KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTM0LDkgKzUzNCw5IEBAIHVuc2lnbmVkIEltYWdlRnJhbWVDYWNo
ZTo6ZnJhbWVCeXRlc0F0SW4KICAgICByZXR1cm4gZnJhbWVNZXRhZGF0YUF0SW5kZXhDYWNoZUlm
TmVlZGVkPHVuc2lnbmVkPihpbmRleCwgKCZJbWFnZUZyYW1lOjpmcmFtZUJ5dGVzKSwgbnVsbHB0
ciwgSW1hZ2VGcmFtZTo6Q2FjaGluZzo6TWV0YWRhdGEsIHN1YnNhbXBsaW5nTGV2ZWwpOwogfQog
Ci1mbG9hdCBJbWFnZUZyYW1lQ2FjaGU6OmZyYW1lRHVyYXRpb25BdEluZGV4KHNpemVfdCBpbmRl
eCkKK1NlY29uZHMgSW1hZ2VGcmFtZUNhY2hlOjpmcmFtZUR1cmF0aW9uQXRJbmRleChzaXplX3Qg
aW5kZXgpCiB7Ci0gICAgcmV0dXJuIGZyYW1lTWV0YWRhdGFBdEluZGV4Q2FjaGVJZk5lZWRlZDxm
bG9hdD4oaW5kZXgsICgmSW1hZ2VGcmFtZTo6ZHVyYXRpb24pLCBudWxscHRyLCBJbWFnZUZyYW1l
OjpDYWNoaW5nOjpNZXRhZGF0YSk7CisgICAgcmV0dXJuIGZyYW1lTWV0YWRhdGFBdEluZGV4Q2Fj
aGVJZk5lZWRlZDxTZWNvbmRzPihpbmRleCwgKCZJbWFnZUZyYW1lOjpkdXJhdGlvbiksIG51bGxw
dHIsIEltYWdlRnJhbWU6OkNhY2hpbmc6Ok1ldGFkYXRhKTsKIH0KIAogSW1hZ2VPcmllbnRhdGlv
biBJbWFnZUZyYW1lQ2FjaGU6OmZyYW1lT3JpZW50YXRpb25BdEluZGV4KHNpemVfdCBpbmRleCkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJh
bWVDYWNoZS5oCShyZXZpc2lvbiAyMjIxNTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUZyYW1lQ2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDcgKzEwMyw3
IEBAIHB1YmxpYzoKICAgICAvLyBJbWFnZUZyYW1lIG1ldGFkYXRhIHdoaWNoIGZvcmNlcyBjYWNo
aW5nIG9yIHJlLWNhY2hpbmcgdGhlIEltYWdlRnJhbWUuCiAgICAgSW50U2l6ZSBmcmFtZVNpemVB
dEluZGV4KHNpemVfdCwgU3Vic2FtcGxpbmdMZXZlbCA9IFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1
bHQpOwogICAgIHVuc2lnbmVkIGZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCwgU3Vic2FtcGxpbmdM
ZXZlbCA9IFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQpOwotICAgIGZsb2F0IGZyYW1lRHVyYXRp
b25BdEluZGV4KHNpemVfdCk7CisgICAgU2Vjb25kcyBmcmFtZUR1cmF0aW9uQXRJbmRleChzaXpl
X3QpOwogICAgIEltYWdlT3JpZW50YXRpb24gZnJhbWVPcmllbnRhdGlvbkF0SW5kZXgoc2l6ZV90
KTsKIAogICAgIE5hdGl2ZUltYWdlUHRyIGZyYW1lSW1hZ2VBdEluZGV4KHNpemVfdCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgJKHJl
dmlzaW9uIDIyMjE1OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
U291cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw3ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gSW1hZ2VGcmFtZSBtZXRhZGF0YSB3aGljaCBmb3JjZXMgY2FjaGluZyBvciByZS1jYWNoaW5n
IHRoZSBJbWFnZUZyYW1lLgogICAgIEludFNpemUgZnJhbWVTaXplQXRJbmRleChzaXplX3QgaW5k
ZXgsIFN1YnNhbXBsaW5nTGV2ZWwgc3Vic2FtcGxpbmdMZXZlbCA9IFN1YnNhbXBsaW5nTGV2ZWw6
OkRlZmF1bHQpIHsgcmV0dXJuIG1fZnJhbWVDYWNoZS0+ZnJhbWVTaXplQXRJbmRleChpbmRleCwg
c3Vic2FtcGxpbmdMZXZlbCk7IH0KICAgICB1bnNpZ25lZCBmcmFtZUJ5dGVzQXRJbmRleChzaXpl
X3QgaW5kZXgsIFN1YnNhbXBsaW5nTGV2ZWwgc3Vic2FtcGxpbmdMZXZlbCA9IFN1YnNhbXBsaW5n
TGV2ZWw6OkRlZmF1bHQpIHsgcmV0dXJuIG1fZnJhbWVDYWNoZS0+ZnJhbWVCeXRlc0F0SW5kZXgo
aW5kZXgsIHN1YnNhbXBsaW5nTGV2ZWwpOyB9Ci0gICAgZmxvYXQgZnJhbWVEdXJhdGlvbkF0SW5k
ZXgoc2l6ZV90IGluZGV4KSB7IHJldHVybiBtX2ZyYW1lQ2FjaGUtPmZyYW1lRHVyYXRpb25BdElu
ZGV4KGluZGV4KTsgfQorICAgIFNlY29uZHMgZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90IGlu
ZGV4KSB7IHJldHVybiBtX2ZyYW1lQ2FjaGUtPmZyYW1lRHVyYXRpb25BdEluZGV4KGluZGV4KTsg
fQogICAgIEltYWdlT3JpZW50YXRpb24gZnJhbWVPcmllbnRhdGlvbkF0SW5kZXgoc2l6ZV90IGlu
ZGV4KSB7IHJldHVybiBtX2ZyYW1lQ2FjaGUtPmZyYW1lT3JpZW50YXRpb25BdEluZGV4KGluZGV4
KTsgfQogCiAgICAgTmF0aXZlSW1hZ2VQdHIgZnJhbWVJbWFnZUF0SW5kZXgoc2l6ZV90IGluZGV4
KSB7IHJldHVybiBtX2ZyYW1lQ2FjaGUtPmZyYW1lSW1hZ2VBdEluZGV4KGluZGV4KTsgfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VEZWNvZGVyQ0cuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdl
RGVjb2RlckNHLmNwcAkocmV2aXNpb24gMjIyMTU4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VEZWNvZGVyQ0cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzAs
NyArMzMwLDcgQEAgSW1hZ2VPcmllbnRhdGlvbiBJbWFnZURlY29kZXJDRzo6ZnJhbWVPcgogICAg
IHJldHVybiBvcmllbnRhdGlvbkZyb21Qcm9wZXJ0aWVzKHByb3BlcnRpZXMuZ2V0KCkpOwogfQog
Ci1mbG9hdCBJbWFnZURlY29kZXJDRzo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4
KSBjb25zdAorU2Vjb25kcyBJbWFnZURlY29kZXJDRzo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6
ZV90IGluZGV4KSBjb25zdAogewogICAgIGZsb2F0IGR1cmF0aW9uID0gMDsKICAgICBSZXRhaW5Q
dHI8Q0ZEaWN0aW9uYXJ5UmVmPiBwcm9wZXJ0aWVzID0gYWRvcHRDRihDR0ltYWdlU291cmNlQ29w
eVByb3BlcnRpZXNBdEluZGV4KG1fbmF0aXZlRGVjb2Rlci5nZXQoKSwgaW5kZXgsIGltYWdlU291
cmNlT3B0aW9ucygpLmdldCgpKSk7CkBAIC0zNjAsOCArMzYwLDggQEAgZmxvYXQgSW1hZ2VEZWNv
ZGVyQ0c6OmZyYW1lRHVyYXRpb25BdEluZAogICAgIC8vIGEgZHVyYXRpb24gb2YgPD0gMTAgbXMu
IFNlZSA8cmRhcjovL3Byb2JsZW0vNzY4OTMwMD4gYW5kIDxodHRwOi8vd2Via2l0Lm9yZy9iLzM2
MDgyPgogICAgIC8vIGZvciBtb3JlIGluZm9ybWF0aW9uLgogICAgIGlmIChkdXJhdGlvbiA8IDAu
MDExZikKLSAgICAgICAgcmV0dXJuIDAuMWY7Ci0gICAgcmV0dXJuIGR1cmF0aW9uOworICAgICAg
ICByZXR1cm4gU2Vjb25kcygwLjFmKTsKKyAgICByZXR1cm4gU2Vjb25kcyhkdXJhdGlvbik7CiB9
CiAKIGJvb2wgSW1hZ2VEZWNvZGVyQ0c6OmZyYW1lQWxsb3dTdWJzYW1wbGluZ0F0SW5kZXgoc2l6
ZV90KSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VEZWNvZGVyQ0cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jZy9JbWFnZURlY29kZXJDRy5oCShyZXZpc2lvbiAyMjIxNTgpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZURlY29kZXJDRy5oCSh3b3JraW5nIGNvcHkp
CkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICBib29sIGZyYW1lSXNDb21wbGV0ZUF0SW5k
ZXgoc2l6ZV90KSBjb25zdCBmaW5hbDsKICAgICBJbWFnZU9yaWVudGF0aW9uIGZyYW1lT3JpZW50
YXRpb25BdEluZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CiAKLSAgICBmbG9hdCBmcmFtZUR1cmF0
aW9uQXRJbmRleChzaXplX3QpIGNvbnN0IGZpbmFsOworICAgIFNlY29uZHMgZnJhbWVEdXJhdGlv
bkF0SW5kZXgoc2l6ZV90KSBjb25zdCBmaW5hbDsKICAgICBib29sIGZyYW1lSGFzQWxwaGFBdElu
ZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBmcmFtZUFsbG93U3Vic2FtcGxpbmdB
dEluZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CiAgICAgdW5zaWduZWQgZnJhbWVCeXRlc0F0SW5k
ZXgoc2l6ZV90LCBTdWJzYW1wbGluZ0xldmVsID0gU3Vic2FtcGxpbmdMZXZlbDo6RGVmYXVsdCkg
Y29uc3QgZmluYWw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVy
cy9TY2FsYWJsZUltYWdlRGVjb2Rlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFnZURlY29kZXIuY3BwCShyZXZpc2lv
biAyMjIxNTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9TY2Fs
YWJsZUltYWdlRGVjb2Rlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5NiwyMyArMTk2LDIyIEBA
IHVuc2lnbmVkIFNjYWxhYmxlSW1hZ2VEZWNvZGVyOjpmcmFtZUJ5dGUKICAgICByZXR1cm4gKG1f
c2l6ZS5hcmVhKCkgKiBzaXplb2YoUkdCQTMyKSkudW5zYWZlR2V0KCk7CiB9CiAKLWZsb2F0IFNj
YWxhYmxlSW1hZ2VEZWNvZGVyOjpmcmFtZUR1cmF0aW9uQXRJbmRleChzaXplX3QgaW5kZXgpIGNv
bnN0CitTZWNvbmRzIFNjYWxhYmxlSW1hZ2VEZWNvZGVyOjpmcmFtZUR1cmF0aW9uQXRJbmRleChz
aXplX3QgaW5kZXgpIGNvbnN0CiB7CiAgICAgLy8gRklYTUUoMTc2MDg5KTogYXNraW5nIGZvciB0
aGUgZHVyYXRpb24gb2YgYSBzdWItaW1hZ2Ugc2hvdWxkIG5vdCByZXF1aXJlIGRlY29kaW5nCiAg
ICAgLy8gdGhlIGVudGlyZSBmcmFtZS4gVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUgaW1wbGVtZW50
YWJsZSBpbiBhIHdheSB0aGF0CiAgICAgLy8gYWxsb3dzIGNvbnN0LgogICAgIEltYWdlRnJhbWUq
IGJ1ZmZlciA9IGNvbnN0X2Nhc3Q8U2NhbGFibGVJbWFnZURlY29kZXIqPih0aGlzKS0+ZnJhbWVC
dWZmZXJBdEluZGV4KGluZGV4KTsKICAgICBpZiAoIWJ1ZmZlciB8fCBidWZmZXItPmlzSW52YWxp
ZCgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICAKICAgICAv
LyBNYW55IGFubm95aW5nIGFkcyBzcGVjaWZ5IGEgMCBkdXJhdGlvbiB0byBtYWtlIGFuIGltYWdl
IGZsYXNoIGFzIHF1aWNrbHkgYXMgcG9zc2libGUuCiAgICAgLy8gV2UgZm9sbG93IEZpcmVmb3gn
cyBiZWhhdmlvciBhbmQgdXNlIGEgZHVyYXRpb24gb2YgMTAwIG1zIGZvciBhbnkgZnJhbWVzIHRo
YXQgc3BlY2lmeQogICAgIC8vIGEgZHVyYXRpb24gb2YgPD0gMTAgbXMuIFNlZSA8cmRhcjovL3By
b2JsZW0vNzY4OTMwMD4gYW5kIDxodHRwOi8vd2Via2l0Lm9yZy9iLzM2MDgyPgogICAgIC8vIGZv
ciBtb3JlIGluZm9ybWF0aW9uLgotICAgIGNvbnN0IGZsb2F0IGR1cmF0aW9uID0gYnVmZmVyLT5k
dXJhdGlvbigpIC8gMTAwMC4wZjsKLSAgICBpZiAoZHVyYXRpb24gPCAwLjAxMWYpCi0gICAgICAg
IHJldHVybiAwLjEwMGY7Ci0gICAgcmV0dXJuIGR1cmF0aW9uOworICAgIGlmIChidWZmZXItPmR1
cmF0aW9uKCkgPCBTZWNvbmRzKDAuMDExZikpCisgICAgICAgIHJldHVybiBTZWNvbmRzKDAuMTAw
Zik7CisgICAgcmV0dXJuIGJ1ZmZlci0+ZHVyYXRpb24oKTsKIH0KIAogTmF0aXZlSW1hZ2VQdHIg
U2NhbGFibGVJbWFnZURlY29kZXI6OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KHNpemVfdCBpbmRl
eCwgU3Vic2FtcGxpbmdMZXZlbCwgY29uc3QgRGVjb2RpbmdPcHRpb25zJikKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL1NjYWxhYmxlSW1hZ2VEZWNvZGVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2Nh
bGFibGVJbWFnZURlY29kZXIuaAkocmV2aXNpb24gMjIyMTU4KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFnZURlY29kZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtMTQzLDcgKzE0Myw3IEBAIHB1YmxpYzoKICAgICAvLyBOdW1iZXIgb2YgYnl0ZXMg
aW4gdGhlIGRlY29kZWQgZnJhbWUgcmVxdWVzdGVkLiBSZXR1cm4gMCBpZiBub3QgeWV0IGRlY29k
ZWQuCiAgICAgdW5zaWduZWQgZnJhbWVCeXRlc0F0SW5kZXgoc2l6ZV90LCBTdWJzYW1wbGluZ0xl
dmVsID0gU3Vic2FtcGxpbmdMZXZlbDo6RGVmYXVsdCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBm
bG9hdCBmcmFtZUR1cmF0aW9uQXRJbmRleChzaXplX3QpIGNvbnN0IG92ZXJyaWRlOworICAgIFNl
Y29uZHMgZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90KSBjb25zdCBmaW5hbDsKIAogICAgIE5h
dGl2ZUltYWdlUHRyIGNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KHNpemVfdCwgU3Vic2FtcGxpbmdM
ZXZlbCA9IFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQsIGNvbnN0IERlY29kaW5nT3B0aW9ucyYg
PSBEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzKSBvdmVycmlkZTsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvZ2lmL0dJRkltYWdlRGVjb2Rlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvZ2lmL0dJ
RkltYWdlRGVjb2Rlci5jcHAJKHJldmlzaW9uIDIyMjE1OCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9HSUZJbWFnZURlY29kZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNDgsNyArMjQ4LDcgQEAgYm9vbCBHSUZJbWFnZURlY29kZXI6OmZyYW1lQ29tcGxl
dGUodW5zaQogICAgICAgICByZXR1cm4gZmFsc2U7IC8vIGluaXRGcmFtZUJ1ZmZlcigpIGhhcyBh
bHJlYWR5IGNhbGxlZCBzZXRGYWlsZWQoKS4KIAogICAgIGJ1ZmZlci5zZXREZWNvZGluZ1N0YXR1
cyhEZWNvZGluZ1N0YXR1czo6Q29tcGxldGUpOwotICAgIGJ1ZmZlci5zZXREdXJhdGlvbihmcmFt
ZUR1cmF0aW9uKTsKKyAgICBidWZmZXIuc2V0RHVyYXRpb24oU2Vjb25kczo6ZnJvbU1pbGxpc2Vj
b25kcyhmcmFtZUR1cmF0aW9uKSk7CiAgICAgYnVmZmVyLnNldERpc3Bvc2FsTWV0aG9kKGRpc3Bv
c2FsTWV0aG9kKTsKIAogICAgIGlmICghbV9jdXJyZW50QnVmZmVyU2F3QWxwaGEpIHsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29k
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29k
ZXJzL3BuZy9QTkdJbWFnZURlY29kZXIuY3BwCShyZXZpc2lvbiAyMjIxNTgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNvZGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjUwLDkgKzY1MCw5IEBAIHZvaWQgUE5HSW1hZ2VEZWNvZGVyOjpy
ZWFkQ2h1bmtzKHBuZ191bmsKICAgICAgICAgICAgIEltYWdlRnJhbWUmIGJ1ZmZlciA9IG1fZnJh
bWVCdWZmZXJDYWNoZVttX2N1cnJlbnRGcmFtZV07CiAKICAgICAgICAgICAgIGlmICghbV9kZWxh
eURlbm9taW5hdG9yKQotICAgICAgICAgICAgICAgIGJ1ZmZlci5zZXREdXJhdGlvbihtX2RlbGF5
TnVtZXJhdG9yICogMTApOworICAgICAgICAgICAgICAgIGJ1ZmZlci5zZXREdXJhdGlvbihTZWNv
bmRzOjpmcm9tTWlsbGlzZWNvbmRzKG1fZGVsYXlOdW1lcmF0b3IgKiAxMCkpOwogICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIGJ1ZmZlci5zZXREdXJhdGlvbihtX2RlbGF5TnVtZXJh
dG9yICogMTAwMCAvIG1fZGVsYXlEZW5vbWluYXRvcik7CisgICAgICAgICAgICAgICAgYnVmZmVy
LnNldER1cmF0aW9uKFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMobV9kZWxheU51bWVyYXRvciAq
IDEwMDAgLyBtX2RlbGF5RGVub21pbmF0b3IpKTsKIAogICAgICAgICAgICAgaWYgKG1fZGlzcG9z
ZSA9PSAyKQogICAgICAgICAgICAgICAgIGJ1ZmZlci5zZXREaXNwb3NhbE1ldGhvZChJbWFnZUZy
YW1lOjpEaXNwb3NhbE1ldGhvZDo6UmVzdG9yZVRvUHJldmlvdXMpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321162</attachid>
            <date>2017-09-18 18:04:58 -0700</date>
            <delta_ts>2017-09-18 19:45:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177103-20170918180457.patch</filename>
            <type>text/plain</type>
            <size>15725</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMjE4MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDE3LTA5LTE4ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBJbWFn
ZUZyYW1lOjpkdXJhdGlvbigpIHJldHVybiBTZWNvbmRzIGluc3RlYWQgb2YgZmxvYXQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzEwMworCisgICAg
ICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBTY2FsYWJsZUltYWdlRGVj
b2RlciBzdG9yZXMgbWlsbGlzZWNvbmRzIGZvciB0aGUgZHVyYXRpb24gb2YgaXRzIEltYWdlRnJh
bWVzLgorICAgICAgICBCdXQgSW1hZ2VGcmFtZUNhY2hlIHN0b3JlIHNlY29uZHMgZm9yIHRoZSBk
dXJhdGlvbiBvZiBpdHMgSW1hZ2VGcmFtZXMuCisgICAgICAgIFRvIGZpeCB0aGlzIGlzc3VlIHVz
ZSBTZWNvbmRzIGZvciB0aGUgSW1hZ2VGcmFtZSBkdXJhdGlvbi4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VEZWNvZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZS5o
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VGcmFtZTo6c2V0RHVyYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VGcmFtZTo6ZHVyYXRpb24gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUZy
YW1lQ2FjaGU6OmZyYW1lRHVyYXRpb25BdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUZyYW1lQ2FjaGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZVNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZyYW1lRHVyYXRpb25B
dEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZURlY29kZXJDRy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXJDRzo6ZnJhbWVEdXJhdGlvbkF0SW5k
ZXggY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlRGVjb2RlckNH
Lmg6CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFnZURlY29k
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NhbGFibGVJbWFnZURlY29kZXI6OmZyYW1lRHVy
YXRpb25BdEluZGV4IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9T
Y2FsYWJsZUltYWdlRGVjb2Rlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L2dpZi9HSUZJbWFnZURlY29kZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0lGSW1hZ2VEZWNv
ZGVyOjpmcmFtZUNvbXBsZXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9w
bmcvUE5HSW1hZ2VEZWNvZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBOR0ltYWdlRGVjb2Rl
cjo6cmVhZENodW5rcyk6CisgICAgICAgIChXZWJDb3JlOjpQTkdJbWFnZURlY29kZXI6OmZyYW1l
SGVhZGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBOR0ltYWdlRGVjb2Rlcjo6aW5p
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQTkdJbWFnZURlY29kZXI6OmNsZWFyRnJh
bWVCdWZmZXJDYWNoZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQTkdJbWFnZURlY29k
ZXI6OmluaXRGcmFtZUJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpQTkdJbWFn
ZURlY29kZXI6OmZyYW1lQ29tcGxldGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UE5H
SW1hZ2VEZWNvZGVyOjpwcm9jZXNzaW5nU3RhcnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6UE5HSW1hZ2VEZWNvZGVyOjpwcm9jZXNzaW5nRmluaXNoKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlBOR0ltYWdlRGVjb2Rlcjo6ZmFsbGJhY2tOb3RBbmltYXRlZCk6IERlbGV0ZWQu
CisKIDIwMTctMDktMTggIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIyMjE3MC4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAkocmV2aXNpb24gMjIyMTU4
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAkod29y
a2luZyBjb3B5KQpAQCAtOTQsNyArOTQsNyBAQCBwdWJsaWM6CiAKICAgICBTdWJzYW1wbGluZ0xl
dmVsIGZyYW1lU3Vic2FtcGxpbmdMZXZlbEF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdCB7IHJl
dHVybiBtX3NvdXJjZS5mcmFtZVN1YnNhbXBsaW5nTGV2ZWxBdEluZGV4KGluZGV4KTsgfQogCi0g
ICAgZmxvYXQgZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdCB7IHJldHVy
biBtX3NvdXJjZS5mcmFtZUR1cmF0aW9uQXRJbmRleChpbmRleCk7IH0KKyAgICBTZWNvbmRzIGZy
YW1lRHVyYXRpb25BdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2Uu
ZnJhbWVEdXJhdGlvbkF0SW5kZXgoaW5kZXgpOyB9CiAgICAgSW1hZ2VPcmllbnRhdGlvbiBmcmFt
ZU9yaWVudGF0aW9uQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNl
LmZyYW1lT3JpZW50YXRpb25BdEluZGV4KGluZGV4KTsgfQogCiAgICAgc2l6ZV90IGN1cnJlbnRG
cmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudEZyYW1lOyB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZURlY29kZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZURlY29kZXIuaAkocmV2aXNpb24gMjIy
MTU4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VEZWNvZGVyLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJJbnRTaXplLmgiCiAj
aW5jbHVkZSAiTmF0aXZlSW1hZ2UuaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNs
dWRlIDx3dGYvU2Vjb25kcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2lu
Y2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogCkBAIC02MCw3ICs2MSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZnJhbWVJc0NvbXBsZXRlQXRJbmRleChzaXplX3QpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIEltYWdlT3JpZW50YXRpb24gZnJhbWVPcmllbnRhdGlvbkF0
SW5kZXgoc2l6ZV90KSBjb25zdCA9IDA7CiAKLSAgICB2aXJ0dWFsIGZsb2F0IGZyYW1lRHVyYXRp
b25BdEluZGV4KHNpemVfdCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgU2Vjb25kcyBmcmFtZUR1
cmF0aW9uQXRJbmRleChzaXplX3QpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZnJhbWVI
YXNBbHBoYUF0SW5kZXgoc2l6ZV90KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGZyYW1l
QWxsb3dTdWJzYW1wbGluZ0F0SW5kZXgoc2l6ZV90KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB1
bnNpZ25lZCBmcmFtZUJ5dGVzQXRJbmRleChzaXplX3QsIFN1YnNhbXBsaW5nTGV2ZWwgPSBTdWJz
YW1wbGluZ0xldmVsOjpEZWZhdWx0KSBjb25zdCA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZS5oCShyZXZpc2lvbiAyMjIxNTgpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJJbWFnZVR5cGVzLmgiCiAjaW5jbHVkZSAi
SW50U2l6ZS5oIgogI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgiCisjaW5jbHVkZSA8d3RmL1NlY29u
ZHMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC04MCw4ICs4MSw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldE9yaWVudGF0aW9uKEltYWdlT3JpZW50YXRpb24gb3JpZW50YXRpb24pIHsg
bV9vcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOyB9OwogICAgIEltYWdlT3JpZW50YXRpb24gb3Jp
ZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX29yaWVudGF0aW9uOyB9CiAKLSAgICB2b2lkIHNl
dER1cmF0aW9uKGZsb2F0IGR1cmF0aW9uKSB7IG1fZHVyYXRpb24gPSBkdXJhdGlvbjsgfQotICAg
IGZsb2F0IGR1cmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kdXJhdGlvbjsgfQorICAgIHZvaWQg
c2V0RHVyYXRpb24oY29uc3QgU2Vjb25kcyYgZHVyYXRpb24pIHsgbV9kdXJhdGlvbiA9IGR1cmF0
aW9uOyB9CisgICAgU2Vjb25kcyBkdXJhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZHVyYXRpb247
IH0KIAogICAgIHZvaWQgc2V0SGFzQWxwaGEoYm9vbCBoYXNBbHBoYSkgeyBtX2hhc0FscGhhID0g
aGFzQWxwaGE7IH0KICAgICBib29sIGhhc0FscGhhKCkgY29uc3QgeyByZXR1cm4gIWhhc01ldGFk
YXRhKCkgfHwgbV9oYXNBbHBoYTsgfQpAQCAtMTEyLDcgKzExMyw3IEBAIHByaXZhdGU6CiAgICAg
RGVjb2RpbmdPcHRpb25zIG1fZGVjb2RpbmdPcHRpb25zOwogCiAgICAgSW1hZ2VPcmllbnRhdGlv
biBtX29yaWVudGF0aW9uIHsgRGVmYXVsdEltYWdlT3JpZW50YXRpb24gfTsKLSAgICBmbG9hdCBt
X2R1cmF0aW9uIHsgMCB9OworICAgIFNlY29uZHMgbV9kdXJhdGlvbjsKICAgICBib29sIG1faGFz
QWxwaGEgeyB0cnVlIH07CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUZyYW1lQ2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5jcHAJKHJldmlzaW9uIDIyMjE1OCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTUzNCw5ICs1MzQsOSBAQCB1bnNpZ25lZCBJbWFnZUZyYW1lQ2FjaGU6
OmZyYW1lQnl0ZXNBdEluCiAgICAgcmV0dXJuIGZyYW1lTWV0YWRhdGFBdEluZGV4Q2FjaGVJZk5l
ZWRlZDx1bnNpZ25lZD4oaW5kZXgsICgmSW1hZ2VGcmFtZTo6ZnJhbWVCeXRlcyksIG51bGxwdHIs
IEltYWdlRnJhbWU6OkNhY2hpbmc6Ok1ldGFkYXRhLCBzdWJzYW1wbGluZ0xldmVsKTsKIH0KIAot
ZmxvYXQgSW1hZ2VGcmFtZUNhY2hlOjpmcmFtZUR1cmF0aW9uQXRJbmRleChzaXplX3QgaW5kZXgp
CitTZWNvbmRzIEltYWdlRnJhbWVDYWNoZTo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90IGlu
ZGV4KQogewotICAgIHJldHVybiBmcmFtZU1ldGFkYXRhQXRJbmRleENhY2hlSWZOZWVkZWQ8Zmxv
YXQ+KGluZGV4LCAoJkltYWdlRnJhbWU6OmR1cmF0aW9uKSwgbnVsbHB0ciwgSW1hZ2VGcmFtZTo6
Q2FjaGluZzo6TWV0YWRhdGEpOworICAgIHJldHVybiBmcmFtZU1ldGFkYXRhQXRJbmRleENhY2hl
SWZOZWVkZWQ8U2Vjb25kcz4oaW5kZXgsICgmSW1hZ2VGcmFtZTo6ZHVyYXRpb24pLCBudWxscHRy
LCBJbWFnZUZyYW1lOjpDYWNoaW5nOjpNZXRhZGF0YSk7CiB9CiAKIEltYWdlT3JpZW50YXRpb24g
SW1hZ2VGcmFtZUNhY2hlOjpmcmFtZU9yaWVudGF0aW9uQXRJbmRleChzaXplX3QgaW5kZXgpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lQ2FjaGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1l
Q2FjaGUuaAkocmV2aXNpb24gMjIyMTU4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw3ICsxMDMsNyBA
QCBwdWJsaWM6CiAgICAgLy8gSW1hZ2VGcmFtZSBtZXRhZGF0YSB3aGljaCBmb3JjZXMgY2FjaGlu
ZyBvciByZS1jYWNoaW5nIHRoZSBJbWFnZUZyYW1lLgogICAgIEludFNpemUgZnJhbWVTaXplQXRJ
bmRleChzaXplX3QsIFN1YnNhbXBsaW5nTGV2ZWwgPSBTdWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0
KTsKICAgICB1bnNpZ25lZCBmcmFtZUJ5dGVzQXRJbmRleChzaXplX3QsIFN1YnNhbXBsaW5nTGV2
ZWwgPSBTdWJzYW1wbGluZ0xldmVsOjpEZWZhdWx0KTsKLSAgICBmbG9hdCBmcmFtZUR1cmF0aW9u
QXRJbmRleChzaXplX3QpOworICAgIFNlY29uZHMgZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90
KTsKICAgICBJbWFnZU9yaWVudGF0aW9uIGZyYW1lT3JpZW50YXRpb25BdEluZGV4KHNpemVfdCk7
CiAKICAgICBOYXRpdmVJbWFnZVB0ciBmcmFtZUltYWdlQXRJbmRleChzaXplX3QpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCShyZXZp
c2lvbiAyMjIxNTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNv
dXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNyArMTAxLDcgQEAgcHVibGljOgogICAgIC8v
IEltYWdlRnJhbWUgbWV0YWRhdGEgd2hpY2ggZm9yY2VzIGNhY2hpbmcgb3IgcmUtY2FjaGluZyB0
aGUgSW1hZ2VGcmFtZS4KICAgICBJbnRTaXplIGZyYW1lU2l6ZUF0SW5kZXgoc2l6ZV90IGluZGV4
LCBTdWJzYW1wbGluZ0xldmVsIHN1YnNhbXBsaW5nTGV2ZWwgPSBTdWJzYW1wbGluZ0xldmVsOjpE
ZWZhdWx0KSB7IHJldHVybiBtX2ZyYW1lQ2FjaGUtPmZyYW1lU2l6ZUF0SW5kZXgoaW5kZXgsIHN1
YnNhbXBsaW5nTGV2ZWwpOyB9CiAgICAgdW5zaWduZWQgZnJhbWVCeXRlc0F0SW5kZXgoc2l6ZV90
IGluZGV4LCBTdWJzYW1wbGluZ0xldmVsIHN1YnNhbXBsaW5nTGV2ZWwgPSBTdWJzYW1wbGluZ0xl
dmVsOjpEZWZhdWx0KSB7IHJldHVybiBtX2ZyYW1lQ2FjaGUtPmZyYW1lQnl0ZXNBdEluZGV4KGlu
ZGV4LCBzdWJzYW1wbGluZ0xldmVsKTsgfQotICAgIGZsb2F0IGZyYW1lRHVyYXRpb25BdEluZGV4
KHNpemVfdCBpbmRleCkgeyByZXR1cm4gbV9mcmFtZUNhY2hlLT5mcmFtZUR1cmF0aW9uQXRJbmRl
eChpbmRleCk7IH0KKyAgICBTZWNvbmRzIGZyYW1lRHVyYXRpb25BdEluZGV4KHNpemVfdCBpbmRl
eCkgeyByZXR1cm4gbV9mcmFtZUNhY2hlLT5mcmFtZUR1cmF0aW9uQXRJbmRleChpbmRleCk7IH0K
ICAgICBJbWFnZU9yaWVudGF0aW9uIGZyYW1lT3JpZW50YXRpb25BdEluZGV4KHNpemVfdCBpbmRl
eCkgeyByZXR1cm4gbV9mcmFtZUNhY2hlLT5mcmFtZU9yaWVudGF0aW9uQXRJbmRleChpbmRleCk7
IH0KIAogICAgIE5hdGl2ZUltYWdlUHRyIGZyYW1lSW1hZ2VBdEluZGV4KHNpemVfdCBpbmRleCkg
eyByZXR1cm4gbV9mcmFtZUNhY2hlLT5mcmFtZUltYWdlQXRJbmRleChpbmRleCk7IH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlRGVjb2RlckNHLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZURl
Y29kZXJDRy5jcHAJKHJldmlzaW9uIDIyMjE1OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlRGVjb2RlckNHLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMwLDM3
ICszMzAsMzkgQEAgSW1hZ2VPcmllbnRhdGlvbiBJbWFnZURlY29kZXJDRzo6ZnJhbWVPcgogICAg
IHJldHVybiBvcmllbnRhdGlvbkZyb21Qcm9wZXJ0aWVzKHByb3BlcnRpZXMuZ2V0KCkpOwogfQog
Ci1mbG9hdCBJbWFnZURlY29kZXJDRzo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4
KSBjb25zdAorU2Vjb25kcyBJbWFnZURlY29kZXJDRzo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6
ZV90IGluZGV4KSBjb25zdAogewotICAgIGZsb2F0IGR1cmF0aW9uID0gMDsKKyAgICBmbG9hdCB2
YWx1ZSA9IDA7CiAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gcHJvcGVydGllcyA9IGFk
b3B0Q0YoQ0dJbWFnZVNvdXJjZUNvcHlQcm9wZXJ0aWVzQXRJbmRleChtX25hdGl2ZURlY29kZXIu
Z2V0KCksIGluZGV4LCBpbWFnZVNvdXJjZU9wdGlvbnMoKS5nZXQoKSkpOwogICAgIGlmIChwcm9w
ZXJ0aWVzKSB7CiAgICAgICAgIENGRGljdGlvbmFyeVJlZiBnaWZQcm9wZXJ0aWVzID0gKENGRGlj
dGlvbmFyeVJlZilDRkRpY3Rpb25hcnlHZXRWYWx1ZShwcm9wZXJ0aWVzLmdldCgpLCBrQ0dJbWFn
ZVByb3BlcnR5R0lGRGljdGlvbmFyeSk7CiAgICAgICAgIGlmIChnaWZQcm9wZXJ0aWVzKSB7CiAg
ICAgICAgICAgICBpZiAoQ0ZOdW1iZXJSZWYgbnVtID0gKENGTnVtYmVyUmVmKUNGRGljdGlvbmFy
eUdldFZhbHVlKGdpZlByb3BlcnRpZXMsIGtDR0ltYWdlUHJvcGVydHlHSUZVbmNsYW1wZWREZWxh
eVRpbWUpKSB7CiAgICAgICAgICAgICAgICAgLy8gVXNlIHRoZSB1bmNsYW1wZWQgZnJhbWUgZGVs
YXkgaWYgaXQgZXhpc3RzLgotICAgICAgICAgICAgICAgIENGTnVtYmVyR2V0VmFsdWUobnVtLCBr
Q0ZOdW1iZXJGbG9hdFR5cGUsICZkdXJhdGlvbik7CisgICAgICAgICAgICAgICAgQ0ZOdW1iZXJH
ZXRWYWx1ZShudW0sIGtDRk51bWJlckZsb2F0VHlwZSwgJnZhbHVlKTsKICAgICAgICAgICAgIH0g
ZWxzZSBpZiAoQ0ZOdW1iZXJSZWYgbnVtID0gKENGTnVtYmVyUmVmKUNGRGljdGlvbmFyeUdldFZh
bHVlKGdpZlByb3BlcnRpZXMsIGtDR0ltYWdlUHJvcGVydHlHSUZEZWxheVRpbWUpKSB7CiAgICAg
ICAgICAgICAgICAgLy8gRmFsbCBiYWNrIHRvIHRoZSBjbGFtcGVkIGZyYW1lIGRlbGF5IGlmIHRo
ZSB1bmNsYW1wZWQgZnJhbWUgZGVsYXkgZG9lcyBub3QgZXhpc3QuCi0gICAgICAgICAgICAgICAg
Q0ZOdW1iZXJHZXRWYWx1ZShudW0sIGtDRk51bWJlckZsb2F0VHlwZSwgJmR1cmF0aW9uKTsKKyAg
ICAgICAgICAgICAgICBDRk51bWJlckdldFZhbHVlKG51bSwga0NGTnVtYmVyRmxvYXRUeXBlLCAm
dmFsdWUpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBDRkRp
Y3Rpb25hcnlSZWYgcG5nUHJvcGVydGllcyA9IChDRkRpY3Rpb25hcnlSZWYpQ0ZEaWN0aW9uYXJ5
R2V0VmFsdWUocHJvcGVydGllcy5nZXQoKSwga0NHSW1hZ2VQcm9wZXJ0eVBOR0RpY3Rpb25hcnkp
OwogICAgICAgICBpZiAocG5nUHJvcGVydGllcykgewogICAgICAgICAgICAgaWYgKENGTnVtYmVy
UmVmIG51bSA9IChDRk51bWJlclJlZilDRkRpY3Rpb25hcnlHZXRWYWx1ZShwbmdQcm9wZXJ0aWVz
LCBXZWJDb3JlQ0dJbWFnZVByb3BlcnR5QVBOR1VuY2xhbXBlZERlbGF5VGltZSkpCi0gICAgICAg
ICAgICAgICAgQ0ZOdW1iZXJHZXRWYWx1ZShudW0sIGtDRk51bWJlckZsb2F0VHlwZSwgJmR1cmF0
aW9uKTsKKyAgICAgICAgICAgICAgICBDRk51bWJlckdldFZhbHVlKG51bSwga0NGTnVtYmVyRmxv
YXRUeXBlLCAmdmFsdWUpOwogICAgICAgICAgICAgZWxzZSBpZiAoQ0ZOdW1iZXJSZWYgbnVtID0g
KENGTnVtYmVyUmVmKUNGRGljdGlvbmFyeUdldFZhbHVlKHBuZ1Byb3BlcnRpZXMsIFdlYkNvcmVD
R0ltYWdlUHJvcGVydHlBUE5HRGVsYXlUaW1lKSkKLSAgICAgICAgICAgICAgICBDRk51bWJlckdl
dFZhbHVlKG51bSwga0NGTnVtYmVyRmxvYXRUeXBlLCAmZHVyYXRpb24pOworICAgICAgICAgICAg
ICAgIENGTnVtYmVyR2V0VmFsdWUobnVtLCBrQ0ZOdW1iZXJGbG9hdFR5cGUsICZ2YWx1ZSk7CiAg
ICAgICAgIH0KICAgICB9Ci0gICAgCisKKyAgICBTZWNvbmRzIGR1cmF0aW9uKHZhbHVlKTsKKwog
ICAgIC8vIE1hbnkgYW5ub3lpbmcgYWRzIHNwZWNpZnkgYSAwIGR1cmF0aW9uIHRvIG1ha2UgYW4g
aW1hZ2UgZmxhc2ggYXMgcXVpY2tseSBhcyBwb3NzaWJsZS4KICAgICAvLyBXZSBmb2xsb3cgRmly
ZWZveCdzIGJlaGF2aW9yIGFuZCB1c2UgYSBkdXJhdGlvbiBvZiAxMDAgbXMgZm9yIGFueSBmcmFt
ZXMgdGhhdCBzcGVjaWZ5CiAgICAgLy8gYSBkdXJhdGlvbiBvZiA8PSAxMCBtcy4gU2VlIDxyZGFy
Oi8vcHJvYmxlbS83Njg5MzAwPiBhbmQgPGh0dHA6Ly93ZWJraXQub3JnL2IvMzYwODI+CiAgICAg
Ly8gZm9yIG1vcmUgaW5mb3JtYXRpb24uCi0gICAgaWYgKGR1cmF0aW9uIDwgMC4wMTFmKQotICAg
ICAgICByZXR1cm4gMC4xZjsKKyAgICBpZiAoZHVyYXRpb24gPCAxMV9tcykKKyAgICAgICAgcmV0
dXJuIDEwMF9tczsKICAgICByZXR1cm4gZHVyYXRpb247CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlRGVjb2RlckNHLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VEZWNvZGVyQ0cuaAkocmV2
aXNpb24gMjIyMTU4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1h
Z2VEZWNvZGVyQ0cuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBmcmFtZUlzQ29tcGxldGVBdEluZGV4KHNpemVfdCkgY29uc3QgZmluYWw7CiAgICAg
SW1hZ2VPcmllbnRhdGlvbiBmcmFtZU9yaWVudGF0aW9uQXRJbmRleChzaXplX3QpIGNvbnN0IGZp
bmFsOwogCi0gICAgZmxvYXQgZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90KSBjb25zdCBmaW5h
bDsKKyAgICBTZWNvbmRzIGZyYW1lRHVyYXRpb25BdEluZGV4KHNpemVfdCkgY29uc3QgZmluYWw7
CiAgICAgYm9vbCBmcmFtZUhhc0FscGhhQXRJbmRleChzaXplX3QpIGNvbnN0IGZpbmFsOwogICAg
IGJvb2wgZnJhbWVBbGxvd1N1YnNhbXBsaW5nQXRJbmRleChzaXplX3QpIGNvbnN0IGZpbmFsOwog
ICAgIHVuc2lnbmVkIGZyYW1lQnl0ZXNBdEluZGV4KHNpemVfdCwgU3Vic2FtcGxpbmdMZXZlbCA9
IFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQpIGNvbnN0IGZpbmFsOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFnZURlY29kZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL1NjYWxh
YmxlSW1hZ2VEZWNvZGVyLmNwcAkocmV2aXNpb24gMjIyMTU4KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFnZURlY29kZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xOTYsMjMgKzE5NiwyMiBAQCB1bnNpZ25lZCBTY2FsYWJsZUltYWdlRGVjb2Rl
cjo6ZnJhbWVCeXRlCiAgICAgcmV0dXJuIChtX3NpemUuYXJlYSgpICogc2l6ZW9mKFJHQkEzMikp
LnVuc2FmZUdldCgpOwogfQogCi1mbG9hdCBTY2FsYWJsZUltYWdlRGVjb2Rlcjo6ZnJhbWVEdXJh
dGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAorU2Vjb25kcyBTY2FsYWJsZUltYWdlRGVj
b2Rlcjo6ZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAogewogICAgIC8v
IEZJWE1FKDE3NjA4OSk6IGFza2luZyBmb3IgdGhlIGR1cmF0aW9uIG9mIGEgc3ViLWltYWdlIHNo
b3VsZCBub3QgcmVxdWlyZSBkZWNvZGluZwogICAgIC8vIHRoZSBlbnRpcmUgZnJhbWUuIFRoaXMg
ZnVuY3Rpb24gc2hvdWxkIGJlIGltcGxlbWVudGFibGUgaW4gYSB3YXkgdGhhdAogICAgIC8vIGFs
bG93cyBjb25zdC4KICAgICBJbWFnZUZyYW1lKiBidWZmZXIgPSBjb25zdF9jYXN0PFNjYWxhYmxl
SW1hZ2VEZWNvZGVyKj4odGhpcyktPmZyYW1lQnVmZmVyQXRJbmRleChpbmRleCk7CiAgICAgaWYg
KCFidWZmZXIgfHwgYnVmZmVyLT5pc0ludmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAg
ICAgIHJldHVybiAwX3M7CiAgICAgCiAgICAgLy8gTWFueSBhbm5veWluZyBhZHMgc3BlY2lmeSBh
IDAgZHVyYXRpb24gdG8gbWFrZSBhbiBpbWFnZSBmbGFzaCBhcyBxdWlja2x5IGFzIHBvc3NpYmxl
LgogICAgIC8vIFdlIGZvbGxvdyBGaXJlZm94J3MgYmVoYXZpb3IgYW5kIHVzZSBhIGR1cmF0aW9u
IG9mIDEwMCBtcyBmb3IgYW55IGZyYW1lcyB0aGF0IHNwZWNpZnkKICAgICAvLyBhIGR1cmF0aW9u
IG9mIDw9IDEwIG1zLiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzc2ODkzMDA+IGFuZCA8aHR0cDovL3dl
YmtpdC5vcmcvYi8zNjA4Mj4KICAgICAvLyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KLSAgICBjb25z
dCBmbG9hdCBkdXJhdGlvbiA9IGJ1ZmZlci0+ZHVyYXRpb24oKSAvIDEwMDAuMGY7Ci0gICAgaWYg
KGR1cmF0aW9uIDwgMC4wMTFmKQotICAgICAgICByZXR1cm4gMC4xMDBmOwotICAgIHJldHVybiBk
dXJhdGlvbjsKKyAgICBpZiAoYnVmZmVyLT5kdXJhdGlvbigpIDwgMTFfbXMpCisgICAgICAgIHJl
dHVybiAxMDBfbXM7CisgICAgcmV0dXJuIGJ1ZmZlci0+ZHVyYXRpb24oKTsKIH0KIAogTmF0aXZl
SW1hZ2VQdHIgU2NhbGFibGVJbWFnZURlY29kZXI6OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KHNp
emVfdCBpbmRleCwgU3Vic2FtcGxpbmdMZXZlbCwgY29uc3QgRGVjb2RpbmdPcHRpb25zJikKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL1NjYWxhYmxlSW1hZ2VE
ZWNvZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvU2NhbGFibGVJbWFnZURlY29kZXIuaAkocmV2aXNpb24gMjIyMTU4KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvU2NhbGFibGVJbWFnZURlY29kZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMTQzLDcgKzE0Myw3IEBAIHB1YmxpYzoKICAgICAvLyBOdW1iZXIg
b2YgYnl0ZXMgaW4gdGhlIGRlY29kZWQgZnJhbWUgcmVxdWVzdGVkLiBSZXR1cm4gMCBpZiBub3Qg
eWV0IGRlY29kZWQuCiAgICAgdW5zaWduZWQgZnJhbWVCeXRlc0F0SW5kZXgoc2l6ZV90LCBTdWJz
YW1wbGluZ0xldmVsID0gU3Vic2FtcGxpbmdMZXZlbDo6RGVmYXVsdCkgY29uc3Qgb3ZlcnJpZGU7
CiAKLSAgICBmbG9hdCBmcmFtZUR1cmF0aW9uQXRJbmRleChzaXplX3QpIGNvbnN0IG92ZXJyaWRl
OworICAgIFNlY29uZHMgZnJhbWVEdXJhdGlvbkF0SW5kZXgoc2l6ZV90KSBjb25zdCBmaW5hbDsK
IAogICAgIE5hdGl2ZUltYWdlUHRyIGNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KHNpemVfdCwgU3Vi
c2FtcGxpbmdMZXZlbCA9IFN1YnNhbXBsaW5nTGV2ZWw6OkRlZmF1bHQsIGNvbnN0IERlY29kaW5n
T3B0aW9ucyYgPSBEZWNvZGluZ01vZGU6OlN5bmNocm9ub3VzKSBvdmVycmlkZTsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvZ2lmL0dJRkltYWdlRGVjb2Rl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2Rl
cnMvZ2lmL0dJRkltYWdlRGVjb2Rlci5jcHAJKHJldmlzaW9uIDIyMjE1OCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2dpZi9HSUZJbWFnZURlY29kZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNDgsNyArMjQ4LDcgQEAgYm9vbCBHSUZJbWFnZURlY29kZXI6OmZy
YW1lQ29tcGxldGUodW5zaQogICAgICAgICByZXR1cm4gZmFsc2U7IC8vIGluaXRGcmFtZUJ1ZmZl
cigpIGhhcyBhbHJlYWR5IGNhbGxlZCBzZXRGYWlsZWQoKS4KIAogICAgIGJ1ZmZlci5zZXREZWNv
ZGluZ1N0YXR1cyhEZWNvZGluZ1N0YXR1czo6Q29tcGxldGUpOwotICAgIGJ1ZmZlci5zZXREdXJh
dGlvbihmcmFtZUR1cmF0aW9uKTsKKyAgICBidWZmZXIuc2V0RHVyYXRpb24oU2Vjb25kczo6ZnJv
bU1pbGxpc2Vjb25kcyhmcmFtZUR1cmF0aW9uKSk7CiAgICAgYnVmZmVyLnNldERpc3Bvc2FsTWV0
aG9kKGRpc3Bvc2FsTWV0aG9kKTsKIAogICAgIGlmICghbV9jdXJyZW50QnVmZmVyU2F3QWxwaGEp
IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJ
bWFnZURlY29kZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIuY3BwCShyZXZpc2lvbiAyMjIxNTgpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1hZ2VEZWNv
ZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUwLDkgKzY1MCw5IEBAIHZvaWQgUE5HSW1hZ2VE
ZWNvZGVyOjpyZWFkQ2h1bmtzKHBuZ191bmsKICAgICAgICAgICAgIEltYWdlRnJhbWUmIGJ1ZmZl
ciA9IG1fZnJhbWVCdWZmZXJDYWNoZVttX2N1cnJlbnRGcmFtZV07CiAKICAgICAgICAgICAgIGlm
ICghbV9kZWxheURlbm9taW5hdG9yKQotICAgICAgICAgICAgICAgIGJ1ZmZlci5zZXREdXJhdGlv
bihtX2RlbGF5TnVtZXJhdG9yICogMTApOworICAgICAgICAgICAgICAgIGJ1ZmZlci5zZXREdXJh
dGlvbihTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKG1fZGVsYXlOdW1lcmF0b3IgKiAxMCkpOwog
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGJ1ZmZlci5zZXREdXJhdGlvbihtX2Rl
bGF5TnVtZXJhdG9yICogMTAwMCAvIG1fZGVsYXlEZW5vbWluYXRvcik7CisgICAgICAgICAgICAg
ICAgYnVmZmVyLnNldER1cmF0aW9uKFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMobV9kZWxheU51
bWVyYXRvciAqIDEwMDAgLyBtX2RlbGF5RGVub21pbmF0b3IpKTsKIAogICAgICAgICAgICAgaWYg
KG1fZGlzcG9zZSA9PSAyKQogICAgICAgICAgICAgICAgIGJ1ZmZlci5zZXREaXNwb3NhbE1ldGhv
ZChJbWFnZUZyYW1lOjpEaXNwb3NhbE1ldGhvZDo6UmVzdG9yZVRvUHJldmlvdXMpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>