LayoutTests/ChangeLog

 12016-03-03 Frederic Wang <fwang@igalia.com>
 2
 3 Refactor RenderMathMLUnderOver layout functions to avoid using flexbox
 4 https://bugs.webkit.org/show_bug.cgi?id=153742
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Apply some small adjustments to the expectations of MathML tests after
 9 the refactoring of RenderMathMLUnderOver.
 10
 11 * platform/gtk/mathml/opentype/horizontal-expected.png:
 12 * platform/gtk/mathml/opentype/horizontal-expected.txt:
 13 * platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png:
 14 * platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
 15 * platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.png:
 16 * platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
 17 * mathml/mn-as-list-item-assert.html: Move the test description out of the invalid munderover
 18 so that it is still displayed.
 19 * mathml/mn-as-list-item-assert-expected.txt: Update the text expectation.
 20
1212016-04-06 Myles C. Maxfield <mmaxfield@apple.com>
222
323 REGRESSION (r188591): thingiverse.com direct messaging UI is not rendered properly

LayoutTests/mathml/mn-as-list-item-assert-expected.txt

11This test PASSES if it does not CRASH or ASSERT.
22
 3

LayoutTests/mathml/mn-as-list-item-assert.html

77 </script>
88</head>
99<body>
 10 <p>This test PASSES if it does not CRASH or ASSERT.</p>
1011<math>
1112 <munderover>
12  <mn style="display: list-item;">This test PASSES if it does not CRASH or ASSERT.</mn>
 13 <mn style="display: list-item;">mn</mn>
1314 </munderover>
1415</math>

LayoutTests/platform/gtk/mathml/opentype/horizontal-expected.png

eb7e91d19b366d87211806ac21688742

ddadaf3e20a046f7194882640ed56016

LayoutTests/platform/gtk/mathml/opentype/horizontal-expected.txt

@@layer at (0,0) size 800x166
44 RenderBlock {HTML} at (0,0) size 800x166
55 RenderBody {BODY} at (8,16) size 784x134
66 RenderBlock {P} at (0,0) size 784x17
7  RenderMathMLMath {math} at (0,4) size 31x10 [padding: 0 1 0 1]
 7 RenderMathMLMath {math} at (0,4) size 24x10 [padding: 0 1 0 1]
88 RenderMathMLUnderOver {mover} at (1,0) size 29x10
99 RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
1010 RenderMathMLOperator {mo} at (0,0) size 29x8

@@layer at (0,0) size 800x166
1212 RenderBlock (anonymous) at (0,0) size 12x8
1313 RenderText at (0,-36) size 12x80
1414 text run at (0,-36) width 12: "\x{2190}"
15  RenderText {#text} at (30,0) size 5x17
16  text run at (30,0) width 5: " "
17  RenderMathMLMath {math} at (34,4) size 32x10 [padding: 0 1 0 1]
 15 RenderText {#text} at (24,0) size 4x17
 16 text run at (24,0) width 4: " "
 17 RenderMathMLMath {math} at (28,4) size 24x10 [padding: 0 1 0 1]
1818 RenderMathMLUnderOver {mover} at (1,0) size 29x10
1919 RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
2020 RenderMathMLOperator {mo} at (0,0) size 29x8

@@layer at (0,0) size 800x166
2222 RenderBlock (anonymous) at (0,0) size 12x8
2323 RenderText at (0,-36) size 12x80
2424 text run at (0,-36) width 12: "\x{2192}"
25  RenderText {#text} at (65,0) size 5x17
26  text run at (65,0) width 5: " "
27  RenderMathMLMath {math} at (69,4) size 31x10 [padding: 0 1 0 1]
 25 RenderText {#text} at (52,0) size 4x17
 26 text run at (52,0) width 4: " "
 27 RenderMathMLMath {math} at (56,4) size 24x10 [padding: 0 1 0 1]
2828 RenderMathMLUnderOver {mover} at (1,0) size 29x10
2929 RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
3030 RenderMathMLOperator {mo} at (0,0) size 29x8

@@layer at (0,0) size 800x166
3232 RenderBlock (anonymous) at (0,0) size 12x8
3333 RenderText at (0,-36) size 12x80
3434 text run at (0,-36) width 12: "\x{2194}"
35  RenderText {#text} at (99,0) size 5x17
36  text run at (99,0) width 5: " "
37  RenderMathMLMath {math} at (103,4) size 32x10 [padding: 0 1 0 1]
 35 RenderText {#text} at (80,0) size 4x17
 36 text run at (80,0) width 4: " "
 37 RenderMathMLMath {math} at (84,4) size 24x10 [padding: 0 1 0 1]
3838 RenderMathMLUnderOver {mover} at (1,0) size 29x10
3939 RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
4040 RenderMathMLOperator {mo} at (0,0) size 29x8

@@layer at (0,0) size 800x166
4242 RenderBlock (anonymous) at (0,0) size 12x8
4343 RenderText at (0,-36) size 12x80
4444 text run at (0,-36) width 12: "\x{21A4}"
45  RenderText {#text} at (134,0) size 5x17
46  text run at (134,0) width 5: " "
47  RenderMathMLMath {math} at (138,4) size 32x10 [padding: 0 1 0 1]
 45 RenderText {#text} at (108,0) size 4x17
 46 text run at (108,0) width 4: " "
 47 RenderMathMLMath {math} at (112,4) size 24x10 [padding: 0 1 0 1]
4848 RenderMathMLUnderOver {mover} at (1,0) size 29x10
4949 RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
5050 RenderMathMLOperator {mo} at (0,0) size 29x8

@@layer at (0,0) size 800x166
5252 RenderBlock (anonymous) at (0,0) size 12x8
5353 RenderText at (0,-36) size 12x80
5454 text run at (0,-36) width 12: "\x{21A6}"
55  RenderText {#text} at (169,0) size 5x17
56  text run at (169,0) width 5: " "
57  RenderMathMLMath {math} at (173,5) size 31x9 [padding: 0 1 0 1]
 55 RenderText {#text} at (136,0) size 4x17
 56 text run at (136,0) width 4: " "
 57 RenderMathMLMath {math} at (140,5) size 24x9 [padding: 0 1 0 1]
5858 RenderMathMLUnderOver {mover} at (1,0) size 29x9
5959 RenderMathMLSpace {mspace} at (3,7) size 23x2 [bgcolor=#0000FF]
6060 RenderMathMLOperator {mo} at (0,0) size 29x7

@@layer at (0,0) size 800x166
6262 RenderBlock (anonymous) at (0,0) size 12x7
6363 RenderText at (0,-36) size 12x80
6464 text run at (0,-36) width 12: "\x{21BC}"
65  RenderText {#text} at (203,0) size 5x17
66  text run at (203,0) width 5: " "
67  RenderMathMLMath {math} at (207,7) size 32x7 [padding: 0 1 0 1]
 65 RenderText {#text} at (164,0) size 4x17
 66 text run at (164,0) width 4: " "
 67 RenderMathMLMath {math} at (168,7) size 24x7 [padding: 0 1 0 1]
6868 RenderMathMLUnderOver {mover} at (1,0) size 29x7
6969 RenderMathMLSpace {mspace} at (3,5) size 23x2 [bgcolor=#0000FF]
7070 RenderMathMLOperator {mo} at (0,0) size 29x5

@@layer at (0,0) size 800x166
7272 RenderBlock (anonymous) at (0,0) size 12x5
7373 RenderText at (0,-39) size 12x80
7474 text run at (0,-39) width 12: "\x{21BD}"
75  RenderText {#text} at (238,0) size 5x17
76  text run at (238,0) width 5: " "
77  RenderMathMLMath {math} at (242,5) size 32x9 [padding: 0 1 0 1]
 75 RenderText {#text} at (192,0) size 4x17
 76 text run at (192,0) width 4: " "
 77 RenderMathMLMath {math} at (196,5) size 24x9 [padding: 0 1 0 1]
7878 RenderMathMLUnderOver {mover} at (1,0) size 29x9
7979 RenderMathMLSpace {mspace} at (3,7) size 23x2 [bgcolor=#0000FF]
8080 RenderMathMLOperator {mo} at (0,0) size 29x7

@@layer at (0,0) size 800x166
8282 RenderBlock (anonymous) at (0,0) size 12x7
8383 RenderText at (0,-36) size 12x80
8484 text run at (0,-36) width 12: "\x{21C0}"
85  RenderText {#text} at (273,0) size 5x17
86  text run at (273,0) width 5: " "
87  RenderMathMLMath {math} at (277,4) size 31x10 [padding: 0 1 0 1]
 85 RenderText {#text} at (220,0) size 4x17
 86 text run at (220,0) width 4: " "
 87 RenderMathMLMath {math} at (224,4) size 24x10 [padding: 0 1 0 1]
8888 RenderMathMLUnderOver {mover} at (1,0) size 29x10
8989 RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
9090 RenderMathMLOperator {mo} at (0,0) size 29x8

@@layer at (0,0) size 800x166
9292 RenderBlock (anonymous) at (0,0) size 12x8
9393 RenderText at (0,-36) size 12x80
9494 text run at (0,-36) width 12: "\x{21D0}"
95  RenderText {#text} at (307,0) size 5x17
96  text run at (307,0) width 5: " "
97  RenderMathMLMath {math} at (311,4) size 32x10 [padding: 0 1 0 1]
 95 RenderText {#text} at (248,0) size 4x17
 96 text run at (248,0) width 4: " "
 97 RenderMathMLMath {math} at (252,4) size 24x10 [padding: 0 1 0 1]
9898 RenderMathMLUnderOver {mover} at (1,0) size 29x10
9999 RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
100100 RenderMathMLOperator {mo} at (0,0) size 29x8

@@layer at (0,0) size 800x166
102102 RenderBlock (anonymous) at (0,0) size 12x8
103103 RenderText at (0,-36) size 12x80
104104 text run at (0,-36) width 12: "\x{21D2}"
105  RenderText {#text} at (342,0) size 5x17
106  text run at (342,0) width 5: " "
107  RenderMathMLMath {math} at (346,4) size 32x10 [padding: 0 1 0 1]
 105 RenderText {#text} at (276,0) size 4x17
 106 text run at (276,0) width 4: " "
 107 RenderMathMLMath {math} at (280,4) size 24x10 [padding: 0 1 0 1]
108108 RenderMathMLUnderOver {mover} at (1,0) size 29x10
109109 RenderMathMLSpace {mspace} at (3,8) size 23x2 [bgcolor=#0000FF]
110110 RenderMathMLOperator {mo} at (0,0) size 29x8

@@layer at (0,0) size 800x166
112112 RenderBlock (anonymous) at (0,0) size 12x8
113113 RenderText at (0,-36) size 12x80
114114 text run at (0,-36) width 12: "\x{21D4}"
115  RenderText {#text} at (377,0) size 5x17
116  text run at (377,0) width 5: " "
117  RenderMathMLMath {math} at (381,2) size 31x12 [padding: 0 1 0 1]
 115 RenderText {#text} at (304,0) size 4x17
 116 text run at (304,0) width 4: " "
 117 RenderMathMLMath {math} at (308,2) size 24x12 [padding: 0 1 0 1]
118118 RenderMathMLUnderOver {mover} at (1,0) size 29x12
119119 RenderMathMLSpace {mspace} at (3,10) size 23x2 [bgcolor=#0000FF]
120120 RenderMathMLOperator {mo} at (0,0) size 29x10

@@layer at (0,0) size 800x166
122122 RenderBlock (anonymous) at (0,0) size 12x10
123123 RenderText at (0,-35) size 12x80
124124 text run at (0,-35) width 12: "\x{21DA}"
125  RenderText {#text} at (411,0) size 5x17
126  text run at (411,0) width 5: " "
127  RenderMathMLMath {math} at (415,2) size 32x12 [padding: 0 1 0 1]
 125 RenderText {#text} at (332,0) size 4x17
 126 text run at (332,0) width 4: " "
 127 RenderMathMLMath {math} at (336,2) size 24x12 [padding: 0 1 0 1]
128128 RenderMathMLUnderOver {mover} at (1,0) size 29x12
129129 RenderMathMLSpace {mspace} at (3,10) size 23x2 [bgcolor=#0000FF]
130130 RenderMathMLOperator {mo} at (0,0) size 29x10

@@layer at (0,0) size 800x166
132132 RenderBlock (anonymous) at (0,0) size 12x10
133133 RenderText at (0,-35) size 12x80
134134 text run at (0,-35) width 12: "\x{21DB}"
135  RenderText {#text} at (446,0) size 5x17
136  text run at (446,0) width 5: " "
137  RenderMathMLMath {math} at (450,9) size 25x5 [padding: 0 1 0 1]
 135 RenderText {#text} at (360,0) size 4x17
 136 text run at (360,0) width 4: " "
 137 RenderMathMLMath {math} at (364,9) size 24x5 [padding: 0 1 0 1]
138138 RenderMathMLUnderOver {mover} at (1,0) size 22x5
139139 RenderMathMLSpace {mspace} at (0,3) size 22x2 [bgcolor=#0000FF]
140140 RenderMathMLOperator {mo} at (0,0) size 22x3

@@layer at (0,0) size 800x166
142142 RenderBlock (anonymous) at (0,0) size 4x3
143143 RenderText at (0,-34) size 4x80
144144 text run at (0,-34) width 4: "\x{23B4}"
145  RenderText {#text} at (474,0) size 5x17
146  text run at (474,0) width 5: " "
147  RenderMathMLMath {math} at (478,9) size 25x5 [padding: 0 1 0 1]
 145 RenderText {#text} at (388,0) size 4x17
 146 text run at (388,0) width 4: " "
 147 RenderMathMLMath {math} at (392,9) size 24x5 [padding: 0 1 0 1]
148148 RenderMathMLUnderOver {mover} at (1,0) size 22x5
149149 RenderMathMLSpace {mspace} at (0,3) size 22x2 [bgcolor=#0000FF]
150150 RenderMathMLOperator {mo} at (0,0) size 22x3

@@layer at (0,0) size 800x166
152152 RenderBlock (anonymous) at (0,0) size 4x3
153153 RenderText at (0,-43) size 4x80
154154 text run at (0,-43) width 4: "\x{23B5}"
155  RenderText {#text} at (502,0) size 5x17
156  text run at (502,0) width 5: " "
157  RenderMathMLMath {math} at (506,8) size 27x6 [padding: 0 1 0 1]
 155 RenderText {#text} at (416,0) size 4x17
 156 text run at (416,0) width 4: " "
 157 RenderMathMLMath {math} at (420,8) size 24x6 [padding: 0 1 0 1]
158158 RenderMathMLUnderOver {mover} at (1,0) size 24x6
159159 RenderMathMLSpace {mspace} at (1,4) size 22x2 [bgcolor=#0000FF]
160160 RenderMathMLOperator {mo} at (0,0) size 24x4

@@layer at (0,0) size 800x166
162162 RenderBlock (anonymous) at (0,0) size 6x4
163163 RenderText at (0,-34) size 6x80
164164 text run at (0,-34) width 6: "\x{23DC}"
165  RenderText {#text} at (532,0) size 5x17
166  text run at (532,0) width 5: " "
167  RenderMathMLMath {math} at (536,7) size 27x7 [padding: 0 1 0 1]
 165 RenderText {#text} at (444,0) size 4x17
 166 text run at (444,0) width 4: " "
 167 RenderMathMLMath {math} at (448,7) size 24x7 [padding: 0 1 0 1]
168168 RenderMathMLUnderOver {mover} at (1,0) size 24x7
169169 RenderMathMLSpace {mspace} at (1,5) size 22x2 [bgcolor=#0000FF]
170170 RenderMathMLOperator {mo} at (0,0) size 24x5

@@layer at (0,0) size 800x166
172172 RenderBlock (anonymous) at (0,0) size 6x4
173173 RenderText at (0,-43) size 6x80
174174 text run at (0,-43) width 6: "\x{23DD}"
175  RenderText {#text} at (562,0) size 5x17
176  text run at (562,0) width 5: " "
177  RenderMathMLMath {math} at (566,8) size 27x6 [padding: 0 1 0 1]
 175 RenderText {#text} at (472,0) size 4x17
 176 text run at (472,0) width 4: " "
 177 RenderMathMLMath {math} at (476,8) size 24x6 [padding: 0 1 0 1]
178178 RenderMathMLUnderOver {mover} at (1,0) size 24x6
179179 RenderMathMLSpace {mspace} at (1,4) size 22x2 [bgcolor=#0000FF]
180180 RenderMathMLOperator {mo} at (0,0) size 24x4

@@layer at (0,0) size 800x166
182182 RenderBlock (anonymous) at (0,0) size 6x4
183183 RenderText at (0,-33) size 6x80
184184 text run at (0,-33) width 6: "\x{23DE}"
185  RenderText {#text} at (592,0) size 5x17
186  text run at (592,0) width 5: " "
187  RenderMathMLMath {math} at (596,7) size 27x7 [padding: 0 1 0 1]
 185 RenderText {#text} at (500,0) size 4x17
 186 text run at (500,0) width 4: " "
 187 RenderMathMLMath {math} at (504,7) size 24x7 [padding: 0 1 0 1]
188188 RenderMathMLUnderOver {mover} at (1,0) size 24x7
189189 RenderMathMLSpace {mspace} at (1,5) size 22x2 [bgcolor=#0000FF]
190190 RenderMathMLOperator {mo} at (0,0) size 24x5

@@layer at (0,0) size 800x166
194194 text run at (0,-43) width 6: "\x{23DF}"
195195 RenderText {#text} at (0,0) size 0x0
196196 RenderBlock {P} at (0,33) size 784x34
197  RenderMathMLMath {math} at (0,4) size 59x10 [padding: 0 1 0 1]
 197 RenderMathMLMath {math} at (0,4) size 52x10 [padding: 0 1 0 1]
198198 RenderMathMLUnderOver {mover} at (1,0) size 57x10
199199 RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
200200 RenderMathMLOperator {mo} at (0,0) size 57x8

@@layer at (0,0) size 800x166
202202 RenderBlock (anonymous) at (0,0) size 12x8
203203 RenderText at (0,-36) size 12x80
204204 text run at (0,-36) width 12: "\x{2190}"
205  RenderText {#text} at (58,0) size 5x17
206  text run at (58,0) width 5: " "
207  RenderMathMLMath {math} at (62,4) size 60x10 [padding: 0 1 0 1]
 205 RenderText {#text} at (52,0) size 4x17
 206 text run at (52,0) width 4: " "
 207 RenderMathMLMath {math} at (56,4) size 52x10 [padding: 0 1 0 1]
208208 RenderMathMLUnderOver {mover} at (1,0) size 57x10
209209 RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
210210 RenderMathMLOperator {mo} at (0,0) size 57x8

@@layer at (0,0) size 800x166
212212 RenderBlock (anonymous) at (0,0) size 12x8
213213 RenderText at (0,-36) size 12x80
214214 text run at (0,-36) width 12: "\x{2192}"
215  RenderText {#text} at (121,0) size 5x17
216  text run at (121,0) width 5: " "
217  RenderMathMLMath {math} at (125,4) size 59x10 [padding: 0 1 0 1]
 215 RenderText {#text} at (108,0) size 4x17
 216 text run at (108,0) width 4: " "
 217 RenderMathMLMath {math} at (112,4) size 52x10 [padding: 0 1 0 1]
218218 RenderMathMLUnderOver {mover} at (1,0) size 57x10
219219 RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
220220 RenderMathMLOperator {mo} at (0,0) size 57x8

@@layer at (0,0) size 800x166
222222 RenderBlock (anonymous) at (0,0) size 12x8
223223 RenderText at (0,-36) size 12x80
224224 text run at (0,-36) width 12: "\x{2194}"
225  RenderText {#text} at (183,0) size 5x17
226  text run at (183,0) width 5: " "
227  RenderMathMLMath {math} at (187,4) size 60x10 [padding: 0 1 0 1]
 225 RenderText {#text} at (164,0) size 4x17
 226 text run at (164,0) width 4: " "
 227 RenderMathMLMath {math} at (168,4) size 52x10 [padding: 0 1 0 1]
228228 RenderMathMLUnderOver {mover} at (1,0) size 57x10
229229 RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
230230 RenderMathMLOperator {mo} at (0,0) size 57x8

@@layer at (0,0) size 800x166
232232 RenderBlock (anonymous) at (0,0) size 12x8
233233 RenderText at (0,-36) size 12x80
234234 text run at (0,-36) width 12: "\x{21A4}"
235  RenderText {#text} at (246,0) size 5x17
236  text run at (246,0) width 5: " "
237  RenderMathMLMath {math} at (250,4) size 60x10 [padding: 0 1 0 1]
 235 RenderText {#text} at (220,0) size 4x17
 236 text run at (220,0) width 4: " "
 237 RenderMathMLMath {math} at (224,4) size 52x10 [padding: 0 1 0 1]
238238 RenderMathMLUnderOver {mover} at (1,0) size 57x10
239239 RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
240240 RenderMathMLOperator {mo} at (0,0) size 57x8

@@layer at (0,0) size 800x166
242242 RenderBlock (anonymous) at (0,0) size 12x8
243243 RenderText at (0,-36) size 12x80
244244 text run at (0,-36) width 12: "\x{21A6}"
245  RenderText {#text} at (309,0) size 5x17
246  text run at (309,0) width 5: " "
247  RenderMathMLMath {math} at (313,5) size 59x9 [padding: 0 1 0 1]
 245 RenderText {#text} at (276,0) size 4x17
 246 text run at (276,0) width 4: " "
 247 RenderMathMLMath {math} at (280,5) size 52x9 [padding: 0 1 0 1]
248248 RenderMathMLUnderOver {mover} at (1,0) size 57x9
249249 RenderMathMLSpace {mspace} at (3,7) size 51x2 [bgcolor=#008000]
250250 RenderMathMLOperator {mo} at (0,0) size 57x7

@@layer at (0,0) size 800x166
252252 RenderBlock (anonymous) at (0,0) size 12x7
253253 RenderText at (0,-36) size 12x80
254254 text run at (0,-36) width 12: "\x{21BC}"
255  RenderText {#text} at (371,0) size 5x17
256  text run at (371,0) width 5: " "
257  RenderMathMLMath {math} at (375,7) size 60x7 [padding: 0 1 0 1]
 255 RenderText {#text} at (332,0) size 4x17
 256 text run at (332,0) width 4: " "
 257 RenderMathMLMath {math} at (336,7) size 52x7 [padding: 0 1 0 1]
258258 RenderMathMLUnderOver {mover} at (1,0) size 57x7
259259 RenderMathMLSpace {mspace} at (3,5) size 51x2 [bgcolor=#008000]
260260 RenderMathMLOperator {mo} at (0,0) size 57x5

@@layer at (0,0) size 800x166
262262 RenderBlock (anonymous) at (0,0) size 12x5
263263 RenderText at (0,-39) size 12x80
264264 text run at (0,-39) width 12: "\x{21BD}"
265  RenderText {#text} at (434,0) size 5x17
266  text run at (434,0) width 5: " "
267  RenderMathMLMath {math} at (438,5) size 60x9 [padding: 0 1 0 1]
 265 RenderText {#text} at (388,0) size 4x17
 266 text run at (388,0) width 4: " "
 267 RenderMathMLMath {math} at (392,5) size 52x9 [padding: 0 1 0 1]
268268 RenderMathMLUnderOver {mover} at (1,0) size 57x9
269269 RenderMathMLSpace {mspace} at (3,7) size 51x2 [bgcolor=#008000]
270270 RenderMathMLOperator {mo} at (0,0) size 57x7

@@layer at (0,0) size 800x166
272272 RenderBlock (anonymous) at (0,0) size 12x7
273273 RenderText at (0,-36) size 12x80
274274 text run at (0,-36) width 12: "\x{21C0}"
275  RenderText {#text} at (497,0) size 5x17
276  text run at (497,0) width 5: " "
277  RenderMathMLMath {math} at (501,4) size 59x10 [padding: 0 1 0 1]
 275 RenderText {#text} at (444,0) size 4x17
 276 text run at (444,0) width 4: " "
 277 RenderMathMLMath {math} at (448,4) size 52x10 [padding: 0 1 0 1]
278278 RenderMathMLUnderOver {mover} at (1,0) size 57x10
279279 RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
280280 RenderMathMLOperator {mo} at (0,0) size 57x8

@@layer at (0,0) size 800x166
282282 RenderBlock (anonymous) at (0,0) size 12x8
283283 RenderText at (0,-36) size 12x80
284284 text run at (0,-36) width 12: "\x{21D0}"
285  RenderText {#text} at (559,0) size 5x17
286  text run at (559,0) width 5: " "
287  RenderMathMLMath {math} at (563,4) size 60x10 [padding: 0 1 0 1]
 285 RenderText {#text} at (500,0) size 4x17
 286 text run at (500,0) width 4: " "
 287 RenderMathMLMath {math} at (504,4) size 52x10 [padding: 0 1 0 1]
288288 RenderMathMLUnderOver {mover} at (1,0) size 57x10
289289 RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
290290 RenderMathMLOperator {mo} at (0,0) size 57x8

@@layer at (0,0) size 800x166
292292 RenderBlock (anonymous) at (0,0) size 12x8
293293 RenderText at (0,-36) size 12x80
294294 text run at (0,-36) width 12: "\x{21D2}"
295  RenderText {#text} at (622,0) size 5x17
296  text run at (622,0) width 5: " "
297  RenderMathMLMath {math} at (626,4) size 60x10 [padding: 0 1 0 1]
 295 RenderText {#text} at (556,0) size 4x17
 296 text run at (556,0) width 4: " "
 297 RenderMathMLMath {math} at (560,4) size 52x10 [padding: 0 1 0 1]
298298 RenderMathMLUnderOver {mover} at (1,0) size 57x10
299299 RenderMathMLSpace {mspace} at (3,8) size 51x2 [bgcolor=#008000]
300300 RenderMathMLOperator {mo} at (0,0) size 57x8

@@layer at (0,0) size 800x166
302302 RenderBlock (anonymous) at (0,0) size 12x8
303303 RenderText at (0,-36) size 12x80
304304 text run at (0,-36) width 12: "\x{21D4}"
305  RenderText {#text} at (685,0) size 5x17
306  text run at (685,0) width 5: " "
307  RenderMathMLMath {math} at (689,2) size 59x12 [padding: 0 1 0 1]
 305 RenderText {#text} at (612,0) size 4x17
 306 text run at (612,0) width 4: " "
 307 RenderMathMLMath {math} at (616,2) size 52x12 [padding: 0 1 0 1]
308308 RenderMathMLUnderOver {mover} at (1,0) size 57x12
309309 RenderMathMLSpace {mspace} at (3,10) size 51x2 [bgcolor=#008000]
310310 RenderMathMLOperator {mo} at (0,0) size 57x10

@@layer at (0,0) size 800x166
312312 RenderBlock (anonymous) at (0,0) size 12x10
313313 RenderText at (0,-35) size 12x80
314314 text run at (0,-35) width 12: "\x{21DA}"
315  RenderText {#text} at (0,0) size 0x0
316  RenderMathMLMath {math} at (0,19) size 59x12 [padding: 0 1 0 1]
 315 RenderText {#text} at (668,0) size 4x17
 316 text run at (668,0) width 4: " "
 317 RenderMathMLMath {math} at (672,2) size 52x12 [padding: 0 1 0 1]
317318 RenderMathMLUnderOver {mover} at (1,0) size 57x12
318319 RenderMathMLSpace {mspace} at (3,10) size 51x2 [bgcolor=#008000]
319320 RenderMathMLOperator {mo} at (0,0) size 57x10

@@layer at (0,0) size 800x166
321322 RenderBlock (anonymous) at (0,0) size 12x10
322323 RenderText at (0,-35) size 12x80
323324 text run at (0,-35) width 12: "\x{21DB}"
324  RenderText {#text} at (58,17) size 5x17
325  text run at (58,17) width 5: " "
326  RenderMathMLMath {math} at (62,19) size 53x12 [padding: 0 1 0 1]
 325 RenderText {#text} at (724,0) size 4x17
 326 text run at (724,0) width 4: " "
 327 RenderMathMLMath {math} at (728,2) size 52x12 [padding: 0 1 0 1]
327328 RenderMathMLUnderOver {mover} at (1,0) size 50x12
328329 RenderMathMLSpace {mspace} at (0,10) size 50x2 [bgcolor=#008000]
329330 RenderMathMLOperator {mo} at (0,0) size 50x10

@@layer at (0,0) size 800x166
331332 RenderBlock (anonymous) at (0,0) size 4x10
332333 RenderText at (0,-34) size 4x80
333334 text run at (0,-34) width 4: "\x{23B4}"
334  RenderText {#text} at (114,17) size 5x17
335  text run at (114,17) width 5: " "
336  RenderMathMLMath {math} at (118,24) size 53x7 [padding: 0 1 0 1]
 335 RenderText {#text} at (0,0) size 0x0
 336 RenderMathMLMath {math} at (0,24) size 52x7 [padding: 0 1 0 1]
337337 RenderMathMLUnderOver {mover} at (1,0) size 50x7
338338 RenderMathMLSpace {mspace} at (0,5) size 50x2 [bgcolor=#008000]
339339 RenderMathMLOperator {mo} at (0,0) size 50x5

@@layer at (0,0) size 800x166
341341 RenderBlock (anonymous) at (0,0) size 4x4
342342 RenderText at (0,-43) size 4x80
343343 text run at (0,-43) width 4: "\x{23B5}"
344  RenderText {#text} at (170,17) size 5x17
345  text run at (170,17) width 5: " "
346  RenderMathMLMath {math} at (174,19) size 53x12 [padding: 0 1 0 1]
 344 RenderText {#text} at (52,17) size 4x17
 345 text run at (52,17) width 4: " "
 346 RenderMathMLMath {math} at (56,19) size 52x12 [padding: 0 1 0 1]
347347 RenderMathMLUnderOver {mover} at (1,0) size 50x12
348348 RenderMathMLSpace {mspace} at (0,10) size 50x2 [bgcolor=#008000]
349349 RenderMathMLOperator {mo} at (0,0) size 50x10

@@layer at (0,0) size 800x166
351351 RenderBlock (anonymous) at (0,0) size 6x10
352352 RenderText at (0,-34) size 6x80
353353 text run at (0,-34) width 6: "\x{23DC}"
354  RenderText {#text} at (226,17) size 5x17
355  text run at (226,17) width 5: " "
356  RenderMathMLMath {math} at (230,24) size 53x7 [padding: 0 1 0 1]
 354 RenderText {#text} at (108,17) size 4x17
 355 text run at (108,17) width 4: " "
 356 RenderMathMLMath {math} at (112,24) size 52x7 [padding: 0 1 0 1]
357357 RenderMathMLUnderOver {mover} at (1,0) size 50x7
358358 RenderMathMLSpace {mspace} at (0,5) size 50x2 [bgcolor=#008000]
359359 RenderMathMLOperator {mo} at (0,0) size 50x5

@@layer at (0,0) size 800x166
361361 RenderBlock (anonymous) at (0,0) size 6x4
362362 RenderText at (0,-43) size 6x80
363363 text run at (0,-43) width 6: "\x{23DD}"
364  RenderText {#text} at (282,17) size 5x17
365  text run at (282,17) width 5: " "
366  RenderMathMLMath {math} at (286,18) size 53x13 [padding: 0 1 0 1]
 364 RenderText {#text} at (164,17) size 4x17
 365 text run at (164,17) width 4: " "
 366 RenderMathMLMath {math} at (168,18) size 52x13 [padding: 0 1 0 1]
367367 RenderMathMLUnderOver {mover} at (1,0) size 50x13
368368 RenderMathMLSpace {mspace} at (0,11) size 50x2 [bgcolor=#008000]
369369 RenderMathMLOperator {mo} at (0,0) size 50x11

@@layer at (0,0) size 800x166
371371 RenderBlock (anonymous) at (0,0) size 6x11
372372 RenderText at (0,-33) size 6x80
373373 text run at (0,-33) width 6: "\x{23DE}"
374  RenderText {#text} at (338,17) size 5x17
375  text run at (338,17) width 5: " "
376  RenderMathMLMath {math} at (342,23) size 53x8 [padding: 0 1 0 1]
 374 RenderText {#text} at (220,17) size 4x17
 375 text run at (220,17) width 4: " "
 376 RenderMathMLMath {math} at (224,23) size 52x8 [padding: 0 1 0 1]
377377 RenderMathMLUnderOver {mover} at (1,0) size 50x8
378378 RenderMathMLSpace {mspace} at (0,6) size 50x2 [bgcolor=#008000]
379379 RenderMathMLOperator {mo} at (0,0) size 50x6

@@layer at (0,0) size 800x166
383383 text run at (0,-43) width 6: "\x{23DF}"
384384 RenderText {#text} at (0,0) size 0x0
385385 RenderBlock {P} at (0,83) size 784x51
386  RenderMathMLMath {math} at (0,4) size 109x10 [padding: 0 1 0 1]
 386 RenderMathMLMath {math} at (0,4) size 102x10 [padding: 0 1 0 1]
387387 RenderMathMLUnderOver {mover} at (1,0) size 107x10
388388 RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
389389 RenderMathMLOperator {mo} at (0,0) size 107x8

@@layer at (0,0) size 800x166
391391 RenderBlock (anonymous) at (0,0) size 12x8
392392 RenderText at (0,-36) size 12x80
393393 text run at (0,-36) width 12: "\x{2190}"
394  RenderText {#text} at (108,0) size 5x17
395  text run at (108,0) width 5: " "
396  RenderMathMLMath {math} at (112,4) size 110x10 [padding: 0 1 0 1]
 394 RenderText {#text} at (102,0) size 4x17
 395 text run at (102,0) width 4: " "
 396 RenderMathMLMath {math} at (106,4) size 102x10 [padding: 0 1 0 1]
397397 RenderMathMLUnderOver {mover} at (1,0) size 107x10
398398 RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
399399 RenderMathMLOperator {mo} at (0,0) size 107x8

@@layer at (0,0) size 800x166
401401 RenderBlock (anonymous) at (0,0) size 12x8
402402 RenderText at (0,-36) size 12x80
403403 text run at (0,-36) width 12: "\x{2192}"
404  RenderText {#text} at (221,0) size 5x17
405  text run at (221,0) width 5: " "
406  RenderMathMLMath {math} at (225,4) size 109x10 [padding: 0 1 0 1]
 404 RenderText {#text} at (208,0) size 4x17
 405 text run at (208,0) width 4: " "
 406 RenderMathMLMath {math} at (212,4) size 102x10 [padding: 0 1 0 1]
407407 RenderMathMLUnderOver {mover} at (1,0) size 107x10
408408 RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
409409 RenderMathMLOperator {mo} at (0,0) size 107x8

@@layer at (0,0) size 800x166
411411 RenderBlock (anonymous) at (0,0) size 12x8
412412 RenderText at (0,-36) size 12x80
413413 text run at (0,-36) width 12: "\x{2194}"
414  RenderText {#text} at (333,0) size 5x17
415  text run at (333,0) width 5: " "
416  RenderMathMLMath {math} at (337,4) size 110x10 [padding: 0 1 0 1]
 414 RenderText {#text} at (314,0) size 4x17
 415 text run at (314,0) width 4: " "
 416 RenderMathMLMath {math} at (318,4) size 102x10 [padding: 0 1 0 1]
417417 RenderMathMLUnderOver {mover} at (1,0) size 107x10
418418 RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
419419 RenderMathMLOperator {mo} at (0,0) size 107x8

@@layer at (0,0) size 800x166
421421 RenderBlock (anonymous) at (0,0) size 12x8
422422 RenderText at (0,-36) size 12x80
423423 text run at (0,-36) width 12: "\x{21A4}"
424  RenderText {#text} at (446,0) size 5x17
425  text run at (446,0) width 5: " "
426  RenderMathMLMath {math} at (450,4) size 110x10 [padding: 0 1 0 1]
 424 RenderText {#text} at (420,0) size 4x17
 425 text run at (420,0) width 4: " "
 426 RenderMathMLMath {math} at (424,4) size 102x10 [padding: 0 1 0 1]
427427 RenderMathMLUnderOver {mover} at (1,0) size 107x10
428428 RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
429429 RenderMathMLOperator {mo} at (0,0) size 107x8

@@layer at (0,0) size 800x166
431431 RenderBlock (anonymous) at (0,0) size 12x8
432432 RenderText at (0,-36) size 12x80
433433 text run at (0,-36) width 12: "\x{21A6}"
434  RenderText {#text} at (559,0) size 5x17
435  text run at (559,0) width 5: " "
436  RenderMathMLMath {math} at (563,5) size 109x9 [padding: 0 1 0 1]
 434 RenderText {#text} at (526,0) size 4x17
 435 text run at (526,0) width 4: " "
 436 RenderMathMLMath {math} at (530,5) size 102x9 [padding: 0 1 0 1]
437437 RenderMathMLUnderOver {mover} at (1,0) size 107x9
438438 RenderMathMLSpace {mspace} at (3,7) size 101x2 [bgcolor=#FF0000]
439439 RenderMathMLOperator {mo} at (0,0) size 107x7

@@layer at (0,0) size 800x166
441441 RenderBlock (anonymous) at (0,0) size 12x7
442442 RenderText at (0,-36) size 12x80
443443 text run at (0,-36) width 12: "\x{21BC}"
444  RenderText {#text} at (0,0) size 0x0
445  RenderMathMLMath {math} at (0,24) size 109x7 [padding: 0 1 0 1]
 444 RenderText {#text} at (632,0) size 4x17
 445 text run at (632,0) width 4: " "
 446 RenderMathMLMath {math} at (636,7) size 102x7 [padding: 0 1 0 1]
446447 RenderMathMLUnderOver {mover} at (1,0) size 107x7
447448 RenderMathMLSpace {mspace} at (3,5) size 101x2 [bgcolor=#FF0000]
448449 RenderMathMLOperator {mo} at (0,0) size 107x5

@@layer at (0,0) size 800x166
450451 RenderBlock (anonymous) at (0,0) size 12x5
451452 RenderText at (0,-39) size 12x80
452453 text run at (0,-39) width 12: "\x{21BD}"
453  RenderText {#text} at (108,17) size 5x17
454  text run at (108,17) width 5: " "
455  RenderMathMLMath {math} at (112,22) size 110x9 [padding: 0 1 0 1]
 454 RenderText {#text} at (0,0) size 0x0
 455 RenderMathMLMath {math} at (0,22) size 102x9 [padding: 0 1 0 1]
456456 RenderMathMLUnderOver {mover} at (1,0) size 107x9
457457 RenderMathMLSpace {mspace} at (3,7) size 101x2 [bgcolor=#FF0000]
458458 RenderMathMLOperator {mo} at (0,0) size 107x7

@@layer at (0,0) size 800x166
460460 RenderBlock (anonymous) at (0,0) size 12x7
461461 RenderText at (0,-36) size 12x80
462462 text run at (0,-36) width 12: "\x{21C0}"
463  RenderText {#text} at (221,17) size 5x17
464  text run at (221,17) width 5: " "
465  RenderMathMLMath {math} at (225,21) size 109x10 [padding: 0 1 0 1]
 463 RenderText {#text} at (102,17) size 4x17
 464 text run at (102,17) width 4: " "
 465 RenderMathMLMath {math} at (106,21) size 102x10 [padding: 0 1 0 1]
466466 RenderMathMLUnderOver {mover} at (1,0) size 107x10
467467 RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
468468 RenderMathMLOperator {mo} at (0,0) size 107x8

@@layer at (0,0) size 800x166
470470 RenderBlock (anonymous) at (0,0) size 12x8
471471 RenderText at (0,-36) size 12x80
472472 text run at (0,-36) width 12: "\x{21D0}"
473  RenderText {#text} at (333,17) size 5x17
474  text run at (333,17) width 5: " "
475  RenderMathMLMath {math} at (337,21) size 110x10 [padding: 0 1 0 1]
 473 RenderText {#text} at (208,17) size 4x17
 474 text run at (208,17) width 4: " "
 475 RenderMathMLMath {math} at (212,21) size 102x10 [padding: 0 1 0 1]
476476 RenderMathMLUnderOver {mover} at (1,0) size 107x10
477477 RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
478478 RenderMathMLOperator {mo} at (0,0) size 107x8

@@layer at (0,0) size 800x166
480480 RenderBlock (anonymous) at (0,0) size 12x8
481481 RenderText at (0,-36) size 12x80
482482 text run at (0,-36) width 12: "\x{21D2}"
483  RenderText {#text} at (446,17) size 5x17
484  text run at (446,17) width 5: " "
485  RenderMathMLMath {math} at (450,21) size 110x10 [padding: 0 1 0 1]
 483 RenderText {#text} at (314,17) size 4x17
 484 text run at (314,17) width 4: " "
 485 RenderMathMLMath {math} at (318,21) size 102x10 [padding: 0 1 0 1]
486486 RenderMathMLUnderOver {mover} at (1,0) size 107x10
487487 RenderMathMLSpace {mspace} at (3,8) size 101x2 [bgcolor=#FF0000]
488488 RenderMathMLOperator {mo} at (0,0) size 107x8

@@layer at (0,0) size 800x166
490490 RenderBlock (anonymous) at (0,0) size 12x8
491491 RenderText at (0,-36) size 12x80
492492 text run at (0,-36) width 12: "\x{21D4}"
493  RenderText {#text} at (559,17) size 5x17
494  text run at (559,17) width 5: " "
495  RenderMathMLMath {math} at (563,19) size 109x12 [padding: 0 1 0 1]
 493 RenderText {#text} at (420,17) size 4x17
 494 text run at (420,17) width 4: " "
 495 RenderMathMLMath {math} at (424,19) size 102x12 [padding: 0 1 0 1]
496496 RenderMathMLUnderOver {mover} at (1,0) size 107x12
497497 RenderMathMLSpace {mspace} at (3,10) size 101x2 [bgcolor=#FF0000]
498498 RenderMathMLOperator {mo} at (0,0) size 107x10

@@layer at (0,0) size 800x166
500500 RenderBlock (anonymous) at (0,0) size 12x10
501501 RenderText at (0,-35) size 12x80
502502 text run at (0,-35) width 12: "\x{21DA}"
503  RenderText {#text} at (0,0) size 0x0
504  RenderMathMLMath {math} at (0,36) size 109x12 [padding: 0 1 0 1]
 503 RenderText {#text} at (526,17) size 4x17
 504 text run at (526,17) width 4: " "
 505 RenderMathMLMath {math} at (530,19) size 102x12 [padding: 0 1 0 1]
505506 RenderMathMLUnderOver {mover} at (1,0) size 107x12
506507 RenderMathMLSpace {mspace} at (3,10) size 101x2 [bgcolor=#FF0000]
507508 RenderMathMLOperator {mo} at (0,0) size 107x10

@@layer at (0,0) size 800x166
509510 RenderBlock (anonymous) at (0,0) size 12x10
510511 RenderText at (0,-35) size 12x80
511512 text run at (0,-35) width 12: "\x{21DB}"
512  RenderText {#text} at (108,34) size 5x17
513  text run at (108,34) width 5: " "
514  RenderMathMLMath {math} at (112,36) size 103x12 [padding: 0 1 0 1]
 513 RenderText {#text} at (632,17) size 4x17
 514 text run at (632,17) width 4: " "
 515 RenderMathMLMath {math} at (636,19) size 102x12 [padding: 0 1 0 1]
515516 RenderMathMLUnderOver {mover} at (1,0) size 100x12
516517 RenderMathMLSpace {mspace} at (0,10) size 100x2 [bgcolor=#FF0000]
517518 RenderMathMLOperator {mo} at (0,0) size 100x10

@@layer at (0,0) size 800x166
519520 RenderBlock (anonymous) at (0,0) size 4x10
520521 RenderText at (0,-34) size 4x80
521522 text run at (0,-34) width 4: "\x{23B4}"
522  RenderText {#text} at (214,34) size 5x17
523  text run at (214,34) width 5: " "
524  RenderMathMLMath {math} at (218,41) size 103x7 [padding: 0 1 0 1]
 523 RenderText {#text} at (0,0) size 0x0
 524 RenderMathMLMath {math} at (0,41) size 102x7 [padding: 0 1 0 1]
525525 RenderMathMLUnderOver {mover} at (1,0) size 100x7
526526 RenderMathMLSpace {mspace} at (0,5) size 100x2 [bgcolor=#FF0000]
527527 RenderMathMLOperator {mo} at (0,0) size 100x5

@@layer at (0,0) size 800x166
529529 RenderBlock (anonymous) at (0,0) size 4x4
530530 RenderText at (0,-43) size 4x80
531531 text run at (0,-43) width 4: "\x{23B5}"
532  RenderText {#text} at (320,34) size 5x17
533  text run at (320,34) width 5: " "
534  RenderMathMLMath {math} at (324,36) size 103x12 [padding: 0 1 0 1]
 532 RenderText {#text} at (102,34) size 4x17
 533 text run at (102,34) width 4: " "
 534 RenderMathMLMath {math} at (106,36) size 102x12 [padding: 0 1 0 1]
535535 RenderMathMLUnderOver {mover} at (1,0) size 100x12
536536 RenderMathMLSpace {mspace} at (0,10) size 100x2 [bgcolor=#FF0000]
537537 RenderMathMLOperator {mo} at (0,0) size 100x10

@@layer at (0,0) size 800x166
539539 RenderBlock (anonymous) at (0,0) size 6x10
540540 RenderText at (0,-34) size 6x80
541541 text run at (0,-34) width 6: "\x{23DC}"
542  RenderText {#text} at (426,34) size 5x17
543  text run at (426,34) width 5: " "
544  RenderMathMLMath {math} at (430,41) size 103x7 [padding: 0 1 0 1]
 542 RenderText {#text} at (208,34) size 4x17
 543 text run at (208,34) width 4: " "
 544 RenderMathMLMath {math} at (212,41) size 102x7 [padding: 0 1 0 1]
545545 RenderMathMLUnderOver {mover} at (1,0) size 100x7
546546 RenderMathMLSpace {mspace} at (0,5) size 100x2 [bgcolor=#FF0000]
547547 RenderMathMLOperator {mo} at (0,0) size 100x5

@@layer at (0,0) size 800x166
549549 RenderBlock (anonymous) at (0,0) size 6x4
550550 RenderText at (0,-43) size 6x80
551551 text run at (0,-43) width 6: "\x{23DD}"
552  RenderText {#text} at (532,34) size 5x17
553  text run at (532,34) width 5: " "
554  RenderMathMLMath {math} at (536,35) size 103x13 [padding: 0 1 0 1]
 552 RenderText {#text} at (314,34) size 4x17
 553 text run at (314,34) width 4: " "
 554 RenderMathMLMath {math} at (318,35) size 102x13 [padding: 0 1 0 1]
555555 RenderMathMLUnderOver {mover} at (1,0) size 100x13
556556 RenderMathMLSpace {mspace} at (0,11) size 100x2 [bgcolor=#FF0000]
557557 RenderMathMLOperator {mo} at (0,0) size 100x11

@@layer at (0,0) size 800x166
559559 RenderBlock (anonymous) at (0,0) size 6x11
560560 RenderText at (0,-33) size 6x80
561561 text run at (0,-33) width 6: "\x{23DE}"
562  RenderText {#text} at (638,34) size 5x17
563  text run at (638,34) width 5: " "
564  RenderMathMLMath {math} at (642,40) size 103x8 [padding: 0 1 0 1]
 562 RenderText {#text} at (420,34) size 4x17
 563 text run at (420,34) width 4: " "
 564 RenderMathMLMath {math} at (424,40) size 102x8 [padding: 0 1 0 1]
565565 RenderMathMLUnderOver {mover} at (1,0) size 100x8
566566 RenderMathMLSpace {mspace} at (0,6) size 100x2 [bgcolor=#FF0000]
567567 RenderMathMLOperator {mo} at (0,0) size 100x6

LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png

39986c651220728c53882db714633264

ecc2c7fb0bec793435993b5ca9b9922e

LayoutTests/platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt

@@layer at (0,0) size 800x157
55 RenderBody {BODY} at (8,16) size 784x125
66 RenderBlock {P} at (0,0) size 784x25
77 RenderMathMLMath {math} at (0,2) size 10x23 [padding: 0 1 0 1]
8  RenderMathMLRow {mstyle} at (1,0) size 8x23
9  RenderMathMLUnderOver {mover} at (0,0) size 8x23
10  RenderMathMLOperator {mo} at (-5,1) size 17x22
 8 RenderMathMLRow {mstyle} at (1,0) size 16x23
 9 RenderMathMLUnderOver {mover} at (0,0) size 16x23
 10 RenderMathMLOperator {mo} at (0,1) size 16x22
1111 RenderMathMLBlock (anonymous, flex) at (2,0) size 11x4
1212 RenderBlock (anonymous) at (0,0) size 1x4
1313 RenderText at (0,-3) size 1x0
1414 text run at (0,-3) width 1: "\x{219C}"
15  RenderMathMLSpace {mspace} at (0,0) size 8x1
 15 RenderMathMLSpace {mspace} at (4,0) size 8x1
1616 RenderText {#text} at (0,0) size 0x0
1717 RenderBlock {P} at (0,41) size 784x25
1818 RenderMathMLMath {math} at (0,2) size 17x23 [padding: 0 1 0 1]
19  RenderMathMLRow {mstyle} at (1,0) size 15x23
20  RenderMathMLUnderOver {mover} at (0,0) size 15x23
21  RenderMathMLOperator {mo} at (-6,1) size 27x22
 19 RenderMathMLRow {mstyle} at (1,0) size 26x23
 20 RenderMathMLUnderOver {mover} at (0,0) size 26x23
 21 RenderMathMLOperator {mo} at (0,1) size 26x22
2222 RenderMathMLBlock (anonymous, flex) at (2,0) size 21x4
2323 RenderBlock (anonymous) at (0,0) size 1x4
2424 RenderText at (0,-3) size 1x0
2525 text run at (0,-3) width 1: "\x{219C}"
26  RenderMathMLSpace {mspace} at (0,0) size 15x1
 26 RenderMathMLSpace {mspace} at (5,0) size 16x1
2727 RenderText {#text} at (0,0) size 0x0
2828 RenderBlock {P} at (0,82) size 784x43
2929 RenderMathMLMath {math} at (0,0) size 152x43 [padding: 0 1 0 1]
30  RenderMathMLRow {mstyle} at (1,0) size 150x43
31  RenderMathMLUnderOver {mover} at (0,0) size 150x43
32  RenderMathMLOperator {mo} at (-3,1) size 156x42
 30 RenderMathMLRow {mstyle} at (1,0) size 156x43
 31 RenderMathMLUnderOver {mover} at (0,0) size 156x43
 32 RenderMathMLOperator {mo} at (0,1) size 156x42
3333 RenderMathMLBlock (anonymous, flex) at (2,0) size 151x4
3434 RenderBlock (anonymous) at (0,0) size 1x4
3535 RenderText at (0,-3) size 1x0
3636 text run at (0,-3) width 1: "\x{219C}"
37  RenderMathMLSpace {mspace} at (0,0) size 150x1
 37 RenderMathMLSpace {mspace} at (2,0) size 151x1
3838 RenderText {#text} at (0,0) size 0x0

LayoutTests/platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.png

09ce4e810061b3ab565147cb9f6ee2ca

13bd1a113b1f2b9fd23b596818327596

LayoutTests/platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt

@@layer at (0,0) size 800x153
55 RenderBody {BODY} at (8,16) size 784x121
66 RenderBlock {P} at (0,0) size 784x24
77 RenderMathMLMath {math} at (0,3) size 10x22 [padding: 0 1 0 1]
8  RenderMathMLRow {mstyle} at (1,0) size 8x22
9  RenderMathMLUnderOver {mover} at (0,0) size 8x22
10  RenderMathMLOperator {mo} at (-5,1) size 17x21
 8 RenderMathMLRow {mstyle} at (1,0) size 16x22
 9 RenderMathMLUnderOver {mover} at (0,0) size 16x22
 10 RenderMathMLOperator {mo} at (0,1) size 16x21
1111 RenderMathMLBlock (anonymous, flex) at (2,0) size 11x4
1212 RenderBlock (anonymous) at (0,0) size 2x4
1313 RenderText at (0,-3) size 2x0
1414 text run at (0,-3) width 2: "\x{219C}"
15  RenderMathMLSpace {mspace} at (0,0) size 8x1
 15 RenderMathMLSpace {mspace} at (4,0) size 8x1
1616 RenderText {#text} at (0,0) size 0x0
1717 RenderBlock {P} at (0,40) size 784x24
1818 RenderMathMLMath {math} at (0,3) size 17x22 [padding: 0 1 0 1]
19  RenderMathMLRow {mstyle} at (1,0) size 15x22
20  RenderMathMLUnderOver {mover} at (0,0) size 15x22
21  RenderMathMLOperator {mo} at (-6,1) size 27x21
 19 RenderMathMLRow {mstyle} at (1,0) size 26x22
 20 RenderMathMLUnderOver {mover} at (0,0) size 26x22
 21 RenderMathMLOperator {mo} at (0,1) size 26x21
2222 RenderMathMLBlock (anonymous, flex) at (2,0) size 22x4
2323 RenderBlock (anonymous) at (0,0) size 2x4
2424 RenderText at (0,-3) size 2x0
2525 text run at (0,-3) width 2: "\x{219C}"
26  RenderMathMLSpace {mspace} at (0,0) size 15x1
 26 RenderMathMLSpace {mspace} at (5,0) size 16x1
2727 RenderText {#text} at (0,0) size 0x0
2828 RenderBlock {P} at (0,80) size 784x41
2929 RenderMathMLMath {math} at (0,0) size 152x42 [padding: 0 1 0 1]
30  RenderMathMLRow {mstyle} at (1,0) size 150x42
31  RenderMathMLUnderOver {mover} at (0,0) size 150x42
32  RenderMathMLOperator {mo} at (-3,1) size 156x41
 30 RenderMathMLRow {mstyle} at (1,0) size 156x42
 31 RenderMathMLUnderOver {mover} at (0,0) size 156x42
 32 RenderMathMLOperator {mo} at (0,1) size 156x41
3333 RenderMathMLBlock (anonymous, flex) at (2,0) size 151x4
3434 RenderBlock (anonymous) at (0,0) size 2x4
3535 RenderText at (0,-3) size 2x0
3636 text run at (0,-3) width 2: "\x{219C}"
37  RenderMathMLSpace {mspace} at (0,0) size 150x1
 37 RenderMathMLSpace {mspace} at (2,0) size 151x1
3838 RenderText {#text} at (0,0) size 0x0

Source/WebCore/ChangeLog

 12016-03-03 Frederic Wang <fwang@igalia.com>
 2
 3 Refactor RenderMathMLUnderOver layout functions to avoid using flexbox
 4 https://bugs.webkit.org/show_bug.cgi?id=153742
 5
 6 Reviewed by NOBODY (OOPS!).
 7
 8 Refactor the UnderOver renderer to use its own layoutBlock method that
 9 does all the layout calculations without considering the flexbox
 10 restrictions.
 11
 12 * css/mathml.css:
 13 (mo, mfrac, munder, mover, munderover): Delete the underover elements from the line defining
 14 the column direction.
 15 (munder, mover, munderover): Deleted. This flexbox property is no longer needed.
 16 (mover > :last-child, munderover > :last-child): Deleted. This flexbox property is no longer
 17 needed.
 18 * rendering/mathml/RenderMathMLUnderOver.cpp:
 19 (WebCore::RenderMathMLUnderOver::firstLineBaseline): Use ascentForChild.
 20 (WebCore::RenderMathMLUnderOver::computeOperatorsHorizontalStretch): Avoid stretching
 21 operators that are not stretchy.
 22 (WebCore::RenderMathMLUnderOver::isValid): Helper function to ensure that the child list is
 23 valid with respect to the MathML specification.
 24 (WebCore::RenderMathMLUnderOver::getBase): Added. Helper function.
 25 (WebCore::RenderMathMLUnderOver::getUnder): Added. Helper function.
 26 (WebCore::RenderMathMLUnderOver::getOver): Added. Helper function.
 27 (WebCore::RenderMathMLUnderOver::computePreferredLogicalWidths): Added.
 28 The preferred width is the maximum preferred width of the base, under and over scripts.
 29 (WebCore::RenderMathMLUnderOver::getHorizontalOffset): Added, helper to calculate the
 30 horizontal position of children (horizontally centered).
 31 (WebCore::RenderMathMLUnderOver::layoutBlock): Added, it layouts the base, underscript and
 32 overscript. It calculates the exact logical width, which may differ from the preferred width
 33 one child contains stretchy operators. It later sets the locations of children accordingly
 34 and sets the heigth of the render element.
 35 (WebCore::RenderMathMLUnderOver::paintChildren): Added, we have to use the usual traverse
 36 instead of the one that comes from the flexbox. This will be removed in a follow-up patch.
 37 (WebCore::RenderMathMLUnderOver::layout): Deleted.
 38 * rendering/mathml/RenderMathMLUnderOver.h: Added new functions definitions.
 39
1402016-04-06 Myles C. Maxfield <mmaxfield@apple.com>
241
342 REGRESSION (r188591): thingiverse.com direct messaging UI is not rendered properly

Source/WebCore/css/mathml.css

@@ms, mtext, mi, mn, mo, annotation, mtd {
4444 white-space: nowrap !important;
4545}
4646
47 mo, mfrac, munder, mover, munderover {
 47mo, mfrac {
4848 flex-direction: column;
4949}
5050
51 munder, mover, munderover {
52  align-items: center;
53 }
54 
5551mfrac > * {
5652 align-self: center;
5753}

@@mfrac {
7874 -webkit-margin-end: 1px;
7975}
8076
81 mover > :last-child, munderover > :last-child {
82  order: -1;
83 }
84 
8577msub > * + *, msup > * + *, msubsup > * + *, mmultiscripts > * + *, munder > * + *, mover > * + *, munderover > * + * {
8678 font-size: 0.75em; /* FIXME: MathML standard is 0.71em */
8779}

Source/WebCore/rendering/mathml/RenderMathMLUnderOver.cpp

11/*
22 * Copyright (C) 2009 Alex Milowski (alex@milowski.com). All rights reserved.
 3 * Copyright (C) 2016 Igalia S.L.
34 *
45 * Redistribution and use in source and binary forms, with or without
56 * modification, are permitted provided that the following conditions

@@Optional<int> RenderMathMLUnderOver::firstLineBaseline() const
6566 RenderBox* base = firstChildBox();
6667 if (!base)
6768 return Optional<int>();
68  Optional<int> baseline = base->firstLineBaseline();
69  if (baseline)
70  baseline.value() += static_cast<int>(base->logicalTop());
71  return baseline;
 69
 70 return Optional<int>(static_cast<int>(lroundf(ascentForChild(*base) + base->logicalTop())));
7271}
7372
74 void RenderMathMLUnderOver::layout()
 73void RenderMathMLUnderOver::computeOperatorsHorizontalStretch()
7574{
7675 LayoutUnit stretchWidth = 0;
7776 Vector<RenderMathMLOperator*, 2> renderOperators;

@@void RenderMathMLUnderOver::layout()
8079 if (child->needsLayout()) {
8180 if (is<RenderMathMLBlock>(child)) {
8281 if (auto renderOperator = downcast<RenderMathMLBlock>(*child).unembellishedOperator()) {
83  if (!renderOperator->isVertical()) {
 82 if (renderOperator->hasOperatorFlag(MathMLOperatorDictionary::Stretchy) && !renderOperator->isVertical()) {
8483 renderOperator->resetStretchSize();
8584 renderOperators.append(renderOperator);
8685 }

@@void RenderMathMLUnderOver::layout()
9998 // Set the sizes of (possibly embellished) stretchy operator children.
10099 for (auto& renderOperator : renderOperators)
101100 renderOperator->stretchTo(stretchWidth);
 101}
 102
 103bool RenderMathMLUnderOver::isValid() const
 104{
 105 // Verify whether the list of children is valid:
 106 // <munder> base under </munder>
 107 // <mover> base over </mover>
 108 // <munderover> base under over </munderover>
 109 RenderBox* child = firstChildBox();
 110 if (!child)
 111 return false;
 112 child = child->nextSiblingBox();
 113 if (!child)
 114 return false;
 115 child = child->nextSiblingBox();
 116 switch (m_kind) {
 117 case Over:
 118 case Under:
 119 return !child;
 120 case UnderOver:
 121 return child && !child->nextSiblingBox();
 122 default:
 123 ASSERT_NOT_REACHED();
 124 return false;
 125 }
 126}
 127
 128RenderBox& RenderMathMLUnderOver::base() const
 129{
 130 ASSERT(isValid());
 131 return *firstChildBox();
 132}
 133
 134RenderBox& RenderMathMLUnderOver::under() const
 135{
 136 ASSERT(isValid());
 137 ASSERT(m_kind == Under || m_kind == UnderOver);
 138 return *firstChildBox()->nextSiblingBox();
 139}
 140
 141RenderBox& RenderMathMLUnderOver::over() const
 142{
 143 ASSERT(isValid());
 144 ASSERT(m_kind == Over || m_kind == UnderOver);
 145 RenderBox* secondChild = firstChildBox()->nextSiblingBox();
 146 return m_kind == Over ? *secondChild : *secondChild->nextSiblingBox();
 147}
 148
 149
 150void RenderMathMLUnderOver::computePreferredLogicalWidths()
 151{
 152 ASSERT(preferredLogicalWidthsDirty());
 153
 154 if (!isValid()) {
 155 m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = 0;
 156 setPreferredLogicalWidthsDirty(false);
 157 return;
 158 }
 159
 160 LayoutUnit preferredWidth = base().maxPreferredLogicalWidth();
 161
 162 if (m_kind == Under || m_kind == UnderOver)
 163 preferredWidth = std::max(preferredWidth, under().maxPreferredLogicalWidth());
 164
 165 if (m_kind == Over || m_kind == UnderOver)
 166 preferredWidth = std::max(preferredWidth, over().maxPreferredLogicalWidth());
102167
103  RenderMathMLBlock::layout();
 168 m_minPreferredLogicalWidth = m_maxPreferredLogicalWidth = preferredWidth;
 169
 170 setPreferredLogicalWidthsDirty(false);
 171}
 172
 173LayoutUnit RenderMathMLUnderOver::horizontalOffset(const RenderBox& child) const
 174{
 175 return (logicalWidth() - child.logicalWidth()) / 2;
 176}
 177
 178void RenderMathMLUnderOver::layoutBlock(bool relayoutChildren, LayoutUnit)
 179{
 180 ASSERT(needsLayout());
 181
 182 if (!relayoutChildren && simplifiedLayout())
 183 return;
 184
 185 if (!isValid()) {
 186 setLogicalWidth(0);
 187 setLogicalHeight(0);
 188 clearNeedsLayout();
 189 return;
 190 }
 191
 192 recomputeLogicalWidth();
 193
 194 computeOperatorsHorizontalStretch();
 195
 196 base().layoutIfNeeded();
 197 if (m_kind == Under || m_kind == UnderOver)
 198 under().layoutIfNeeded();
 199 if (m_kind == Over || m_kind == UnderOver)
 200 over().layoutIfNeeded();
 201
 202 // We set the logical width.
 203 LayoutUnit logicalWidth = base().logicalWidth();
 204 if (m_kind == Under || m_kind == UnderOver)
 205 logicalWidth = std::max(logicalWidth, under().logicalWidth());
 206 if (m_kind == Over || m_kind == UnderOver)
 207 logicalWidth = std::max(logicalWidth, over().logicalWidth());
 208 setLogicalWidth(logicalWidth);
 209
 210 LayoutUnit verticalOffset = 0;
 211 if (m_kind == Over || m_kind == UnderOver) {
 212 over().setLocation(LayoutPoint(horizontalOffset(over()), 0));
 213 verticalOffset += over().logicalHeight();
 214 }
 215 base().setLocation(LayoutPoint(horizontalOffset(base()), verticalOffset));
 216 verticalOffset += base().logicalHeight();
 217 if (m_kind == Under || m_kind == UnderOver) {
 218 under().setLocation(LayoutPoint(horizontalOffset(under()), verticalOffset));
 219 verticalOffset += under().logicalHeight();
 220 }
 221
 222 setLogicalHeight(verticalOffset);
 223
 224 clearNeedsLayout();
 225}
 226
 227void RenderMathMLUnderOver::paintChildren(PaintInfo& paintInfo, const LayoutPoint& paintOffset, PaintInfo& paintInfoForChild, bool usePrintRect)
 228{
 229 for (RenderBox* child = firstChildBox(); child; child = child->nextSiblingBox()) {
 230 if (!paintChild(*child, paintInfo, paintOffset, paintInfoForChild, usePrintRect, PaintAsInlineBlock))
 231 return;
 232 }
104233}
105234
106235}

Source/WebCore/rendering/mathml/RenderMathMLUnderOver.h

11/*
22 * Copyright (C) 2009 Alex Milowski (alex@milowski.com). All rights reserved.
 3 * Copyright (C) 2016 Igalia S.L.
34 *
45 * Redistribution and use in source and binary forms, with or without
56 * modification, are permitted provided that the following conditions

@@public:
3940 RenderMathMLOperator* unembellishedOperator() override;
4041
4142 Optional<int> firstLineBaseline() const override;
42 
43 protected:
44  void layout() override;
 43
 44 void computePreferredLogicalWidths() final;
 45 void layoutBlock(bool relayoutChildren, LayoutUnit pageLogicalHeight = 0) final;
 46 void paintChildren(PaintInfo& forSelf, const LayoutPoint&, PaintInfo& forChild, bool usePrintRect) final;
4547
4648private:
4749 bool isRenderMathMLUnderOver() const override { return true; }
4850 const char* renderName() const override { return "RenderMathMLUnderOver"; }
4951
 52 void computeOperatorsHorizontalStretch();
 53 bool isValid() const;
 54 RenderBox& base() const;
 55 RenderBox& under() const;
 56 RenderBox& over() const;
 57 LayoutUnit horizontalOffset(const RenderBox&) const;
 58
5059 enum UnderOverType { Under, Over, UnderOver };
5160 UnderOverType m_kind;
5261};