<?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>141967</bug_id>
          
          <creation_ts>2015-02-24 05:20:32 -0800</creation_ts>
          <short_desc>[Cairo] Incorrect dashed and dotted border painting after r177686.</short_desc>
          <delta_ts>2015-12-08 02:46:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore 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>
          <dependson>139872</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hunseop Jeong">hs85.jeong</reporter>
          <assigned_to name="Hunseop Jeong">hs85.jeong</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alex</cc>
    
    <cc>bfulgham</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jinwoo7.song</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ossy</cc>
    
    <cc>peavo</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1071633</commentid>
    <comment_count>0</comment_count>
    <who name="Hunseop Jeong">hs85.jeong</who>
    <bug_when>2015-02-24 05:20:32 -0800</bug_when>
    <thetext>Fix the incorrect dashed/dotted border painting in cairo.
This patch referred to r177686.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071636</commentid>
    <comment_count>1</comment_count>
      <attachid>247227</attachid>
    <who name="Hunseop Jeong">hs85.jeong</who>
    <bug_when>2015-02-24 05:25:56 -0800</bug_when>
    <thetext>Created attachment 247227
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076925</commentid>
    <comment_count>2</comment_count>
      <attachid>248584</attachid>
    <who name="Hunseop Jeong">hs85.jeong</who>
    <bug_when>2015-03-13 04:35:25 -0700</bug_when>
    <thetext>Created attachment 248584
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076927</commentid>
    <comment_count>3</comment_count>
    <who name="Hunseop Jeong">hs85.jeong</who>
    <bug_when>2015-03-13 04:57:58 -0700</bug_when>
    <thetext>The tests below are passed on EFL after applying this patch.

fast/borders/0px-borders.html [ ImageOnlyFailure ]
fast/backgrounds/background-opaque-clipped-gradients.html [ ImageOnlyFailure ]

But, tests below are still failed.
fast/borders/border-painting-correctness-dashed.html [ ImageOnlyFailure ]
fast/borders/border-painting-correctness-dotted.html [ ImageOnlyFailure ]

Some pixels are different from the expected result.
Need to investigate why it is different with CG.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106309</commentid>
    <comment_count>4</comment_count>
      <attachid>255990</attachid>
    <who name="Hunseop Jeong">hs85.jeong</who>
    <bug_when>2015-07-01 21:44:48 -0700</bug_when>
    <thetext>Created attachment 255990
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1108131</commentid>
    <comment_count>5</comment_count>
    <who name="Hunseop Jeong">hs85.jeong</who>
    <bug_when>2015-07-08 23:08:34 -0700</bug_when>
    <thetext>Now EFL, gtk+ port paint the dashed and dotted border incorrectly.
So I changed the code to draw the correct border.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109098</commentid>
    <comment_count>6</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-07-13 08:15:59 -0700</bug_when>
    <thetext>Thanks for the patch. Are the tests you mentioned skipped on EFL and GTK+? If you would you unskip them in your patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1117246</commentid>
    <comment_count>7</comment_count>
      <attachid>255990</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-08-13 09:39:55 -0700</bug_when>
    <thetext>Comment on attachment 255990
Patch

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

&gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:302
&gt; +        int numberOfSegments = floorf(strokeWidth / patternWidth);

Maybe this should be std::floor(strokeWidth / patternWidth)?

Is truncation right for the segment count? We don&apos;t want to round to the nearest integer?

&gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:306
&gt; +            patternOffset -= remainder / 2;

Should this be &quot;remainder / 2.0f&quot; to avoid possible truncation? Maybe the compiler does the right thing and doesn&apos;t do an integer divide...

Or better yet, why not multiply by 0.5f, since that&apos;s a lower-cost operation?

&gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:309
&gt; +                patternOffset += patternOffset - (patternWidth + remainder)  / 2;

Ditto. Looks like an extra space before the slash.

&gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:311
&gt; +                patternOffset += patternWidth  / 2;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133054</commentid>
    <comment_count>8</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-10-13 23:16:47 -0700</bug_when>
    <thetext>*** Bug 149948 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133055</commentid>
    <comment_count>9</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-10-13 23:19:35 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 255990 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=255990&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:302
&gt; &gt; +        int numberOfSegments = floorf(strokeWidth / patternWidth);
&gt; 
&gt; Maybe this should be std::floor(strokeWidth / patternWidth)?
&gt; 
&gt; Is truncation right for the segment count? We don&apos;t want to round to the
&gt; nearest integer?
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:306
&gt; &gt; +            patternOffset -= remainder / 2;
&gt; 
&gt; Should this be &quot;remainder / 2.0f&quot; to avoid possible truncation? Maybe the
&gt; compiler does the right thing and doesn&apos;t do an integer divide...
&gt; 
&gt; Or better yet, why not multiply by 0.5f, since that&apos;s a lower-cost operation?
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:309
&gt; &gt; +                patternOffset += patternOffset - (patternWidth + remainder)  / 2;
&gt; 
&gt; Ditto. Looks like an extra space before the slash.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:311
&gt; &gt; +                patternOffset += patternWidth  / 2;
&gt; 
&gt; Ditto.

Hunseop, any update ? We need to fix this issue soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133078</commentid>
    <comment_count>10</comment_count>
      <attachid>263066</attachid>
    <who name="Hunseop Jeong">hs85.jeong</who>
    <bug_when>2015-10-14 02:04:51 -0700</bug_when>
    <thetext>Created attachment 263066
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133079</commentid>
    <comment_count>11</comment_count>
    <who name="Hunseop Jeong">hs85.jeong</who>
    <bug_when>2015-10-14 02:16:40 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Thanks for the patch. Are the tests you mentioned skipped on EFL and GTK+?
&gt; If you would you unskip them in your patch?

I only unskip the fast/borders/0px-borders.html because some pixels are different with expected result in fast/borders/border-painting-correctness-foo tests.
So I remain the tests with [ ImageOnlyFailure ].</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133080</commentid>
    <comment_count>12</comment_count>
    <who name="Hunseop Jeong">hs85.jeong</who>
    <bug_when>2015-10-14 02:24:21 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #7)
&gt; &gt; Comment on attachment 255990 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=255990&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:302
&gt; &gt; &gt; +        int numberOfSegments = floorf(strokeWidth / patternWidth);
&gt; &gt; 
&gt; &gt; Maybe this should be std::floor(strokeWidth / patternWidth)?
&gt; &gt; 
&gt; &gt; Is truncation right for the segment count? We don&apos;t want to round to the
&gt; &gt; nearest integer?
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:306
&gt; &gt; &gt; +            patternOffset -= remainder / 2;
&gt; &gt; 
&gt; &gt; Should this be &quot;remainder / 2.0f&quot; to avoid possible truncation? Maybe the
&gt; &gt; compiler does the right thing and doesn&apos;t do an integer divide...
&gt; &gt; 
&gt; &gt; Or better yet, why not multiply by 0.5f, since that&apos;s a lower-cost operation?
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:309
&gt; &gt; &gt; +                patternOffset += patternOffset - (patternWidth + remainder)  / 2;
&gt; &gt; 
&gt; &gt; Ditto. Looks like an extra space before the slash.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:311
&gt; &gt; &gt; +                patternOffset += patternWidth  / 2;
&gt; &gt; 
&gt; &gt; Ditto.

This patch is based on r177686.
Anyway I changed the codes by following your comments.
Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133352</commentid>
    <comment_count>13</comment_count>
      <attachid>263066</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-10-14 19:05:55 -0700</bug_when>
    <thetext>Comment on attachment 263066
Patch

This patch is implemented based on GraphicsContextCG.cpp implementation. I think this bug is critical issue in EFL and GTK ports. Hope to fix this issue as soon as possible. Any other review comment ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137052</commentid>
    <comment_count>14</comment_count>
      <attachid>263066</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-10-27 21:28:43 -0700</bug_when>
    <thetext>Comment on attachment 263066
Patch

rs=me. I think this implementation is based on Mac port&apos;s one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137059</commentid>
    <comment_count>15</comment_count>
      <attachid>263066</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-27 22:20:55 -0700</bug_when>
    <thetext>Comment on attachment 263066
Patch

Clearing flags on attachment: 263066

Committed r191658: &lt;http://trac.webkit.org/changeset/191658&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137060</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-27 22:21:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137134</commentid>
    <comment_count>17</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-10-28 09:02:34 -0700</bug_when>
    <thetext>Alex, Per: You should double-check the WinCairo output to see if this creates a progression, or if we need to revise test expectations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137197</commentid>
    <comment_count>18</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-10-28 11:13:49 -0700</bug_when>
    <thetext>Does this fix the broken border on Bugzilla pages?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1142810</commentid>
    <comment_count>19</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2015-11-18 04:16:48 -0800</bug_when>
    <thetext>The patch broke the SolidStroke when drawing a line, 2 mathml tests failed after it. Check bug 151385.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147218</commentid>
    <comment_count>20</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-12-08 02:04:29 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; Does this fix the broken border on Bugzilla pages?

This patch was to fix incorrect dashed|dotted line drawing. Dotted line was drawn on EFL and GTK MiniBrowser incorrectly.

- https://bug-149948-attachments.webkit.org/attachment.cgi?id=262755
- https://bug-149948-attachments.webkit.org/attachment.cgi?id=262756

How can I see the broken border on Bugzilla pages ? I&apos;d like to check if the issue still occurs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147227</commentid>
    <comment_count>21</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-12-08 02:20:40 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #18)
&gt; &gt; Does this fix the broken border on Bugzilla pages?
&gt; 
&gt; This patch was to fix incorrect dashed|dotted line drawing. Dotted line was
&gt; drawn on EFL and GTK MiniBrowser incorrectly.
&gt; 
&gt; - https://bug-149948-attachments.webkit.org/attachment.cgi?id=262755
&gt; - https://bug-149948-attachments.webkit.org/attachment.cgi?id=262756
&gt; 
&gt; How can I see the broken border on Bugzilla pages ? I&apos;d like to check if the
&gt; issue still occurs.

It&apos;s the dotted line underneath the final comment in a Bugzilla bug, before the text entry, when you have set the text entry to appear at the bottom of the page in preferences. It&apos;s supposed to be a straight line, but recently it was broken such that the second half of the line was drawn slightly below the first half of the line. I cannot reproduce the issue anymore -- the line is completely straight now -- so this patch did indeed fix that bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147239</commentid>
    <comment_count>22</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-12-08 02:46:27 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; (In reply to comment #18)
&gt; &gt; &gt; Does this fix the broken border on Bugzilla pages?
&gt; &gt; 
&gt; &gt; This patch was to fix incorrect dashed|dotted line drawing. Dotted line was
&gt; &gt; drawn on EFL and GTK MiniBrowser incorrectly.
&gt; &gt; 
&gt; &gt; - https://bug-149948-attachments.webkit.org/attachment.cgi?id=262755
&gt; &gt; - https://bug-149948-attachments.webkit.org/attachment.cgi?id=262756
&gt; &gt; 
&gt; &gt; How can I see the broken border on Bugzilla pages ? I&apos;d like to check if the
&gt; &gt; issue still occurs.
&gt; 
&gt; It&apos;s the dotted line underneath the final comment in a Bugzilla bug, before
&gt; the text entry, when you have set the text entry to appear at the bottom of
&gt; the page in preferences. It&apos;s supposed to be a straight line, but recently
&gt; it was broken such that the second half of the line was drawn slightly below
&gt; the first half of the line. I cannot reproduce the issue anymore -- the line
&gt; is completely straight now -- so this patch did indeed fix that bug.

Thanks, I also think this patch fixed it definitely.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247227</attachid>
            <date>2015-02-24 05:25:56 -0800</date>
            <delta_ts>2015-03-13 04:35:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141967-20150224222531.patch</filename>
            <type>text/plain</type>
            <size>7798</size>
            <attacher name="Hunseop Jeong">hs85.jeong</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwNTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODA1Yjg2NjE1ZWM3MzVm
MjBlZTFlNjQ3MzVjYmIzM2U3YTBmOWI1NC4uOWU0YWQ0ZTc5ODQ3YmUwYjk3MTE0NmE3N2ZkMGIx
ODE1MTJlODMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTAyLTI0ICBIdW5z
ZW9wIEplb25nICA8aHM4NS5qZW9uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbQ2Fpcm9dIElu
Y29ycmVjdCBkYXNoZWQgYW5kIGRvdHRlZCBib3JkZXIgcGFpbnRpbmcgYWZ0ZXIgcjE3NzY4Ni4g
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE5NjcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggdGhl
IGluY29ycmVjdCBkYXNoZWQvZG90dGVkIGJvcmRlciBwYWludGluZyBpbiBjYWlyby4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmRyYXdMaW5lT25DYWlyb0NvbnRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6Y2FsY3VsYXRlU3Ryb2tlUGF0dGVybk9mZnNldCk6IERlbGV0ZWQuCisKIDIwMTUtMDIt
MjMgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgRXZlbnRI
YW5kbGVyIHJlZmVyZW5jZXMgZGVsZXRlZCBTY3JvbGxiYXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENh
aXJvLmNwcAppbmRleCAzN2E1MzgyM2MzYzA1NWU3ODU4NDRlODgzMDU1MWRmYTdkNzMwMTA2Li5m
NTVhNTkzZWUzMTY2YWFjZTJiN2I5MWFkOGZmYmE1MzY2NWIwZTlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3ND
b250ZXh0Q2Fpcm8uY3BwCkBAIC0yNTIsMzMgKzI1Miw2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpkcmF3UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGZsb2F0KQogICAgIGNhaXJvX3Jlc3Rv
cmUoY3IpOwogfQogCi1zdGF0aWMgZG91YmxlIGNhbGN1bGF0ZVN0cm9rZVBhdHRlcm5PZmZzZXQo
aW50IGRpc3RhbmNlLCBpbnQgcGF0dGVybldpZHRoKQotewotICAgIC8vIEV4YW1wbGU6IDgwIHBp
eGVscyB3aXRoIGEgd2lkdGggb2YgMzAgcGl4ZWxzLiBSZW1haW5kZXIgaXMgMjAuCi0gICAgLy8g
VGhlIG1heGltdW0gcGl4ZWxzIG9mIGxpbmUgd2UgY291bGQgcGFpbnQgd2lsbCBiZSA1MCBwaXhl
bHMuCi0gICAgaW50IHJlbWFpbmRlciA9IGRpc3RhbmNlICUgcGF0dGVybldpZHRoOwotICAgIGlu
dCBudW1TZWdtZW50cyA9IChkaXN0YW5jZSAtIHJlbWFpbmRlcikgLyBwYXR0ZXJuV2lkdGg7Ci0K
LSAgICAvLyBTcGVjaWFsIGNhc2UgMXB4IGRvdHRlZCBib3JkZXJzIGZvciBzcGVlZC4KLSAgICBp
ZiAocGF0dGVybldpZHRoID09IDEpCi0gICAgICAgIHJldHVybiAxOwotCi0gICAgYm9vbCBldmVu
TnVtYmVyT2ZTZWdtZW50cyA9ICEobnVtU2VnbWVudHMgJSAyKTsKLSAgICBpZiAocmVtYWluZGVy
KQotICAgICAgICBldmVuTnVtYmVyT2ZTZWdtZW50cyA9ICFldmVuTnVtYmVyT2ZTZWdtZW50czsK
LQotICAgIGlmIChldmVuTnVtYmVyT2ZTZWdtZW50cykgewotICAgICAgICBpZiAocmVtYWluZGVy
KQotICAgICAgICAgICAgcmV0dXJuIChwYXR0ZXJuV2lkdGggLSByZW1haW5kZXIpICsgKHJlbWFp
bmRlciAvIDIpOwotICAgICAgICByZXR1cm4gcGF0dGVybldpZHRoIC8gMjsKLSAgICB9Ci0KLSAg
ICAvLyBPZGQgbnVtYmVyIG9mIHNlZ21lbnRzLgotICAgIGlmIChyZW1haW5kZXIpCi0gICAgICAg
IHJldHVybiAocGF0dGVybldpZHRoIC0gcmVtYWluZGVyKSAvIDIuZjsKLSAgICByZXR1cm4gMDsK
LX0KLQogc3RhdGljIHZvaWQgZHJhd0xpbmVPbkNhaXJvQ29udGV4dChHcmFwaGljc0NvbnRleHQq
IGdyYXBoaWNzQ29udGV4dCwgY2Fpcm9fdCogY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgcG9p
bnQxLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludDIpCiB7CiAgICAgU3Ryb2tlU3R5bGUgc3R5bGUg
PSBncmFwaGljc0NvbnRleHQtPnN0cm9rZVN0eWxlKCk7CkBAIC0yODYsNDYgKzI1OSw3MSBAQCBz
dGF0aWMgdm9pZCBkcmF3TGluZU9uQ2Fpcm9Db250ZXh0KEdyYXBoaWNzQ29udGV4dCogZ3JhcGhp
Y3NDb250ZXh0LCBjYWlyb190KiBjbwogICAgICAgICByZXR1cm47CiAKICAgICBjb25zdCBDb2xv
ciYgc3Ryb2tlQ29sb3IgPSBncmFwaGljc0NvbnRleHQtPnN0cm9rZUNvbG9yKCk7Ci0gICAgaW50
IHN0cm9rZVRoaWNrbmVzcyA9IGZsb29yZihncmFwaGljc0NvbnRleHQtPnN0cm9rZVRoaWNrbmVz
cygpKTsKLSAgICBpZiAoZ3JhcGhpY3NDb250ZXh0LT5zdHJva2VUaGlja25lc3MoKSA8IDEpCi0g
ICAgICAgIHN0cm9rZVRoaWNrbmVzcyA9IDE7Ci0KLSAgICBpbnQgcGF0dGVybldpZHRoID0gMDsK
LSAgICBpZiAoc3R5bGUgPT0gRG90dGVkU3Ryb2tlKQotICAgICAgICBwYXR0ZXJuV2lkdGggPSBz
dHJva2VUaGlja25lc3M7Ci0gICAgZWxzZSBpZiAoc3R5bGUgPT0gRGFzaGVkU3Ryb2tlKQotICAg
ICAgICBwYXR0ZXJuV2lkdGggPSAzICogc3Ryb2tlVGhpY2tuZXNzOwotCi0gICAgYm9vbCBpc1Zl
cnRpY2FsTGluZSA9IHBvaW50MS54KCkgPT0gcG9pbnQyLngoKTsKLSAgICBGbG9hdFBvaW50IHBv
aW50MU9uUGl4ZWxCb3VuZGFyaWVzID0gcG9pbnQxOwotICAgIEZsb2F0UG9pbnQgcG9pbnQyT25Q
aXhlbEJvdW5kYXJpZXMgPSBwb2ludDI7Ci0gICAgR3JhcGhpY3NDb250ZXh0OjphZGp1c3RMaW5l
VG9QaXhlbEJvdW5kYXJpZXMocG9pbnQxT25QaXhlbEJvdW5kYXJpZXMsIHBvaW50Mk9uUGl4ZWxC
b3VuZGFyaWVzLCBzdHJva2VUaGlja25lc3MsIHN0eWxlKTsKLQotICAgIGlmIChwYXR0ZXJuV2lk
dGgpIHsKLSAgICAgICAgLy8gRG8gYSByZWN0IGZpbGwgb2Ygb3VyIGVuZHBvaW50cy4gIFRoaXMg
ZW5zdXJlcyB3ZSBhbHdheXMgaGF2ZSB0aGUKLSAgICAgICAgLy8gYXBwZWFyYW5jZSBvZiBiZWlu
ZyBhIGJvcmRlci4gIFdlIHRoZW4gZHJhdyB0aGUgYWN0dWFsIGRvdHRlZC9kYXNoZWQgbGluZS4K
LSAgICAgICAgRmxvYXRSZWN0IGZpcnN0UmVjdChwb2ludDFPblBpeGVsQm91bmRhcmllcywgRmxv
YXRTaXplKHN0cm9rZVRoaWNrbmVzcywgc3Ryb2tlVGhpY2tuZXNzKSk7Ci0gICAgICAgIEZsb2F0
UmVjdCBzZWNvbmRSZWN0KHBvaW50Mk9uUGl4ZWxCb3VuZGFyaWVzLCBGbG9hdFNpemUoc3Ryb2tl
VGhpY2tuZXNzLCBzdHJva2VUaGlja25lc3MpKTsKKyAgICBmbG9hdCBzdHJva2VUaGlja25lc3Mg
PSBncmFwaGljc0NvbnRleHQtPnN0cm9rZVRoaWNrbmVzcygpOworICAgIGJvb2wgaXNWZXJ0aWNh
bExpbmUgPSAocG9pbnQxLngoKSArc3Ryb2tlVGhpY2tuZXNzID09IHBvaW50Mi54KCkpOworICAg
IGZsb2F0IHN0cm9rZVdpZHRoID0gaXNWZXJ0aWNhbExpbmUgPyBwb2ludDIueSgpIC0gcG9pbnQx
LnkoKSA6IHBvaW50Mi54KCkgLSBwb2ludDEueCgpOworCisgICAgaWYgKCFzdHJva2VUaGlja25l
c3MgfHwgIXN0cm9rZVdpZHRoKQorICAgICAgICByZXR1cm47CisKKyAgICBmbG9hdCBjb3JuZXJX
aWR0aCA9IDA7CisgICAgaWYgKHN0eWxlID09IERvdHRlZFN0cm9rZSB8fCBzdHlsZSA9PSBEYXNo
ZWRTdHJva2UpIHsKKyAgICAgICAgLy8gRmlndXJlIG91dCBlbmQgcG9pbnRzIHRvIGVuc3VyZSB3
ZSBhbHdheXMgcGFpbnQgY29ybmVycy4KKyAgICAgICAgY29ybmVyV2lkdGggPSBzdHlsZSA9PSBE
b3R0ZWRTdHJva2UgPyBzdHJva2VUaGlja25lc3MgOiBzdGQ6Om1pbigyICogc3Ryb2tlVGhpY2tu
ZXNzLCBzdGQ6Om1heChzdHJva2VUaGlja25lc3MsIHN0cm9rZVdpZHRoIC8gMykpOwogICAgICAg
ICBpZiAoaXNWZXJ0aWNhbExpbmUpIHsKLSAgICAgICAgICAgIGZpcnN0UmVjdC5tb3ZlKC1zdHJv
a2VUaGlja25lc3MgLyAyLCAtc3Ryb2tlVGhpY2tuZXNzKTsKLSAgICAgICAgICAgIHNlY29uZFJl
Y3QubW92ZSgtc3Ryb2tlVGhpY2tuZXNzIC8gMiwgMCk7CisgICAgICAgICAgICBmaWxsUmVjdFdp
dGhDb2xvcihjb250ZXh0LCBGbG9hdFJlY3QocG9pbnQxLngoKSwgcG9pbnQxLnkoKSwgc3Ryb2tl
VGhpY2tuZXNzLCBjb3JuZXJXaWR0aCksIHN0cm9rZUNvbG9yKTsKKyAgICAgICAgICAgIGZpbGxS
ZWN0V2l0aENvbG9yKGNvbnRleHQsIEZsb2F0UmVjdChwb2ludDEueCgpLCBwb2ludDIueSgpIC0g
Y29ybmVyV2lkdGgsIHN0cm9rZVRoaWNrbmVzcywgY29ybmVyV2lkdGgpLCBzdHJva2VDb2xvcik7
CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBmaXJzdFJlY3QubW92ZSgtc3Ryb2tlVGhp
Y2tuZXNzLCAtc3Ryb2tlVGhpY2tuZXNzIC8gMik7Ci0gICAgICAgICAgICBzZWNvbmRSZWN0Lm1v
dmUoMCwgLXN0cm9rZVRoaWNrbmVzcyAvIDIpOworICAgICAgICAgICAgZmlsbFJlY3RXaXRoQ29s
b3IoY29udGV4dCwgRmxvYXRSZWN0KHBvaW50MS54KCksIHBvaW50MS55KCksIGNvcm5lcldpZHRo
LCBzdHJva2VUaGlja25lc3MpLCBzdHJva2VDb2xvcik7CisgICAgICAgICAgICBmaWxsUmVjdFdp
dGhDb2xvcihjb250ZXh0LCBGbG9hdFJlY3QocG9pbnQyLngoKSAtIGNvcm5lcldpZHRoLCBwb2lu
dDEueSgpLCBjb3JuZXJXaWR0aCwgc3Ryb2tlVGhpY2tuZXNzKSwgc3Ryb2tlQ29sb3IpOwogICAg
ICAgICB9Ci0gICAgICAgIGZpbGxSZWN0V2l0aENvbG9yKGNvbnRleHQsIGZpcnN0UmVjdCwgc3Ry
b2tlQ29sb3IpOwotICAgICAgICBmaWxsUmVjdFdpdGhDb2xvcihjb250ZXh0LCBzZWNvbmRSZWN0
LCBzdHJva2VDb2xvcik7CiAKLSAgICAgICAgaW50IGRpc3RhbmNlID0gKGlzVmVydGljYWxMaW5l
ID8gKHBvaW50Mi55KCkgLSBwb2ludDEueSgpKSA6IChwb2ludDIueCgpIC0gcG9pbnQxLngoKSkp
IC0gMiAqIHN0cm9rZVRoaWNrbmVzczsKLSAgICAgICAgZG91YmxlIHBhdHRlcm5PZmZzZXQgPSBj
YWxjdWxhdGVTdHJva2VQYXR0ZXJuT2Zmc2V0KGRpc3RhbmNlLCBwYXR0ZXJuV2lkdGgpOwotICAg
ICAgICBkb3VibGUgcGF0dGVybldpZHRoQXNEb3VibGUgPSBwYXR0ZXJuV2lkdGg7Ci0gICAgICAg
IGNhaXJvX3NldF9kYXNoKGNvbnRleHQsICZwYXR0ZXJuV2lkdGhBc0RvdWJsZSwgMSwgcGF0dGVy
bk9mZnNldCk7CisgICAgICAgIHN0cm9rZVdpZHRoIC09IDIgKiBjb3JuZXJXaWR0aDsKKyAgICAg
ICAgZmxvYXQgcGF0dGVybldpZHRoID0gc3R5bGUgPT0gRG90dGVkU3Ryb2tlID8gc3Ryb2tlVGhp
Y2tuZXNzIDogc3RkOjptaW4oMyAqIHN0cm9rZVRoaWNrbmVzcywgc3RkOjptYXgoc3Ryb2tlVGhp
Y2tuZXNzLCBzdHJva2VXaWR0aCAvIDMpKTsKKworICAgICAgICAvLyBDaGVjayBpZiBjb3JuZXIg
ZHJhd2luZyBzdWZmaWNpZW50bHkgY292ZXJzIHRoZSBsaW5lLgorICAgICAgICBpZiAoc3Ryb2tl
V2lkdGggPD0gcGF0dGVybldpZHRoICsgMSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICAvLyBQYXR0ZXJuIHN0YXJ0cyB3aXRoIGZ1bGwgZmlsbCBhbmQgZW5kcyB3aXRoIHRoZSBlbXB0
eSBmaWxsLgorICAgICAgICAvLyAxLiBMZXQncyBzdGFydCB3aXRoIHRoZSBlbXB0eSBwaGFzZSBh
ZnRlciB0aGUgY29ybmVyLgorICAgICAgICAvLyAyLiBDaGVjayBpZiB3ZSd2ZSBnb3Qgb2RkIG9y
IGV2ZW4gbnVtYmVyIG9mIHBhdHRlcm5zIGFuZCB3aGV0aGVyIHRoZXkgZnVsbHkgY292ZXIgdGhl
IGxpbmUuCisgICAgICAgIC8vIDMuIEluIGNhc2Ugb2YgZXZlbiBudW1iZXIgb2YgcGF0dGVybnMg
YW5kL29yIHJlbWFpbmRlciwgbW92ZSB0aGUgcGF0dGVybiBzdGFydCBwb3NpdGlvbgorICAgICAg
ICAvLyBzbyB0aGF0IHRoZSBwYXR0ZXJuIGlzIGJhbGFuY2VkIGJldHdlZW4gdGhlIGNvcm5lcnMu
CisgICAgICAgIGZsb2F0IHBhdHRlcm5PZmZzZXQgPSBwYXR0ZXJuV2lkdGg7CisgICAgICAgIGlu
dCBudW1iZXJPZlNlZ21lbnRzID0gZmxvb3JmKHN0cm9rZVdpZHRoIC8gcGF0dGVybldpZHRoKTsK
KyAgICAgICAgYm9vbCBvZGROdW1iZXJPZlNlZ21lbnRzID0gbnVtYmVyT2ZTZWdtZW50cyAlIDI7
CisgICAgICAgIGZsb2F0IHJlbWFpbmRlciA9IHN0cm9rZVdpZHRoIC0gKG51bWJlck9mU2VnbWVu
dHMgKiBwYXR0ZXJuV2lkdGgpOworICAgICAgICBpZiAob2RkTnVtYmVyT2ZTZWdtZW50cyAmJiBy
ZW1haW5kZXIpCisgICAgICAgICAgICBwYXR0ZXJuT2Zmc2V0IC09IHJlbWFpbmRlciAvIDI7Cisg
ICAgICAgIGVsc2UgaWYgKCFvZGROdW1iZXJPZlNlZ21lbnRzKSB7CisgICAgICAgICAgICBpZiAo
cmVtYWluZGVyKQorICAgICAgICAgICAgICAgIHBhdHRlcm5PZmZzZXQgKz0gcGF0dGVybk9mZnNl
dCAtIChwYXR0ZXJuV2lkdGggKyByZW1haW5kZXIpICAvIDI7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgcGF0dGVybk9mZnNldCArPSBwYXR0ZXJuV2lkdGggIC8gMjsKKyAgICAg
ICAgfQorCisgICAgICAgIGNvbnN0IGRvdWJsZSBwYXR0ZXJuV2lkdGhBc0RvdWJsZVtdID0geyBz
dGF0aWNfY2FzdDxkb3VibGU+KHBhdHRlcm5XaWR0aCksIHN0YXRpY19jYXN0PGRvdWJsZT4ocGF0
dGVybldpZHRoKSB9OworICAgICAgICBjYWlyb19zZXRfZGFzaChjb250ZXh0LCBwYXR0ZXJuV2lk
dGhBc0RvdWJsZSwgMiwgcGF0dGVybk9mZnNldCk7CisgICAgfQorCisgICAgRmxvYXRQb2ludCBw
MSA9IHBvaW50MTsKKyAgICBGbG9hdFBvaW50IHAyID0gcG9pbnQyOworICAgIC8vIENlbnRlciBs
aW5lIGFuZCBjdXQgb2ZmIGNvcm5lcnMgZm9yIHBhdHRlcm4gcGF0aW5pbmcuCisgICAgaWYgKGlz
VmVydGljYWxMaW5lKSB7CisgICAgICAgIGZsb2F0IGNlbnRlck9mZnNldCA9IChwMi54KCkgLSBw
MS54KCkpIC8gMjsKKyAgICAgICAgcDEubW92ZShjZW50ZXJPZmZzZXQsIGNvcm5lcldpZHRoKTsK
KyAgICAgICAgcDIubW92ZSgtY2VudGVyT2Zmc2V0LCAtY29ybmVyV2lkdGgpOworICAgIH0gZWxz
ZSB7CisgICAgICAgIGZsb2F0IGNlbnRlck9mZnNldCA9IChwMi55KCkgLSBwMS55KCkpIC8gMjsK
KyAgICAgICAgcDEubW92ZShjb3JuZXJXaWR0aCwgY2VudGVyT2Zmc2V0KTsKKyAgICAgICAgcDIu
bW92ZSgtY29ybmVyV2lkdGgsIC1jZW50ZXJPZmZzZXQpOwogICAgIH0KIAogICAgIHNldFNvdXJj
ZVJHQkFGcm9tQ29sb3IoY29udGV4dCwgc3Ryb2tlQ29sb3IpOwogICAgIGNhaXJvX3NldF9saW5l
X3dpZHRoKGNvbnRleHQsIHN0cm9rZVRoaWNrbmVzcyk7Ci0gICAgY2Fpcm9fbW92ZV90byhjb250
ZXh0LCBwb2ludDFPblBpeGVsQm91bmRhcmllcy54KCksIHBvaW50MU9uUGl4ZWxCb3VuZGFyaWVz
LnkoKSk7Ci0gICAgY2Fpcm9fbGluZV90byhjb250ZXh0LCBwb2ludDJPblBpeGVsQm91bmRhcmll
cy54KCksIHBvaW50Mk9uUGl4ZWxCb3VuZGFyaWVzLnkoKSk7CisgICAgY2Fpcm9fbW92ZV90byhj
b250ZXh0LCBwMS54KCksIHAxLnkoKSk7CisgICAgY2Fpcm9fbGluZV90byhjb250ZXh0LCBwMi54
KCksIHAyLnkoKSk7CiAgICAgY2Fpcm9fc3Ryb2tlKGNvbnRleHQpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248584</attachid>
            <date>2015-03-13 04:35:25 -0700</date>
            <delta_ts>2015-07-01 21:44:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141967-20150313203457.patch</filename>
            <type>text/plain</type>
            <size>9364</size>
            <attacher name="Hunseop Jeong">hs85.jeong</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxNDc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdhMmE1ZTM4Zjg4MTcw
MWRjNzUwOWE2MzIzNGUwZDhmOTljODE4ZC4uZWU4ZmY3MTI1OWEwOTQ2ZjhiZDZhNDNmYTk3Y2U3
YWM3Nzc0NzVhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTAzLTEzICBIdW5z
ZW9wIEplb25nICA8aHM4NS5qZW9uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbQ2Fpcm9dIElu
Y29ycmVjdCBkYXNoZWQgYW5kIGRvdHRlZCBib3JkZXIgcGFpbnRpbmcgYWZ0ZXIgcjE3NzY4Ni4g
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE5NjcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggdGhl
IGluY29ycmVjdCBkYXNoZWQvZG90dGVkIGJvcmRlciBwYWludGluZyBpbiBjYWlyby4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmRyYXdMaW5lT25DYWlyb0NvbnRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6Y2FsY3VsYXRlU3Ryb2tlUGF0dGVybk9mZnNldCk6IERlbGV0ZWQuCisKIDIwMTUtMDMt
MTIgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlbW92
ZSBEcmF3aW5nQnVmZmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKaW5kZXggMzdhNTM4
MjNjM2MwNTVlNzg1ODQ0ZTg4MzA1NTFkZmE3ZDczMDEwNi4uZjU1YTU5M2VlMzE2NmFhY2UyYjdi
OTFhZDhmZmJhNTM2NjViMGU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcApAQCAt
MjUyLDMzICsyNTIsNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd1JlY3QoY29uc3QgRmxv
YXRSZWN0JiByZWN0LCBmbG9hdCkKICAgICBjYWlyb19yZXN0b3JlKGNyKTsKIH0KIAotc3RhdGlj
IGRvdWJsZSBjYWxjdWxhdGVTdHJva2VQYXR0ZXJuT2Zmc2V0KGludCBkaXN0YW5jZSwgaW50IHBh
dHRlcm5XaWR0aCkKLXsKLSAgICAvLyBFeGFtcGxlOiA4MCBwaXhlbHMgd2l0aCBhIHdpZHRoIG9m
IDMwIHBpeGVscy4gUmVtYWluZGVyIGlzIDIwLgotICAgIC8vIFRoZSBtYXhpbXVtIHBpeGVscyBv
ZiBsaW5lIHdlIGNvdWxkIHBhaW50IHdpbGwgYmUgNTAgcGl4ZWxzLgotICAgIGludCByZW1haW5k
ZXIgPSBkaXN0YW5jZSAlIHBhdHRlcm5XaWR0aDsKLSAgICBpbnQgbnVtU2VnbWVudHMgPSAoZGlz
dGFuY2UgLSByZW1haW5kZXIpIC8gcGF0dGVybldpZHRoOwotCi0gICAgLy8gU3BlY2lhbCBjYXNl
IDFweCBkb3R0ZWQgYm9yZGVycyBmb3Igc3BlZWQuCi0gICAgaWYgKHBhdHRlcm5XaWR0aCA9PSAx
KQotICAgICAgICByZXR1cm4gMTsKLQotICAgIGJvb2wgZXZlbk51bWJlck9mU2VnbWVudHMgPSAh
KG51bVNlZ21lbnRzICUgMik7Ci0gICAgaWYgKHJlbWFpbmRlcikKLSAgICAgICAgZXZlbk51bWJl
ck9mU2VnbWVudHMgPSAhZXZlbk51bWJlck9mU2VnbWVudHM7Ci0KLSAgICBpZiAoZXZlbk51bWJl
ck9mU2VnbWVudHMpIHsKLSAgICAgICAgaWYgKHJlbWFpbmRlcikKLSAgICAgICAgICAgIHJldHVy
biAocGF0dGVybldpZHRoIC0gcmVtYWluZGVyKSArIChyZW1haW5kZXIgLyAyKTsKLSAgICAgICAg
cmV0dXJuIHBhdHRlcm5XaWR0aCAvIDI7Ci0gICAgfQotCi0gICAgLy8gT2RkIG51bWJlciBvZiBz
ZWdtZW50cy4KLSAgICBpZiAocmVtYWluZGVyKQotICAgICAgICByZXR1cm4gKHBhdHRlcm5XaWR0
aCAtIHJlbWFpbmRlcikgLyAyLmY7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyB2b2lkIGRy
YXdMaW5lT25DYWlyb0NvbnRleHQoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsIGNh
aXJvX3QqIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50MSwgY29uc3QgRmxvYXRQb2lu
dCYgcG9pbnQyKQogewogICAgIFN0cm9rZVN0eWxlIHN0eWxlID0gZ3JhcGhpY3NDb250ZXh0LT5z
dHJva2VTdHlsZSgpOwpAQCAtMjg2LDQ2ICsyNTksNzEgQEAgc3RhdGljIHZvaWQgZHJhd0xpbmVP
bkNhaXJvQ29udGV4dChHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwgY2Fpcm9fdCog
Y28KICAgICAgICAgcmV0dXJuOwogCiAgICAgY29uc3QgQ29sb3ImIHN0cm9rZUNvbG9yID0gZ3Jh
cGhpY3NDb250ZXh0LT5zdHJva2VDb2xvcigpOwotICAgIGludCBzdHJva2VUaGlja25lc3MgPSBm
bG9vcmYoZ3JhcGhpY3NDb250ZXh0LT5zdHJva2VUaGlja25lc3MoKSk7Ci0gICAgaWYgKGdyYXBo
aWNzQ29udGV4dC0+c3Ryb2tlVGhpY2tuZXNzKCkgPCAxKQotICAgICAgICBzdHJva2VUaGlja25l
c3MgPSAxOwotCi0gICAgaW50IHBhdHRlcm5XaWR0aCA9IDA7Ci0gICAgaWYgKHN0eWxlID09IERv
dHRlZFN0cm9rZSkKLSAgICAgICAgcGF0dGVybldpZHRoID0gc3Ryb2tlVGhpY2tuZXNzOwotICAg
IGVsc2UgaWYgKHN0eWxlID09IERhc2hlZFN0cm9rZSkKLSAgICAgICAgcGF0dGVybldpZHRoID0g
MyAqIHN0cm9rZVRoaWNrbmVzczsKLQotICAgIGJvb2wgaXNWZXJ0aWNhbExpbmUgPSBwb2ludDEu
eCgpID09IHBvaW50Mi54KCk7Ci0gICAgRmxvYXRQb2ludCBwb2ludDFPblBpeGVsQm91bmRhcmll
cyA9IHBvaW50MTsKLSAgICBGbG9hdFBvaW50IHBvaW50Mk9uUGl4ZWxCb3VuZGFyaWVzID0gcG9p
bnQyOwotICAgIEdyYXBoaWNzQ29udGV4dDo6YWRqdXN0TGluZVRvUGl4ZWxCb3VuZGFyaWVzKHBv
aW50MU9uUGl4ZWxCb3VuZGFyaWVzLCBwb2ludDJPblBpeGVsQm91bmRhcmllcywgc3Ryb2tlVGhp
Y2tuZXNzLCBzdHlsZSk7Ci0KLSAgICBpZiAocGF0dGVybldpZHRoKSB7Ci0gICAgICAgIC8vIERv
IGEgcmVjdCBmaWxsIG9mIG91ciBlbmRwb2ludHMuICBUaGlzIGVuc3VyZXMgd2UgYWx3YXlzIGhh
dmUgdGhlCi0gICAgICAgIC8vIGFwcGVhcmFuY2Ugb2YgYmVpbmcgYSBib3JkZXIuICBXZSB0aGVu
IGRyYXcgdGhlIGFjdHVhbCBkb3R0ZWQvZGFzaGVkIGxpbmUuCi0gICAgICAgIEZsb2F0UmVjdCBm
aXJzdFJlY3QocG9pbnQxT25QaXhlbEJvdW5kYXJpZXMsIEZsb2F0U2l6ZShzdHJva2VUaGlja25l
c3MsIHN0cm9rZVRoaWNrbmVzcykpOwotICAgICAgICBGbG9hdFJlY3Qgc2Vjb25kUmVjdChwb2lu
dDJPblBpeGVsQm91bmRhcmllcywgRmxvYXRTaXplKHN0cm9rZVRoaWNrbmVzcywgc3Ryb2tlVGhp
Y2tuZXNzKSk7CisgICAgZmxvYXQgc3Ryb2tlVGhpY2tuZXNzID0gZ3JhcGhpY3NDb250ZXh0LT5z
dHJva2VUaGlja25lc3MoKTsKKyAgICBib29sIGlzVmVydGljYWxMaW5lID0gKHBvaW50MS54KCkg
K3N0cm9rZVRoaWNrbmVzcyA9PSBwb2ludDIueCgpKTsKKyAgICBmbG9hdCBzdHJva2VXaWR0aCA9
IGlzVmVydGljYWxMaW5lID8gcG9pbnQyLnkoKSAtIHBvaW50MS55KCkgOiBwb2ludDIueCgpIC0g
cG9pbnQxLngoKTsKKworICAgIGlmICghc3Ryb2tlVGhpY2tuZXNzIHx8ICFzdHJva2VXaWR0aCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgZmxvYXQgY29ybmVyV2lkdGggPSAwOworICAgIGlmIChz
dHlsZSA9PSBEb3R0ZWRTdHJva2UgfHwgc3R5bGUgPT0gRGFzaGVkU3Ryb2tlKSB7CisgICAgICAg
IC8vIEZpZ3VyZSBvdXQgZW5kIHBvaW50cyB0byBlbnN1cmUgd2UgYWx3YXlzIHBhaW50IGNvcm5l
cnMuCisgICAgICAgIGNvcm5lcldpZHRoID0gc3R5bGUgPT0gRG90dGVkU3Ryb2tlID8gc3Ryb2tl
VGhpY2tuZXNzIDogc3RkOjptaW4oMiAqIHN0cm9rZVRoaWNrbmVzcywgc3RkOjptYXgoc3Ryb2tl
VGhpY2tuZXNzLCBzdHJva2VXaWR0aCAvIDMpKTsKICAgICAgICAgaWYgKGlzVmVydGljYWxMaW5l
KSB7Ci0gICAgICAgICAgICBmaXJzdFJlY3QubW92ZSgtc3Ryb2tlVGhpY2tuZXNzIC8gMiwgLXN0
cm9rZVRoaWNrbmVzcyk7Ci0gICAgICAgICAgICBzZWNvbmRSZWN0Lm1vdmUoLXN0cm9rZVRoaWNr
bmVzcyAvIDIsIDApOworICAgICAgICAgICAgZmlsbFJlY3RXaXRoQ29sb3IoY29udGV4dCwgRmxv
YXRSZWN0KHBvaW50MS54KCksIHBvaW50MS55KCksIHN0cm9rZVRoaWNrbmVzcywgY29ybmVyV2lk
dGgpLCBzdHJva2VDb2xvcik7CisgICAgICAgICAgICBmaWxsUmVjdFdpdGhDb2xvcihjb250ZXh0
LCBGbG9hdFJlY3QocG9pbnQxLngoKSwgcG9pbnQyLnkoKSAtIGNvcm5lcldpZHRoLCBzdHJva2VU
aGlja25lc3MsIGNvcm5lcldpZHRoKSwgc3Ryb2tlQ29sb3IpOwogICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgZmlyc3RSZWN0Lm1vdmUoLXN0cm9rZVRoaWNrbmVzcywgLXN0cm9rZVRoaWNr
bmVzcyAvIDIpOwotICAgICAgICAgICAgc2Vjb25kUmVjdC5tb3ZlKDAsIC1zdHJva2VUaGlja25l
c3MgLyAyKTsKKyAgICAgICAgICAgIGZpbGxSZWN0V2l0aENvbG9yKGNvbnRleHQsIEZsb2F0UmVj
dChwb2ludDEueCgpLCBwb2ludDEueSgpLCBjb3JuZXJXaWR0aCwgc3Ryb2tlVGhpY2tuZXNzKSwg
c3Ryb2tlQ29sb3IpOworICAgICAgICAgICAgZmlsbFJlY3RXaXRoQ29sb3IoY29udGV4dCwgRmxv
YXRSZWN0KHBvaW50Mi54KCkgLSBjb3JuZXJXaWR0aCwgcG9pbnQxLnkoKSwgY29ybmVyV2lkdGgs
IHN0cm9rZVRoaWNrbmVzcyksIHN0cm9rZUNvbG9yKTsKICAgICAgICAgfQotICAgICAgICBmaWxs
UmVjdFdpdGhDb2xvcihjb250ZXh0LCBmaXJzdFJlY3QsIHN0cm9rZUNvbG9yKTsKLSAgICAgICAg
ZmlsbFJlY3RXaXRoQ29sb3IoY29udGV4dCwgc2Vjb25kUmVjdCwgc3Ryb2tlQ29sb3IpOwogCi0g
ICAgICAgIGludCBkaXN0YW5jZSA9IChpc1ZlcnRpY2FsTGluZSA/IChwb2ludDIueSgpIC0gcG9p
bnQxLnkoKSkgOiAocG9pbnQyLngoKSAtIHBvaW50MS54KCkpKSAtIDIgKiBzdHJva2VUaGlja25l
c3M7Ci0gICAgICAgIGRvdWJsZSBwYXR0ZXJuT2Zmc2V0ID0gY2FsY3VsYXRlU3Ryb2tlUGF0dGVy
bk9mZnNldChkaXN0YW5jZSwgcGF0dGVybldpZHRoKTsKLSAgICAgICAgZG91YmxlIHBhdHRlcm5X
aWR0aEFzRG91YmxlID0gcGF0dGVybldpZHRoOwotICAgICAgICBjYWlyb19zZXRfZGFzaChjb250
ZXh0LCAmcGF0dGVybldpZHRoQXNEb3VibGUsIDEsIHBhdHRlcm5PZmZzZXQpOworICAgICAgICBz
dHJva2VXaWR0aCAtPSAyICogY29ybmVyV2lkdGg7CisgICAgICAgIGZsb2F0IHBhdHRlcm5XaWR0
aCA9IHN0eWxlID09IERvdHRlZFN0cm9rZSA/IHN0cm9rZVRoaWNrbmVzcyA6IHN0ZDo6bWluKDMg
KiBzdHJva2VUaGlja25lc3MsIHN0ZDo6bWF4KHN0cm9rZVRoaWNrbmVzcywgc3Ryb2tlV2lkdGgg
LyAzKSk7CisKKyAgICAgICAgLy8gQ2hlY2sgaWYgY29ybmVyIGRyYXdpbmcgc3VmZmljaWVudGx5
IGNvdmVycyB0aGUgbGluZS4KKyAgICAgICAgaWYgKHN0cm9rZVdpZHRoIDw9IHBhdHRlcm5XaWR0
aCArIDEpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gUGF0dGVybiBzdGFydHMg
d2l0aCBmdWxsIGZpbGwgYW5kIGVuZHMgd2l0aCB0aGUgZW1wdHkgZmlsbC4KKyAgICAgICAgLy8g
MS4gTGV0J3Mgc3RhcnQgd2l0aCB0aGUgZW1wdHkgcGhhc2UgYWZ0ZXIgdGhlIGNvcm5lci4KKyAg
ICAgICAgLy8gMi4gQ2hlY2sgaWYgd2UndmUgZ290IG9kZCBvciBldmVuIG51bWJlciBvZiBwYXR0
ZXJucyBhbmQgd2hldGhlciB0aGV5IGZ1bGx5IGNvdmVyIHRoZSBsaW5lLgorICAgICAgICAvLyAz
LiBJbiBjYXNlIG9mIGV2ZW4gbnVtYmVyIG9mIHBhdHRlcm5zIGFuZC9vciByZW1haW5kZXIsIG1v
dmUgdGhlIHBhdHRlcm4gc3RhcnQgcG9zaXRpb24KKyAgICAgICAgLy8gc28gdGhhdCB0aGUgcGF0
dGVybiBpcyBiYWxhbmNlZCBiZXR3ZWVuIHRoZSBjb3JuZXJzLgorICAgICAgICBmbG9hdCBwYXR0
ZXJuT2Zmc2V0ID0gcGF0dGVybldpZHRoOworICAgICAgICBpbnQgbnVtYmVyT2ZTZWdtZW50cyA9
IGZsb29yZihzdHJva2VXaWR0aCAvIHBhdHRlcm5XaWR0aCk7CisgICAgICAgIGJvb2wgb2RkTnVt
YmVyT2ZTZWdtZW50cyA9IG51bWJlck9mU2VnbWVudHMgJSAyOworICAgICAgICBmbG9hdCByZW1h
aW5kZXIgPSBzdHJva2VXaWR0aCAtIChudW1iZXJPZlNlZ21lbnRzICogcGF0dGVybldpZHRoKTsK
KyAgICAgICAgaWYgKG9kZE51bWJlck9mU2VnbWVudHMgJiYgcmVtYWluZGVyKQorICAgICAgICAg
ICAgcGF0dGVybk9mZnNldCAtPSByZW1haW5kZXIgLyAyOworICAgICAgICBlbHNlIGlmICghb2Rk
TnVtYmVyT2ZTZWdtZW50cykgeworICAgICAgICAgICAgaWYgKHJlbWFpbmRlcikKKyAgICAgICAg
ICAgICAgICBwYXR0ZXJuT2Zmc2V0ICs9IHBhdHRlcm5PZmZzZXQgLSAocGF0dGVybldpZHRoICsg
cmVtYWluZGVyKSAgLyAyOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHBhdHRl
cm5PZmZzZXQgKz0gcGF0dGVybldpZHRoICAvIDI7CisgICAgICAgIH0KKworICAgICAgICBjb25z
dCBkb3VibGUgcGF0dGVybldpZHRoQXNEb3VibGVbXSA9IHsgc3RhdGljX2Nhc3Q8ZG91YmxlPihw
YXR0ZXJuV2lkdGgpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHBhdHRlcm5XaWR0aCkgfTsKKyAgICAg
ICAgY2Fpcm9fc2V0X2Rhc2goY29udGV4dCwgcGF0dGVybldpZHRoQXNEb3VibGUsIDIsIHBhdHRl
cm5PZmZzZXQpOworICAgIH0KKworICAgIEZsb2F0UG9pbnQgcDEgPSBwb2ludDE7CisgICAgRmxv
YXRQb2ludCBwMiA9IHBvaW50MjsKKyAgICAvLyBDZW50ZXIgbGluZSBhbmQgY3V0IG9mZiBjb3Ju
ZXJzIGZvciBwYXR0ZXJuIHBhdGluaW5nLgorICAgIGlmIChpc1ZlcnRpY2FsTGluZSkgeworICAg
ICAgICBmbG9hdCBjZW50ZXJPZmZzZXQgPSAocDIueCgpIC0gcDEueCgpKSAvIDI7CisgICAgICAg
IHAxLm1vdmUoY2VudGVyT2Zmc2V0LCBjb3JuZXJXaWR0aCk7CisgICAgICAgIHAyLm1vdmUoLWNl
bnRlck9mZnNldCwgLWNvcm5lcldpZHRoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBmbG9hdCBj
ZW50ZXJPZmZzZXQgPSAocDIueSgpIC0gcDEueSgpKSAvIDI7CisgICAgICAgIHAxLm1vdmUoY29y
bmVyV2lkdGgsIGNlbnRlck9mZnNldCk7CisgICAgICAgIHAyLm1vdmUoLWNvcm5lcldpZHRoLCAt
Y2VudGVyT2Zmc2V0KTsKICAgICB9CiAKICAgICBzZXRTb3VyY2VSR0JBRnJvbUNvbG9yKGNvbnRl
eHQsIHN0cm9rZUNvbG9yKTsKICAgICBjYWlyb19zZXRfbGluZV93aWR0aChjb250ZXh0LCBzdHJv
a2VUaGlja25lc3MpOwotICAgIGNhaXJvX21vdmVfdG8oY29udGV4dCwgcG9pbnQxT25QaXhlbEJv
dW5kYXJpZXMueCgpLCBwb2ludDFPblBpeGVsQm91bmRhcmllcy55KCkpOwotICAgIGNhaXJvX2xp
bmVfdG8oY29udGV4dCwgcG9pbnQyT25QaXhlbEJvdW5kYXJpZXMueCgpLCBwb2ludDJPblBpeGVs
Qm91bmRhcmllcy55KCkpOworICAgIGNhaXJvX21vdmVfdG8oY29udGV4dCwgcDEueCgpLCBwMS55
KCkpOworICAgIGNhaXJvX2xpbmVfdG8oY29udGV4dCwgcDIueCgpLCBwMi55KCkpOwogICAgIGNh
aXJvX3N0cm9rZShjb250ZXh0KTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBjNTdlZmNiOTdlZDhkNDdmOWU2YWIx
MWM3YTM3ODFjN2JhZmJhYWQuLjg4NWJjY2FlNGMxNmI4NWE0ZGNhYWYxZmEzMmVkNTgwZTNmZjU2
OWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsNSArMSwxNiBAQAogMjAxNS0wMy0xMyAgSHVuc2VvcCBKZW9uZyAgPGhz
ODUuamVvbmdAc2Ftc3VuZy5jb20+CiAKKyAgICAgICAgW0NhaXJvXSBJbmNvcnJlY3QgZGFzaGVk
IGFuZCBkb3R0ZWQgYm9yZGVyIHBhaW50aW5nIGFmdGVyIHIxNzc2ODYuIAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQxOTY3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCB0aGUgcGFzc2VkIHRl
c3QgaW4gVGVzdEV4cGVjdGF0aW9uLgorCisgICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBl
Y3RhdGlvbnM6CisKKzIwMTUtMDMtMTMgIEh1bnNlb3AgSmVvbmcgIDxoczg1Lmplb25nQHNhbXN1
bmcuY29tPgorCiAgICAgICAgIFVucmV2aWV3ZWQgR1RLKyBHYXJkZW5pbmcKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MjYyMAogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGExYjk4NDc0MWViZWRmOTAwYWU4
MzNmNGQ2NWE4NTE3YWJhNDM2M2UuLjYxNmE5NDg1OTczOGFlYWI5ZDMxMTJkM2MxZTBmZGVhMTBh
NjNlMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCkBAIC0y
MTIxLDcgKzIxMjEsNiBAQCB3ZWJraXQub3JnL2IvMTQxODkyIGZhc3Qvc3ViLXBpeGVsL3NlbGVj
dGlvbi9zZWxlY3Rpb24tcmVjdC1pbi1zdWItcGl4ZWwtdGFibGUuaAogd2Via2l0Lm9yZy9iLzE0
MTg5NSBjb21wb3NpdGluZy9jb250ZW50cy1zY2FsZS9ub24tZGVjb21wb3NhYmxlLW1hdHJpeC5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKICMgTmVlZCB0byBoYXZlIG5ldyBiYXNlbGluZSBz
aW5jZSByMTc3Njg2Lgotd2Via2l0Lm9yZy9iLzE0MTg5NiBmYXN0L2JvcmRlcnMvMHB4LWJvcmRl
cnMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE0MTg5NiBmYXN0L2Jv
cmRlcnMvYm9yZGVyLXBhaW50aW5nLWNvcnJlY3RuZXNzLWRhc2hlZC5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTQxODk2IGZhc3QvYm9yZGVycy9ib3JkZXItcGFpbnRp
bmctY29ycmVjdG5lc3MtZG90dGVkLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5v
cmcvYi8xNDE4OTYgZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtb24taHRtbC5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255990</attachid>
            <date>2015-07-01 21:44:48 -0700</date>
            <delta_ts>2015-10-14 02:04:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141967-20150702134355.patch</filename>
            <type>text/plain</type>
            <size>9045</size>
            <attacher name="Hunseop Jeong">hs85.jeong</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk3MzRjY2JjMzYyMzU0
NjdmOWIyOTMwM2M3ZTc1YWRiNzBlNzYwNy4uOWUzZjQ0ZDBmZWEwODZjMThlM2U2N2I2OTc3NTBk
ZDkzNTc0MDZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTA3LTAxICBIdW5z
ZW9wIEplb25nICA8aHM4NS5qZW9uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbQ2Fpcm9dIElu
Y29ycmVjdCBkYXNoZWQgYW5kIGRvdHRlZCBib3JkZXIgcGFpbnRpbmcgYWZ0ZXIgcjE3NzY4Ni4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTk2Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB0aGUg
aW5jb3JyZWN0IGRhc2hlZC9kb3R0ZWQgYm9yZGVyIHBhaW50aW5nIGluIGNhaXJvLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZSk6CisgICAgICAgIChX
ZWJDb3JlOjpjYWxjdWxhdGVTdHJva2VQYXR0ZXJuT2Zmc2V0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OmRyYXdMaW5lT25DYWlyb0NvbnRleHQpOiBEZWxldGVkLgorCiAyMDE1LTA2LTMw
ICBBbmR5IFZhbldhZ29uZXIgIDx0aGV0YWxlY3JhZnRlckBnbWFpbC5jb20+CiAKICAgICAgICAg
SW1wbGVtZW50IEVDTUFTY3JpcHQgSW50ZXJuYXRpb25hbGl6YXRpb24gQVBJCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRD
YWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGlj
c0NvbnRleHRDYWlyby5jcHAKaW5kZXggNWMxNDU2NWQyZTU3OWYzMDBlNmZiZGNiMGJhMGU5YTBk
MzE5M2NhNy4uNjAwNTQ4ODFkNmU0NzhmOWQ3ZDQyNDA2YWE5NGE3YWNlYTFiYzQwMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcApAQCAtMjUzLDkzICsyNTMsOTEgQEAgdm9pZCBHcmFw
aGljc0NvbnRleHQ6OmRyYXdSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgZmxvYXQpCiAgICAg
Y2Fpcm9fcmVzdG9yZShjcik7CiB9CiAKLXN0YXRpYyBkb3VibGUgY2FsY3VsYXRlU3Ryb2tlUGF0
dGVybk9mZnNldChpbnQgZGlzdGFuY2UsIGludCBwYXR0ZXJuV2lkdGgpCisvLyBUaGlzIGlzIG9u
bHkgdXNlZCB0byBkcmF3IGJvcmRlcnMsIHNvIHdlIHNob3VsZCBub3QgZHJhdyBzaGFkb3dzLgor
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50MSwg
Y29uc3QgRmxvYXRQb2ludCYgcG9pbnQyKQogewotICAgIC8vIEV4YW1wbGU6IDgwIHBpeGVscyB3
aXRoIGEgd2lkdGggb2YgMzAgcGl4ZWxzLiBSZW1haW5kZXIgaXMgMjAuCi0gICAgLy8gVGhlIG1h
eGltdW0gcGl4ZWxzIG9mIGxpbmUgd2UgY291bGQgcGFpbnQgd2lsbCBiZSA1MCBwaXhlbHMuCi0g
ICAgaW50IHJlbWFpbmRlciA9IGRpc3RhbmNlICUgcGF0dGVybldpZHRoOwotICAgIGludCBudW1T
ZWdtZW50cyA9IChkaXN0YW5jZSAtIHJlbWFpbmRlcikgLyBwYXR0ZXJuV2lkdGg7Ci0KLSAgICAv
LyBTcGVjaWFsIGNhc2UgMXB4IGRvdHRlZCBib3JkZXJzIGZvciBzcGVlZC4KLSAgICBpZiAocGF0
dGVybldpZHRoID09IDEpCi0gICAgICAgIHJldHVybiAxOwotCi0gICAgYm9vbCBldmVuTnVtYmVy
T2ZTZWdtZW50cyA9ICEobnVtU2VnbWVudHMgJSAyKTsKLSAgICBpZiAocmVtYWluZGVyKQotICAg
ICAgICBldmVuTnVtYmVyT2ZTZWdtZW50cyA9ICFldmVuTnVtYmVyT2ZTZWdtZW50czsKLQotICAg
IGlmIChldmVuTnVtYmVyT2ZTZWdtZW50cykgewotICAgICAgICBpZiAocmVtYWluZGVyKQotICAg
ICAgICAgICAgcmV0dXJuIChwYXR0ZXJuV2lkdGggLSByZW1haW5kZXIpICsgKHJlbWFpbmRlciAv
IDIpOwotICAgICAgICByZXR1cm4gcGF0dGVybldpZHRoIC8gMjsKLSAgICB9CisgICAgaWYgKHBh
aW50aW5nRGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gT2RkIG51bWJlciBv
ZiBzZWdtZW50cy4KLSAgICBpZiAocmVtYWluZGVyKQotICAgICAgICByZXR1cm4gKHBhdHRlcm5X
aWR0aCAtIHJlbWFpbmRlcikgLyAyLmY7Ci0gICAgcmV0dXJuIDA7Ci19CisgICAgaWYgKHN0cm9r
ZVN0eWxlKCkgPT0gTm9TdHJva2UpCisgICAgICAgIHJldHVybjsKIAotc3RhdGljIHZvaWQgZHJh
d0xpbmVPbkNhaXJvQ29udGV4dChHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwgY2Fp
cm9fdCogY29udGV4dCwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQxLCBjb25zdCBGbG9hdFBvaW50
JiBwb2ludDIpCi17Ci0gICAgU3Ryb2tlU3R5bGUgc3R5bGUgPSBncmFwaGljc0NvbnRleHQtPnN0
cm9rZVN0eWxlKCk7Ci0gICAgaWYgKHN0eWxlID09IE5vU3Ryb2tlKQorICAgIGNvbnN0IENvbG9y
JiBzdHJva2VDb2xvciA9IHRoaXMtPnN0cm9rZUNvbG9yKCk7CisgICAgZmxvYXQgdGhpY2tuZXNz
ID0gc3Ryb2tlVGhpY2tuZXNzKCk7CisgICAgYm9vbCBpc1ZlcnRpY2FsTGluZSA9IChwb2ludDEu
eCgpICsgdGhpY2tuZXNzID09IHBvaW50Mi54KCkpOworICAgIGZsb2F0IHN0cm9rZVdpZHRoID0g
aXNWZXJ0aWNhbExpbmUgPyBwb2ludDIueSgpIC0gcG9pbnQxLnkoKSA6IHBvaW50Mi54KCkgLSBw
b2ludDEueCgpOworICAgIGlmICghdGhpY2tuZXNzIHx8ICFzdHJva2VXaWR0aCkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgY29uc3QgQ29sb3ImIHN0cm9rZUNvbG9yID0gZ3JhcGhpY3NDb250ZXh0
LT5zdHJva2VDb2xvcigpOwotICAgIGludCBzdHJva2VUaGlja25lc3MgPSBmbG9vcmYoZ3JhcGhp
Y3NDb250ZXh0LT5zdHJva2VUaGlja25lc3MoKSk7Ci0gICAgaWYgKGdyYXBoaWNzQ29udGV4dC0+
c3Ryb2tlVGhpY2tuZXNzKCkgPCAxKQotICAgICAgICBzdHJva2VUaGlja25lc3MgPSAxOwotCi0g
ICAgaW50IHBhdHRlcm5XaWR0aCA9IDA7Ci0gICAgaWYgKHN0eWxlID09IERvdHRlZFN0cm9rZSkK
LSAgICAgICAgcGF0dGVybldpZHRoID0gc3Ryb2tlVGhpY2tuZXNzOwotICAgIGVsc2UgaWYgKHN0
eWxlID09IERhc2hlZFN0cm9rZSkKLSAgICAgICAgcGF0dGVybldpZHRoID0gMyAqIHN0cm9rZVRo
aWNrbmVzczsKLQotICAgIGJvb2wgaXNWZXJ0aWNhbExpbmUgPSBwb2ludDEueCgpID09IHBvaW50
Mi54KCk7Ci0gICAgRmxvYXRQb2ludCBwb2ludDFPblBpeGVsQm91bmRhcmllcyA9IHBvaW50MTsK
LSAgICBGbG9hdFBvaW50IHBvaW50Mk9uUGl4ZWxCb3VuZGFyaWVzID0gcG9pbnQyOwotICAgIEdy
YXBoaWNzQ29udGV4dDo6YWRqdXN0TGluZVRvUGl4ZWxCb3VuZGFyaWVzKHBvaW50MU9uUGl4ZWxC
b3VuZGFyaWVzLCBwb2ludDJPblBpeGVsQm91bmRhcmllcywgc3Ryb2tlVGhpY2tuZXNzLCBzdHls
ZSk7Ci0KLSAgICBpZiAocGF0dGVybldpZHRoKSB7Ci0gICAgICAgIC8vIERvIGEgcmVjdCBmaWxs
IG9mIG91ciBlbmRwb2ludHMuICBUaGlzIGVuc3VyZXMgd2UgYWx3YXlzIGhhdmUgdGhlCi0gICAg
ICAgIC8vIGFwcGVhcmFuY2Ugb2YgYmVpbmcgYSBib3JkZXIuICBXZSB0aGVuIGRyYXcgdGhlIGFj
dHVhbCBkb3R0ZWQvZGFzaGVkIGxpbmUuCi0gICAgICAgIEZsb2F0UmVjdCBmaXJzdFJlY3QocG9p
bnQxT25QaXhlbEJvdW5kYXJpZXMsIEZsb2F0U2l6ZShzdHJva2VUaGlja25lc3MsIHN0cm9rZVRo
aWNrbmVzcykpOwotICAgICAgICBGbG9hdFJlY3Qgc2Vjb25kUmVjdChwb2ludDJPblBpeGVsQm91
bmRhcmllcywgRmxvYXRTaXplKHN0cm9rZVRoaWNrbmVzcywgc3Ryb2tlVGhpY2tuZXNzKSk7Cisg
ICAgY2Fpcm9fdCogY2Fpcm9Db250ZXh0ID0gcGxhdGZvcm1Db250ZXh0KCktPmNyKCk7CisgICAg
U3Ryb2tlU3R5bGUgc3Ryb2tlU3R5bGUgPSB0aGlzLT5zdHJva2VTdHlsZSgpOworICAgIGZsb2F0
IGNvcm5lcldpZHRoID0gMDsKKyAgICBib29sIGRyYXdzRGFzaGVkTGluZSA9IHN0cm9rZVN0eWxl
ID09IERvdHRlZFN0cm9rZSB8fCBzdHJva2VTdHlsZSA9PSBEYXNoZWRTdHJva2U7CisKKyAgICBp
ZiAoZHJhd3NEYXNoZWRMaW5lKSB7CisgICAgICAgIGNhaXJvX3NhdmUoY2Fpcm9Db250ZXh0KTsK
KyAgICAgICAgLy8gRmlndXJlIG91dCBlbmQgcG9pbnRzIHRvIGVuc3VyZSB3ZSBhbHdheXMgcGFp
bnQgY29ybmVycy4KKyAgICAgICAgY29ybmVyV2lkdGggPSBzdHJva2VTdHlsZSA9PSBEb3R0ZWRT
dHJva2UgPyB0aGlja25lc3MgOiBzdGQ6Om1pbigyICogdGhpY2tuZXNzLCBzdGQ6Om1heCh0aGlj
a25lc3MsIHN0cm9rZVdpZHRoIC8gMykpOwogICAgICAgICBpZiAoaXNWZXJ0aWNhbExpbmUpIHsK
LSAgICAgICAgICAgIGZpcnN0UmVjdC5tb3ZlKC1zdHJva2VUaGlja25lc3MgLyAyLCAtc3Ryb2tl
VGhpY2tuZXNzKTsKLSAgICAgICAgICAgIHNlY29uZFJlY3QubW92ZSgtc3Ryb2tlVGhpY2tuZXNz
IC8gMiwgMCk7CisgICAgICAgICAgICBmaWxsUmVjdFdpdGhDb2xvcihjYWlyb0NvbnRleHQsIEZs
b2F0UmVjdChwb2ludDEueCgpLCBwb2ludDEueSgpLCB0aGlja25lc3MsIGNvcm5lcldpZHRoKSwg
c3Ryb2tlQ29sb3IpOworICAgICAgICAgICAgZmlsbFJlY3RXaXRoQ29sb3IoY2Fpcm9Db250ZXh0
LCBGbG9hdFJlY3QocG9pbnQxLngoKSwgcG9pbnQyLnkoKSAtIGNvcm5lcldpZHRoLCB0aGlja25l
c3MsIGNvcm5lcldpZHRoKSwgc3Ryb2tlQ29sb3IpOwogICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgZmlyc3RSZWN0Lm1vdmUoLXN0cm9rZVRoaWNrbmVzcywgLXN0cm9rZVRoaWNrbmVzcyAv
IDIpOwotICAgICAgICAgICAgc2Vjb25kUmVjdC5tb3ZlKDAsIC1zdHJva2VUaGlja25lc3MgLyAy
KTsKKyAgICAgICAgICAgIGZpbGxSZWN0V2l0aENvbG9yKGNhaXJvQ29udGV4dCwgRmxvYXRSZWN0
KHBvaW50MS54KCksIHBvaW50MS55KCksIGNvcm5lcldpZHRoLCB0aGlja25lc3MpLCBzdHJva2VD
b2xvcik7CisgICAgICAgICAgICBmaWxsUmVjdFdpdGhDb2xvcihjYWlyb0NvbnRleHQsIEZsb2F0
UmVjdChwb2ludDIueCgpIC0gY29ybmVyV2lkdGgsIHBvaW50MS55KCksIGNvcm5lcldpZHRoLCB0
aGlja25lc3MpLCBzdHJva2VDb2xvcik7CisgICAgICAgIH0KKyAgICAgICAgc3Ryb2tlV2lkdGgg
LT0gMiAqIGNvcm5lcldpZHRoOworICAgICAgICBmbG9hdCBwYXR0ZXJuV2lkdGggPSBzdHJva2VT
dHlsZSA9PSBEb3R0ZWRTdHJva2UgPyB0aGlja25lc3MgOiBzdGQ6Om1pbigzICogdGhpY2tuZXNz
LCBzdGQ6Om1heCh0aGlja25lc3MsIHN0cm9rZVdpZHRoIC8gMykpOworICAgICAgICAvLyBDaGVj
ayBpZiBjb3JuZXIgZHJhd2luZyBzdWZmaWNpZW50bHkgY292ZXJzIHRoZSBsaW5lLgorICAgICAg
ICBpZiAoc3Ryb2tlV2lkdGggPD0gcGF0dGVybldpZHRoICsgMSkgeworICAgICAgICAgICAgY2Fp
cm9fcmVzdG9yZShjYWlyb0NvbnRleHQpOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
Ci0gICAgICAgIGZpbGxSZWN0V2l0aENvbG9yKGNvbnRleHQsIGZpcnN0UmVjdCwgc3Ryb2tlQ29s
b3IpOwotICAgICAgICBmaWxsUmVjdFdpdGhDb2xvcihjb250ZXh0LCBzZWNvbmRSZWN0LCBzdHJv
a2VDb2xvcik7CiAKLSAgICAgICAgaW50IGRpc3RhbmNlID0gKGlzVmVydGljYWxMaW5lID8gKHBv
aW50Mi55KCkgLSBwb2ludDEueSgpKSA6IChwb2ludDIueCgpIC0gcG9pbnQxLngoKSkpIC0gMiAq
IHN0cm9rZVRoaWNrbmVzczsKLSAgICAgICAgZG91YmxlIHBhdHRlcm5PZmZzZXQgPSBjYWxjdWxh
dGVTdHJva2VQYXR0ZXJuT2Zmc2V0KGRpc3RhbmNlLCBwYXR0ZXJuV2lkdGgpOwotICAgICAgICBk
b3VibGUgcGF0dGVybldpZHRoQXNEb3VibGUgPSBwYXR0ZXJuV2lkdGg7Ci0gICAgICAgIGNhaXJv
X3NldF9kYXNoKGNvbnRleHQsICZwYXR0ZXJuV2lkdGhBc0RvdWJsZSwgMSwgcGF0dGVybk9mZnNl
dCk7CisgICAgICAgIC8vIFBhdHRlcm4gc3RhcnRzIHdpdGggZnVsbCBmaWxsIGFuZCBlbmRzIHdp
dGggdGhlIGVtcHR5IGZpbGwuCisgICAgICAgIC8vIDEuIExldCdzIHN0YXJ0IHdpdGggdGhlIGVt
cHR5IHBoYXNlIGFmdGVyIHRoZSBjb3JuZXIuCisgICAgICAgIC8vIDIuIENoZWNrIGlmIHdlJ3Zl
IGdvdCBvZGQgb3IgZXZlbiBudW1iZXIgb2YgcGF0dGVybnMgYW5kIHdoZXRoZXIgdGhleSBmdWxs
eSBjb3ZlciB0aGUgbGluZS4KKyAgICAgICAgLy8gMy4gSW4gY2FzZSBvZiBldmVuIG51bWJlciBv
ZiBwYXR0ZXJucyBhbmQvb3IgcmVtYWluZGVyLCBtb3ZlIHRoZSBwYXR0ZXJuIHN0YXJ0IHBvc2l0
aW9uCisgICAgICAgIC8vIHNvIHRoYXQgdGhlIHBhdHRlcm4gaXMgYmFsYW5jZWQgYmV0d2VlbiB0
aGUgY29ybmVycy4KKyAgICAgICAgZmxvYXQgcGF0dGVybk9mZnNldCA9IHBhdHRlcm5XaWR0aDsK
KyAgICAgICAgaW50IG51bWJlck9mU2VnbWVudHMgPSBmbG9vcmYoc3Ryb2tlV2lkdGggLyBwYXR0
ZXJuV2lkdGgpOworICAgICAgICBib29sIG9kZE51bWJlck9mU2VnbWVudHMgPSBudW1iZXJPZlNl
Z21lbnRzICUgMjsKKyAgICAgICAgZmxvYXQgcmVtYWluZGVyID0gc3Ryb2tlV2lkdGggLSAobnVt
YmVyT2ZTZWdtZW50cyAqIHBhdHRlcm5XaWR0aCk7CisgICAgICAgIGlmIChvZGROdW1iZXJPZlNl
Z21lbnRzICYmIHJlbWFpbmRlcikKKyAgICAgICAgICAgIHBhdHRlcm5PZmZzZXQgLT0gcmVtYWlu
ZGVyIC8gMjsKKyAgICAgICAgZWxzZSBpZiAoIW9kZE51bWJlck9mU2VnbWVudHMpIHsKKyAgICAg
ICAgICAgIGlmIChyZW1haW5kZXIpCisgICAgICAgICAgICAgICAgcGF0dGVybk9mZnNldCArPSBw
YXR0ZXJuT2Zmc2V0IC0gKHBhdHRlcm5XaWR0aCArIHJlbWFpbmRlcikgIC8gMjsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBwYXR0ZXJuT2Zmc2V0ICs9IHBhdHRlcm5XaWR0aCAg
LyAyOworICAgICAgICB9CisgICAgICAgIGNvbnN0IGRvdWJsZSBkYXNoZWRMaW5lWzJdID0geyBz
dGF0aWNfY2FzdDxkb3VibGU+KHBhdHRlcm5XaWR0aCksIHN0YXRpY19jYXN0PGRvdWJsZT4ocGF0
dGVybldpZHRoKSB9OworICAgICAgICBjYWlyb19zZXRfZGFzaChjYWlyb0NvbnRleHQsIGRhc2hl
ZExpbmUsIDIsIHBhdHRlcm5PZmZzZXQpOwogICAgIH0KIAotICAgIHNldFNvdXJjZVJHQkFGcm9t
Q29sb3IoY29udGV4dCwgc3Ryb2tlQ29sb3IpOwotICAgIGNhaXJvX3NldF9saW5lX3dpZHRoKGNv
bnRleHQsIHN0cm9rZVRoaWNrbmVzcyk7Ci0gICAgY2Fpcm9fbW92ZV90byhjb250ZXh0LCBwb2lu
dDFPblBpeGVsQm91bmRhcmllcy54KCksIHBvaW50MU9uUGl4ZWxCb3VuZGFyaWVzLnkoKSk7Ci0g
ICAgY2Fpcm9fbGluZV90byhjb250ZXh0LCBwb2ludDJPblBpeGVsQm91bmRhcmllcy54KCksIHBv
aW50Mk9uUGl4ZWxCb3VuZGFyaWVzLnkoKSk7Ci0gICAgY2Fpcm9fc3Ryb2tlKGNvbnRleHQpOwot
fQorICAgIEZsb2F0UG9pbnQgcDEgPSBwb2ludDE7CisgICAgRmxvYXRQb2ludCBwMiA9IHBvaW50
MjsKKyAgICAvLyBDZW50ZXIgbGluZSBhbmQgY3V0IG9mZiBjb3JuZXJzIGZvciBwYXR0ZXJuIHBh
dGluaW5nLgorICAgIGlmIChpc1ZlcnRpY2FsTGluZSkgeworICAgICAgICBmbG9hdCBjZW50ZXJP
ZmZzZXQgPSAocDIueCgpIC0gcDEueCgpKSAvIDI7CisgICAgICAgIHAxLm1vdmUoY2VudGVyT2Zm
c2V0LCBjb3JuZXJXaWR0aCk7CisgICAgICAgIHAyLm1vdmUoLWNlbnRlck9mZnNldCwgLWNvcm5l
cldpZHRoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBmbG9hdCBjZW50ZXJPZmZzZXQgPSAocDIu
eSgpIC0gcDEueSgpKSAvIDI7CisgICAgICAgIHAxLm1vdmUoY29ybmVyV2lkdGgsIGNlbnRlck9m
ZnNldCk7CisgICAgICAgIHAyLm1vdmUoLWNvcm5lcldpZHRoLCAtY2VudGVyT2Zmc2V0KTsKKyAg
ICB9CiAKLS8vIFRoaXMgaXMgb25seSB1c2VkIHRvIGRyYXcgYm9yZGVycywgc28gd2Ugc2hvdWxk
IG5vdCBkcmF3IHNoYWRvd3MuCi12b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmUoY29uc3Qg
RmxvYXRQb2ludCYgcG9pbnQxLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludDIpCi17Ci0gICAgaWYg
KHBhaW50aW5nRGlzYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChzaG91bGRBbnRp
YWxpYXMoKSkKKyAgICAgICAgY2Fpcm9fc2V0X2FudGlhbGlhcyhjYWlyb0NvbnRleHQsIENBSVJP
X0FOVElBTElBU19OT05FKTsKIAotICAgIGNhaXJvX3QqIGNhaXJvQ29udGV4dCA9IHBsYXRmb3Jt
Q29udGV4dCgpLT5jcigpOwotICAgIGNhaXJvX3NhdmUoY2Fpcm9Db250ZXh0KTsKLSAgICBkcmF3
TGluZU9uQ2Fpcm9Db250ZXh0KHRoaXMsIGNhaXJvQ29udGV4dCwgcG9pbnQxLCBwb2ludDIpOwot
ICAgIGNhaXJvX3Jlc3RvcmUoY2Fpcm9Db250ZXh0KTsKKyAgICBjYWlyb19uZXdfcGF0aChjYWly
b0NvbnRleHQpOworICAgIGNhaXJvX21vdmVfdG8oY2Fpcm9Db250ZXh0LCBwMS54KCksIHAxLnko
KSk7CisgICAgY2Fpcm9fbGluZV90byhjYWlyb0NvbnRleHQsIHAyLngoKSwgcDIueSgpKTsKKyAg
ICBjYWlyb19zdHJva2UoY2Fpcm9Db250ZXh0KTsKKyAgICBpZiAoZHJhd3NEYXNoZWRMaW5lKQor
ICAgICAgICBjYWlyb19yZXN0b3JlKGNhaXJvQ29udGV4dCk7CisgICAgaWYgKHNob3VsZEFudGlh
bGlhcygpKQorICAgICAgICBjYWlyb19zZXRfYW50aWFsaWFzKGNhaXJvQ29udGV4dCwgQ0FJUk9f
QU5USUFMSUFTX0RFRkFVTFQpOwogfQogCiAvLyBUaGlzIG1ldGhvZCBpcyBvbmx5IHVzZWQgdG8g
ZHJhdyB0aGUgbGl0dGxlIGNpcmNsZXMgdXNlZCBpbiBsaXN0cy4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263066</attachid>
            <date>2015-10-14 02:04:51 -0700</date>
            <delta_ts>2015-10-27 22:20:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141967-20151014180413.patch</filename>
            <type>text/plain</type>
            <size>10324</size>
            <attacher name="Hunseop Jeong">hs85.jeong</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MTAzNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE1LTEwLTEzICBIdW5zZW9w
IEplb25nICA8aHM4NS5qZW9uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbQ2Fpcm9dIEluY29y
cmVjdCBkYXNoZWQgYW5kIGRvdHRlZCBib3JkZXIgcGFpbnRpbmcgYWZ0ZXIgcjE3NzY4Ni4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTk2NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB0aGUgaW5j
b3JyZWN0IGRhc2hlZC9kb3R0ZWQgYm9yZGVyIHBhaW50aW5nIGluIGNhaXJvLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZSk6CisgICAgICAgIChXZWJD
b3JlOjpjYWxjdWxhdGVTdHJva2VQYXR0ZXJuT2Zmc2V0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmRyYXdMaW5lT25DYWlyb0NvbnRleHQpOiBEZWxldGVkLgorCiAyMDE1LTEwLTEzICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBoZWxw
ZXIgZnVudGlvbiBmb3IgY2hlY2tpbmcgcG9pbnRlciBlcXVpdmFsZW5jeSBhbmQgdXNlIGl0Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRl
eHRDYWlyby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCShyZXZpc2lvbiAxOTEwMzUpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWly
by5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1Myw5MyArMjUzLDkxIEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0OjpkcmF3UmVjdChjb25zdCBGbG8KICAgICBjYWlyb19yZXN0b3JlKGNyKTsKIH0KIAot
c3RhdGljIGRvdWJsZSBjYWxjdWxhdGVTdHJva2VQYXR0ZXJuT2Zmc2V0KGludCBkaXN0YW5jZSwg
aW50IHBhdHRlcm5XaWR0aCkKKy8vIFRoaXMgaXMgb25seSB1c2VkIHRvIGRyYXcgYm9yZGVycywg
c28gd2Ugc2hvdWxkIG5vdCBkcmF3IHNoYWRvd3MuCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJh
d0xpbmUoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQxLCBjb25zdCBGbG9hdFBvaW50JiBwb2ludDIp
CiB7Ci0gICAgLy8gRXhhbXBsZTogODAgcGl4ZWxzIHdpdGggYSB3aWR0aCBvZiAzMCBwaXhlbHMu
IFJlbWFpbmRlciBpcyAyMC4KLSAgICAvLyBUaGUgbWF4aW11bSBwaXhlbHMgb2YgbGluZSB3ZSBj
b3VsZCBwYWludCB3aWxsIGJlIDUwIHBpeGVscy4KLSAgICBpbnQgcmVtYWluZGVyID0gZGlzdGFu
Y2UgJSBwYXR0ZXJuV2lkdGg7Ci0gICAgaW50IG51bVNlZ21lbnRzID0gKGRpc3RhbmNlIC0gcmVt
YWluZGVyKSAvIHBhdHRlcm5XaWR0aDsKLQotICAgIC8vIFNwZWNpYWwgY2FzZSAxcHggZG90dGVk
IGJvcmRlcnMgZm9yIHNwZWVkLgotICAgIGlmIChwYXR0ZXJuV2lkdGggPT0gMSkKLSAgICAgICAg
cmV0dXJuIDE7Ci0KLSAgICBib29sIGV2ZW5OdW1iZXJPZlNlZ21lbnRzID0gIShudW1TZWdtZW50
cyAlIDIpOwotICAgIGlmIChyZW1haW5kZXIpCi0gICAgICAgIGV2ZW5OdW1iZXJPZlNlZ21lbnRz
ID0gIWV2ZW5OdW1iZXJPZlNlZ21lbnRzOwotCi0gICAgaWYgKGV2ZW5OdW1iZXJPZlNlZ21lbnRz
KSB7Ci0gICAgICAgIGlmIChyZW1haW5kZXIpCi0gICAgICAgICAgICByZXR1cm4gKHBhdHRlcm5X
aWR0aCAtIHJlbWFpbmRlcikgKyAocmVtYWluZGVyIC8gMik7Ci0gICAgICAgIHJldHVybiBwYXR0
ZXJuV2lkdGggLyAyOwotICAgIH0KKyAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQorICAgICAg
ICByZXR1cm47CiAKLSAgICAvLyBPZGQgbnVtYmVyIG9mIHNlZ21lbnRzLgotICAgIGlmIChyZW1h
aW5kZXIpCi0gICAgICAgIHJldHVybiAocGF0dGVybldpZHRoIC0gcmVtYWluZGVyKSAvIDIuZjsK
LSAgICByZXR1cm4gMDsKLX0KKyAgICBpZiAoc3Ryb2tlU3R5bGUoKSA9PSBOb1N0cm9rZSkKKyAg
ICAgICAgcmV0dXJuOwogCi1zdGF0aWMgdm9pZCBkcmF3TGluZU9uQ2Fpcm9Db250ZXh0KEdyYXBo
aWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0LCBjYWlyb190KiBjb250ZXh0LCBjb25zdCBGbG9h
dFBvaW50JiBwb2ludDEsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50MikKLXsKLSAgICBTdHJva2VT
dHlsZSBzdHlsZSA9IGdyYXBoaWNzQ29udGV4dC0+c3Ryb2tlU3R5bGUoKTsKLSAgICBpZiAoc3R5
bGUgPT0gTm9TdHJva2UpCisgICAgY29uc3QgQ29sb3ImIHN0cm9rZUNvbG9yID0gdGhpcy0+c3Ry
b2tlQ29sb3IoKTsKKyAgICBmbG9hdCB0aGlja25lc3MgPSBzdHJva2VUaGlja25lc3MoKTsKKyAg
ICBib29sIGlzVmVydGljYWxMaW5lID0gKHBvaW50MS54KCkgKyB0aGlja25lc3MgPT0gcG9pbnQy
LngoKSk7CisgICAgZmxvYXQgc3Ryb2tlV2lkdGggPSBpc1ZlcnRpY2FsTGluZSA/IHBvaW50Mi55
KCkgLSBwb2ludDEueSgpIDogcG9pbnQyLngoKSAtIHBvaW50MS54KCk7CisgICAgaWYgKCF0aGlj
a25lc3MgfHwgIXN0cm9rZVdpZHRoKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25zdCBDb2xv
ciYgc3Ryb2tlQ29sb3IgPSBncmFwaGljc0NvbnRleHQtPnN0cm9rZUNvbG9yKCk7Ci0gICAgaW50
IHN0cm9rZVRoaWNrbmVzcyA9IGZsb29yZihncmFwaGljc0NvbnRleHQtPnN0cm9rZVRoaWNrbmVz
cygpKTsKLSAgICBpZiAoZ3JhcGhpY3NDb250ZXh0LT5zdHJva2VUaGlja25lc3MoKSA8IDEpCi0g
ICAgICAgIHN0cm9rZVRoaWNrbmVzcyA9IDE7Ci0KLSAgICBpbnQgcGF0dGVybldpZHRoID0gMDsK
LSAgICBpZiAoc3R5bGUgPT0gRG90dGVkU3Ryb2tlKQotICAgICAgICBwYXR0ZXJuV2lkdGggPSBz
dHJva2VUaGlja25lc3M7Ci0gICAgZWxzZSBpZiAoc3R5bGUgPT0gRGFzaGVkU3Ryb2tlKQotICAg
ICAgICBwYXR0ZXJuV2lkdGggPSAzICogc3Ryb2tlVGhpY2tuZXNzOwotCi0gICAgYm9vbCBpc1Zl
cnRpY2FsTGluZSA9IHBvaW50MS54KCkgPT0gcG9pbnQyLngoKTsKLSAgICBGbG9hdFBvaW50IHBv
aW50MU9uUGl4ZWxCb3VuZGFyaWVzID0gcG9pbnQxOwotICAgIEZsb2F0UG9pbnQgcG9pbnQyT25Q
aXhlbEJvdW5kYXJpZXMgPSBwb2ludDI7Ci0gICAgR3JhcGhpY3NDb250ZXh0OjphZGp1c3RMaW5l
VG9QaXhlbEJvdW5kYXJpZXMocG9pbnQxT25QaXhlbEJvdW5kYXJpZXMsIHBvaW50Mk9uUGl4ZWxC
b3VuZGFyaWVzLCBzdHJva2VUaGlja25lc3MsIHN0eWxlKTsKLQotICAgIGlmIChwYXR0ZXJuV2lk
dGgpIHsKLSAgICAgICAgLy8gRG8gYSByZWN0IGZpbGwgb2Ygb3VyIGVuZHBvaW50cy4gIFRoaXMg
ZW5zdXJlcyB3ZSBhbHdheXMgaGF2ZSB0aGUKLSAgICAgICAgLy8gYXBwZWFyYW5jZSBvZiBiZWlu
ZyBhIGJvcmRlci4gIFdlIHRoZW4gZHJhdyB0aGUgYWN0dWFsIGRvdHRlZC9kYXNoZWQgbGluZS4K
LSAgICAgICAgRmxvYXRSZWN0IGZpcnN0UmVjdChwb2ludDFPblBpeGVsQm91bmRhcmllcywgRmxv
YXRTaXplKHN0cm9rZVRoaWNrbmVzcywgc3Ryb2tlVGhpY2tuZXNzKSk7Ci0gICAgICAgIEZsb2F0
UmVjdCBzZWNvbmRSZWN0KHBvaW50Mk9uUGl4ZWxCb3VuZGFyaWVzLCBGbG9hdFNpemUoc3Ryb2tl
VGhpY2tuZXNzLCBzdHJva2VUaGlja25lc3MpKTsKKyAgICBjYWlyb190KiBjYWlyb0NvbnRleHQg
PSBwbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKTsKKyAgICBTdHJva2VTdHlsZSBzdHJva2VTdHlsZSA9
IHRoaXMtPnN0cm9rZVN0eWxlKCk7CisgICAgZmxvYXQgY29ybmVyV2lkdGggPSAwOworICAgIGJv
b2wgZHJhd3NEYXNoZWRMaW5lID0gc3Ryb2tlU3R5bGUgPT0gRG90dGVkU3Ryb2tlIHx8IHN0cm9r
ZVN0eWxlID09IERhc2hlZFN0cm9rZTsKKworICAgIGlmIChkcmF3c0Rhc2hlZExpbmUpIHsKKyAg
ICAgICAgY2Fpcm9fc2F2ZShjYWlyb0NvbnRleHQpOworICAgICAgICAvLyBGaWd1cmUgb3V0IGVu
ZCBwb2ludHMgdG8gZW5zdXJlIHdlIGFsd2F5cyBwYWludCBjb3JuZXJzLgorICAgICAgICBjb3Ju
ZXJXaWR0aCA9IHN0cm9rZVN0eWxlID09IERvdHRlZFN0cm9rZSA/IHRoaWNrbmVzcyA6IHN0ZDo6
bWluKDIgKiB0aGlja25lc3MsIHN0ZDo6bWF4KHRoaWNrbmVzcywgc3Ryb2tlV2lkdGggLyAzKSk7
CiAgICAgICAgIGlmIChpc1ZlcnRpY2FsTGluZSkgewotICAgICAgICAgICAgZmlyc3RSZWN0Lm1v
dmUoLXN0cm9rZVRoaWNrbmVzcyAvIDIsIC1zdHJva2VUaGlja25lc3MpOwotICAgICAgICAgICAg
c2Vjb25kUmVjdC5tb3ZlKC1zdHJva2VUaGlja25lc3MgLyAyLCAwKTsKKyAgICAgICAgICAgIGZp
bGxSZWN0V2l0aENvbG9yKGNhaXJvQ29udGV4dCwgRmxvYXRSZWN0KHBvaW50MS54KCksIHBvaW50
MS55KCksIHRoaWNrbmVzcywgY29ybmVyV2lkdGgpLCBzdHJva2VDb2xvcik7CisgICAgICAgICAg
ICBmaWxsUmVjdFdpdGhDb2xvcihjYWlyb0NvbnRleHQsIEZsb2F0UmVjdChwb2ludDEueCgpLCBw
b2ludDIueSgpIC0gY29ybmVyV2lkdGgsIHRoaWNrbmVzcywgY29ybmVyV2lkdGgpLCBzdHJva2VD
b2xvcik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBmaXJzdFJlY3QubW92ZSgtc3Ry
b2tlVGhpY2tuZXNzLCAtc3Ryb2tlVGhpY2tuZXNzIC8gMik7Ci0gICAgICAgICAgICBzZWNvbmRS
ZWN0Lm1vdmUoMCwgLXN0cm9rZVRoaWNrbmVzcyAvIDIpOworICAgICAgICAgICAgZmlsbFJlY3RX
aXRoQ29sb3IoY2Fpcm9Db250ZXh0LCBGbG9hdFJlY3QocG9pbnQxLngoKSwgcG9pbnQxLnkoKSwg
Y29ybmVyV2lkdGgsIHRoaWNrbmVzcyksIHN0cm9rZUNvbG9yKTsKKyAgICAgICAgICAgIGZpbGxS
ZWN0V2l0aENvbG9yKGNhaXJvQ29udGV4dCwgRmxvYXRSZWN0KHBvaW50Mi54KCkgLSBjb3JuZXJX
aWR0aCwgcG9pbnQxLnkoKSwgY29ybmVyV2lkdGgsIHRoaWNrbmVzcyksIHN0cm9rZUNvbG9yKTsK
KyAgICAgICAgfQorICAgICAgICBzdHJva2VXaWR0aCAtPSAyICogY29ybmVyV2lkdGg7CisgICAg
ICAgIGZsb2F0IHBhdHRlcm5XaWR0aCA9IHN0cm9rZVN0eWxlID09IERvdHRlZFN0cm9rZSA/IHRo
aWNrbmVzcyA6IHN0ZDo6bWluKDMgKiB0aGlja25lc3MsIHN0ZDo6bWF4KHRoaWNrbmVzcywgc3Ry
b2tlV2lkdGggLyAzKSk7CisgICAgICAgIC8vIENoZWNrIGlmIGNvcm5lciBkcmF3aW5nIHN1ZmZp
Y2llbnRseSBjb3ZlcnMgdGhlIGxpbmUuCisgICAgICAgIGlmIChzdHJva2VXaWR0aCA8PSBwYXR0
ZXJuV2lkdGggKyAxKSB7CisgICAgICAgICAgICBjYWlyb19yZXN0b3JlKGNhaXJvQ29udGV4dCk7
CisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgZmlsbFJlY3RXaXRoQ29s
b3IoY29udGV4dCwgZmlyc3RSZWN0LCBzdHJva2VDb2xvcik7Ci0gICAgICAgIGZpbGxSZWN0V2l0
aENvbG9yKGNvbnRleHQsIHNlY29uZFJlY3QsIHN0cm9rZUNvbG9yKTsKIAotICAgICAgICBpbnQg
ZGlzdGFuY2UgPSAoaXNWZXJ0aWNhbExpbmUgPyAocG9pbnQyLnkoKSAtIHBvaW50MS55KCkpIDog
KHBvaW50Mi54KCkgLSBwb2ludDEueCgpKSkgLSAyICogc3Ryb2tlVGhpY2tuZXNzOwotICAgICAg
ICBkb3VibGUgcGF0dGVybk9mZnNldCA9IGNhbGN1bGF0ZVN0cm9rZVBhdHRlcm5PZmZzZXQoZGlz
dGFuY2UsIHBhdHRlcm5XaWR0aCk7Ci0gICAgICAgIGRvdWJsZSBwYXR0ZXJuV2lkdGhBc0RvdWJs
ZSA9IHBhdHRlcm5XaWR0aDsKLSAgICAgICAgY2Fpcm9fc2V0X2Rhc2goY29udGV4dCwgJnBhdHRl
cm5XaWR0aEFzRG91YmxlLCAxLCBwYXR0ZXJuT2Zmc2V0KTsKKyAgICAgICAgLy8gUGF0dGVybiBz
dGFydHMgd2l0aCBmdWxsIGZpbGwgYW5kIGVuZHMgd2l0aCB0aGUgZW1wdHkgZmlsbC4KKyAgICAg
ICAgLy8gMS4gTGV0J3Mgc3RhcnQgd2l0aCB0aGUgZW1wdHkgcGhhc2UgYWZ0ZXIgdGhlIGNvcm5l
ci4KKyAgICAgICAgLy8gMi4gQ2hlY2sgaWYgd2UndmUgZ290IG9kZCBvciBldmVuIG51bWJlciBv
ZiBwYXR0ZXJucyBhbmQgd2hldGhlciB0aGV5IGZ1bGx5IGNvdmVyIHRoZSBsaW5lLgorICAgICAg
ICAvLyAzLiBJbiBjYXNlIG9mIGV2ZW4gbnVtYmVyIG9mIHBhdHRlcm5zIGFuZC9vciByZW1haW5k
ZXIsIG1vdmUgdGhlIHBhdHRlcm4gc3RhcnQgcG9zaXRpb24KKyAgICAgICAgLy8gc28gdGhhdCB0
aGUgcGF0dGVybiBpcyBiYWxhbmNlZCBiZXR3ZWVuIHRoZSBjb3JuZXJzLgorICAgICAgICBmbG9h
dCBwYXR0ZXJuT2Zmc2V0ID0gcGF0dGVybldpZHRoOworICAgICAgICBpbnQgbnVtYmVyT2ZTZWdt
ZW50cyA9IHN0ZDo6Zmxvb3Ioc3Ryb2tlV2lkdGggLyBwYXR0ZXJuV2lkdGgpOworICAgICAgICBi
b29sIG9kZE51bWJlck9mU2VnbWVudHMgPSBudW1iZXJPZlNlZ21lbnRzICUgMjsKKyAgICAgICAg
ZmxvYXQgcmVtYWluZGVyID0gc3Ryb2tlV2lkdGggLSAobnVtYmVyT2ZTZWdtZW50cyAqIHBhdHRl
cm5XaWR0aCk7CisgICAgICAgIGlmIChvZGROdW1iZXJPZlNlZ21lbnRzICYmIHJlbWFpbmRlcikK
KyAgICAgICAgICAgIHBhdHRlcm5PZmZzZXQgLT0gcmVtYWluZGVyIC8gMi5mOworICAgICAgICBl
bHNlIGlmICghb2RkTnVtYmVyT2ZTZWdtZW50cykgeworICAgICAgICAgICAgaWYgKHJlbWFpbmRl
cikKKyAgICAgICAgICAgICAgICBwYXR0ZXJuT2Zmc2V0ICs9IHBhdHRlcm5PZmZzZXQgLSAocGF0
dGVybldpZHRoICsgcmVtYWluZGVyKSAvIDIuZjsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICBwYXR0ZXJuT2Zmc2V0ICs9IHBhdHRlcm5XaWR0aCAvIDIuZjsKKyAgICAgICAgfQor
ICAgICAgICBjb25zdCBkb3VibGUgZGFzaGVkTGluZVsyXSA9IHsgc3RhdGljX2Nhc3Q8ZG91Ymxl
PihwYXR0ZXJuV2lkdGgpLCBzdGF0aWNfY2FzdDxkb3VibGU+KHBhdHRlcm5XaWR0aCkgfTsKKyAg
ICAgICAgY2Fpcm9fc2V0X2Rhc2goY2Fpcm9Db250ZXh0LCBkYXNoZWRMaW5lLCAyLCBwYXR0ZXJu
T2Zmc2V0KTsKICAgICB9CiAKLSAgICBzZXRTb3VyY2VSR0JBRnJvbUNvbG9yKGNvbnRleHQsIHN0
cm9rZUNvbG9yKTsKLSAgICBjYWlyb19zZXRfbGluZV93aWR0aChjb250ZXh0LCBzdHJva2VUaGlj
a25lc3MpOwotICAgIGNhaXJvX21vdmVfdG8oY29udGV4dCwgcG9pbnQxT25QaXhlbEJvdW5kYXJp
ZXMueCgpLCBwb2ludDFPblBpeGVsQm91bmRhcmllcy55KCkpOwotICAgIGNhaXJvX2xpbmVfdG8o
Y29udGV4dCwgcG9pbnQyT25QaXhlbEJvdW5kYXJpZXMueCgpLCBwb2ludDJPblBpeGVsQm91bmRh
cmllcy55KCkpOwotICAgIGNhaXJvX3N0cm9rZShjb250ZXh0KTsKLX0KKyAgICBGbG9hdFBvaW50
IHAxID0gcG9pbnQxOworICAgIEZsb2F0UG9pbnQgcDIgPSBwb2ludDI7CisgICAgLy8gQ2VudGVy
IGxpbmUgYW5kIGN1dCBvZmYgY29ybmVycyBmb3IgcGF0dGVybiBwYXRpbmluZy4KKyAgICBpZiAo
aXNWZXJ0aWNhbExpbmUpIHsKKyAgICAgICAgZmxvYXQgY2VudGVyT2Zmc2V0ID0gKHAyLngoKSAt
IHAxLngoKSkgLyAyOworICAgICAgICBwMS5tb3ZlKGNlbnRlck9mZnNldCwgY29ybmVyV2lkdGgp
OworICAgICAgICBwMi5tb3ZlKC1jZW50ZXJPZmZzZXQsIC1jb3JuZXJXaWR0aCk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgZmxvYXQgY2VudGVyT2Zmc2V0ID0gKHAyLnkoKSAtIHAxLnkoKSkgLyAy
OworICAgICAgICBwMS5tb3ZlKGNvcm5lcldpZHRoLCBjZW50ZXJPZmZzZXQpOworICAgICAgICBw
Mi5tb3ZlKC1jb3JuZXJXaWR0aCwgLWNlbnRlck9mZnNldCk7CisgICAgfQogCi0vLyBUaGlzIGlz
IG9ubHkgdXNlZCB0byBkcmF3IGJvcmRlcnMsIHNvIHdlIHNob3VsZCBub3QgZHJhdyBzaGFkb3dz
Lgotdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50
MSwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQyKQotewotICAgIGlmIChwYWludGluZ0Rpc2FibGVk
KCkpCi0gICAgICAgIHJldHVybjsKKyAgICBpZiAoc2hvdWxkQW50aWFsaWFzKCkpCisgICAgICAg
IGNhaXJvX3NldF9hbnRpYWxpYXMoY2Fpcm9Db250ZXh0LCBDQUlST19BTlRJQUxJQVNfTk9ORSk7
CiAKLSAgICBjYWlyb190KiBjYWlyb0NvbnRleHQgPSBwbGF0Zm9ybUNvbnRleHQoKS0+Y3IoKTsK
LSAgICBjYWlyb19zYXZlKGNhaXJvQ29udGV4dCk7Ci0gICAgZHJhd0xpbmVPbkNhaXJvQ29udGV4
dCh0aGlzLCBjYWlyb0NvbnRleHQsIHBvaW50MSwgcG9pbnQyKTsKLSAgICBjYWlyb19yZXN0b3Jl
KGNhaXJvQ29udGV4dCk7CisgICAgY2Fpcm9fbmV3X3BhdGgoY2Fpcm9Db250ZXh0KTsKKyAgICBj
YWlyb19tb3ZlX3RvKGNhaXJvQ29udGV4dCwgcDEueCgpLCBwMS55KCkpOworICAgIGNhaXJvX2xp
bmVfdG8oY2Fpcm9Db250ZXh0LCBwMi54KCksIHAyLnkoKSk7CisgICAgY2Fpcm9fc3Ryb2tlKGNh
aXJvQ29udGV4dCk7CisgICAgaWYgKGRyYXdzRGFzaGVkTGluZSkKKyAgICAgICAgY2Fpcm9fcmVz
dG9yZShjYWlyb0NvbnRleHQpOworICAgIGlmIChzaG91bGRBbnRpYWxpYXMoKSkKKyAgICAgICAg
Y2Fpcm9fc2V0X2FudGlhbGlhcyhjYWlyb0NvbnRleHQsIENBSVJPX0FOVElBTElBU19ERUZBVUxU
KTsKIH0KIAogLy8gVGhpcyBtZXRob2QgaXMgb25seSB1c2VkIHRvIGRyYXcgdGhlIGxpdHRsZSBj
aXJjbGVzIHVzZWQgaW4gbGlzdHMuCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTEwMzcpCisrKyBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNS0x
MC0xNCAgSHVuc2VvcCBKZW9uZyAgPGhzODUuamVvbmdAc2Ftc3VuZy5jb20+CisKKyAgICAgICAg
W0NhaXJvXSBJbmNvcnJlY3QgZGFzaGVkIGFuZCBkb3R0ZWQgYm9yZGVyIHBhaW50aW5nIGFmdGVy
IHIxNzc2ODYuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDE5NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGaXggdGhlIGluY29ycmVjdCBkYXNoZWQvZG90dGVkIGJvcmRlciBwYWludGluZyBpbiBjYWly
by4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOiBSZW1vdmVkIHRo
ZSBwYXNzZWQgdGVzdC4KKwogMjAxNS0xMC0xMyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtpT1NdIFVwZGF0ZSBhbm9ueW1vdXMgdGFibGUgcmVzdWx0cyBmb3Ig
aU9TIHBvcnQuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
cwkocmV2aXNpb24gMTkxMDM1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTUyOSw3ICs1MjksNiBAQCB3ZWJraXQub3JnL2Iv
OTg2NTMgIHN2Zy90ZXh0L2xlbmd0aEFkanVzCiAKIHdlYmtpdC5vcmcvYi8xNDE4MzcgZmFzdC9i
b3JkZXJzL2JvcmRlci1wYWludGluZy1jb3JyZWN0bmVzcy1kYXNoZWQuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE0MTgzNyBmYXN0L2JvcmRlcnMvYm9yZGVyLXBhaW50
aW5nLWNvcnJlY3RuZXNzLWRvdHRlZC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi13ZWJraXQu
b3JnL2IvMTQxODM4IGZhc3QvYm9yZGVycy8wcHgtYm9yZGVycy5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xNDE0NTggaW1wb3J0ZWQvbW96aWxsYS9zdmcvYmxlbmQt
Y29sb3ItYnVybi5zdmcgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNDE0NTgg
aW1wb3J0ZWQvbW96aWxsYS9zdmcvYmxlbmQtY29sb3ItZG9kZ2Uuc3ZnIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>