flinventory 2.1.7__tar.gz → 2.2.2__tar.gz

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.
Files changed (25) hide show
  1. {flinventory-2.1.7 → flinventory-2.2.2}/PKG-INFO +1 -1
  2. {flinventory-2.1.7 → flinventory-2.2.2}/flinventory/labelprinter_typst.py +38 -24
  3. {flinventory-2.1.7 → flinventory-2.2.2}/flinventory/location.py +2 -1
  4. {flinventory-2.1.7 → flinventory-2.2.2}/flinventory/sign.py +2 -0
  5. {flinventory-2.1.7 → flinventory-2.2.2}/flinventory/thingtemplate_typst/label.typ +38 -11
  6. flinventory-2.2.2/flinventory/thingtemplate_typst/out/bowdenzugklemmung1.svg +267 -0
  7. flinventory-2.2.2/flinventory/thingtemplate_typst/out/things.log +6 -0
  8. {flinventory-2.1.7 → flinventory-2.2.2}/pyproject.toml +1 -1
  9. {flinventory-2.1.7 → flinventory-2.2.2}/LICENSE +0 -0
  10. {flinventory-2.1.7 → flinventory-2.2.2}/README.md +0 -0
  11. {flinventory-2.1.7 → flinventory-2.2.2}/flinventory/__init__.py +0 -0
  12. {flinventory-2.1.7 → flinventory-2.2.2}/flinventory/__main__.py +0 -0
  13. {flinventory-2.1.7 → flinventory-2.2.2}/flinventory/box.py +0 -0
  14. {flinventory-2.1.7 → flinventory-2.2.2}/flinventory/constant.py +0 -0
  15. {flinventory-2.1.7 → flinventory-2.2.2}/flinventory/datacleanup.py +0 -0
  16. {flinventory-2.1.7 → flinventory-2.2.2}/flinventory/defaulted_data.py +0 -0
  17. {flinventory-2.1.7 → flinventory-2.2.2}/flinventory/font_location.py +0 -0
  18. {flinventory-2.1.7 → flinventory-2.2.2}/flinventory/generate_labels.py +0 -0
  19. {flinventory-2.1.7 → flinventory-2.2.2}/flinventory/inventory_io.py +0 -0
  20. {flinventory-2.1.7 → flinventory-2.2.2}/flinventory/signprinter_latex.py +0 -0
  21. {flinventory-2.1.7 → flinventory-2.2.2}/flinventory/thing.py +0 -0
  22. {flinventory-2.1.7 → flinventory-2.2.2}/flinventory/thingtemplate_typst/dummyImage.jpg +0 -0
  23. {flinventory-2.1.7 → flinventory-2.2.2}/flinventory/thingtemplate_typst/thinglist.typ +0 -0
  24. {flinventory-2.1.7 → flinventory-2.2.2}/tests/__init__.py +0 -0
  25. {flinventory-2.1.7 → flinventory-2.2.2}/tests/test_defaulted_data.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: flinventory
3
- Version: 2.1.7
3
+ Version: 2.2.2
4
4
  Summary: An inventory system for self-help repair shops
5
5
  Author-Email: flukx <flinventory-flukx@612211124.xyz>
6
6
  License: GPL3
@@ -120,31 +120,31 @@ class LabelPrinter:
120
120
  self,
121
121
  thing: BoxedThing,
122
122
  key: str,
123
- maximum: Union[int, float],
123
+ maximum: Union[int, float, None] = None,
124
+ unit: str = UNIT,
124
125
  ):
125
126
  """Get the value for the key if it exists and is a number or length and > 0, otherwise None.
126
127
 
127
128
  If it's bigger than maximum, use maximum (in UNIT).
128
129
  The default (backup) value is in the label typst code.
129
130
 
130
- Add UNIT.
131
+ Add unit.
131
132
 
132
133
  Args:
133
134
  thing: thing with sign and location. Use information from sign if it has it.
134
135
  Otherwise, from label in location. Otherwise, None.
135
136
  key: the queried dimension
136
- maximum: Maximum value.
137
+ maximum: Maximum value. If None, do not check for maximum.
138
+ unit: unit of the output
137
139
  """
138
- value = self.in_unit(self.get_label_value(thing, key))
140
+ assert not isinstance(
141
+ self.get_label_value(thing, key), tuple
142
+ ), f"self.get_label_value({thing.best("name")}, {key}) = {self.get_label_value(thing, key)}"
143
+ value = self.in_unit(self.get_label_value(thing, key), default_unit=unit)
139
144
  if value is None:
140
145
  return None
141
- value = min(value, maximum)
142
- return f"{value}{UNIT}" if isinstance(value, int) else f"{value:3f}{UNIT}"
143
-
144
- def ensure_font_size(self, thing: BoxedThing, key: str):
145
- """Convert thing.sign["key"] to length, assuming pt as unit if unit not given."""
146
- value = self.in_unit(self.get_label_value(thing, key), default_unit="pt")
147
- return f"{value}pt" if isinstance(value, int) else f"{value:3f}pt"
146
+ value = value if maximum is None else min(value, maximum)
147
+ return f"{value}{unit}" if isinstance(value, int) else f"{value:3f}{unit}"
148
148
 
149
149
  def thing_data(self, thing: BoxedThing) -> dict[str, str]:
150
150
  """Get values for the insertion into the templates for one thing."""
@@ -153,19 +153,36 @@ class LabelPrinter:
153
153
  "height": self.controlled_length(thing, key="height", maximum=MAX_HEIGHT),
154
154
  "name_1": thing.sign.get(("name", 0), None),
155
155
  "name_1_height": self.get_label_value(thing, ("name_height", 0)),
156
- "name_1_font_size": self.ensure_font_size(thing, ("font_size", 0)),
156
+ "name_1_font_size": self.controlled_length(
157
+ thing, ("font_size", 0), unit="pt"
158
+ ),
157
159
  "lang_1": thing.options.languages[0], # one language is guaranteed
158
160
  "name_2": thing.sign.get(("name", 1), None),
159
161
  "name_2_height": self.get_label_value(thing, ("name_height", 1)),
160
- "name_2_font_size": self.ensure_font_size(thing, ("font_size", 1)),
162
+ "name_2_font_size": self.controlled_length(
163
+ thing, ("font_size", 1), unit="pt"
164
+ ),
161
165
  "lang_2": (thing.options.languages + [None])[1], # None is default
162
- "image": thing.thing.image_path(), # might be None, use dummy image then
166
+ # Following 8 cases exist:
167
+ # - label has info show_image: False -> "" no image
168
+ # - label has info show_image: True and image is saved -> show image
169
+ # - label has info show_image: True and no image is saved -> None = dummy image
170
+ # - label has no info show_image, location has info show_image: False -> "" = no image
171
+ # - label has no info show_image, location has info show_image: True -> show image or dummy image
172
+ # - label has no info show_image, location has no info -> show image or dummy image
173
+ "image": (
174
+ thing.thing.image_path() # might be None, use dummy image then
175
+ if (value := self.get_label_value(thing, "show_image")) is None or value
176
+ else "" # show no image
177
+ ),
163
178
  "where": (
164
179
  str(thing.location.long_name)
165
180
  if thing.sign.get("location_long", True)
166
181
  else str(thing.where)
167
182
  ),
168
- "where_font_size": self.ensure_font_size(thing, "font_size_location"),
183
+ "where_font_size": self.controlled_length(
184
+ thing, "font_size_location", unit="pt"
185
+ ),
169
186
  }
170
187
 
171
188
  if not data["where"]: # empty string
@@ -175,9 +192,14 @@ class LabelPrinter:
175
192
 
176
193
  if data["image"] is None:
177
194
  self.logger.warning(f"Missing image for {thing.identification_for_log()}.")
195
+ elif (as_path := pathlib.Path(data["image"])).is_file():
196
+ data["image"] = str(as_path.absolute())
178
197
  # at first only portrait sign, landscape sign can be implemented later
179
198
  # if self.if_use_landscape_template(thing): # would need different condition
180
199
 
200
+ print(
201
+ "use data", {key: str(data[key]) for key in data if data[key] is not None}
202
+ )
181
203
  return {key: str(data[key]) for key in data if data[key] is not None}
182
204
 
183
205
  def sign_things_to_be_printed(
@@ -236,10 +258,7 @@ class LabelPrinter:
236
258
  """
237
259
  data = self.thing_data(thing)
238
260
  assert "data" not in data, "a key 'data' is reserved for case for many labels"
239
- try:
240
- data["image"] = str(pathlib.Path(data["image"]).absolute())
241
- except KeyError:
242
- pass # no image, fine
261
+
243
262
  return self.run_typst(
244
263
  out=out,
245
264
  template="label.typ",
@@ -266,11 +285,6 @@ class LabelPrinter:
266
285
  if path is used and file type is png or svg, must include {n} to be replaced by the page number(s)
267
286
  """
268
287
  data = self.things_data(things)
269
- for thing_data in data:
270
- try:
271
- thing_data["image"] = str(pathlib.Path(thing_data["image"]).absolute())
272
- except KeyError:
273
- pass # no image, fine
274
288
  return self.run_typst(
275
289
  out=out,
276
290
  template="label.typ",
@@ -149,9 +149,10 @@ class Schema:
149
149
  "fontsize",
150
150
  "name_height",
151
151
  "font_size_location",
152
+ "show_image",
152
153
  ),
153
154
  non_defaulted=[],
154
- lists=["font_size", "fontsize"],
155
+ lists=[],
155
156
  options=options,
156
157
  )
157
158
  )
@@ -62,6 +62,7 @@ class Sign(defaulted_data.DefaultedDict):
62
62
  "fontsize",
63
63
  "font_size",
64
64
  "font_size_location",
65
+ "show_image",
65
66
  ],
66
67
  lists=thing.lists,
67
68
  translated=thing.translated + ("fontsize", "font_size"),
@@ -76,6 +77,7 @@ class Sign(defaulted_data.DefaultedDict):
76
77
  "location_shift_down",
77
78
  "fontsize",
78
79
  "name_height",
80
+ "show_image",
79
81
  "font_size_location",
80
82
  ),
81
83
  ),
@@ -93,7 +93,12 @@
93
93
  } else {
94
94
  // todo: the rotated images are left-aligned even though they should
95
95
  // be centered as the other ones as well
96
- rotate(90deg, reflow: true, image(width: 100%, height: 100%, fit: "contain", image_path))
96
+ rotate(90deg, reflow: true, image(
97
+ width: 100%,
98
+ height: 100%,
99
+ fit: "contain",
100
+ image_path,
101
+ ))
97
102
  }
98
103
  }))
99
104
 
@@ -132,19 +137,39 @@
132
137
  params.insert("where", "Orkus")
133
138
  }
134
139
 
135
- #let (name_1_height, name_2_height) = if "name_1" in params {
136
- if "name_2" in params {
137
- ("25%", "18%")
140
+ #let image_p = params.at("image", default: "dummyImage.jpg")
141
+
142
+ #let (name_1_height, name_2_height) = if image_p == "" {
143
+ if "name_1" in params {
144
+ if "name_2" in params {
145
+ ("45%", "35%")
146
+ } else {
147
+ ("80%", "0pt")
148
+ }
138
149
  } else {
139
- ("35%", "0pt")
150
+ if "name_2" in params {
151
+ ("0pt", "80%")
152
+ } else {
153
+ params.insert("name_1", "Deugscher Name fehlt")
154
+ params.insert("name_2", "English name missing")
155
+ ("45%", "35%")
156
+ }
140
157
  }
141
158
  } else {
142
- if "name_2" in params {
143
- ("0pt", "35%")
159
+ if "name_1" in params {
160
+ if "name_2" in params {
161
+ ("25%", "18%")
162
+ } else {
163
+ ("35%", "0pt")
164
+ }
144
165
  } else {
145
- params.insert("name_1", "Deugscher Name fehlt")
146
- params.insert("name_2", "English name missing")
147
- ("25%", "18%")
166
+ if "name_2" in params {
167
+ ("0pt", "35%")
168
+ } else {
169
+ params.insert("name_1", "Deugscher Name fehlt")
170
+ params.insert("name_2", "English name missing")
171
+ ("25%", "18%")
172
+ }
148
173
  }
149
174
  }
150
175
  #let name_1_height = eval(params.at("name_1_height", default: name_1_height))
@@ -180,7 +205,9 @@
180
205
  )
181
206
  }
182
207
 
183
- #maxed_image(image_path: params.at("image", default: "dummyImage.jpg"))
208
+ #if image_p != "" {
209
+ maxed_image(image_path: image_p)
210
+ }
184
211
  #set text(lang: params.at("lang_1", default: "de"))
185
212
  #align(right, resize_text(
186
213
  max_height: eval(params.at("where_height", default: "5%")),
@@ -0,0 +1,267 @@
1
+ <svg class="typst-doc" viewBox="0 0 167.244094488189 45.35433070866142" width="167.244094488189pt" height="45.35433070866142pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:h5="http://www.w3.org/1999/xhtml">
2
+ <path class="typst-shape" fill="#ffffff" fill-rule="nonzero" d="M 0 0v 45.354332 h 167.2441 v -45.354332 Z "/>
3
+ <g>
4
+ <g class="typst-group">
5
+ <g>
6
+ <path class="typst-shape" fill="none" stroke="#000000" stroke-width="1" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="4" d="M 0 0v 45.354332 h 167.2441 v -45.354332 Z "/>
7
+ <g class="typst-group" transform="matrix(1 0 0 1 3.34488188976378 0.9070866141732321)">
8
+ <g>
9
+ <g class="typst-text" transform="matrix(1 0 0 -1 -15.80283464566927 13.36)">
10
+ <use xlink:href="#g7E2990A4DAC6221B1D29F39132ED9AA2" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
11
+ <use xlink:href="#g207CA92970BA3D44D5B6DAAE6D3FC6CB" x="12.38" y="0" fill="#000000" fill-rule="nonzero"/>
12
+ <use xlink:href="#g634295DF91515D209EE77C785D451381" x="23.42" y="0" fill="#000000" fill-rule="nonzero"/>
13
+ <use xlink:href="#gFD17770BC4D5E94492F612773F8C05B9" x="36.5" y="0" fill="#000000" fill-rule="nonzero"/>
14
+ <use xlink:href="#g876629E06EB55E71757B2E6FD5910172" x="47.78" y="0" fill="#000000" fill-rule="nonzero"/>
15
+ <use xlink:href="#g9657D159B399579C8AE5707683D89E6F" x="58.56" y="0" fill="#000000" fill-rule="nonzero"/>
16
+ <use xlink:href="#g1DABD6755AEAC38C3005E5782461A0C0" x="69.48" y="0" fill="#000000" fill-rule="nonzero"/>
17
+ <use xlink:href="#g9AD2A7B1BD0623BB685E17B39BD13FD0" x="78.68" y="0" fill="#000000" fill-rule="nonzero"/>
18
+ <use xlink:href="#g71D1279F4CDCEA0655F69314683DC25C" x="89.4" y="0" fill="#000000" fill-rule="nonzero"/>
19
+ <use xlink:href="#g9E6C3E0E01EC492727A839F9D033ADAC" x="100.60000000000001" y="0" fill="#000000" fill-rule="nonzero"/>
20
+ <use xlink:href="#gFCF2D80FA40B4C1F7C923FFFA252FCFF" x="110.4" y="0" fill="#000000" fill-rule="nonzero"/>
21
+ <use xlink:href="#g876629E06EB55E71757B2E6FD5910172" x="115.18" y="0" fill="#000000" fill-rule="nonzero"/>
22
+ <use xlink:href="#gC3CD259CF664177F41C65DCAB27D34C0" x="125.96000000000001" y="0" fill="#000000" fill-rule="nonzero"/>
23
+ <use xlink:href="#gC3CD259CF664177F41C65DCAB27D34C0" x="142.78" y="0" fill="#000000" fill-rule="nonzero"/>
24
+ <use xlink:href="#g9AD2A7B1BD0623BB685E17B39BD13FD0" x="159.6" y="0" fill="#000000" fill-rule="nonzero"/>
25
+ <use xlink:href="#g9657D159B399579C8AE5707683D89E6F" x="170.32" y="0" fill="#000000" fill-rule="nonzero"/>
26
+ <use xlink:href="#g71D1279F4CDCEA0655F69314683DC25C" x="180.95999999999998" y="0" fill="#000000" fill-rule="nonzero"/>
27
+ </g>
28
+ </g>
29
+ </g>
30
+ <g class="typst-group" transform="matrix(1 0 0 1 3.34488188976378 18.97788976377953)">
31
+ <g>
32
+ <g class="typst-text" transform="matrix(1 0 0 -1 16.017165354330725 13.36)">
33
+ <use xlink:href="#g7E2990A4DAC6221B1D29F39132ED9AA2" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
34
+ <use xlink:href="#g207CA92970BA3D44D5B6DAAE6D3FC6CB" x="12.38" y="0" fill="#000000" fill-rule="nonzero"/>
35
+ <use xlink:href="#g634295DF91515D209EE77C785D451381" x="23.42" y="0" fill="#000000" fill-rule="nonzero"/>
36
+ <use xlink:href="#gFD17770BC4D5E94492F612773F8C05B9" x="36.5" y="0" fill="#000000" fill-rule="nonzero"/>
37
+ <use xlink:href="#g876629E06EB55E71757B2E6FD5910172" x="47.78" y="0" fill="#000000" fill-rule="nonzero"/>
38
+ <use xlink:href="#g9657D159B399579C8AE5707683D89E6F" x="58.56" y="0" fill="#000000" fill-rule="nonzero"/>
39
+ <use xlink:href="#g34536D44F3EC5157B5FB968C7A239DF3" x="75.08" y="0" fill="#000000" fill-rule="nonzero"/>
40
+ <use xlink:href="#gFCF2D80FA40B4C1F7C923FFFA252FCFF" x="85.08" y="0" fill="#000000" fill-rule="nonzero"/>
41
+ <use xlink:href="#g7B9AC5DB6C2C8AB7B94544BEAF5E859F" x="89.86" y="0" fill="#000000" fill-rule="nonzero"/>
42
+ <use xlink:href="#gC3CD259CF664177F41C65DCAB27D34C0" x="100.38" y="0" fill="#000000" fill-rule="nonzero"/>
43
+ <use xlink:href="#g380D89A7348CB335A42598D2F2264B5F" x="117.19999999999999" y="0" fill="#000000" fill-rule="nonzero"/>
44
+ </g>
45
+ </g>
46
+ </g>
47
+ <g class="typst-text" transform="matrix(1 0 0 -1 32.14754724409449 43.77669291338583)">
48
+ <use xlink:href="#g7D570790A0AC1DF819DAF6148F0E0BFE" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
49
+ <use xlink:href="#gA3FE4E8D9EDF18F9E4FEA0B7CF5233AA" x="3.0580000000000003" y="0" fill="#000000" fill-rule="nonzero"/>
50
+ <use xlink:href="#gD4E3E1F941FABD00A9E3D99062CD90C2" x="12.309" y="0" fill="#000000" fill-rule="nonzero"/>
51
+ <use xlink:href="#g995CDAF690DFE51BBF6516063ED9067C" x="18.095" y="0" fill="#000000" fill-rule="nonzero"/>
52
+ <use xlink:href="#g5485760F9C013D09FA15CFFCA5024BC3" x="24.255" y="0" fill="#000000" fill-rule="nonzero"/>
53
+ <use xlink:href="#g569AD3347E4374A438810E5C38DAF73B" x="30.183999999999997" y="0" fill="#000000" fill-rule="nonzero"/>
54
+ <use xlink:href="#g2D491E65110CBCC2201211954B8642D7" x="35.519" y="0" fill="#000000" fill-rule="nonzero"/>
55
+ <use xlink:href="#g436025FF657B66A8B0F08BC793C4962B" x="38.104" y="0" fill="#000000" fill-rule="nonzero"/>
56
+ <use xlink:href="#g7F61E9178168D292E1DF23D0C3E32FA1" x="43.285" y="0" fill="#000000" fill-rule="nonzero"/>
57
+ <use xlink:href="#gE80CFF4745DA458C080CE7B22C49CF78" x="46.849" y="0" fill="#000000" fill-rule="nonzero"/>
58
+ <use xlink:href="#gDC4D4661D37ABD7D995559E60A26CD41" x="50.995999999999995" y="0" fill="#000000" fill-rule="nonzero"/>
59
+ <use xlink:href="#g46F1D1E1B18AE2209FC64390B7E03402" x="58.574999999999996" y="0" fill="#000000" fill-rule="nonzero"/>
60
+ <use xlink:href="#g9B9A1BF63A9766F8C0B40B4051A84A51" x="66.264" y="0" fill="#000000" fill-rule="nonzero"/>
61
+ <use xlink:href="#gFC56EBF65BD9B024337670982F5F9983" x="70.818" y="0" fill="#000000" fill-rule="nonzero"/>
62
+ <use xlink:href="#g3F48166CB75ACE841C8E519E653066DB" x="79.838" y="0" fill="#000000" fill-rule="nonzero"/>
63
+ <use xlink:href="#gB717C532EAF0F3889F294E6FF8C0FEFC" x="86.317" y="0" fill="#000000" fill-rule="nonzero"/>
64
+ <use xlink:href="#gF93A227658B03CB307570F2DA224204" x="94.127" y="0" fill="#000000" fill-rule="nonzero"/>
65
+ <use xlink:href="#g7862F305D12ABFC55EF0735932F77BE5" x="100.36399999999999" y="0" fill="#000000" fill-rule="nonzero"/>
66
+ </g>
67
+ <g class="typst-group" transform="matrix(1 0 0 1 3.34488188976378 46.75949606299212)">
68
+ <g>
69
+ <g class="typst-text" transform="matrix(1 0 0 -1 53.034330708661436 0.15787401574803248)">
70
+ <use xlink:href="#gD752B370A8826292DCD25DE3E25B1FE" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
71
+ <use xlink:href="#gD752B370A8826292DCD25DE3E25B1FE" x="3.2880000000000003" y="0" fill="#000000" fill-rule="nonzero"/>
72
+ <use xlink:href="#g3239A640403674AE202748B5E1437E61" x="6.5760000000000005" y="0" fill="#000000" fill-rule="nonzero"/>
73
+ <use xlink:href="#g163AA1FB62DCB251D1C48C79A9571AC1" x="11.01" y="0" fill="#000000" fill-rule="nonzero"/>
74
+ <use xlink:href="#g93F8200466625E36BCD1FD5A77D08885" x="15.527999999999999" y="0" fill="#000000" fill-rule="nonzero"/>
75
+ <use xlink:href="#gE8F7C0817DE25796B1FCA3B790A743C9" x="19.787999999999997" y="0" fill="#000000" fill-rule="nonzero"/>
76
+ <use xlink:href="#gA834A0B40F5C633274C5B0F61592B98C" x="21.827999999999996" y="0" fill="#000000" fill-rule="nonzero"/>
77
+ <use xlink:href="#g7AA3443660EA9F9096AC67973A824BD4" x="25.043999999999997" y="0" fill="#000000" fill-rule="nonzero"/>
78
+ <use xlink:href="#gD5A92202F95A322468043B2A5427B47D" x="28.403999999999996" y="0" fill="#000000" fill-rule="nonzero"/>
79
+ <use xlink:href="#g163AA1FB62DCB251D1C48C79A9571AC1" x="32.76" y="0" fill="#000000" fill-rule="nonzero"/>
80
+ <use xlink:href="#gA834A0B40F5C633274C5B0F61592B98C" x="37.278" y="0" fill="#000000" fill-rule="nonzero"/>
81
+ <use xlink:href="#g287FBDAD10BD4C5D7E8C1AA9A2EE6444" x="40.494" y="0" fill="#000000" fill-rule="nonzero"/>
82
+ <use xlink:href="#gD752B370A8826292DCD25DE3E25B1FE" x="47.22" y="0" fill="#000000" fill-rule="nonzero"/>
83
+ <use xlink:href="#gB9187A98034321EDC861B027CC2E7C69" x="50.507999999999996" y="0" fill="#000000" fill-rule="nonzero"/>
84
+ <use xlink:href="#g82AEC229262869250B06E2214FAD319B" x="53.742" y="0" fill="#000000" fill-rule="nonzero"/>
85
+ <use xlink:href="#gF0B47B22951E0D631D8D5F2F4FB629BE" x="57.018" y="0" fill="#000000" fill-rule="nonzero"/>
86
+ <use xlink:href="#g903FE33AF7A7D7F59C402B96A95C134" x="59.844" y="0" fill="#000000" fill-rule="nonzero"/>
87
+ <use xlink:href="#gB9187A98034321EDC861B027CC2E7C69" x="61.788000000000004" y="0" fill="#000000" fill-rule="nonzero"/>
88
+ <use xlink:href="#gE8F7C0817DE25796B1FCA3B790A743C9" x="65.022" y="0" fill="#000000" fill-rule="nonzero"/>
89
+ <use xlink:href="#g3239A640403674AE202748B5E1437E61" x="68.74200000000002" y="0" fill="#000000" fill-rule="nonzero"/>
90
+ <use xlink:href="#g163AA1FB62DCB251D1C48C79A9571AC1" x="73.17600000000002" y="0" fill="#000000" fill-rule="nonzero"/>
91
+ <use xlink:href="#g3B19631941830A04970FE23408BEBA84" x="77.69400000000002" y="0" fill="#000000" fill-rule="nonzero"/>
92
+ </g>
93
+ <g class="typst-text" transform="matrix(1 0 0 -1 136.84833070866142 0.15787401574803248)">
94
+ <use xlink:href="#gF7F7F05E49E8BF04013C76D2C09E494E" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
95
+ </g>
96
+ <g class="typst-text" transform="matrix(1 0 0 -1 139.4943307086614 0.15787401574803248)">
97
+ <use xlink:href="#g7237CF2B333058C34F118762B797DC4D" x="1.2" y="0" fill="#000000" fill-rule="nonzero"/>
98
+ <use xlink:href="#g7237CF2B333058C34F118762B797DC4D" x="3.612" y="0" fill="#000000" fill-rule="nonzero"/>
99
+ </g>
100
+ <g class="typst-text" transform="matrix(1 0 0 -1 146.71833070866143 0.15787401574803248)">
101
+ <use xlink:href="#gE8AB17E0589F6D11B8C728712C2BB22B" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
102
+ </g>
103
+ <g class="typst-text" transform="matrix(1 0 0 -1 153.49833070866143 0.15787401574803248)">
104
+ <use xlink:href="#g7237CF2B333058C34F118762B797DC4D" x="1.2" y="0" fill="#000000" fill-rule="nonzero"/>
105
+ <use xlink:href="#gC550F155210EB37C73BBE876039E6B" x="3.612" y="0" fill="#000000" fill-rule="nonzero"/>
106
+ </g>
107
+ </g>
108
+ </g>
109
+ </g>
110
+ </g>
111
+ </g>
112
+ <defs id="glyph">
113
+ <symbol id="g7E2990A4DAC6221B1D29F39132ED9AA2" overflow="visible">
114
+ <path d="M 0 0m 1.52 0 h 5.7 c 2.9199996 0 4.4 1.92 4.4 3.84 c 0 1.28 -0.65999985 2.5599997 -1.9800005 3.26 c 0.9000006 0.75999975 1.4000006 1.8799996 1.4000006 2.94 c 0 1.6999998 -1.2399998 3.3199997 -4.1400003 3.3199997 h -5.3799996 Z m 1.8799999 7.64 v 4.14 h 3.7 c 1.3399997 0 2.0399995 -1.0600004 2.0399995 -2.1000004 c 0 -1.0199995 -0.67999935 -2.0399995 -2.0399995 -2.0399995 Z m 0 -6.06 v 4.58 h 3.9999998 c 1.5200005 0 2.2799997 -1.1199999 2.2799997 -2.26 c 0 -1.1599998 -0.77999973 -2.32 -2.2599998 -2.32 Z "/>
115
+ </symbol>
116
+ <symbol id="g207CA92970BA3D44D5B6DAAE6D3FC6CB" overflow="visible">
117
+ <path d="M 0 0m 5.52 -0.24 c 2.2999997 0 4.7599998 1.5799999 4.7599998 5.16 c 0 3.58 -2.46 5.16 -4.7599998 5.16 c -2.28 0 -4.76 -1.5799999 -4.76 -5.16 c 0 -3.5800002 2.48 -5.16 4.76 -5.16 Z m 0 1.48 c -1.4200001 0 -2.96 1.1199999 -2.96 3.68 c 0 2.56 1.54 3.6799994 2.96 3.6799994 c 1.44 0 2.9599996 -1.1199994 2.9599996 -3.6799994 c 0 -2.5600002 -1.5199995 -3.68 -2.9599996 -3.68 Z "/>
118
+ </symbol>
119
+ <symbol id="g634295DF91515D209EE77C785D451381" overflow="visible">
120
+ <path d="M 0 0m 2.86 0 h 1.5200002 l 2.1599998 7.98 l 2.1599998 -7.98 h 1.54 l 2.8400002 9.92 h -1.8000002 l -1.8999996 -7.34 l -1.9600005 7.34 h -1.7399998 l -1.98 -7.34 l -1.8999999 7.34 h -1.8 Z "/>
121
+ </symbol>
122
+ <symbol id="gFD17770BC4D5E94492F612773F8C05B9" overflow="visible">
123
+ <path d="M 0 0m 5.02 -0.24 c 1.56 0 2.62 0.68 3.2199998 1.74 l 0.43999958 -1.5 h 1.5800009 c -0.34000015 1.74 -0.34000015 3.08 -0.34000015 3.74 v 9.62 h -1.6800003 v -5 c -0.5999999 1.04 -1.6599998 1.7200003 -3.2199998 1.7200003 c -2.26 0 -4.26 -1.9000006 -4.26 -5.16 c 0 -3.2800002 2 -5.16 4.26 -5.16 Z m 0.44000006 1.4399999 c -1.7 0 -2.8200002 1.36 -2.8200002 3.7200003 c 0 2.3599997 1.1200001 3.7199993 2.8200002 3.7199993 c 1.6999998 0 2.8199997 -1.3599997 2.8199997 -3.7199993 c 0 -2.3600001 -1.1199999 -3.7200003 -2.8199997 -3.7200003 Z "/>
124
+ </symbol>
125
+ <symbol id="g876629E06EB55E71757B2E6FD5910172" overflow="visible">
126
+ <path d="M 0 0m 5.62 -0.24 c 1.8600001 0 3.2200003 0.82 3.9399996 1.98 l -1.6199994 0.48000002 c -0.46000004 -0.6 -1.2000003 -0.98 -2.3200002 -0.98 c -1.2199998 0 -2.98 0.76 -3.06 3.26 h 7.64 c 0.19999981 2.8399997 -1.46 5.58 -4.62 5.58 c -2.72 0 -4.8199997 -2 -4.8199997 -5.14 c 0 -2.92 1.74 -5.18 4.8599997 -5.18 Z m -3.04 6.0799994 c 0.16000009 2 1.5 2.7999997 3 2.7999997 c 1.7599998 0 2.8199997 -1.3999996 2.8400002 -2.7999997 Z "/>
127
+ </symbol>
128
+ <symbol id="g9657D159B399579C8AE5707683D89E6F" overflow="visible">
129
+ <path d="M 0 0m 1.4 0 h 1.68 v 5.38 c 0 2.12 1 3.2599993 2.62 3.2599993 c 1.9200001 0 2.1799998 -1.3399997 2.1799998 -2.8599997 v -5.7799997 h 1.6799998 v 6.2799997 c 0 2.2600002 -0.8800001 3.8000002 -3.2799997 3.8000002 c -1.6799998 0 -2.6399999 -0.72000027 -3.1999998 -1.6599998 l -0.44000006 1.5 h -1.2399999 Z "/>
130
+ </symbol>
131
+ <symbol id="g1DABD6755AEAC38C3005E5782461A0C0" overflow="visible">
132
+ <path d="M 0 0m 0.79999995 0 h 7.799999 v 1.48 h -5.8999996 l 5.7 6.9599996 v 1.4800005 h -7.4199996 v -1.4800005 h 5.52 l -5.7 -6.9599996 Z "/>
133
+ </symbol>
134
+ <symbol id="g9AD2A7B1BD0623BB685E17B39BD13FD0" overflow="visible">
135
+ <path d="M 0 0m 4.54 -0.24 c 1.6399999 0 2.54 0.71999997 3.1 1.68 l 0.4199996 -1.4399999 h 1.2600002 v 9.94 h -1.6799998 v -5.4599996 c 0 -2.1200001 -0.94000006 -3.24 -2.52 -3.24 c -1.24 0 -2.08 0.55999994 -2.08 2.76 v 5.9399996 h -1.68 v -6.3399997 c 0 -2.26 0.86 -3.84 3.1799998 -3.84 Z "/>
136
+ </symbol>
137
+ <symbol id="g71D1279F4CDCEA0655F69314683DC25C" overflow="visible">
138
+ <path d="M 0 0m 5.48 -3.84 c 3.2199998 0 4.32 1.6199999 4.32 4.7799997 v 8.9800005 h -1.2200003 l -0.46000004 -1.5600004 c -0.6199999 1.04 -1.5799999 1.7200003 -3.1599998 1.7200003 c -2.2 0 -4.2 -1.7799997 -4.2 -4.96 c 0 -3.1799998 2 -4.94 4.2 -4.94 c 1.5799999 0 2.54 0.65999997 3.1599998 1.7 v -1.3199999 c 0 -1.9200001 -0.5999999 -2.9199998 -2.6399999 -2.9199998 c -0.8200002 0 -1.8200002 0.26 -2.18 1.3 l -1.68 -0.46000004 c 0.51999986 -1.6599998 2.2399998 -2.32 3.8600001 -2.32 Z m -0.099999905 5.42 c -1.6400001 0 -2.8000002 1.28 -2.8000002 3.54 c 0 2.2599998 1.1600001 3.5199995 2.8000002 3.5199995 c 1.4999995 0 2.7999992 -0.9999995 2.7999992 -3.5199995 c 0 -2.52 -1.2999997 -3.54 -2.7999992 -3.54 Z "/>
139
+ </symbol>
140
+ <symbol id="g9E6C3E0E01EC492727A839F9D033ADAC" overflow="visible">
141
+ <path d="M 0 0m 1.4 0 h 1.68 v 3.32 l 1.1599998 1.26 l 3.3000002 -4.58 h 2.0599995 l -4.24 5.8199997 l 3.7399998 4.1000004 h -2.0199995 l -4 -4.46 v 7.8999996 h -1.68 Z "/>
142
+ </symbol>
143
+ <symbol id="gFCF2D80FA40B4C1F7C923FFFA252FCFF" overflow="visible">
144
+ <path d="M 0 0m 3.74 0 h 0.74 v 1.48 h -0.3800001 c -0.94000006 0 -1.02 0.26 -1.02 1.28 v 10.58 h -1.68 v -10.860001 c 0 -2.06 0.43999994 -2.48 2.3400002 -2.48 Z "/>
145
+ </symbol>
146
+ <symbol id="gC3CD259CF664177F41C65DCAB27D34C0" overflow="visible">
147
+ <path d="M 0 0m 1.4 0 h 1.68 v 5.38 c 0 2.12 0.96000004 3.2599993 2.4 3.2599993 c 1.8199997 0 2.12 -1.3399997 2.12 -2.8599997 v -5.7799997 h 1.6799998 v 5.38 c 0 2.12 0.9399996 3.2599993 2.38 3.2599993 c 1.8400002 0 2.12 -1.3399997 2.12 -2.8599997 v -5.7799997 h 1.6800003 v 6.2799997 c 0 2.2600002 -0.9000006 3.8000002 -3.2000008 3.8000002 c -1.3799992 0 -2.54 -0.52000046 -3.3399992 -1.7399998 c -0.44000053 1.0799999 -1.3400002 1.7399998 -2.8600001 1.7399998 c -1.48 0 -2.42 -0.72000027 -2.98 -1.6599998 l -0.44000006 1.5 h -1.2399999 Z "/>
148
+ </symbol>
149
+ <symbol id="g34536D44F3EC5157B5FB968C7A239DF3" overflow="visible">
150
+ <path d="M 0 0m 5.38 -0.24 c 1.7599998 0 3.2199993 0.94 3.96 2.2199998 l -1.5400004 0.56000006 c -0.44000006 -0.74 -1.2799997 -1.3 -2.3599997 -1.3 c -1.4800003 0 -2.8600001 1.2 -2.8600001 3.7 c 0 2.5 1.3599999 3.6599994 2.8600001 3.6599994 c 1.02 0 1.8799996 -0.5199995 2.3199997 -1.3199997 l 1.5400004 0.55999994 c -0.64000034 1.2199998 -1.9600005 2.2400002 -3.7400002 2.2400002 c -2.94 0 -4.8 -2.2000003 -4.8 -5.16 c 0 -3 1.78 -5.16 4.62 -5.16 Z "/>
151
+ </symbol>
152
+ <symbol id="g7B9AC5DB6C2C8AB7B94544BEAF5E859F" overflow="visible">
153
+ <path d="M 0 0m 4.18 -0.24 c 1.7400002 0 2.7800002 0.59999996 3.38 1.6 l 0.4000001 -1.36 h 1.54 c -0.1800003 0.94 -0.34000015 2.08 -0.34000015 3.74 v 2.32 c 0 2.7800002 -1.2199998 4.02 -3.96 4.02 c -1.78 0 -3.2599998 -0.8800001 -3.7999997 -2.4 l 1.62 -0.48000002 c 0.22000003 0.96000004 1 1.54 2.1999998 1.54 c 1.5999999 0 2.3000002 -0.94000006 2.2400002 -2.62 c -4.0600004 -0.46000004 -6.7 -1.1399999 -6.7 -3.5 c 0 -1.8199999 1.54 -2.86 3.4199998 -2.86 Z m 0.36000013 1.34 c -1.2 0 -1.9200001 0.6199999 -1.9200001 1.5599998 c 0 1.3600001 1.94 1.8000002 4.98 2.12 v -0.6199999 c 0 -2.34 -1.5 -3.06 -3.06 -3.06 Z "/>
154
+ </symbol>
155
+ <symbol id="g380D89A7348CB335A42598D2F2264B5F" overflow="visible">
156
+ <path d="M 0 0m 1.4 -3.22 h 1.68 v 4.7200003 c 0.5999999 -1.06 1.6599998 -1.74 3.2199998 -1.74 c 2.2599998 0 4.2599998 1.9 4.2599998 5.16 c 0 3.2799997 -2 5.16 -4.2599998 5.16 c -1.56 0 -2.62 -0.6800003 -3.2199998 -1.7200003 l -0.46000004 1.5600004 h -1.2199999 Z m 4.4599996 4.42 c -1.6999998 0 -2.8199997 1.36 -2.8199997 3.7200003 c 0 2.3599997 1.1199999 3.7199993 2.8199997 3.7199993 c 1.7000003 0 2.8199997 -1.3599997 2.8199997 -3.7199993 c 0 -2.3600001 -1.1199994 -3.7200003 -2.8199997 -3.7200003 Z "/>
157
+ </symbol>
158
+ <symbol id="g7D570790A0AC1DF819DAF6148F0E0BFE" overflow="visible">
159
+ <path d="M 0 0m 1.716 6.49 c 0.3850001 0 0.69299996 0.3080001 0.69299996 0.6930003 c 0 0.37400007 -0.30799985 0.6819997 -0.69299996 0.6819997 c -0.37399995 0 -0.6819999 -0.3079996 -0.6819999 -0.6819997 c 0 -0.38500023 0.30799997 -0.6930003 0.6819999 -0.6930003 Z m -0.462 -6.49 h 0.924 v 5.456 h -1.683 v -0.737 h 0.75899994 Z "/>
160
+ </symbol>
161
+ <symbol id="gA3FE4E8D9EDF18F9E4FEA0B7CF5233AA" overflow="visible">
162
+ <path d="M 0 0m 0.77 0 h 0.924 v 2.9589999 c 0 1.1660001 0.5279999 1.793 1.3199999 1.793 c 1.0009999 0 1.1659999 -0.737 1.1659999 -1.573 v -3.179 h 0.92400026 v 2.9589999 c 0 1.1660001 0.5169997 1.793 1.309 1.793 c 1.0120001 0 1.1659999 -0.737 1.1659999 -1.573 v -3.179 h 0.92400026 v 3.454 c 0 1.243 -0.4949999 2.0900002 -1.7600002 2.0900002 c -0.7589998 0 -1.3969998 -0.28600025 -1.8369999 -0.95700026 c -0.2420001 0.59399986 -0.737 0.95700026 -1.5730002 0.95700026 c -0.8139999 0 -1.3309999 -0.3960004 -1.6389999 -0.9130001 l -0.24199998 0.8249998 h -0.68200004 Z "/>
163
+ </symbol>
164
+ <symbol id="gD4E3E1F941FABD00A9E3D99062CD90C2" overflow="visible">
165
+ <path d="M 0 0m 2.299 -0.132 c 0.957 0 1.529 0.32999998 1.859 0.88 l 0.21999979 -0.748 h 0.8470001 c -0.09899998 0.517 -0.1869998 1.144 -0.1869998 2.057 v 1.276 c 0 1.529 -0.671 2.2110002 -2.1780002 2.2110002 c -0.97899985 0 -1.7929999 -0.4840002 -2.09 -1.3200002 l 0.89100003 -0.26399994 c 0.12099993 0.5279999 0.54999995 0.8470001 1.21 0.8470001 c 0.8799999 0 1.2650001 -0.5170002 1.2320001 -1.4410002 c -2.2330003 -0.25300002 -3.6850002 -0.62699986 -3.6850002 -1.925 c 0 -1.0009999 0.847 -1.573 1.881 -1.573 Z m 0.19799995 0.737 c -0.65999997 0 -1.056 0.34099996 -1.056 0.8579999 c 0 0.748 1.0669999 0.9900001 2.7389998 1.166 v -0.34099984 c 0 -1.2870001 -0.8249998 -1.6830001 -1.6829998 -1.6830001 Z "/>
166
+ </symbol>
167
+ <symbol id="g995CDAF690DFE51BBF6516063ED9067C" overflow="visible">
168
+ <path d="M 0 0m 3.014 -2.112 c 1.7709999 0 2.376 0.89100003 2.376 2.629 v 4.9389997 h -0.671 l -0.25299978 -0.8579998 c -0.34100008 0.572 -0.8690002 0.9460001 -1.7380002 0.9460001 c -1.2099999 0 -2.31 -0.9790001 -2.31 -2.7280002 c 0 -1.749 1.1 -2.717 2.31 -2.717 c 0.86899996 0 1.3970001 0.363 1.7380002 0.93500006 v -0.7260001 c 0 -1.056 -0.32999992 -1.606 -1.4520001 -1.606 c -0.45099998 0 -1.0009999 0.143 -1.199 0.715 l -0.92399997 -0.25299996 c 0.28600007 -0.913 1.2319999 -1.276 2.123 -1.276 Z m -0.055000067 2.981 c -0.90199995 0 -1.5399998 0.70399994 -1.5399998 1.947 c 0 1.243 0.6379999 1.9359999 1.5399998 1.9359999 c 0.82500005 0 1.5400002 -0.5499997 1.5400002 -1.9359999 c 0 -1.386 -0.71500015 -1.947 -1.5400002 -1.947 Z "/>
169
+ </symbol>
170
+ <symbol id="g5485760F9C013D09FA15CFFCA5024BC3" overflow="visible">
171
+ <path d="M 0 0m 3.091 -0.132 c 1.0229998 0 1.7709999 0.451 2.1669998 1.089 l -0.8909998 0.26399994 c -0.25300026 -0.32999998 -0.6600001 -0.539 -1.276 -0.539 c -0.671 0 -1.639 0.41800004 -1.6830001 1.793 h 4.202 c 0.10999966 1.5620003 -0.803 3.0690002 -2.5410001 3.0690002 c -1.496 0 -2.651 -1.1000004 -2.651 -2.8270001 c 0 -1.6060001 0.957 -2.849 2.673 -2.849 Z m -1.672 3.3439999 c 0.08799994 1.0999999 0.8249999 1.54 1.65 1.54 c 0.9680002 0 1.5509999 -0.77 1.562 -1.54 Z "/>
172
+ </symbol>
173
+ <symbol id="g569AD3347E4374A438810E5C38DAF73B" overflow="visible">
174
+ <path d="M 0 0m 1.122 4.125 c 0.39600003 0 0.71500003 0.31899977 0.71500003 0.71500015 c 0 0.38499975 -0.319 0.704 -0.71500003 0.704 c -0.385 0 -0.704 -0.31900024 -0.704 -0.704 c 0 -0.3960004 0.319 -0.71500015 0.704 -0.71500015 Z m 0 -4.257 c 0.39600003 0 0.71500003 0.319 0.71500003 0.704 c 0 0.39599997 -0.319 0.7149999 -0.71500003 0.7149999 c -0.385 0 -0.704 -0.31899995 -0.704 -0.7149999 c 0 -0.38500002 0.319 -0.704 0.704 -0.704 Z "/>
175
+ </symbol>
176
+ <symbol id="g2D491E65110CBCC2201211954B8642D7" overflow="visible">
177
+ <path d="M 0 0m 1.298 4.598 c 0.385 0 0.7040001 0.3080001 0.7040001 0.704 c 0 0.35199976 -0.25300014 0.6489997 -0.5940001 0.704 l 0.51699996 1.342 h -0.605 l -0.6819999 -1.7709999 c -0.032999992 -0.0880003 -0.055000007 -0.18700027 -0.055000007 -0.2750001 c 0 -0.37400007 0.319 -0.704 0.715 -0.704 Z "/>
178
+ </symbol>
179
+ <symbol id="g436025FF657B66A8B0F08BC793C4962B" overflow="visible">
180
+ <path d="M 0 0m 2.629 -0.132 c 1.1330001 0 2.222 0.594 2.222 1.628 c 0 1.155 -0.86899996 1.474 -1.7379999 1.6499999 l -0.7149999 0.14300013 c -0.572 0.109999895 -1.012 0.286 -1.012 0.7589998 c 0 0.47300005 0.5389999 0.7260003 1.1 0.7260003 c 0.51699996 0 1.056 -0.20900011 1.243 -0.64900017 l 0.86899996 0.31899977 c -0.32999992 0.7590003 -1.188 1.1110001 -2.046 1.1110001 c -1.056 0 -2.101 -0.53900003 -2.101 -1.5179996 c 0 -0.99000025 0.704 -1.3310001 1.496 -1.4960003 l 0.75900006 -0.1539998 c 0.65999985 -0.13200021 1.2099998 -0.33000016 1.2099998 -0.92400014 c 0 -0.49499995 -0.638 -0.81399995 -1.287 -0.81399995 c -0.605 0 -1.232 0.264 -1.397 0.91300005 l -0.89100003 -0.33000004 c 0.363 -0.935 1.342 -1.364 2.2879999 -1.364 Z "/>
181
+ </symbol>
182
+ <symbol id="g7F61E9178168D292E1DF23D0C3E32FA1" overflow="visible">
183
+ <path d="M 0 0m 2.431 0 h 0.6930001 v 0.814 h -0.49500012 c -0.5279999 0 -0.5609999 0.143 -0.5609999 0.704 v 3.2009997 h 1.056 v 0.737 h -1.056 v 1.375 h -0.924 v -1.375 h -0.924 v -0.737 h 0.924 v -3.355 c 0 -1.1329999 0.24199998 -1.364 1.287 -1.364 Z "/>
184
+ </symbol>
185
+ <symbol id="gE80CFF4745DA458C080CE7B22C49CF78" overflow="visible">
186
+ <path d="M 0 0m 0.16499999 0 h 0.957 l 2.86 7.348 h -0.9569998 Z "/>
187
+ </symbol>
188
+ <symbol id="gDC4D4661D37ABD7D995559E60A26CD41" overflow="visible">
189
+ <path d="M 0 0m 0.83599997 0 h 1.034 v 6.281 l 3.355 -6.281 h 1.5180001 v 7.348 h -1.0339999 v -6.248 l -3.344 6.248 h -1.529 Z "/>
190
+ </symbol>
191
+ <symbol id="g46F1D1E1B18AE2209FC64390B7E03402" overflow="visible">
192
+ <path d="M 0 0m 3.993 -0.132 c 2.1230001 0 3.454 1.5949999 3.454 3.817 c 0 2.211 -1.3309999 3.795 -3.454 3.795 c -2.112 0 -3.443 -1.5840001 -3.443 -3.795 c 0 -2.2220001 1.3310001 -3.817 3.443 -3.817 Z m 0 0.86899996 c -1.3310001 0 -2.387 1.045 -2.387 2.948 c 0 1.8920002 1.056 2.926 2.387 2.926 c 1.342 0 2.3979998 -1.0339999 2.3979998 -2.926 c 0 -1.903 -1.0559998 -2.948 -2.3979998 -2.948 Z "/>
193
+ </symbol>
194
+ <symbol id="g9B9A1BF63A9766F8C0B40B4051A84A51" overflow="visible">
195
+ <path d="M 0 0m 0.726 0 h 3.102 v 0.814 h -1.0340002 v 5.72 h 1.0340002 v 0.8140001 h -3.102 v -0.8140001 h 1.0339999 v -5.72 h -1.0339999 Z "/>
196
+ </symbol>
197
+ <symbol id="gFC56EBF65BD9B024337670982F5F9983" overflow="visible">
198
+ <path d="M 0 0m 0.83599997 0 h 1.034 v 6.27 l 2.1340003 -6.27 h 1.0229998 l 2.1230001 6.27 v -6.27 h 1.0339999 v 7.348 h -1.7160001 l -1.9580002 -6.006 l -1.9579997 6.006 h -1.7160001 Z "/>
199
+ </symbol>
200
+ <symbol id="g3F48166CB75ACE841C8E519E653066DB" overflow="visible">
201
+ <path d="M 0 0m 0.11 0 h 1.1 l 0.561 1.606 h 3.3439999 l 0.56100035 -1.606 h 1.0999999 l -2.75 7.3589997 h -1.155 Z m 1.9799999 2.497 l 1.3530002 3.8170002 l 1.3529999 -3.8170002 Z "/>
202
+ </symbol>
203
+ <symbol id="gB717C532EAF0F3889F294E6FF8C0FEFC" overflow="visible">
204
+ <path d="M 0 0m 3.872 -0.132 c 0.99 0 1.8479998 0.308 2.3209999 1.056 l 0.2750001 -0.924 h 0.59399986 v 3.795 h -3.1239998 v -0.89100003 h 2.1450002 v -0.2420001 c 0 -1.5179999 -1.1880002 -1.925 -2.1670003 -1.925 c -1.3639998 0 -2.31 1.1 -2.31 2.948 c 0 1.914 1.0120001 2.926 2.31 2.926 c 0.95700026 0 1.606 -0.4619999 1.9359999 -1.1220002 l 0.9130001 0.32999992 c -0.5169997 1.0670004 -1.5619998 1.6610003 -2.794 1.6610003 c -2.079 0 -3.421 -1.507 -3.421 -3.795 c 0 -2.2329998 1.21 -3.817 3.322 -3.817 Z "/>
205
+ </symbol>
206
+ <symbol id="gF93A227658B03CB307570F2DA224204" overflow="visible">
207
+ <path d="M 0 0m 0.83599997 0 h 4.983 v 0.891 h -3.949 v 2.442 h 2.915 v 0.89100003 h -2.915 v 2.2329998 h 3.949 v 0.8910003 h -4.983 Z "/>
208
+ </symbol>
209
+ <symbol id="g7862F305D12ABFC55EF0735932F77BE5" overflow="visible">
210
+ <path d="M 0 0m 0.65999997 4.719 h 0.605 l 0.68200004 1.7820001 c 0.032999992 0.08799982 0.055000067 0.17600012 0.055000067 0.2750001 c 0 0.37400007 -0.31900012 0.704 -0.71500015 0.704 c -0.38499993 0 -0.70399994 -0.31900024 -0.70399994 -0.71500015 c 0 -0.35199976 0.25299996 -0.638 0.59400004 -0.69299984 Z "/>
211
+ </symbol>
212
+ <symbol id="gD752B370A8826292DCD25DE3E25B1FE" overflow="visible">
213
+ <path d="M 0 0m 0.456 0 h 0.564 v 1.818 h 2.04 v 0.48599994 h -2.04 v 1.2180002 h 2.04 v 0.48599982 h -2.6039999 Z "/>
214
+ </symbol>
215
+ <symbol id="g3239A640403674AE202748B5E1437E61" overflow="visible">
216
+ <path d="M 0 0m 0.456 0 h 2.718 v 0.486 h -2.154 v 3.5219998 h -0.564 Z "/>
217
+ </symbol>
218
+ <symbol id="g163AA1FB62DCB251D1C48C79A9571AC1" overflow="visible">
219
+ <path d="M 0 0m 0.24000001 0 l 2.838 1.278 v 0.42000008 l -2.838 1.278 v -0.53999996 l 2.208 -0.9480001 l -2.208 -0.948 Z "/>
220
+ </symbol>
221
+ <symbol id="g93F8200466625E36BCD1FD5A77D08885" overflow="visible">
222
+ <path d="M 0 0m 2.112 -0.072 c 0.53999996 0 1.0080001 0.168 1.266 0.576 l 0.1500001 -0.504 h 0.32399988 v 2.07 h -1.704 v -0.48599994 h 1.1700001 v -0.13199997 c 0 -0.828 -0.648 -1.05 -1.1820002 -1.05 c -0.74399996 0 -1.26 0.59999996 -1.26 1.608 c 0 1.0440001 0.552 1.596 1.26 1.596 c 0.5220001 0 0.87600017 -0.25199986 1.056 -0.612 l 0.49800014 0.18000007 c -0.28200006 0.582 -0.852 0.9059999 -1.5239999 0.9059999 c -1.1340001 0 -1.8660002 -0.8219998 -1.8660002 -2.07 c 0 -1.2179999 0.66 -2.082 1.812 -2.082 Z "/>
223
+ </symbol>
224
+ <symbol id="gE8F7C0817DE25796B1FCA3B790A743C9" overflow="visible">
225
+ <path d="M 0 0m 0.42000002 0 h 0.504 v 1.278 c 0 0.732 0.23399997 1.1580001 0.91199994 1.218 c 0.05400002 0.006000042 0.11400008 0.006000042 0.17400002 0.006000042 v 0.52199984 c -0.49800003 0 -0.852 -0.24000001 -1.062 -0.5999999 l -0.162 0.55200005 h -0.366 Z "/>
226
+ </symbol>
227
+ <symbol id="gA834A0B40F5C633274C5B0F61592B98C" overflow="visible">
228
+ <path d="M 0 0m 1.362 -0.072 c 0.49199998 0 0.7620001 0.21599999 0.93000007 0.504 l 0.12599993 -0.432 h 0.37800002 v 2.982 h -0.50399995 v -1.6380001 c 0 -0.636 -0.28200006 -0.972 -0.75600004 -0.972 c -0.37199998 0 -0.624 0.16800001 -0.624 0.82800007 v 1.7820001 h -0.504 v -1.9020001 c 0 -0.67800003 0.25800002 -1.1520001 0.954 -1.1520001 Z "/>
229
+ </symbol>
230
+ <symbol id="g7AA3443660EA9F9096AC67973A824BD4" overflow="visible">
231
+ <path d="M 0 0m 1.644 -1.152 c 0.9660001 0 1.296 0.48599994 1.296 1.434 v 2.694 h -0.36599994 l -0.13800001 -0.46799994 c -0.18600011 0.3119998 -0.4740001 0.5159998 -0.9480001 0.5159998 c -0.66 0 -1.26 -0.5339999 -1.26 -1.4879999 c 0 -0.954 0.6 -1.482 1.26 -1.482 c 0.47399998 0 0.76199996 0.198 0.9480001 0.51 v -0.39600003 c 0 -0.576 -0.18000007 -0.876 -0.79200006 -0.876 c -0.24600005 0 -0.546 0.07800001 -0.65400004 0.39000002 l -0.504 -0.13800001 c 0.15600002 -0.498 0.672 -0.696 1.158 -0.696 Z m -0.03000009 1.6259999 c -0.49199998 0 -0.84 0.38399997 -0.84 1.062 c 0 0.678 0.348 1.056 0.84 1.056 c 0.45000017 0 0.84000003 -0.29999995 0.84000003 -1.056 c 0 -0.756 -0.38999987 -1.062 -0.84000003 -1.062 Z "/>
232
+ </symbol>
233
+ <symbol id="gD5A92202F95A322468043B2A5427B47D" overflow="visible">
234
+ <path d="M 0 0m 1.2540001 -0.072 c 0.52199996 0 0.834 0.18 1.014 0.48 l 0.119999886 -0.408 h 0.46200013 c -0.05400014 0.282 -0.10200024 0.624 -0.10200024 1.122 v 0.696 c 0 0.834 -0.36599994 1.206 -1.1879998 1.206 c -0.53400004 0 -0.97800004 -0.26399994 -1.1400001 -0.72 l 0.486 -0.14399981 c 0.065999985 0.28799987 0.29999995 0.4619999 0.65999997 0.4619999 c 0.48000002 0 0.69000006 -0.28200006 0.67199993 -0.786 c -1.2179999 -0.13799989 -2.01 -0.342 -2.01 -1.05 c 0 -0.546 0.462 -0.85800004 1.026 -0.85800004 Z m 0.10799992 0.402 c -0.36 0 -0.576 0.18600002 -0.576 0.46799996 c 0 0.408 0.582 0.5400001 1.494 0.63600004 v -0.18599999 c 0 -0.702 -0.44999993 -0.918 -0.918 -0.918 Z "/>
235
+ </symbol>
236
+ <symbol id="g287FBDAD10BD4C5D7E8C1AA9A2EE6444" overflow="visible">
237
+ <path d="M 0 0m 0.42000002 0 h 0.504 v 1.614 c 0 0.63600004 0.288 0.97800004 0.72 0.97800004 c 0.546 0 0.6359999 -0.40199995 0.6359999 -0.85800004 v -1.734 h 0.50399995 v 1.614 c 0 0.63600004 0.28200006 0.97800004 0.7140002 0.97800004 c 0.55200005 0 0.6359997 -0.40199995 0.6359997 -0.85800004 v -1.734 h 0.5040002 v 1.8840001 c 0 0.678 -0.26999998 1.1399999 -0.96000004 1.1399999 c -0.41400003 0 -0.76199985 -0.1559999 -1.0019999 -0.52199984 c -0.13200021 0.32399988 -0.4020002 0.52199984 -0.85800016 0.52199984 c -0.444 0 -0.72599995 -0.21599984 -0.89399993 -0.4979999 l -0.13200003 0.45000005 h -0.37199998 Z "/>
238
+ </symbol>
239
+ <symbol id="gB9187A98034321EDC861B027CC2E7C69" overflow="visible">
240
+ <path d="M 0 0m 1.686 -0.072 c 0.55799997 0 0.96599996 0.24599999 1.182 0.594 l -0.48600006 0.144 c -0.13800001 -0.18 -0.3599999 -0.294 -0.696 -0.294 c -0.36599994 0 -0.894 0.22800002 -0.918 0.97800004 h 2.2919998 c 0.06000018 0.8519999 -0.43799996 1.6739999 -1.3859999 1.6739999 c -0.81600004 0 -1.446 -0.5999999 -1.446 -1.5419999 c 0 -0.876 0.522 -1.554 1.458 -1.554 Z m -0.912 1.824 c 0.048000038 0.6 0.45 0.84000003 0.90000004 0.84000003 c 0.5279999 0 0.84599996 -0.42000008 0.852 -0.84000003 Z "/>
241
+ </symbol>
242
+ <symbol id="g82AEC229262869250B06E2214FAD319B" overflow="visible">
243
+ <path d="M 0 0m 0.42000002 0 h 0.504 v 1.614 c 0 0.63600004 0.29999995 0.97800004 0.786 0.97800004 c 0.576 0 0.65400004 -0.40199995 0.65400004 -0.85800004 v -1.734 h 0.50399995 v 1.8840001 c 0 0.678 -0.26399994 1.1399999 -0.98399997 1.1399999 c -0.50400007 0 -0.79200006 -0.21599984 -0.96000004 -0.4979999 l -0.13200003 0.45000005 h -0.37199998 Z "/>
244
+ </symbol>
245
+ <symbol id="gF0B47B22951E0D631D8D5F2F4FB629BE" overflow="visible">
246
+ <path d="M 0 0m 1.434 -0.072 c 0.61800003 0 1.2119999 0.324 1.2119999 0.888 c 0 0.63 -0.47399998 0.804 -0.94799984 0.9 l -0.3900001 0.07800007 c -0.31199998 0.059999943 -0.552 0.15600002 -0.552 0.41399992 c 0 0.25800014 0.29399997 0.39600015 0.6000001 0.39600015 c 0.28199995 0 0.576 -0.11400008 0.67799985 -0.3540001 l 0.47400022 0.17400002 c -0.18000007 0.41400003 -0.6480001 0.60599995 -1.1160002 0.60599995 c -0.576 0 -1.1459999 -0.2939999 -1.1459999 -0.82800007 c 0 -0.53999984 0.384 -0.72599983 0.81600004 -0.81599987 l 0.41400003 -0.08399999 c 0.3599999 -0.07200003 0.65999985 -0.18000007 0.65999985 -0.50400007 c 0 -0.26999998 -0.34799993 -0.44399998 -0.7019999 -0.44399998 c -0.33000004 0 -0.672 0.144 -0.762 0.498 l -0.486 -0.18 c 0.198 -0.51 0.732 -0.74399996 1.248 -0.74399996 Z "/>
247
+ </symbol>
248
+ <symbol id="g903FE33AF7A7D7F59C402B96A95C134" overflow="visible">
249
+ <path d="M 0 0m 1.326 0 h 0.37800002 v 0.444 h -0.26999998 c -0.288 0 -0.306 0.07800001 -0.306 0.384 v 1.746 h 0.576 v 0.40199995 h -0.576 v 0.75 h -0.504 v -0.75 h -0.504 v -0.40199995 h 0.504 v -1.8300002 c 0 -0.61800003 0.13199997 -0.744 0.70199996 -0.744 Z "/>
250
+ </symbol>
251
+ <symbol id="g3B19631941830A04970FE23408BEBA84" overflow="visible">
252
+ <path d="M 0 0m 0.456 0 h 0.564 v 3.42 l 1.164 -3.42 h 0.5580001 l 1.158 3.42 v -3.42 h 0.5640001 v 4.008 h -0.9360001 l -1.0680001 -3.276 l -1.0680001 3.276 h -0.936 Z "/>
253
+ </symbol>
254
+ <symbol id="gF7F7F05E49E8BF04013C76D2C09E494E" overflow="visible">
255
+ <path d="M 0 0m 2.43 3.402 c -0.582 0.51600003 -0.9180001 1.0019999 -1.0200001 1.296 h -0.13800001 c -0.26399994 -0.64799976 -1.032 -1.296 -1.038 -1.296 v -0.24000001 c 0.50400007 0.2340002 0.7800001 0.48000002 0.94200003 0.6780002 v -5.2200003 h 0.31200004 v 5.2200003 c 0.18599999 -0.19200015 0.51 -0.48600006 0.94200003 -0.6660001 Z "/>
256
+ </symbol>
257
+ <symbol id="g7237CF2B333058C34F118762B797DC4D" overflow="visible">
258
+ <path d="M 0 0m 1.32 0 h 0.50399995 v 4.008 h -0.33599997 c -0.17400002 -0.49199986 -0.66 -0.5819998 -1.2360001 -0.5819998 v -0.4020002 h 1.0680001 Z "/>
259
+ </symbol>
260
+ <symbol id="gE8AB17E0589F6D11B8C728712C2BB22B" overflow="visible">
261
+ <path d="M 0 0m 5.136 0.492 c 0.5159998 0.582 1.0019999 0.918 1.296 1.02 v 0.13800001 c -0.64800024 0.26400006 -1.296 1.032 -1.296 1.038 h -0.24000025 c 0.2340002 -0.50399995 0.48000002 -0.78 0.678 -0.9419999 h -5.22 v -0.31200004 h 5.22 c -0.19199991 -0.18599999 -0.48600006 -0.51 -0.6659999 -0.94200003 Z "/>
262
+ </symbol>
263
+ <symbol id="gC550F155210EB37C73BBE876039E6B" overflow="visible">
264
+ <path d="M 0 0m 1.632 -0.072 c 0.7620001 0 1.4520001 0.39 1.4520001 1.2 c 0 0.41999996 -0.16799998 0.816 -0.7680001 1.0020001 c 0.42000008 0.17399979 0.65400004 0.52199984 0.65400004 0.9299998 c 0 0.7440002 -0.5999999 1.02 -1.296 1.02 c -0.73800004 0 -1.218 -0.37799978 -1.362 -0.94799995 l 0.492 -0.14400005 c 0.07800001 0.39600015 0.36599994 0.67200017 0.85800004 0.67200017 c 0.426 0 0.77999985 -0.22200012 0.77999985 -0.65400004 c 0 -0.6300001 -0.6839999 -0.6660001 -1.134 -0.6660001 v -0.45599985 c 0.31800008 0 1.236 0.0059999228 1.236 -0.7620001 c 0 -0.49799997 -0.37799978 -0.774 -0.9059999 -0.774 c -0.51 0 -0.798 0.282 -0.888 0.70199996 l -0.498 -0.14399993 c 0.13800001 -0.546 0.57000005 -0.97800004 1.38 -0.97800004 Z "/>
265
+ </symbol>
266
+ </defs>
267
+ </svg>
@@ -0,0 +1,6 @@
1
+ INFO:root:Create thing sign
2
+ INFO:location F-G-F-R ↑ 6 → 2 @ /home/felix/Documents/Hobby/fahrrad/things-data/things/rahmenschloss:has extra information {'comment': 'zu groß für Box, wird bestimmt verschoben'}.
3
+ WARNING:flinventory.defaulted_data:debug: found todo_name_alt_de (de) but todo_name_alt should not be translated
4
+ INFO:root:Start creating sign svg.
5
+ ERROR:flinventory.labelprinter_typst:Typst error: file not found (searched at /tmp/tmptm35ovka/thingtemplate_typst/NOIMAGE)
6
+ INFO:root:Tried to create file out/bowdenzugklemmung{n}.svg with format svg and root / and font_paths [PosixPath('/nix/store/4vhrivk07bgzar0d7npfxzzalhzrsa4y-atkinson-hyperlegible-0-unstable-2021-04-29')]
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "flinventory"
3
- version = "2.1.7"
3
+ version = "2.2.2"
4
4
  description = "An inventory system for self-help repair shops"
5
5
  authors = [
6
6
  { name = "flukx", email = "flinventory-flukx@612211124.xyz" },
File without changes
File without changes