diff --git a/CHANGELOG.md b/CHANGELOG.md index 8aa30fd036f4..e0355d043a9f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -- Nothing yet! +### Fixed + +- Ensure using `@apply` with utilities that use `@defaults` works with rules defined in the base layer when using `optimizeUniversalDefaults` ([#14427](https://github.com/tailwindlabs/tailwindcss/pull/14427)) ## [3.4.11] - 2024-09-11 diff --git a/src/lib/expandTailwindAtRules.js b/src/lib/expandTailwindAtRules.js index ab2f7f7ad865..459444919346 100644 --- a/src/lib/expandTailwindAtRules.js +++ b/src/lib/expandTailwindAtRules.js @@ -192,7 +192,7 @@ export default function expandTailwindAtRules(context) { if (layerNodes.base) { layerNodes.base.before( - cloneNodes([...baseNodes, ...defaultNodes], layerNodes.base.source, { + cloneNodes([...defaultNodes, ...baseNodes], layerNodes.base.source, { layer: 'base', }) ) diff --git a/src/lib/resolveDefaultsAtRules.js b/src/lib/resolveDefaultsAtRules.js index 621cdaf6f765..71ca28a13b21 100644 --- a/src/lib/resolveDefaultsAtRules.js +++ b/src/lib/resolveDefaultsAtRules.js @@ -118,22 +118,20 @@ export default function resolveDefaultsAtRules({ tailwindConfig }) { } } - if (flagEnabled(tailwindConfig, 'optimizeUniversalDefaults')) { - if (selectorGroups.size === 0) { - universal.remove() - continue - } + if (selectorGroups.size === 0) { + universal.remove() + continue + } - for (let [, selectors] of selectorGroups) { - let universalRule = postcss.rule({ - source: universal.source, - }) + for (let [, selectors] of selectorGroups) { + let universalRule = postcss.rule({ + source: universal.source, + }) - universalRule.selectors = [...selectors] + universalRule.selectors = [...selectors] - universalRule.append(universal.nodes.map((node) => node.clone())) - universal.before(universalRule) - } + universalRule.append(universal.nodes.map((node) => node.clone())) + universal.before(universalRule) } universal.remove() diff --git a/tests/apply.test.js b/tests/apply.test.js index db4ffee1f5b1..6576241bfdeb 100644 --- a/tests/apply.test.js +++ b/tests/apply.test.js @@ -1640,6 +1640,7 @@ it('apply partitioning works with media queries', async () => { const result = await run(input, config) expect(result.css).toMatchFormattedCss(css` + ${defaults} html, body { --tw-text-opacity: 1; @@ -1654,7 +1655,6 @@ it('apply partitioning works with media queries', async () => { font-size: 2rem; } } - ${defaults} `) }) diff --git a/tests/basic-usage.test.js b/tests/basic-usage.test.js index df41b849c582..a65db81e24d4 100644 --- a/tests/basic-usage.test.js +++ b/tests/basic-usage.test.js @@ -460,11 +460,11 @@ it('does not produce duplicate output when seeing variants preceding a wildcard * { color: #00f; } + ${defaults} .combined, * { color: red; } - ${defaults} .underline { text-decoration-line: underline; } diff --git a/tests/collapse-adjacent-rules.test.js b/tests/collapse-adjacent-rules.test.js index 69c471686536..81411b02ec5e 100644 --- a/tests/collapse-adjacent-rules.test.js +++ b/tests/collapse-adjacent-rules.test.js @@ -70,6 +70,7 @@ test('collapse adjacent rules', () => { return run(input, config).then((result) => { expect(result.css).toMatchFormattedCss(css` + ${defaults} @font-face { font-family: Poppins; src: url('/fonts/Poppins.woff2') format('woff2'), url('/fonts/Poppins.woff') format('woff'); @@ -79,7 +80,6 @@ test('collapse adjacent rules', () => { src: url('/fonts/ProximaNova.woff2') format('woff2'), url('/fonts/ProximaNova.woff') format('woff'); } - ${defaults} @font-face { font-family: Inter; src: url('/fonts/Inter.woff2') format('woff2'), url('/fonts/Inter.woff') format('woff'); diff --git a/tests/combined-selectors.test.js b/tests/combined-selectors.test.js index b3e8a333f320..32a5adeb320d 100644 --- a/tests/combined-selectors.test.js +++ b/tests/combined-selectors.test.js @@ -25,6 +25,7 @@ it('should generate the partial selector, if only a partial is used (base layer) return run(input, config).then((result) => { return expect(result.css).toMatchFormattedCss(css` + ${defaults} :root { font-weight: bold; } @@ -32,7 +33,6 @@ it('should generate the partial selector, if only a partial is used (base layer) .a { color: #000; } - ${defaults} `) }) }) diff --git a/tests/custom-plugins.test.js b/tests/custom-plugins.test.js index 0f45e98235f6..d1ae598e5efb 100644 --- a/tests/custom-plugins.test.js +++ b/tests/custom-plugins.test.js @@ -239,13 +239,13 @@ test('plugins can add base styles with object syntax', () => { return run('@tailwind base', config).then((result) => { expect(result.css).toMatchFormattedCss(css` + ${defaults} img { max-width: 100%; } button { font-family: inherit; } - ${defaults} `) }) }) @@ -280,13 +280,13 @@ test('plugins can add base styles with raw PostCSS nodes', () => { return run('@tailwind base', config).then((result) => { expect(result.css).toMatchFormattedCss(css` + ${defaults} img { max-width: 100%; } button { font-family: inherit; } - ${defaults} `) }) }) diff --git a/tests/import-syntax.test.js b/tests/import-syntax.test.js index 99f5163f7306..a0f38c3fe777 100644 --- a/tests/import-syntax.test.js +++ b/tests/import-syntax.test.js @@ -33,10 +33,10 @@ test('using @import instead of @tailwind', () => { return run(input, config).then((result) => { expect(result.css).toMatchFormattedCss(css` + ${defaults} h1 { font-size: 32px; } - ${defaults} .container { width: 100%; } diff --git a/tests/kitchen-sink.test.js b/tests/kitchen-sink.test.js index cd23e2b2fbae..e37fc5164e6b 100644 --- a/tests/kitchen-sink.test.js +++ b/tests/kitchen-sink.test.js @@ -352,6 +352,7 @@ test('it works', () => { } } } + ${defaults} h1 { font-size: 1.5rem; font-weight: 700; @@ -362,7 +363,6 @@ test('it works', () => { div { background: #654321; } - ${defaults} .container { width: 100%; } diff --git a/tests/layer-at-rules.test.js b/tests/layer-at-rules.test.js index 1c4604835f09..d026099292ad 100644 --- a/tests/layer-at-rules.test.js +++ b/tests/layer-at-rules.test.js @@ -90,12 +90,12 @@ test('comments can be used inside layers without crashing', () => { return run(input, config).then((result) => { expect(result.css).toMatchFormattedCss(css` + ${defaults} div { background-color: #bada55; } - ${defaults} .important-component, - .important-utility { + .important-utility { text-align: banana; } `) @@ -144,10 +144,10 @@ test('comments can be used inside layers (with important) without crashing', () return run(input, config).then((result) => { expect(result.css).toMatchFormattedCss(css` + ${defaults} div { background-color: #bada55; } - ${defaults} .important-component { text-align: banana; } @@ -245,6 +245,7 @@ test('layers are grouped and inserted at the matching @tailwind rule', () => { font-weight: medium; } } + ${defaults} body { margin: 0; } @@ -254,7 +255,6 @@ test('layers are grouped and inserted at the matching @tailwind rule', () => { p { font-weight: normal; } - ${defaults} .input { background: #fff; } diff --git a/tests/resolve-defaults-at-rules.test.js b/tests/resolve-defaults-at-rules.test.js index 72e1bfb6e586..d8d7d2a22d95 100644 --- a/tests/resolve-defaults-at-rules.test.js +++ b/tests/resolve-defaults-at-rules.test.js @@ -770,6 +770,44 @@ test('no defaults and apply without @tailwind base', () => { }) }) +test('apply to rule in base layer puts defaults first with optimizeUniversalDefaults', () => { + let config = { + experimental: { optimizeUniversalDefaults: true }, + content: [{ raw: html`
` }], + corePlugins: ['boxShadow'], + } + + // Optimize universal defaults doesn't work well with isolated modules + // We require you to use @tailwind base to inject the defaults + let input = css` + @tailwind base; + @tailwind components; + @tailwind utilities; + + @layer base { + input { + @apply shadow; + } + } + ` + + return run(input, config).then((result) => { + return expect(result.css).toMatchFormattedCss(css` + input { + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), + 0 1px 2px -1px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), + var(--tw-shadow); + } + `) + }) +}) + test('optimize universal defaults groups :has separately', () => { let config = { experimental: { optimizeUniversalDefaults: true }, diff --git a/tests/source-maps.test.js b/tests/source-maps.test.js index 713e6d7fe328..45edbb70cd1e 100644 --- a/tests/source-maps.test.js +++ b/tests/source-maps.test.js @@ -83,331 +83,330 @@ test('preflight + base have source maps', async () => { expect(annotations).toEqual([ '2:4 -> 1:0', - '2:18-4 -> 3:1-2', - '2:18 -> 6:1', - '2:4 -> 8:0', - '2:4-18 -> 11:2-32', - '2:4-18 -> 12:2-25', - '2:4-18 -> 13:2-29', - '2:4-18 -> 14:2-31', - '2:18 -> 15:0', - '2:4 -> 17:0', - '2:4-18 -> 19:2-18', - '2:18 -> 20:0', - '2:4 -> 22:0', - '2:18 -> 30:1', - '2:4 -> 32:0', - '2:4-18 -> 34:2-26', - '2:4-18 -> 35:2-40', - '2:4-18 -> 36:2-26', - '2:4-18 -> 37:2-21', - '2:4-18 -> 38:2-137', - '2:4-18 -> 39:2-39', - '2:4-18 -> 40:2-41', - '2:4-18 -> 41:2-50', - '2:18 -> 42:0', - '2:4 -> 44:0', - '2:18 -> 47:1', - '2:4 -> 49:0', - '2:4-18 -> 50:2-19', - '2:4-18 -> 51:2-30', - '2:18 -> 52:0', - '2:4 -> 54:0', - '2:18 -> 58:1', - '2:4 -> 60:0', - '2:4-18 -> 61:2-19', - '2:4-18 -> 62:2-24', - '2:4-18 -> 63:2-31', - '2:18 -> 64:0', - '2:4 -> 66:0', - '2:18 -> 68:1', - '2:4 -> 70:0', - '2:4-18 -> 71:2-35', - '2:18 -> 72:0', - '2:4 -> 74:0', - '2:18 -> 76:1', - '2:4 -> 78:0', - '2:4-18 -> 84:2-20', - '2:4-18 -> 85:2-22', - '2:18 -> 86:0', - '2:4 -> 88:0', - '2:18 -> 90:1', - '2:4 -> 92:0', - '2:4-18 -> 93:2-16', - '2:4-18 -> 94:2-26', - '2:18 -> 95:0', - '2:4 -> 97:0', - '2:18 -> 99:1', - '2:4 -> 101:0', - '2:4-18 -> 103:2-21', - '2:18 -> 104:0', - '2:4 -> 106:0', - '2:18 -> 111:1', - '2:4 -> 113:0', - '2:4-18 -> 117:2-121', - '2:4-18 -> 118:2-39', - '2:4-18 -> 119:2-41', - '2:4-18 -> 120:2-24', + '2:4-18 -> 2:2-26', + '2:4-18 -> 3:2-26', + '2:4-18 -> 4:2-21', + '2:4-18 -> 5:2-21', + '2:4-18 -> 6:2-16', + '2:4-18 -> 7:2-16', + '2:4-18 -> 8:2-16', + '2:4-18 -> 9:2-17', + '2:4-18 -> 10:2-17', + '2:4-18 -> 11:2-15', + '2:4-18 -> 12:2-15', + '2:4-18 -> 13:2-20', + '2:4-18 -> 14:2-40', + '2:4-18 -> 15:2-32', + '2:4-18 -> 16:2-31', + '2:4-18 -> 17:2-30', + '2:4-18 -> 18:2-17', + '2:4-18 -> 19:2-22', + '2:4-18 -> 20:2-24', + '2:4-18 -> 21:2-25', + '2:4-18 -> 22:2-26', + '2:4-18 -> 23:2-20', + '2:4-18 -> 24:2-29', + '2:4-18 -> 25:2-30', + '2:4-18 -> 26:2-40', + '2:4-18 -> 27:2-36', + '2:4-18 -> 28:2-29', + '2:4-18 -> 29:2-24', + '2:4-18 -> 30:2-32', + '2:4-18 -> 31:2-14', + '2:4-18 -> 32:2-20', + '2:4-18 -> 33:2-18', + '2:4-18 -> 34:2-19', + '2:4-18 -> 35:2-20', + '2:4-18 -> 36:2-16', + '2:4-18 -> 37:2-18', + '2:4-18 -> 38:2-15', + '2:4-18 -> 39:2-21', + '2:4-18 -> 40:2-23', + '2:4-18 -> 41:2-29', + '2:4-18 -> 42:2-27', + '2:4-18 -> 43:2-28', + '2:4-18 -> 44:2-29', + '2:4-18 -> 45:2-25', + '2:4-18 -> 46:2-26', + '2:4-18 -> 47:2-27', + '2:4-18 -> 48:2-24', + '2:4-18 -> 49:2-22', + '2:4-18 -> 50:2-24', + '2:4-18 -> 51:2-23', + '2:4 -> 52:2', + '2:18 -> 53:0', + '2:4 -> 55:0', + '2:4-18 -> 56:2-26', + '2:4-18 -> 57:2-26', + '2:4-18 -> 58:2-21', + '2:4-18 -> 59:2-21', + '2:4-18 -> 60:2-16', + '2:4-18 -> 61:2-16', + '2:4-18 -> 62:2-16', + '2:4-18 -> 63:2-17', + '2:4-18 -> 64:2-17', + '2:4-18 -> 65:2-15', + '2:4-18 -> 66:2-15', + '2:4-18 -> 67:2-20', + '2:4-18 -> 68:2-40', + '2:4-18 -> 69:2-32', + '2:4-18 -> 70:2-31', + '2:4-18 -> 71:2-30', + '2:4-18 -> 72:2-17', + '2:4-18 -> 73:2-22', + '2:4-18 -> 74:2-24', + '2:4-18 -> 75:2-25', + '2:4-18 -> 76:2-26', + '2:4-18 -> 77:2-20', + '2:4-18 -> 78:2-29', + '2:4-18 -> 79:2-30', + '2:4-18 -> 80:2-40', + '2:4-18 -> 81:2-36', + '2:4-18 -> 82:2-29', + '2:4-18 -> 83:2-24', + '2:4-18 -> 84:2-32', + '2:4-18 -> 85:2-14', + '2:4-18 -> 86:2-20', + '2:4-18 -> 87:2-18', + '2:4-18 -> 88:2-19', + '2:4-18 -> 89:2-20', + '2:4-18 -> 90:2-16', + '2:4-18 -> 91:2-18', + '2:4-18 -> 92:2-15', + '2:4-18 -> 93:2-21', + '2:4-18 -> 94:2-23', + '2:4-18 -> 95:2-29', + '2:4-18 -> 96:2-27', + '2:4-18 -> 97:2-28', + '2:4-18 -> 98:2-29', + '2:4-18 -> 99:2-25', + '2:4-18 -> 100:2-26', + '2:4-18 -> 101:2-27', + '2:4-18 -> 102:2-24', + '2:4-18 -> 103:2-22', + '2:4-18 -> 104:2-24', + '2:4-18 -> 105:2-23', + '2:4 -> 106:2', + '2:18-4 -> 107:0-1', + '2:18-4 -> 109:1-2', + '2:18 -> 112:1', + '2:4 -> 114:0', + '2:4-18 -> 117:2-32', + '2:4-18 -> 118:2-25', + '2:4-18 -> 119:2-29', + '2:4-18 -> 120:2-31', '2:18 -> 121:0', '2:4 -> 123:0', - '2:18 -> 125:1', - '2:4 -> 127:0', - '2:4-18 -> 128:2-16', - '2:18 -> 129:0', - '2:4 -> 131:0', - '2:18 -> 133:1', - '2:4 -> 135:0', - '2:4-18 -> 137:2-16', - '2:4-18 -> 138:2-16', - '2:4-18 -> 139:2-20', + '2:4-18 -> 125:2-18', + '2:18 -> 126:0', + '2:4 -> 128:0', + '2:18 -> 136:1', + '2:4 -> 138:0', '2:4-18 -> 140:2-26', - '2:18 -> 141:0', - '2:4 -> 143:0', - '2:4-18 -> 144:2-17', - '2:18 -> 145:0', - '2:4 -> 147:0', - '2:4-18 -> 148:2-13', - '2:18 -> 149:0', - '2:4 -> 151:0', - '2:18 -> 155:1', - '2:4 -> 157:0', - '2:4-18 -> 158:2-24', - '2:4-18 -> 159:2-31', - '2:4-18 -> 160:2-35', - '2:18 -> 161:0', - '2:4 -> 163:0', - '2:18 -> 167:1', - '2:4 -> 169:0', - '2:4-18 -> 174:2-30', - '2:4-18 -> 175:2-40', - '2:4-18 -> 176:2-42', - '2:4-18 -> 177:2-25', - '2:4-18 -> 178:2-30', - '2:4-18 -> 179:2-30', - '2:4-18 -> 180:2-33', - '2:4-18 -> 181:2-24', - '2:4-18 -> 182:2-19', - '2:4-18 -> 183:2-20', - '2:18 -> 184:0', - '2:4 -> 186:0', - '2:18 -> 188:1', - '2:4 -> 190:0', - '2:4-18 -> 192:2-22', - '2:18 -> 193:0', - '2:4 -> 195:0', - '2:18 -> 198:1', - '2:4 -> 200:0', - '2:4-18 -> 204:2-36', - '2:4-18 -> 205:2-39', - '2:4-18 -> 206:2-32', - '2:18 -> 207:0', - '2:4 -> 209:0', - '2:18 -> 211:1', - '2:4 -> 213:0', - '2:4-18 -> 214:2-15', - '2:18 -> 215:0', - '2:4 -> 217:0', - '2:18 -> 219:1', - '2:4 -> 221:0', - '2:4-18 -> 222:2-18', - '2:18 -> 223:0', - '2:4 -> 225:0', - '2:18 -> 227:1', + '2:4-18 -> 141:2-40', + '2:4-18 -> 142:2-26', + '2:4-18 -> 143:2-21', + '2:4-18 -> 144:2-137', + '2:4-18 -> 145:2-39', + '2:4-18 -> 146:2-41', + '2:4-18 -> 147:2-50', + '2:18 -> 148:0', + '2:4 -> 150:0', + '2:18 -> 153:1', + '2:4 -> 155:0', + '2:4-18 -> 156:2-19', + '2:4-18 -> 157:2-30', + '2:18 -> 158:0', + '2:4 -> 160:0', + '2:18 -> 164:1', + '2:4 -> 166:0', + '2:4-18 -> 167:2-19', + '2:4-18 -> 168:2-24', + '2:4-18 -> 169:2-31', + '2:18 -> 170:0', + '2:4 -> 172:0', + '2:18 -> 174:1', + '2:4 -> 176:0', + '2:4-18 -> 177:2-35', + '2:18 -> 178:0', + '2:4 -> 180:0', + '2:18 -> 182:1', + '2:4 -> 184:0', + '2:4-18 -> 190:2-20', + '2:4-18 -> 191:2-22', + '2:18 -> 192:0', + '2:4 -> 194:0', + '2:18 -> 196:1', + '2:4 -> 198:0', + '2:4-18 -> 199:2-16', + '2:4-18 -> 200:2-26', + '2:18 -> 201:0', + '2:4 -> 203:0', + '2:18 -> 205:1', + '2:4 -> 207:0', + '2:4-18 -> 209:2-21', + '2:18 -> 210:0', + '2:4 -> 212:0', + '2:18 -> 217:1', + '2:4 -> 219:0', + '2:4-18 -> 223:2-121', + '2:4-18 -> 224:2-39', + '2:4-18 -> 225:2-41', + '2:4-18 -> 226:2-24', + '2:18 -> 227:0', '2:4 -> 229:0', - '2:4-18 -> 230:2-26', - '2:18 -> 231:0', + '2:18 -> 231:1', '2:4 -> 233:0', - '2:18 -> 235:1', + '2:4-18 -> 234:2-16', + '2:18 -> 235:0', '2:4 -> 237:0', - '2:4-18 -> 239:2-14', - '2:18 -> 240:0', - '2:4 -> 242:0', - '2:18 -> 245:1', - '2:4 -> 247:0', - '2:4-18 -> 248:2-39', - '2:4-18 -> 249:2-30', - '2:18 -> 250:0', - '2:4 -> 252:0', - '2:18 -> 254:1', - '2:4 -> 256:0', - '2:4-18 -> 257:2-26', - '2:18 -> 258:0', - '2:4 -> 260:0', - '2:18 -> 263:1', - '2:4 -> 265:0', - '2:4-18 -> 266:2-36', - '2:4-18 -> 267:2-23', - '2:18 -> 268:0', - '2:4 -> 270:0', - '2:18 -> 272:1', - '2:4 -> 274:0', - '2:4-18 -> 275:2-20', - '2:18 -> 276:0', - '2:4 -> 278:0', - '2:18 -> 280:1', - '2:4 -> 282:0', - '2:4-18 -> 295:2-11', - '2:18 -> 296:0', - '2:4 -> 298:0', - '2:4-18 -> 299:2-11', - '2:4-18 -> 300:2-12', - '2:18 -> 301:0', - '2:4 -> 303:0', - '2:4-18 -> 304:2-12', - '2:18 -> 305:0', - '2:4 -> 307:0', - '2:4-18 -> 310:2-18', - '2:4-18 -> 311:2-11', - '2:4-18 -> 312:2-12', + '2:18 -> 239:1', + '2:4 -> 241:0', + '2:4-18 -> 243:2-16', + '2:4-18 -> 244:2-16', + '2:4-18 -> 245:2-20', + '2:4-18 -> 246:2-26', + '2:18 -> 247:0', + '2:4 -> 249:0', + '2:4-18 -> 250:2-17', + '2:18 -> 251:0', + '2:4 -> 253:0', + '2:4-18 -> 254:2-13', + '2:18 -> 255:0', + '2:4 -> 257:0', + '2:18 -> 261:1', + '2:4 -> 263:0', + '2:4-18 -> 264:2-24', + '2:4-18 -> 265:2-31', + '2:4-18 -> 266:2-35', + '2:18 -> 267:0', + '2:4 -> 269:0', + '2:18 -> 273:1', + '2:4 -> 275:0', + '2:4-18 -> 280:2-30', + '2:4-18 -> 281:2-40', + '2:4-18 -> 282:2-42', + '2:4-18 -> 283:2-25', + '2:4-18 -> 284:2-30', + '2:4-18 -> 285:2-30', + '2:4-18 -> 286:2-33', + '2:4-18 -> 287:2-24', + '2:4-18 -> 288:2-19', + '2:4-18 -> 289:2-20', + '2:18 -> 290:0', + '2:4 -> 292:0', + '2:18 -> 294:1', + '2:4 -> 296:0', + '2:4-18 -> 298:2-22', + '2:18 -> 299:0', + '2:4 -> 301:0', + '2:18 -> 304:1', + '2:4 -> 306:0', + '2:4-18 -> 310:2-36', + '2:4-18 -> 311:2-39', + '2:4-18 -> 312:2-32', '2:18 -> 313:0', '2:4 -> 315:0', '2:18 -> 317:1', - '2:4 -> 318:0', - '2:4-18 -> 319:2-12', - '2:18 -> 320:0', - '2:4 -> 322:0', - '2:18 -> 324:1', - '2:4 -> 326:0', - '2:4-18 -> 327:2-18', - '2:18 -> 328:0', - '2:4 -> 330:0', + '2:4 -> 319:0', + '2:4-18 -> 320:2-15', + '2:18 -> 321:0', + '2:4 -> 323:0', + '2:18 -> 325:1', + '2:4 -> 327:0', + '2:4-18 -> 328:2-18', + '2:18 -> 329:0', + '2:4 -> 331:0', '2:18 -> 333:1', '2:4 -> 335:0', - '2:4-18 -> 337:2-20', - '2:4-18 -> 338:2-24', - '2:18 -> 339:0', - '2:4 -> 341:0', - '2:18 -> 343:1', - '2:4 -> 345:0', - '2:4-18 -> 347:2-17', - '2:18 -> 348:0', - '2:4 -> 350:0', - '2:18 -> 352:1', + '2:4-18 -> 336:2-26', + '2:18 -> 337:0', + '2:4 -> 339:0', + '2:18 -> 341:1', + '2:4 -> 343:0', + '2:4-18 -> 345:2-14', + '2:18 -> 346:0', + '2:4 -> 348:0', + '2:18 -> 351:1', '2:4 -> 353:0', - '2:4-18 -> 354:2-17', - '2:18 -> 355:0', - '2:4 -> 357:0', - '2:18 -> 361:1', - '2:4 -> 363:0', - '2:4-18 -> 371:2-24', - '2:4-18 -> 372:2-32', - '2:18 -> 373:0', - '2:4 -> 375:0', - '2:18 -> 377:1', - '2:4 -> 379:0', - '2:4-18 -> 381:2-17', - '2:4-18 -> 382:2-14', - '2:18 -> 383:0', - '2:4-18 -> 385:0-72', - '2:4 -> 386:0', - '2:4-18 -> 387:2-15', - '2:18 -> 388:0', - '2:4 -> 390:0', - '2:4-18 -> 391:2-26', - '2:4-18 -> 392:2-26', - '2:4-18 -> 393:2-21', - '2:4-18 -> 394:2-21', - '2:4-18 -> 395:2-16', - '2:4-18 -> 396:2-16', - '2:4-18 -> 397:2-16', - '2:4-18 -> 398:2-17', - '2:4-18 -> 399:2-17', - '2:4-18 -> 400:2-15', - '2:4-18 -> 401:2-15', - '2:4-18 -> 402:2-20', - '2:4-18 -> 403:2-40', - '2:4-18 -> 404:2-32', - '2:4-18 -> 405:2-31', - '2:4-18 -> 406:2-30', - '2:4-18 -> 407:2-17', - '2:4-18 -> 408:2-22', - '2:4-18 -> 409:2-24', - '2:4-18 -> 410:2-25', - '2:4-18 -> 411:2-26', - '2:4-18 -> 412:2-20', - '2:4-18 -> 413:2-29', - '2:4-18 -> 414:2-30', - '2:4-18 -> 415:2-40', - '2:4-18 -> 416:2-36', - '2:4-18 -> 417:2-29', - '2:4-18 -> 418:2-24', - '2:4-18 -> 419:2-32', - '2:4-18 -> 420:2-14', - '2:4-18 -> 421:2-20', - '2:4-18 -> 422:2-18', - '2:4-18 -> 423:2-19', - '2:4-18 -> 424:2-20', - '2:4-18 -> 425:2-16', - '2:4-18 -> 426:2-18', - '2:4-18 -> 427:2-15', - '2:4-18 -> 428:2-21', - '2:4-18 -> 429:2-23', - '2:4-18 -> 430:2-29', - '2:4-18 -> 431:2-27', - '2:4-18 -> 432:2-28', - '2:4-18 -> 433:2-29', - '2:4-18 -> 434:2-25', - '2:4-18 -> 435:2-26', - '2:4-18 -> 436:2-27', - '2:4-18 -> 437:2-24', - '2:4-18 -> 438:2-22', - '2:4-18 -> 439:2-24', - '2:4-18 -> 440:2-23', - '2:4 -> 441:2', - '2:18 -> 442:0', - '2:4 -> 444:0', - '2:4-18 -> 445:2-26', - '2:4-18 -> 446:2-26', - '2:4-18 -> 447:2-21', - '2:4-18 -> 448:2-21', - '2:4-18 -> 449:2-16', - '2:4-18 -> 450:2-16', - '2:4-18 -> 451:2-16', - '2:4-18 -> 452:2-17', + '2:4-18 -> 354:2-39', + '2:4-18 -> 355:2-30', + '2:18 -> 356:0', + '2:4 -> 358:0', + '2:18 -> 360:1', + '2:4 -> 362:0', + '2:4-18 -> 363:2-26', + '2:18 -> 364:0', + '2:4 -> 366:0', + '2:18 -> 369:1', + '2:4 -> 371:0', + '2:4-18 -> 372:2-36', + '2:4-18 -> 373:2-23', + '2:18 -> 374:0', + '2:4 -> 376:0', + '2:18 -> 378:1', + '2:4 -> 380:0', + '2:4-18 -> 381:2-20', + '2:18 -> 382:0', + '2:4 -> 384:0', + '2:18 -> 386:1', + '2:4 -> 388:0', + '2:4-18 -> 401:2-11', + '2:18 -> 402:0', + '2:4 -> 404:0', + '2:4-18 -> 405:2-11', + '2:4-18 -> 406:2-12', + '2:18 -> 407:0', + '2:4 -> 409:0', + '2:4-18 -> 410:2-12', + '2:18 -> 411:0', + '2:4 -> 413:0', + '2:4-18 -> 416:2-18', + '2:4-18 -> 417:2-11', + '2:4-18 -> 418:2-12', + '2:18 -> 419:0', + '2:4 -> 421:0', + '2:18 -> 423:1', + '2:4 -> 424:0', + '2:4-18 -> 425:2-12', + '2:18 -> 426:0', + '2:4 -> 428:0', + '2:18 -> 430:1', + '2:4 -> 432:0', + '2:4-18 -> 433:2-18', + '2:18 -> 434:0', + '2:4 -> 436:0', + '2:18 -> 439:1', + '2:4 -> 441:0', + '2:4-18 -> 443:2-20', + '2:4-18 -> 444:2-24', + '2:18 -> 445:0', + '2:4 -> 447:0', + '2:18 -> 449:1', + '2:4 -> 451:0', '2:4-18 -> 453:2-17', - '2:4-18 -> 454:2-15', - '2:4-18 -> 455:2-15', - '2:4-18 -> 456:2-20', - '2:4-18 -> 457:2-40', - '2:4-18 -> 458:2-32', - '2:4-18 -> 459:2-31', - '2:4-18 -> 460:2-30', - '2:4-18 -> 461:2-17', - '2:4-18 -> 462:2-22', - '2:4-18 -> 463:2-24', - '2:4-18 -> 464:2-25', - '2:4-18 -> 465:2-26', - '2:4-18 -> 466:2-20', - '2:4-18 -> 467:2-29', - '2:4-18 -> 468:2-30', - '2:4-18 -> 469:2-40', - '2:4-18 -> 470:2-36', - '2:4-18 -> 471:2-29', - '2:4-18 -> 472:2-24', - '2:4-18 -> 473:2-32', - '2:4-18 -> 474:2-14', - '2:4-18 -> 475:2-20', - '2:4-18 -> 476:2-18', - '2:4-18 -> 477:2-19', - '2:4-18 -> 478:2-20', - '2:4-18 -> 479:2-16', - '2:4-18 -> 480:2-18', - '2:4-18 -> 481:2-15', - '2:4-18 -> 482:2-21', - '2:4-18 -> 483:2-23', - '2:4-18 -> 484:2-29', - '2:4-18 -> 485:2-27', - '2:4-18 -> 486:2-28', - '2:4-18 -> 487:2-29', - '2:4-18 -> 488:2-25', - '2:4-18 -> 489:2-26', - '2:4-18 -> 490:2-27', - '2:4-18 -> 491:2-24', - '2:4-18 -> 492:2-22', - '2:4-18 -> 493:2-24', - '2:4-18 -> 494:2-23', - '2:4 -> 495:2', - '2:18 -> 496:0', + '2:18 -> 454:0', + '2:4 -> 456:0', + '2:18 -> 458:1', + '2:4 -> 459:0', + '2:4-18 -> 460:2-17', + '2:18 -> 461:0', + '2:4 -> 463:0', + '2:18 -> 467:1', + '2:4 -> 469:0', + '2:4-18 -> 477:2-24', + '2:4-18 -> 478:2-32', + '2:18 -> 479:0', + '2:4 -> 481:0', + '2:18 -> 483:1', + '2:4 -> 485:0', + '2:4-18 -> 487:2-17', + '2:4-18 -> 488:2-14', + '2:18 -> 489:0', + '2:4-18 -> 491:0-72', + '2:4 -> 492:0', + '2:4-18 -> 493:2-15', + '2:18 -> 494:0', ]) })