dsh-cds-theme 0.0.0-stage → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +624 -3
- package/assets/appearance-icon.svg +4 -0
- package/assets/preview.html +241 -0
- package/client/client.js +5182 -0
- package/cordis.patch.yml +4 -0
- package/icon.svg +7 -0
- package/lib/index.js +79 -0
- package/lib/paste-route.js +333 -0
- package/lib/paste-store.js +130 -0
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +67 -4
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<rect x="2.6" y="2.6" width="10.8" height="10.8" rx="3.2"/>
|
|
3
|
+
<rect x="5.9" y="5.9" width="4.2" height="4.2" rx="1.4"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="zh">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>「主题定制 / Theme」 settings-nav icon · preview</title>
|
|
6
|
+
<style>
|
|
7
|
+
:root { color-scheme: light dark; }
|
|
8
|
+
body {
|
|
9
|
+
margin: 0;
|
|
10
|
+
padding: 40px;
|
|
11
|
+
font: 14px/22px system-ui, -apple-system, "Segoe UI", "PingFang SC", sans-serif;
|
|
12
|
+
background: #f5f5f5;
|
|
13
|
+
color: #151515;
|
|
14
|
+
}
|
|
15
|
+
h1 { font-size: 18px; font-weight: 600; margin: 0 0 4px; }
|
|
16
|
+
p.lead { margin: 0 0 28px; color: #616161; max-width: 800px; }
|
|
17
|
+
h2 { font-size: 14px; font-weight: 600; margin: 30px 0 12px; }
|
|
18
|
+
.mono { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; }
|
|
19
|
+
svg { vertical-align: middle; }
|
|
20
|
+
|
|
21
|
+
.light {
|
|
22
|
+
--page-bg: #fcfcfb; --nav-bg: transparent; --nav-active: #f0efec;
|
|
23
|
+
--nav-fg: #151515; --muted: #767676; --line: #e8e8e8;
|
|
24
|
+
}
|
|
25
|
+
.dark {
|
|
26
|
+
--page-bg: #151515; --nav-bg: transparent; --nav-active: #20201f;
|
|
27
|
+
--nav-fg: #f5f5f5; --muted: #85837e; --line: #2c2c2a;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.panel {
|
|
31
|
+
background: var(--page-bg);
|
|
32
|
+
color: var(--nav-fg);
|
|
33
|
+
border: 1px solid var(--line);
|
|
34
|
+
border-radius: 10px;
|
|
35
|
+
padding: 20px;
|
|
36
|
+
flex: 1;
|
|
37
|
+
min-width: 300px;
|
|
38
|
+
}
|
|
39
|
+
.panel h3 { margin: 0 0 10px; font-size: 12px; font-weight: 500; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; }
|
|
40
|
+
.pair { display: flex; gap: 22px; flex-wrap: wrap; align-items: flex-start; }
|
|
41
|
+
|
|
42
|
+
/* One settings-nav entry, copied from the host's own navCell metrics:
|
|
43
|
+
40px tall, 12px/16px padding, 8px gap, 16px glyph, 14px label. */
|
|
44
|
+
.nav {
|
|
45
|
+
box-sizing: border-box;
|
|
46
|
+
display: flex;
|
|
47
|
+
align-items: center;
|
|
48
|
+
gap: 8px;
|
|
49
|
+
width: 188px;
|
|
50
|
+
height: 40px;
|
|
51
|
+
padding: 9px 16px 9px 12px;
|
|
52
|
+
border-radius: 8px;
|
|
53
|
+
font: 400 14px/22px inherit;
|
|
54
|
+
color: var(--nav-fg);
|
|
55
|
+
background: var(--nav-bg);
|
|
56
|
+
}
|
|
57
|
+
.nav svg { flex: none; }
|
|
58
|
+
.nav span { min-width: 0; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
59
|
+
.nav[data-active="true"] { background: var(--nav-active); }
|
|
60
|
+
|
|
61
|
+
.stack { display: flex; flex-direction: column; gap: 2px; }
|
|
62
|
+
.big { display: flex; align-items: flex-end; gap: 22px; padding: 18px 2px 4px; }
|
|
63
|
+
.big figure { margin: 0; text-align: center; }
|
|
64
|
+
.big figcaption { font-size: 11px; color: var(--muted); margin-top: 6px; }
|
|
65
|
+
.note { color: var(--muted); font-size: 12px; max-width: 640px; margin: 12px 0 0; }
|
|
66
|
+
.note b { color: var(--nav-fg); }
|
|
67
|
+
|
|
68
|
+
.board {
|
|
69
|
+
background: #fff;
|
|
70
|
+
border: 1px solid #e8e8e8;
|
|
71
|
+
border-radius: 10px;
|
|
72
|
+
padding: 20px;
|
|
73
|
+
display: flex;
|
|
74
|
+
gap: 24px;
|
|
75
|
+
align-items: stretch;
|
|
76
|
+
flex-wrap: wrap;
|
|
77
|
+
}
|
|
78
|
+
</style>
|
|
79
|
+
</head>
|
|
80
|
+
<body>
|
|
81
|
+
|
|
82
|
+
<h1>「主题定制 / Theme」 settings-nav icon</h1>
|
|
83
|
+
<p class="lead">
|
|
84
|
+
Drawn for the Claude Design System theme's own settings page, in the host icon set's own language:
|
|
85
|
+
<span class="mono">viewBox="0 0 16 16"</span>, <span class="mono">fill="none"</span>,
|
|
86
|
+
<span class="mono">stroke="currentColor"</span>, <span class="mono">stroke-linecap/linejoin="round"</span>,
|
|
87
|
+
<span class="mono">stroke-width</span> 1.3 (Medium rung) / 1 (Regular rung), <span class="mono">aria-hidden="true"</span>.
|
|
88
|
+
Two nested rounded frames — the outer surface and the shape inside it, concentric. It is the same relation the page's own 同心圆角 rule creates on the menu surface, and it is the one mark in this nav that no host glyph uses: the host ships a gear, a slider row, a knot-ring, a database cylinder and a person.
|
|
89
|
+
</p>
|
|
90
|
+
|
|
91
|
+
<!-- ======================================================= 1. the two rungs -->
|
|
92
|
+
<h2>1. The two rungs, on the real nav backgrounds</h2>
|
|
93
|
+
<div class="board">
|
|
94
|
+
<div class="panel light">
|
|
95
|
+
<h3>Light</h3>
|
|
96
|
+
<div class="stack">
|
|
97
|
+
<div class="nav" data-active="true">
|
|
98
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2.6" y="2.6" width="10.8" height="10.8" rx="3.2"/><rect x="5.9" y="5.9" width="4.2" height="4.2" rx="1.4"/></svg>
|
|
99
|
+
<span>主题定制 · Theme</span>
|
|
100
|
+
</div>
|
|
101
|
+
<div class="nav">
|
|
102
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2.6" y="2.6" width="10.8" height="10.8" rx="3.2"/><rect x="5.9" y="5.9" width="4.2" height="4.2" rx="1.4"/></svg>
|
|
103
|
+
<span>主题定制 · Theme</span>
|
|
104
|
+
</div>
|
|
105
|
+
</div>
|
|
106
|
+
<p class="note">Top: <b>Medium, 1.3</b> — the rung the settings nav actually ships. Bottom: Regular, 1.0.</p>
|
|
107
|
+
<div class="big">
|
|
108
|
+
<figure>
|
|
109
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2.6" y="2.6" width="10.8" height="10.8" rx="3.2"/><rect x="5.9" y="5.9" width="4.2" height="4.2" rx="1.4"/></svg>
|
|
110
|
+
<figcaption>16px</figcaption>
|
|
111
|
+
</figure>
|
|
112
|
+
<figure>
|
|
113
|
+
<svg width="20" height="20" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2.6" y="2.6" width="10.8" height="10.8" rx="3.2"/><rect x="5.9" y="5.9" width="4.2" height="4.2" rx="1.4"/></svg>
|
|
114
|
+
<figcaption>20px</figcaption>
|
|
115
|
+
</figure>
|
|
116
|
+
<figure>
|
|
117
|
+
<svg width="32" height="32" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2.6" y="2.6" width="10.8" height="10.8" rx="3.2"/><rect x="5.9" y="5.9" width="4.2" height="4.2" rx="1.4"/></svg>
|
|
118
|
+
<figcaption>32px (geometry)</figcaption>
|
|
119
|
+
</figure>
|
|
120
|
+
</div>
|
|
121
|
+
</div>
|
|
122
|
+
|
|
123
|
+
<div class="panel dark">
|
|
124
|
+
<h3>Dark</h3>
|
|
125
|
+
<div class="stack">
|
|
126
|
+
<div class="nav" data-active="true">
|
|
127
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2.6" y="2.6" width="10.8" height="10.8" rx="3.2"/><rect x="5.9" y="5.9" width="4.2" height="4.2" rx="1.4"/></svg>
|
|
128
|
+
<span>主题定制 · Theme</span>
|
|
129
|
+
</div>
|
|
130
|
+
<div class="nav">
|
|
131
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2.6" y="2.6" width="10.8" height="10.8" rx="3.2"/><rect x="5.9" y="5.9" width="4.2" height="4.2" rx="1.4"/></svg>
|
|
132
|
+
<span>主题定制 · Theme</span>
|
|
133
|
+
</div>
|
|
134
|
+
</div>
|
|
135
|
+
<p class="note">Pure <span class="mono">currentColor</span>: it takes the nav row's label colour in both palettes.</p>
|
|
136
|
+
<div class="big">
|
|
137
|
+
<figure>
|
|
138
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2.6" y="2.6" width="10.8" height="10.8" rx="3.2"/><rect x="5.9" y="5.9" width="4.2" height="4.2" rx="1.4"/></svg>
|
|
139
|
+
<figcaption>16px</figcaption>
|
|
140
|
+
</figure>
|
|
141
|
+
<figure>
|
|
142
|
+
<svg width="20" height="20" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2.6" y="2.6" width="10.8" height="10.8" rx="3.2"/><rect x="5.9" y="5.9" width="4.2" height="4.2" rx="1.4"/></svg>
|
|
143
|
+
<figcaption>20px</figcaption>
|
|
144
|
+
</figure>
|
|
145
|
+
<figure>
|
|
146
|
+
<svg width="32" height="32" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2.6" y="2.6" width="10.8" height="10.8" rx="3.2"/><rect x="5.9" y="5.9" width="4.2" height="4.2" rx="1.4"/></svg>
|
|
147
|
+
<figcaption>32px</figcaption>
|
|
148
|
+
</figure>
|
|
149
|
+
</div>
|
|
150
|
+
</div>
|
|
151
|
+
</div>
|
|
152
|
+
|
|
153
|
+
<!-- =================================================== 2. before / after -->
|
|
154
|
+
<h2>2. Before / after in the real nav column</h2>
|
|
155
|
+
<div class="board">
|
|
156
|
+
<div class="panel light">
|
|
157
|
+
<h3>Light — nav (188px column)</h3>
|
|
158
|
+
<div class="stack">
|
|
159
|
+
<div class="nav"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round"><circle cx="6" cy="5.4" r="2.1"/><path d="M1 14.2c0-2.4 2.1-3.6 5-3.6s5 1.2 5 3.6"/></svg><span>账户 · Account</span></div>
|
|
160
|
+
<div class="nav"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round"><circle cx="8" cy="8" r="2.1"/><path d="M8 1.6v1.9M8 12.5v1.9M1.6 8h1.9M12.5 8h1.9M3.5 3.5l1.35 1.35M11.15 11.15l1.35 1.35M12.5 3.5l-1.35 1.35M4.85 11.15L3.5 12.5"/></svg><span>通用 · General</span></div>
|
|
161
|
+
<div class="nav" data-active="true"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2.6" y="2.6" width="10.8" height="10.8" rx="3.2"/><rect x="5.9" y="5.9" width="4.2" height="4.2" rx="1.4"/></svg><span>主题定制 · Theme</span></div>
|
|
162
|
+
<div class="nav"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round"><rect x="2" y="2" width="12" height="12" rx="2.5"/><path d="M4.6 10.3V8M8 10.3V5.7M11.4 10.3V7"/></svg><span>模型 · Models</span></div>
|
|
163
|
+
</div>
|
|
164
|
+
<p class="note">
|
|
165
|
+
<b>Before:</b> the theme page showed the same gear as 通用 — the host's fallback branch for a section id it
|
|
166
|
+
does not know. <b>After:</b> only the theme page has this glyph; every other entry keeps its own.
|
|
167
|
+
</p>
|
|
168
|
+
</div>
|
|
169
|
+
|
|
170
|
+
<div class="panel dark">
|
|
171
|
+
<h3>Dark — nav (188px column)</h3>
|
|
172
|
+
<div class="stack">
|
|
173
|
+
<div class="nav"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round"><circle cx="6" cy="5.4" r="2.1"/><path d="M1 14.2c0-2.4 2.1-3.6 5-3.6s5 1.2 5 3.6"/></svg><span>账户 · Account</span></div>
|
|
174
|
+
<div class="nav"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round"><circle cx="8" cy="8" r="2.1"/><path d="M8 1.6v1.9M8 12.5v1.9M1.6 8h1.9M12.5 8h1.9M3.5 3.5l1.35 1.35M11.15 11.15l1.35 1.35M12.5 3.5l-1.35 1.35M4.85 11.15L3.5 12.5"/></svg><span>通用 · General</span></div>
|
|
175
|
+
<div class="nav" data-active="true"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2.6" y="2.6" width="10.8" height="10.8" rx="3.2"/><rect x="5.9" y="5.9" width="4.2" height="4.2" rx="1.4"/></svg><span>主题定制 · Theme</span></div>
|
|
176
|
+
<div class="nav"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round"><rect x="2" y="2" width="12" height="12" rx="2.5"/><path d="M4.6 10.3V8M8 10.3V5.7M11.4 10.3V7"/></svg><span>模型 · Models</span></div>
|
|
177
|
+
</div>
|
|
178
|
+
</div>
|
|
179
|
+
</div>
|
|
180
|
+
|
|
181
|
+
<!-- ===================================================== 3. why this mark -->
|
|
182
|
+
<h2>3. Why this mark</h2>
|
|
183
|
+
<div class="board">
|
|
184
|
+
<div class="panel light" style="flex:1">
|
|
185
|
+
<div class="big" style="padding-top:6px">
|
|
186
|
+
<figure>
|
|
187
|
+
<svg width="40" height="40" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"><rect x="2.6" y="2.6" width="10.8" height="10.8" rx="3.2"/><rect x="5.9" y="5.9" width="4.2" height="4.2" rx="1.4"/></svg>
|
|
188
|
+
<figcaption>ours: nested frames</figcaption>
|
|
189
|
+
</figure>
|
|
190
|
+
<figure>
|
|
191
|
+
<svg width="40" height="40" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"><circle cx="4.97065" cy="7.66401" r="1.35151"/><circle cx="10.6596" cy="12.4091" r="1.35151"/><circle cx="10.6596" cy="3.59101" r="1.35151"/><path d="M3.25 7.16357C3.20417 7.32247 3.17778 7.48993 3.17773 7.66357C3.17773 7.83698 3.20336 8.00486 3.24902 8.16357H1.85742V7.16357H3.25ZM14.1426 8.16357H6.71484C6.76052 8.00485 6.78613 7.837 6.78613 7.66357C6.78609 7.48991 6.75971 7.32249 6.71387 7.16357H14.1426V8.16357ZM9.1377 11.9092C9.08596 12.0666 9.05668 12.2344 9.05664 12.4092C9.05664 12.5838 9.08606 12.7518 9.1377 12.9092H1.85742V11.9092H9.1377ZM14.1426 12.9092H12.1816C12.2332 12.7519 12.2617 12.5838 12.2617 12.4092C12.2617 12.2345 12.2333 12.0666 12.1816 11.9092H14.1426V12.9092ZM9.1123 3.09106C9.06138 3.24865 9.03324 3.41653 9.0332 3.59106C9.0332 3.76549 9.06148 3.93355 9.1123 4.09106H1.85742V3.09106H9.1123ZM14.1426 4.09106H12.207C12.2578 3.93358 12.2861 3.76545 12.2861 3.59106C12.2861 3.41657 12.2579 3.24862 12.207 3.09106H14.1426V4.09106Z"/></svg>
|
|
192
|
+
<figcaption>the 插件 glyph — THE COLLISION (three tracks + knobs)</figcaption>
|
|
193
|
+
</figure>
|
|
194
|
+
<figure>
|
|
195
|
+
<svg width="40" height="40" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round"><circle cx="8" cy="8" r="2.1"/><path d="M8 1.6v1.9M8 12.5v1.9M1.6 8h1.9M12.5 8h1.9M3.5 3.5l1.35 1.35M11.15 11.15l1.35 1.35M12.5 3.5l-1.35 1.35M4.85 11.15L3.5 12.5"/></svg>
|
|
196
|
+
<figcaption>通用: the gear</figcaption>
|
|
197
|
+
</figure>
|
|
198
|
+
<figure>
|
|
199
|
+
<svg width="40" height="40" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round"><circle cx="6" cy="5.4" r="2.1"/><path d="M1 14.2c0-2.4 2.1-3.6 5-3.6s5 1.2 5 3.6"/></svg>
|
|
200
|
+
<figcaption>账户: person</figcaption>
|
|
201
|
+
</figure>
|
|
202
|
+
</div>
|
|
203
|
+
<p class="note">
|
|
204
|
+
<b>Why this shape.</b> The first design was a three-track slider triptych — and the host's own
|
|
205
|
+
<span class="mono">IconPersonalizationOutlineMedium</span>, the glyph for the 插件 entry, is <i>also</i> three
|
|
206
|
+
tracks with round knobs. Two entries in one nav column showed the same sliders, which the user reported twice.
|
|
207
|
+
That motif belongs to 插件 now. The replacement is two nested rounded frames: outer surface, inner shape, equal
|
|
208
|
+
gap, tighter inner corner — the 同心圆角 relation this theme applies to the menu material, and the same
|
|
209
|
+
two-surface idea as the plugin's own list artwork.
|
|
210
|
+
</p>
|
|
211
|
+
<p class="note">
|
|
212
|
+
<b>Why it cannot be confused.</b> Measured against all five shipped nav glyphs (gear, sliders, knot-ring,
|
|
213
|
+
database cylinder, person): every one is built from paths and circles — <b>no rectangles at all</b> across all
|
|
214
|
+
five. A concentric pair of axis-aligned rounded rectangles appears in none of them.
|
|
215
|
+
</p>
|
|
216
|
+
<p class="note">
|
|
217
|
+
<b>Rejected candidates</b>, each rendered at the real 16px rung on both palettes: a palette / swatch-fan (two
|
|
218
|
+
offset chips collapsed into the host's “copy file” glyph; three chips read as dice); a 2×2 swatch grid (read
|
|
219
|
+
as the app-launcher grid); a three-circle palette (read as the “users” glyph above).
|
|
220
|
+
</p>
|
|
221
|
+
</div>
|
|
222
|
+
</div>
|
|
223
|
+
|
|
224
|
+
<!-- ================================================= 4. what the host does -->
|
|
225
|
+
<h2>4. How it gets there</h2>
|
|
226
|
+
<div class="board">
|
|
227
|
+
<div class="panel light" style="flex:1">
|
|
228
|
+
<p class="note" style="margin-top:0">
|
|
229
|
+
The host's <span class="mono">navIcon(id)</span> is a hardcoded if-chain that ends in the gear for any id it
|
|
230
|
+
does not know, so a slot registration cannot supply an icon. The plugin therefore finds the nav button
|
|
231
|
+
structurally — the settings dialog is <span class="mono">[data-shortcut-modal="settings"]</span>, the entry is
|
|
232
|
+
the button whose label span equals our section label — inserts this SVG (marked
|
|
233
|
+
<span class="mono">data-cds-appearance-icon</span>) before the host's own, and hides the host glyph with an
|
|
234
|
+
inline <span class="mono">display: none</span>. Both mutations are undone on dispose; a host whose nav is
|
|
235
|
+
missing or renamed keeps its own gear untouched.
|
|
236
|
+
</p>
|
|
237
|
+
</div>
|
|
238
|
+
</div>
|
|
239
|
+
|
|
240
|
+
</body>
|
|
241
|
+
</html>
|