159 Commits

Author SHA1 Message Date
Yuki Okushi
f99d548519 Merge pull request #905 from elijaholmos/citation 2025-11-06 05:57:47 +09:00
Yuki Okushi
27487d73b5 Add the semver team to authors 2025-08-24 09:37:27 +09:00
Yuki Okushi
d58db16863 Merge pull request #975 from vaitkus/fix-style-issues 2025-06-23 19:31:18 +09:00
Steve Klabnik
af8bf6cfbd Merge pull request #1128 from ljharb/patch-1
Fix FAQ entry about fixing accidental breaking changes
2025-06-17 13:32:19 -05:00
Jordan Harband
a57f5ce1fd Fix FAQ entry about fixing accidental breaking changes
See https://github.com/semver/semver/issues/1068#issuecomment-2977375544
2025-06-16 16:27:27 -07:00
vaitkus
ee4f1d2657 Change capitalisation of some words to match usage elsewhere in the text. 2023-09-19 11:01:34 +03:00
vaitkus
d073e5cde9 Change "overkill" to "an overkill". 2023-09-19 10:58:59 +03:00
Yuki Okushi
38a25311c9 Merge pull request #943 from JohnTitor/contributing-guide 2023-06-06 21:22:08 +09:00
Yuki Okushi
583caeaeb1 Merge pull request #909 from ttous/patch-1 2023-05-07 10:08:03 +09:00
Yuki Okushi
28f2acc94b Refine the contributing guide
Signed-off-by: Yuki Okushi <jtitor@2k36.org>
2023-05-07 10:05:23 +09:00
Steve Klabnik
b9bcf66835 Merge pull request #933 from Satyxm/Satyxm-patch-1
Made some improvements in words.
2023-04-06 12:21:36 -05:00
Satyam Singh
fb73456149 Made some improvements in words. 2023-04-02 22:15:47 +05:30
Teddy Toussaint
4afa31686c Fix 'backwards' typo
Sources:
- https://wordstylehq.com/backward-vs-backwards
- https://www.quickanddirtytips.com/articles/backward-versus-backwards/
- https://writingexplained.org/backward-or-backwards-difference
2023-01-16 11:36:24 +01:00
Elijah Olmos
6c801f323c docs: create CITATION.cff 2022-12-17 15:01:15 -08:00
Yuki Okushi
a4f21e1a6f Merge pull request #902 from JohnTitor/JohnTitor-patch-1 2022-12-01 20:07:35 +09:00
Yuki Okushi
63f64e1618 Fix more hyphens' rendering 2022-12-01 20:06:27 +09:00
Yuki Okushi
6b9f3f566a Merge pull request #901 from lgarron/patch-1 2022-12-01 19:22:28 +09:00
Lucas Garron
fc91871069 Escape dashes in the 1.0.0+21AF26D3----117B344092BD example.
When unescaped, the first three dashes are rendered as an em dash at https://semver.org/#spec-item-10

> ... 1.0.0+21AF26D3—-117B344092BD.

Adding the backspaces prevents this rendering issue.
2022-11-30 19:20:17 -08:00
Yuki Okushi
d5d9e738e3 Merge pull request #862 from JohnTitor/update-maintainers-list 2022-07-27 21:14:28 +09:00
Yuki Okushi
ef55667d4a Update maintainers list
Signed-off-by: Yuki Okushi <jtitor@2k36.org>
2022-07-27 20:55:21 +09:00
Yuki Okushi
1687553323 Merge pull request #859 from JohnTitor/npm-audit 2022-07-26 21:10:20 +09:00
Yuki Okushi
820c39c7fb Run npm audit --force
Signed-off-by: Yuki Okushi <jtitor@2k36.org>
2022-07-26 21:08:00 +09:00
Yuki Okushi
2f57e9fca0 Merge pull request #840 from sharifm-informatica/patch-1 2022-07-21 17:14:50 +09:00
Yuki Okushi
7353be694e Merge pull request #857 from JohnTitor/gha
Update GHA workflow
2022-07-21 17:13:43 +09:00
Yuki Okushi
f36a6a103b Use new lockfile format
Signed-off-by: Yuki Okushi <jtitor@2k36.org>
2022-07-21 17:12:30 +09:00
Yuki Okushi
e214dda2fb Update GHA workflow
Signed-off-by: Yuki Okushi <jtitor@2k36.org>
2022-07-21 17:12:23 +09:00
Sherif Metwally
c88eb09c26 Minor refinement to the summary list items
Summary appears to have been complete sentences that were broken into a numbered list. This modification cleans up the remaining commas and an extra "and".
2022-05-21 17:38:26 +02:00
Alexandr Tovmach
c13e625abe Merge pull request #735 from adamralph/patch-1
explain how changes are published to the website
2021-07-26 13:06:17 +03:00
Adam Ralph
18771b651d explain how changes are published to the website 2021-07-26 10:45:22 +02:00
Alexandr Tovmach
fe647be722 Merge pull request #623 from adamralph/patch-1
switch to plural first person pronoun
2021-07-26 10:20:37 +03:00
Alexandr Tovmach
109ccf4f96 Merge pull request #660 from revolter/patch-1
Fix typo
2021-07-26 10:19:22 +03:00
Iulian Onofrei
8cf48fbb25 Fix typo 2021-02-12 19:35:56 +02:00
Adam Ralph
da15534d35 switch to plural first person pronoun 2020-10-10 20:02:46 +02:00
Alexandr Tovmach
2f5ef23b3e Merge pull request #587 from minasploit/patch-1
Update checks.yml
2020-06-28 13:35:28 +03:00
Minasie Shibeshi
fb72e13228 Update checks.yml
Typo on workflow name
2020-06-26 08:35:15 +03:00
Steve Klabnik
0c5f2fcf18 Merge pull request #585 from DannyS712/patch-1
Code of conduct: Use https links
2020-06-23 17:12:21 -05:00
DannyS712
0f0b28d527 Code of conduct: Use https links
contributor-covenant.org supports https, and as a result links shouldn't be using http
2020-06-22 18:09:22 -07:00
Alexandr Tovmach
8b2e8eec39 Merge pull request #566 from tomschr/feature/561-item11
Improve readability of item 11
2020-06-20 00:50:38 +03:00
Alexandr Tovmach
371f7fac38 fix: Updated list indentation 2020-06-20 00:48:18 +03:00
Alexandr Tovmach
04e3a4de14 Merge pull request #557 from DannyS712/master
Minor copyedits to code of conduct and contributing files
2020-06-19 21:59:41 +03:00
André Arko
db63f83a25 Merge pull request #578 from alexandrtovmach/patch/linter
feat: Added linter and workflow; Fixed linter warnings
2020-06-18 12:38:53 -07:00
Alexandr Tovmach
5a662615a7 Merge pull request #579 from alexandrtovmach/patch/README
docs: Added README
2020-06-18 18:21:08 +03:00
alexandrtovmach
fe37085e1d docs: Added README 2020-06-18 18:18:56 +03:00
alexandrtovmach
7b9a905ad1 feat: Added linter and workflow; Fixed linter warnings 2020-06-18 16:50:54 +03:00
Thomas Schraitle
5fddddab80 Fix #561: improve readability of item 11
Introduce a list to separate the different rules
to make item 11 more accessible.
2020-05-08 21:05:45 +02:00
DannyS712
5a2850504c Tweak
Per review comment
2020-04-28 22:02:13 -07:00
DannyS712
8aeb2c7621 Add a missing period to CODE_OF_CONDUCT.md
The final sentence was missing a period
2020-04-05 01:25:43 -07:00
DannyS712
e3ea339279 Minor copyedit to CONTRIBUTING.md
Add a missing "to", define the term "PR" (required making the sentence use the singular for parallelism with "RFC")
2020-04-05 01:24:45 -07:00
Adam Ralph
0af542fb42 convert original authorship to past tense (#499)
"..._is_ authored by Tom Preston-Werner..." is incorrect. It's now a community effort, with a team of maintainers.
2020-01-22 15:43:36 -08:00
Joseph Donahue
dd92b6460a Hyphen should be hyphens in the pre-release clause (#466)
* Hyphen should be hyphens in the pre-release clause

Fix for #465 How many hypens are you allowed in the prerelease tag.

* Added pluralization of hyphen in prerelease.

Added pluralization of hyphen in prerelease as well as additional examples in prerelease and build meta.
2020-01-22 15:40:34 -08:00
Adam Ralph
4740b30226 linkify maintainer list (#500)
* linkify maintainer list

* fix case of npm

Co-Authored-By: adamralph <adam@adamralph.com>

* Add Composer to maintainers

Co-authored-by: Jordan Harband <ljharb@gmail.com>
Co-authored-by: Jordi Boggiano <j.boggiano@seld.be>
2020-01-22 15:38:48 -08:00
Steve Klabnik
53f4c47b08 Merge pull request #544 from BackEndTea/patch-1
Update links to https
2019-12-31 11:06:14 -06:00
Gert de Pagter
6a1d691c2c Update links to https 2019-12-31 17:35:48 +01:00
isaacs
711f75e470 fix: hyperlink the CC BY 3.0 link 2019-08-07 14:24:14 -07:00
wolf99
01b1403fb0 Add FAQ for semver regex
EDIT: formatted JSON and added hyperlinks -- @isaacs

PR-URL: https://github.com/semver/semver/pull/460
Credit: @wolf99
Close: #460
Reviewed-by: @isaacs
2019-08-07 13:07:29 -07:00
Phil Haack
d460299638 Fix team name
Team names on GitHub include the org.
2019-02-11 09:33:03 -08:00
Phil Haack
3a69237f4e Merge pull request #492 from semver/list-maintainers
Spell out the list of maintainers
2019-02-11 09:32:07 -08:00
Phil Haack
5809cd382e Spell out the list of maintainers
The @semver/maintainers team member list is not publicly displayed even though the team is public. It's only public to members of the org. This PR spells out the list of members and their affiliations.
2019-02-11 09:29:51 -08:00
Haacked
694701e999 Add a governance and RFC document
This document describes the new governance model and RFC process for SemVer.

This information will be in the CONTRIBUTING.md file so that GitHub presents this any time someone creates a PR or issue.
2019-02-11 08:56:47 -08:00
Phil Haack
231000ff73 Merge pull request #451 from ExplodingCabbage/patch-1
Stylise "backwards compatible" consistently
2019-01-28 13:10:01 -08:00
Phil Haack
3cf341458e Merge pull request #437 from guillermocalvo/master
Fix link to issues
2019-01-28 13:08:58 -08:00
Mark Amery
9e13cffa77 Stylise "backwards compatible" consistently
Later in the document, it's consistently spelt with a space, rather than a hyphen - so I figure it should be here, too.
2018-07-25 22:43:29 +01:00
Guillermo Calvo
782601a454 Fix link to issues 2018-04-01 00:31:47 +09:00
Phil Haack
0310cdd5a1 Merge pull request #419 from jwdonahue/patch-1
Create CODE_OF_CONDUCT.md file.
2017-12-26 10:06:44 -08:00
Joseph Donahue
d32e2caed6 Create CODE_OF_CONDUCT.md file.
Should be SOP for GitHub sites.
2017-12-15 16:33:12 -08:00
Phil Haack
eb9aac590f Merge pull request #379 from 0atman/patch-1
"Gravatars" -> "Gravatar"
2017-06-07 09:26:34 -07:00
Tristram Oaten
347f73f880 "Gravatars" -> "Gravatar" 2017-06-07 14:23:05 +01:00
Phil Haack
df7bd79bda Merge pull request #374 from johananl/master
Add a missing question mark in the FAQ
2017-05-17 13:22:19 -07:00
Johanan Liebermann
e67b603994 Add a missing question mark in the FAQ 2017-05-17 19:40:48 +03:00
Phil Haack
520670dc0e Merge pull request #312 from krzysiekpiasecki/master
Mark keywords
2016-06-08 09:38:43 -07:00
Krzysztof Piasecki
67fe2a35f0 Mark keywords 2016-06-08 12:59:19 +02:00
Phil Haack
91dac1bff9 Merge pull request #310 from krzysiekpiasecki/patch-1
Fix CS
2016-06-05 15:14:27 -07:00
Krzysztof Piasecki
bdc6989cb1 Fix CS 2016-06-05 23:23:23 +02:00
Phil Haack
7d25f89990 Merge pull request #234 from beck/doug/to-v-or-not-to-v
Address "v" prefixing in the FAQ
2016-02-08 14:26:28 -08:00
Doug Beck
ba78eedf77 Address "v" prefixing in the FAQ 2015-05-05 21:11:39 -04:00
Phil Haack
255bc951da Merge pull request #194 from ksokhan/patch-2
Fixing typo: "dread" --> "dreaded"
2014-04-21 14:10:10 -07:00
Konstantin
05e793243b Fixing typo: "dread" --> "dreaded" 2014-04-21 16:48:50 -04:00
Phil Haack
a4e6d52b52 Merge pull request #144 from isaacs/railroad
Add railroad-diagram svg
2014-02-12 09:10:48 -08:00
Phil Haack
f9e2c4f729 Merge pull request #151 from toddreed/master
Fixed inconsistent language about build metadata and precedence
2013-08-11 12:39:38 -07:00
Todd Reed
a27ac08e16 Fixed inconsistent language about how build metadata and precedence 2013-08-11 10:24:46 -06:00
Phil Haack
f1ab1fabaf Merge pull request #116 from isaacs/bnf
Add BNF Grammar for valid version strings
2013-08-06 09:09:51 -07:00
isaacs
5faa8fe870 Add railroad-diagram svg
Generated via http://www.regexplained.co.uk/
2013-07-24 15:05:22 -07:00
Phil Haack
9402b8ff19 Merge pull request #142 from wincent/wrap-fix
Fix wrapping of overlength line in Summary section
2013-07-21 15:02:16 -07:00
Wincent Colaiuta
a2769c455b Fix wrapping of overlength line in Summary section 2013-07-21 10:17:48 -07:00
Phil Haack
be43a960cc Merge pull request #140 from bessarabov/patch-1
Update semver.md
2013-07-18 09:26:51 -07:00
Ivan Bessarabov
ffcf2151ac Update semver.md
In the other part of the document the word 'SemVer' is used. I think it is a good idea to use same word in the document.
2013-07-18 17:53:56 +04:00
Phil Haack
8607e3d347 Merge pull request #131 from EddieGarmon/issue-130
Add 'also' to clarify that major change may also include minor and patch...
2013-07-02 14:16:59 -07:00
Eddie Garmon
dab9870ceb Add 'also' to clarify that major change may also include minor and patch changes. 2013-07-02 14:07:13 -04:00
Phil Haack
9378560781 Merge pull request #125 from doismellburning/remove_trailing_whitespace
Removed trailing whitespace
2013-06-21 09:06:46 -07:00
Kristian Glass
b6ccdcefc8 Removed trailing whitespace 2013-06-21 14:40:04 +01:00
isaacs
5f00f5717c bnf: Remove unused 'letters', 'non-digits'
via: @EddieGarmon
2013-06-19 16:59:46 -07:00
isaacs
9e6ab3ecdb bnf: Simplify 'alphanumeric identifier' 2013-06-19 14:12:26 -07:00
Eddie Garmon
cb5632f1c2 Improve BNF grammar
Better names, more intuitive ordering.
2013-06-19 14:04:10 -07:00
isaacs
375b063e90 Add BNF Grammar for valid version strings
Written in collaboration with @petermichaux

Closes #110
2013-06-19 14:04:02 -07:00
Phil Haack
7c834b3f3a Merge pull request #120 from mojombo/release-2.0
Mark 2.0.0 as RTM
2013-06-18 10:14:52 -07:00
Haacked
9eca13516c Mark 2.0.0 as RTM 2013-06-17 13:20:33 -07:00
Phil Haack
413db686ba Merge pull request #118 from Tieske/increments
increments by one
2013-06-15 12:35:14 -07:00
Thijs Schreijer
2bfa9b0cba removed increments by 1 2013-06-15 08:57:37 +02:00
Thijs Schreijer
7b6a13b4de by one -> SHOULD, not MUST 2013-06-14 21:34:59 +02:00
Phil Haack
bfa82b5405 Merge pull request #115 from isaacs/no-leading-zeroes
No leading zeroes on numeric identifiers
2013-06-13 21:07:54 -07:00
isaacs
9248bf1b25 No leading zeroes on numeric identifiers
Closes mojombo/semver#112
2013-06-13 17:00:13 -07:00
Phil Haack
17f64bceed Merge pull request #92 from jeffhandley/summary
Fixes #12 with a new PR, updated to reflect pre-release and build metadata.
2013-06-13 09:26:26 -07:00
Phil Haack
3054e890a0 Merge pull request #109 from mojombo/build-metadata-clarification
Build metadata clarification
2013-06-10 16:49:53 -07:00
Phil Haack
fed7399185 Merge pull request #107 from mojombo/clarify-prerelease
Section 9: Clarify pre-release definition
2013-06-10 16:48:06 -07:00
Haacked
ec887c3b97 Be more precise about version precedence 2013-06-10 09:43:24 -07:00
Haacked
3071b5d2d5 Clarify non-empty build metadata
- Build metadata identifiers MUST not be empty.
- Changed "are" to "have" when discussing version precedence. We usually
say a version HAS a precedence not that it IS a precedence.
2013-06-10 09:43:23 -07:00
isaacs
e692c2f113 Section 10: Clarify language around build metadata precedence
They're not the 'same version', necessarily, they're the same precedence
2013-06-10 09:43:22 -07:00
Phil Haack
abdf40e7b5 Merge pull request #108 from mojombo/clarify-version-comparisons
Clarify version comparisons
2013-06-10 09:27:09 -07:00
Haacked
84c96182a5 Attempt to clarify precedence even more.
While this is implied, SemVer never really makes it clear that
1.9.0 < 2.1.1. It only specifies how each identifier is compared.

This commit attempts to clarify how the comparison of each identifier
relates to the comparison of the whole version.
2013-06-09 20:54:29 -07:00
isaacs
9dcea3c170 Section 11: A larger set of pre-release is higher
Clarifies the comparison between, eg 1.0.0-a vs 1.0.0-a.b
2013-06-09 20:13:13 -07:00
isaacs
dee96a6b52 Section 9: Clarify pre-release definition
- Remove confusing 'satisfies' usage.
- Specify that pre-release identifiers cannot be empty.
2013-06-09 19:36:04 -07:00
jeffhandley
a5cbaacd71 Cleaned up punctuation and format of summary 2013-06-03 12:42:54 -07:00
Phil Haack
62c2005379 Merge pull request #99 from mojombo/better-wording-faq
Reword scenario of accidental breaking changes
2013-05-31 23:47:21 -07:00
jeffhandley
663884f86c Remove the details for pre-release and build metadata from the summary 2013-05-31 17:03:57 -07:00
Haacked
ff4fb481f6 Reword scenario of accidental breaking changes
Alternate proposal to #93. This fixes #38
2013-05-31 16:53:15 -07:00
Phil Haack
7a8bae9101 Merge pull request #96 from Tieske/master
Replaces #30, pre-release versions are unstable
2013-05-31 16:46:32 -07:00
Thijs Schreijer
586f185f7a added FAQ entry regarding semver version string size. Fixes #79. 2013-05-08 10:01:50 +02:00
Thijs Schreijer
32ca3576eb updated as suggested 2013-05-07 00:06:46 +02:00
Thijs Schreijer
f5dda6ff07 Replaces #30. Updated wording as suggested 2013-05-06 22:46:57 +02:00
Phil Haack
72981408bd Merge pull request #91 from jeffhandley/issue-40-basis
Fixes #40, adding a statement about the basis of semver. From @icylace.
2013-05-06 13:02:42 -07:00
Jeff Handley
26763fb829 Fixes #12 with a new PR, updated to reflect pre-release and build metadata. 2013-04-30 03:08:20 -07:00
Jeff Handley
2055a0a3ac Fixes #40, adding a statement about the basis of semver. From @icylace. 2013-04-30 02:38:10 -07:00
Phil Haack
eceeff12c5 Merge pull request #77 from mojombo/build-metadata-identifier
Build metadata identifier
2013-03-20 15:00:55 -07:00
Haacked
3823b6a1e3 Add space between "hypen" and regex. 2013-03-15 11:48:47 -07:00
Phil Haack
2629b7e09c Fixed grammar mistake
Changed "be comprised of only" with the correct "comprise only".
Bonus, it's less verbose.
2013-03-13 18:27:15 -07:00
Haacked
9c5829561e Removed the plus sign and added examples
The `+` seemed out of character with the rest of the spec. Following the
example of the pre-release section, we just spell out "sign" and provide
examples for those who don't know what a plus sign is. :)
2013-03-13 14:48:25 -07:00
Haacked
5114f8543a Omit build metadata from precedence rules
Looks like a big change, but all I did was remove Build metadata from
the precedence rules.
2013-03-13 14:36:15 -07:00
Haacked
13aaadaadb Add description of build metadata
Build metadata is a completely optional way to tack on metadata to a
version  that does not affect the public API or precedence while still
be compliant with SemVer. It's not unlike a comment.

This allows folks to build on additional meaning or behavior that's
meaningful to their custom systems without making any claims about the
public version. For example, folks might use it for cache busting,
layering custom behavior on top of SemVer, bookkeeping to tie when and
where a build was made, etc.
2013-03-13 14:30:43 -07:00
jeffhandley
26e3cf8523 Removed an extraneous slash 2013-03-13 14:29:16 -07:00
jeffhandley
57fd19400f Updated to RC2, with new definition for build metadata. 2013-03-13 14:29:16 -07:00
Phil Haack
3458b0091a Merge pull request #73 from vergenzt/master
Change "be comprised of" to "comprise"
2013-03-07 19:27:30 -08:00
Tim Vergenz
43252cc87e Change "be comprised of" to "comprise" 2013-03-07 18:08:20 -08:00
Phil Haack
0229746b89 Merge pull request #21 from slippyd/master
Linking to RFC 2119
2012-12-19 17:20:58 -08:00
Phil Haack
54a1fc1b96 Change sentence to remove inapplicable "Remember"
Closes #31
2012-12-19 17:19:43 -08:00
Phil Haack
8606a7f8b9 Make version format consistent
Elsewhere in this section we use `0.y.z`. In this place, we use `0.x.x`
This commit fixes that.

Closes #18
2012-12-19 17:08:45 -08:00
Phil Haack
b40e67824e Merge pull request #59 from oguzbilgic/patch-1
Fix typo
2012-12-09 11:42:25 -08:00
Oguz Bilgic
b6decc8402 Fix typo 2012-12-09 03:52:41 -08:00
Phil Haack
c5de8d25b2 Merge pull request #54 from omasanori/unify-into-hyphen
Replace the word "dash" with "hyphen".
2012-11-15 09:11:19 -08:00
OGINO Masanori
2eb698df2b Replace the word "dash" with "hyphen".
Signed-off-by: OGINO Masanori <masanori.ogino@gmail.com>
2012-11-13 14:55:37 +09:00
Slipp Douglas
51847ed717 Added link to IETF-hosted RFC 2119 spec.
Went with the hosted version of RFC 2119 that Wikipedia links to. It's not terribly pretty, but it works.
2012-04-12 14:25:09 -04:00
Tom Preston-Werner
3c7f2e8df7 Merge pull request #11 from joliss/wrap
Wrap a few long lines.
2012-02-26 09:48:37 -08:00
Tom Preston-Werner
f64c79d374 Dash -> hyphen. Fixes #16. 2012-02-26 09:46:41 -08:00
Jo Liss
317f556ace Wrap. 2012-01-10 14:26:32 +01:00
Tom Preston-Werner
574fa0c83a Remove redundant rule 3. Closes #7. 2011-12-22 17:03:27 -07:00
Tom Preston-Werner
24eda4f61d This is really the 2.0.0-rc.1 spec. 1.0.0 was previously released. 2011-12-07 11:58:42 +00:00
Tom Preston-Werner
71389faa25 Move pre-release and build sections to last position. 2011-11-25 14:02:24 -08:00
Tom Preston-Werner
ec092b73b3 Use new-style pre-release version rc.1 in header. 2011-11-24 11:39:57 -08:00
Tom Preston-Werner
64b84a0651 Fully specify pre-release and build versions with arbitrary dot elements. 2011-11-24 11:39:20 -08:00
Tom Preston-Werner
7092112756 Correct build precedence example. 2011-11-23 22:09:58 -08:00
Tom Preston-Werner
8e95cdbea8 Use . instead of ~ as pre-release part separator.
I realized that there is no point in using an exotic tilde when a dot will do
just fine. In addition to being simpler and less weird, this change also means
that you can tag these versions in Git, since ~ is invalid in Git tag names.
2011-11-19 12:49:38 -08:00
Tom Preston-Werner
b8f12d78c6 Mark as rc~1. 2011-11-19 12:22:20 -08:00
Tom Preston-Werner
e0f985a726 Add deprecation clarification. Closes mojombo/semver.org#24. 2011-11-19 10:26:53 -08:00
Tom Preston-Werner
5ca270cff1 New school pre-release syntax and semantics. 2011-11-17 10:51:34 -08:00
Tom Preston-Werner
dcec27f836 Version integers must be non-negative. Closes mojombo/semver.org#47. 2011-11-17 10:34:37 -08:00
Tom Preston-Werner
52c9b2b3a6 Remove SemVerTag sub-spec. It is a distraction. 2011-11-02 12:58:20 -03:00
Tom Preston-Werner
ec80195ed3 Make patch/minor version resetting explicit. 2011-09-06 23:48:42 -07:00
Tom Preston-Werner
2f4e9c18ca Add FAQ section on 0.y.z phase releases. 2011-09-06 23:44:18 -07:00
Tom Preston-Werner
92b17d297f FAQ on bufixes returning functionality to documented public API. 2011-06-20 11:29:04 -07:00
Tom Preston-Werner
05a00df02d Delimit pre-release versions by dash instead of dot. 2011-06-19 22:31:16 +02:00
11 changed files with 6401 additions and 61 deletions

15
.github/workflows/checks.yml vendored Normal file
View File

@@ -0,0 +1,15 @@
name: Check changes
on: [pull_request]
jobs:
checks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 16
cache: 'npm'
- run: npm ci
- run: npm run lint

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
node_modules/

19
.remarkrc Normal file
View File

@@ -0,0 +1,19 @@
{
"plugins": [
"remark-frontmatter",
"remark-preset-lint-node",
"remark-lint-mdash-style",
["remark-lint-fenced-code-flag", false],
["remark-lint-first-heading-level", false],
["remark-lint-maximum-line-length", false],
["remark-lint-no-file-name-articles", false],
["remark-lint-no-literal-urls", false],
["remark-lint-no-trailing-spaces", false],
["remark-lint-no-undefined-references", false],
["remark-lint-prohibited-strings", false],
["remark-lint-no-shortcut-reference-link", false],
["remark-lint-unordered-list-marker-style", "-"],
["remark-lint-heading-style", "setext"],
["remark-lint-code-block-style", "fenced"]
]
}

13
CITATION.cff Normal file
View File

@@ -0,0 +1,13 @@
cff-version: 1.2.0
message: "If you reference the Semantic Versioning Specification in your work, please use this metadata."
abstract: '"Semantic Versioning" or "SemVer" contain a set of rules and requirements that dictate how version numbers are assigned and incremented.'
authors:
- family-names: Preston-Werner
given-names: Tom
- name: The SemVer Team
title: Semantic Versioning Specification
version: 2.0.0
date-released: 2013-06-18
url: "https://semver.org"
repository-code: "https://github.com/semver/semver"
license: "CC-BY-3.0"

46
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,46 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at haacked@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [https://contributor-covenant.org/version/1/4][version].
[homepage]: https://contributor-covenant.org
[version]: https://contributor-covenant.org/version/1/4/

72
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,72 @@
# Semver Governance Model
The "RFC" (request for comments) process is intended to provide a consistent and controlled path for changes to the SemVer specification, so that all stakeholders can be confident about the direction the spec is evolving in.
## When you need to follow this process
You need to follow this process if you intend to make "substantial" changes to the specification or the RFC process itself. What constitutes a "substantial" change is evolving based on community norms and varies depending on what part of the specification you are proposing to change, but may include the following:
* Changes to the meaning of the specification.
Some changes do not require an RFC:
* Typo fixes
* Small wording clarifications that do not impact the semantics of the specification.
### Translations
Translations also don't require an RFC.
If you want to contribute to the translations, you can visit the [website repository](https://github.com/semver/semver.org) and submit a PR.
## What the process is
When a pull request ("PR" from here forward) is opened against the specification or
this repository, it may be tagged with an "RFC" tag ("RFC" from here forward).
RFCs require the consensus of all team members (see below) to merge.
## The SemVer Team
We welcome feedback from anyone on the direction of SemVer. However, a group of people, "the SemVer team," are responsible for making decisions about RFC PRs. The SemVer team is made up of representatives from package managers that use SemVer.
Team members are added and removed based on the consensus of the existing team members. The @semver/maintainers team on GitHub contains the official list of the members of "the SemVer team."
The maintainers are:
* [dherman](https://github.com/dherman) ([Notion](https://www.notionjs.com/))
* [indirect](https://github.com/indirect) ([Bundler](https://bundler.io/))
* [isaacs](https://github.com/isaacs) ([npm](https://www.npmjs.com/))
* [JohnTitor](https://github.com/JohnTitor) ([crates.io](https://crates.io/))
* [segiddins](https://github.com/segiddins) ([CocoaPods](https://cocoapods.org/))
* [steveklabnik](https://github.com/steveklabnik) ([Cargo](https://crates.io/))
* [Seldaek](https://github.com/Seldaek) ([Composer](https://getcomposer.org/))
* [zkat](https://github.com/zkat) ([NuGet](https://www.nuget.org/))
## Participation commitment
Participation in the SemVer governance process requires a commitment to maintain, to the greatest degree possible, consistency of the functional and semantic interoperability between SemVer implementations. Towards that end:
* RFCs will be considered formally adopted only when they are approved by the SemVer Maintainers group, _and_ implemented in a simple majority of represented implementations.
* No RFC will be approved if it is deemed to cause significant breakage to any of the SemVer-using communities represented by the SemVer Maintainers group. It is the responsibility of the SemVer Maintainers group to advocate for their communities in good faith.
* With the understanding that implementation may present challenges and require time to complete, refusal on principle to implement approved RFCs will result in removal from the group.
* Implementations may add functionality in advance of an approved RFC (in fact, they have to!) but all such functionality must be flagged as "experimental", so that users understand it may change in the future. (Maintainers are encouraged to perform these experimental changes on forks rather than the implementation in use by their package management communities, to reduce the chance of users coming to rely on experimental functionality.)
## The lifecycle of an RFC
Once a PR is tagged as an RFC:
* The author of the PR should build consensus and integrate feedback. RFCs that have broad support are much more likely to make progress than those that don't receive any comments. Feel free to reach out to the team members to get help identifying stakeholders and obstacles.
* The team will discuss the RFC, as much as possible in the comment thread of the pull request itself. Offline discussion will be summarized on the pull request comment thread.
* RFCs rarely go through this process unchanged. You can make edits, big and small, to the RFC to clarify or change the design, but make changes as new commits to the pull request, and leave a comment on the pull request explaining your changes. Specifically, do not squash or rebase commits after they are visible on the pull request.
* At some point, a member of the team will propose a "motion for final comment period" (FCP), along with a disposition for the RFC (merge, close, or postpone).
* This step is taken when enough of the tradeoffs have been discussed that the subteam is in a position to make a decision. That does not require consensus amongst all participants in the RFC thread (which is usually impossible). However, the argument supporting the disposition on the RFC needs to have already been clearly articulated, and there should not be a strong consensus against that position outside of the subteam. Subteam members use their best judgment in taking this step, and the FCP itself ensures there is ample time and notification for stakeholders to push back if it is made prematurely.
* For RFCs with lengthy discussion, the motion to FCP is usually preceded by a summary comment
trying to lay out the current state of the discussion and major tradeoffs/points of disagreement.
* Before actually entering FCP, all members of the subteam must sign off; this is often the point at which many subteam members first review the RFC in full depth.
* The FCP lasts ten calendar days, so that it is open for at least 5 business days. This way all stakeholders have a chance to lodge any final objections before a decision is reached.
* In most cases, the FCP period is quiet, and the RFC is either merged or closed. However, sometimes substantial new arguments or ideas are raised, the FCP is canceled, and the RFC goes back into development mode.
## RFC postponement
Some RFC pull requests are tagged with the "postponed" label when they are closed (as part of the rejection process). An RFC closed with "postponed" is marked as such because we want neither to think about evaluating the proposal nor about implementing the described feature until some time in the future, and we believe that we can afford to wait until then to do so. Postponed pull requests may be re-opened when the time is right. We don't have any formal process for that, you should ask members of the team.
Usually an RFC pull request marked as "postponed" has already passed an informal first round of evaluation, namely the round of "do we think we would ever possibly consider making this change, as outlined in the RFC pull request, or some semi-obvious variation of it." (When the answer to the latter question is "no", then the appropriate response is to close the RFC, not postpone it.)

9
README.md Normal file
View File

@@ -0,0 +1,9 @@
# Semantic Versioning Specification
"Semantic Versioning" or "SemVer" contains a set of rules and requirements that dictate how version numbers are assigned and incremented. You can find the full document in [semver.md](./semver.md) or visit our official website [semver.org](https://semver.org) to find previous versions and localized specifications.
Changes to the document are published to the website by a [GitHub Actions workflow](https://github.com/semver/semver.org/blob/gh-pages/.github/workflows/sync.yml) which runs once each day.
## Contributing
See the [contribution guide](./CONTRIBUTING.md).

5134
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

33
package.json Normal file
View File

@@ -0,0 +1,33 @@
{
"name": "semver-spec",
"version": "2.0.0",
"description": "Semantic Versioning Specification",
"main": "semver.md",
"scripts": {
"lint": "remark -qf semver.md",
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/semver/semver.git"
},
"keywords": [
"semver",
"semantic",
"versioning",
"specification",
"spec"
],
"author": "",
"license": "ISC",
"bugs": {
"url": "https://github.com/semver/semver/issues"
},
"homepage": "https://github.com/semver/semver#readme",
"devDependencies": {
"remark-cli": "^11.0.0",
"remark-frontmatter": "^2.0.0",
"remark-lint-mdash-style": "^1.1.1",
"remark-preset-lint-node": "^1.16.0"
}
}

292
semver.md
View File

@@ -1,7 +1,23 @@
Semantic Versioning 1.0.0
=========================
Semantic Versioning 2.0.0
==============================
In the world of software management there exists a dread place called
Summary
-------
Given a version number MAJOR.MINOR.PATCH, increment the:
1. MAJOR version when you make incompatible API changes
1. MINOR version when you add functionality in a backward compatible
manner
1. PATCH version when you make backward compatible bug fixes
Additional labels for pre-release and build metadata are available as extensions
to the MAJOR.MINOR.PATCH format.
Introduction
------------
In the world of software management there exists a dreaded place called
"dependency hell." The bigger your system grows and the more packages you
integrate into your software, the more likely you are to find yourself, one
day, in this pit of despair.
@@ -15,90 +31,184 @@ specified too loosely, you will inevitably be bitten by version promiscuity
Dependency hell is where you are when version lock and/or version promiscuity
prevent you from easily and safely moving your project forward.
As a solution to this problem, I propose a simple set of rules and
As a solution to this problem, we propose a simple set of rules and
requirements that dictate how version numbers are assigned and incremented.
These rules are based on but not necessarily limited to pre-existing
widespread common practices in use in both closed and open-source software.
For this system to work, you first need to declare a public API. This may
consist of documentation or be enforced by the code itself. Regardless, it is
important that this API be clear and precise. Once you identify your public
API, you communicate changes to it with specific increments to your version
number. Consider a version format of X.Y.Z (Major.Minor.Patch). Bug fixes not
affecting the API increment the patch version, backwards compatible API
additions/changes increment the minor version, and backwards incompatible API
affecting the API increment the patch version, backward compatible API
additions/changes increment the minor version, and backward incompatible API
changes increment the major version.
I call this system "Semantic Versioning." Under this scheme, version numbers
We call this system "Semantic Versioning." Under this scheme, version numbers
and the way they change convey meaning about the underlying code and what has
been modified from one version to the next.
Semantic Versioning Specification (SemVer)
------------------------------------------
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
interpreted as described in RFC 2119.
interpreted as described in [RFC 2119](https://tools.ietf.org/html/rfc2119).
1. Software using Semantic Versioning MUST declare a public API. This API
could be declared in the code itself or exist strictly in documentation.
However it is done, it should be precise and comprehensive.
However it is done, it SHOULD be precise and comprehensive.
1. A normal version number MUST take the form X.Y.Z where X, Y, and Z are
integers. X is the major version, Y is the minor version, and Z is the patch
version. Each element MUST increase numerically by increments of one. For
instance: 1.9.0 -> 1.10.0 -> 1.11.0.
1. When a major version number is incremented, the minor version and patch
version MUST be reset to zero. When a minor version number is incremented, the
patch version MUST be reset to zero. For instance: 1.1.3 -> 2.0.0 and 2.1.7 ->
2.2.0.
1. A pre-release version number MAY be denoted by appending an arbitrary
string immediately following the patch version and a decimal point. The string
MUST be comprised of only alphanumerics plus dash [0-9A-Za-z-] and MUST begin
with an alpha character [A-Za-z]. Pre-release versions satisfy but have a
lower precedence than the associated normal version. Precedence SHOULD be
determined by lexicographic ASCII sort order. For instance: 1.0.0.alpha1 <
1.0.0.beta1 < 1.0.0.beta2 < 1.0.0.rc1 < 1.0.0.
non-negative integers, and MUST NOT contain leading zeroes. X is the
major version, Y is the minor version, and Z is the patch version.
Each element MUST increase numerically. For instance: 1.9.0 -> 1.10.0 -> 1.11.0.
1. Once a versioned package has been released, the contents of that version
MUST NOT be modified. Any modifications must be released as a new version.
MUST NOT be modified. Any modifications MUST be released as a new version.
1. Major version zero (0.y.z) is for initial development. Anything may change
at any time. The public API should not be considered stable.
1. Major version zero (0.y.z) is for initial development. Anything MAY change
at any time. The public API SHOULD NOT be considered stable.
1. Version 1.0.0 defines the public API. The way in which the version number
is incremented after this release is dependent on this public API and how it
changes.
1. Patch version Z (x.y.Z | x > 0) MUST be incremented if only backwards
1. Patch version Z (x.y.Z | x > 0) MUST be incremented if only backward
compatible bug fixes are introduced. A bug fix is defined as an internal
change that fixes incorrect behavior.
1. Minor version Y (x.Y.z | x > 0) MUST be incremented if new, backwards
compatible functionality is introduced to the public API. It MAY be
1. Minor version Y (x.Y.z | x > 0) MUST be incremented if new, backward
compatible functionality is introduced to the public API. It MUST be
incremented if any public API functionality is marked as deprecated. It MAY be
incremented if substantial new functionality or improvements are introduced
within the private code. It MAY include patch level changes.
within the private code. It MAY include patch level changes. Patch version
MUST be reset to 0 when minor version is incremented.
1. Major version X (X.y.z | X > 0) MUST be incremented if any backwards
incompatible changes are introduced to the public API. It MAY include minor
and patch level changes.
1. Major version X (X.y.z | X > 0) MUST be incremented if any backward
incompatible changes are introduced to the public API. It MAY also include minor
and patch level changes. Patch and minor versions MUST be reset to 0 when major
version is incremented.
1. A pre-release version MAY be denoted by appending a hyphen and a
series of dot separated identifiers immediately following the patch
version. Identifiers MUST comprise only ASCII alphanumerics and hyphens
[0-9A-Za-z-]. Identifiers MUST NOT be empty. Numeric identifiers MUST
NOT include leading zeroes. Pre-release versions have a lower
precedence than the associated normal version. A pre-release version
indicates that the version is unstable and might not satisfy the
intended compatibility requirements as denoted by its associated
normal version. Examples: 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7,
1.0.0-x.7.z.92, 1.0.0-x-y-z.\-\-.
Tagging Specification (SemVerTag)
---------------------------------
1. Build metadata MAY be denoted by appending a plus sign and a series of dot
separated identifiers immediately following the patch or pre-release version.
Identifiers MUST comprise only ASCII alphanumerics and hyphens [0-9A-Za-z-].
Identifiers MUST NOT be empty. Build metadata MUST be ignored when determining
version precedence. Thus two versions that differ only in the build metadata,
have the same precedence. Examples: 1.0.0-alpha+001, 1.0.0+20130313144700,
1.0.0-beta+exp.sha.5114f85, 1.0.0+21AF26D3\-\-\-\-117B344092BD.
This sub-specification SHOULD be used if you use a version control system
(Git, Mercurial, SVN, etc) to store your code. Using this system allows
automated tools to inspect your package and determine SemVer compliance and
released versions.
1. Precedence refers to how versions are compared to each other when ordered.
1. When tagging releases in a version control system, the tag for a version
MUST be "vX.Y.Z" e.g. "v3.1.0".
1. Precedence MUST be calculated by separating the version into major,
minor, patch and pre-release identifiers in that order (build metadata
does not figure into precedence).
1. The first revision that introduces SemVer compliance SHOULD be tagged
"semver". This allows pre-existing projects to assume compliance at any
arbitrary point and for automated tools to discover this fact.
1. Precedence is determined by the first difference when comparing each of
these identifiers from left to right as follows: major, minor, and patch
versions are always compared numerically.
Example: 1.0.0 < 2.0.0 < 2.1.0 < 2.1.1.
1. When major, minor, and patch are equal, a pre-release version has lower
precedence than a normal version:
Example: 1.0.0-alpha < 1.0.0.
1. Precedence for two pre-release versions with the same major, minor, and
patch version MUST be determined by comparing each dot separated identifier
from left to right until a difference is found as follows:
1. Identifiers consisting of only digits are compared numerically.
1. Identifiers with letters or hyphens are compared lexically in ASCII
sort order.
1. Numeric identifiers always have lower precedence than non-numeric
identifiers.
1. A larger set of pre-release fields has a higher precedence than a
smaller set, if all of the preceding identifiers are equal.
Example: 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta <
1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0.
BackusNaur Form Grammar for Valid SemVer Versions
--------------------------------------------------
```
<valid semver> ::= <version core>
| <version core> "-" <pre-release>
| <version core> "+" <build>
| <version core> "-" <pre-release> "+" <build>
<version core> ::= <major> "." <minor> "." <patch>
<major> ::= <numeric identifier>
<minor> ::= <numeric identifier>
<patch> ::= <numeric identifier>
<pre-release> ::= <dot-separated pre-release identifiers>
<dot-separated pre-release identifiers> ::= <pre-release identifier>
| <pre-release identifier> "." <dot-separated pre-release identifiers>
<build> ::= <dot-separated build identifiers>
<dot-separated build identifiers> ::= <build identifier>
| <build identifier> "." <dot-separated build identifiers>
<pre-release identifier> ::= <alphanumeric identifier>
| <numeric identifier>
<build identifier> ::= <alphanumeric identifier>
| <digits>
<alphanumeric identifier> ::= <non-digit>
| <non-digit> <identifier characters>
| <identifier characters> <non-digit>
| <identifier characters> <non-digit> <identifier characters>
<numeric identifier> ::= "0"
| <positive digit>
| <positive digit> <digits>
<identifier characters> ::= <identifier character>
| <identifier character> <identifier characters>
<identifier character> ::= <digit>
| <non-digit>
<non-digit> ::= <letter>
| "-"
<digits> ::= <digit>
| <digit> <digits>
<digit> ::= "0"
| <positive digit>
<positive digit> ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
<letter> ::= "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J"
| "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T"
| "U" | "V" | "W" | "X" | "Y" | "Z" | "a" | "b" | "c" | "d"
| "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n"
| "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x"
| "y" | "z"
```
Why Use Semantic Versioning?
----------------------------
@@ -133,24 +243,28 @@ Versioning is to declare that you are doing so and then follow the rules. Link
to this website from your README so others know the rules and can benefit from
them.
FAQ
---
### How should I deal with revisions in the 0.y.z initial development phase?
The simplest thing to do is start your initial development release at 0.1.0
and then increment the minor version for each subsequent release.
### How do I know when to release 1.0.0?
If your software is being used in production, it should probably already be
1.0.0. If you have a stable API on which users have come to depend, you should
be 1.0.0. If you're worrying a lot about backwards compatibility, you should
be 1.0.0. If you're worrying a lot about backward compatibility, you should
probably already be 1.0.0.
### Doesn't this discourage rapid development and fast iteration?
Major version zero is all about rapid development. If you're changing the API
every day you should either still be in version 0.x.x or on a separate
every day you should either still be in version 0.y.z or on a separate
development branch working on the next major version.
### If even the tiniest backwards incompatible changes to the public API require a major version bump, won't I end up at version 42.0.0 very rapidly?
### If even the tiniest backward incompatible changes to the public API require a major version bump, won't I end up at version 42.0.0 very rapidly?
This is a question of responsible development and foresight. Incompatible
changes should not be introduced lightly to software that has a lot of
@@ -168,12 +282,12 @@ nobody knows how to use your software, or what methods are safe to call. In
the long run, Semantic Versioning, and the insistence on a well defined public
API can keep everyone and everything running smoothly.
### What do I do if I accidentally release a backwards incompatible change as a minor version?
### What do I do if I accidentally release a backward incompatible change as a minor version?
As soon as you realize that you've broken the Semantic Versioning spec, fix
the problem and release a new minor version that corrects the problem and
restores backwards compatibility. Remember, it is unacceptable to modify
versioned releases, even under this circumstance. If it's appropriate,
the problem and release a new patch version that corrects the problem and
restores backward compatibility. Even under this circumstance, it is
unacceptable to modify versioned releases. If it's appropriate,
document the offending version and inform your users of the problem so that
they are aware of the offending version.
@@ -184,20 +298,76 @@ Software that explicitly depends on the same dependencies as your package
should have their own dependency specifications and the author will notice any
conflicts. Determining whether the change is a patch level or minor level
modification depends on whether you updated your dependencies in order to fix
a bug or introduce new functionality. I would usually expect additional code
a bug or introduce new functionality. We would usually expect additional code
for the latter instance, in which case it's obviously a minor level increment.
### What if I inadvertently alter the public API in a way that is not compliant with the version number change (i.e. the code incorrectly introduces a major breaking change in a patch release)?
Use your best judgment. If you have a huge audience that will be drastically
impacted by changing the behavior back to what the public API intended, then
it may be best to perform a major version release, even though the fix could
strictly be considered a patch release. Remember, Semantic Versioning is all
about conveying meaning by how the version number changes. If these changes
are important to your users, use the version number to inform them.
### How should I handle deprecating functionality?
Deprecating existing functionality is a normal part of software development and
is often required to make forward progress. When you deprecate part of your
public API, you should do two things: (1) update your documentation to let
users know about the change, (2) issue a new minor release with the deprecation
in place. Before you completely remove the functionality in a new major release
there should be at least one minor release that contains the deprecation so
that users can smoothly transition to the new API.
### Does SemVer have a size limit on the version string?
No, but use good judgment. A 255 character version string is probably an overkill,
for example. Also, specific systems may impose their own limits on the size of
the string.
### Is "v1.2.3" a semantic version?
No, "v1.2.3" is not a semantic version. However, prefixing a semantic version
with a "v" is a common way (in English) to indicate it is a version number.
Abbreviating "version" as "v" is often seen with version control. Example:
`git tag v1.2.3 -m "Release version 1.2.3"`, in which case "v1.2.3" is a tag
name and the semantic version is "1.2.3".
### Is there a suggested regular expression (RegEx) to check a SemVer string?
There are two. One with named groups for those systems that support them
(PCRE [Perl Compatible Regular Expressions, i.e. Perl, PHP and R], Python
and Go).
See: <https://regex101.com/r/Ly7O1x/3/>
```
^(?P<major>0|[1-9]\d*)\.(?P<minor>0|[1-9]\d*)\.(?P<patch>0|[1-9]\d*)(?:-(?P<prerelease>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?P<buildmetadata>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
```
And one with numbered capture groups instead (so cg1 = major, cg2 = minor,
cg3 = patch, cg4 = prerelease and cg5 = buildmetadata) that is compatible
with ECMA Script (JavaScript), PCRE (Perl Compatible Regular Expressions,
i.e. Perl, PHP and R), Python and Go.
See: <https://regex101.com/r/vkijKf/1/>
```
^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
```
About
-----
The Semantic Versioning specification is authored by [Tom Preston-Werner](http://tom.preston-werner.com), inventor of Gravatars and cofounder of GitHub.
If you'd like to leave feedback, please [open an issue on GitHub](https://github.com/mojombo/semver/issues).
The Semantic Versioning specification was originally authored by [Tom
Preston-Werner](https://tom.preston-werner.com), inventor of Gravatar and
cofounder of GitHub.
If you'd like to leave feedback, please [open an issue on
GitHub](https://github.com/semver/semver/issues).
License
-------
Creative Commons - CC BY 3.0
http://creativecommons.org/licenses/by/3.0/
[Creative Commons CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)

828
semver.svg Normal file
View File

@@ -0,0 +1,828 @@
<svg height="339.09375" version="1.1" width="2325" xmlns="http://www.w3.org/2000/svg" style="overflow: hidden; position: relative;">
<path fill="none" stroke="#000000" d="M2223,180.140625H2233" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1827,180.140625H1837" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M898,180.140625H908" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M651,180.140625H661" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M620,180.140625H630" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M373,180.140625H383" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M342,180.140625H352" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M95,180.140625H105" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1837,180.140625Q1847,180.140625,1847,170.140625V70.921875Q1847,60.921875,1857,60.921875H2203Q2213,60.921875,2213,70.921875V170.140625Q2213,180.140625,2223,180.140625" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M2223,180.140625H2203" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1837,180.140625H1857" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1882,180.140625H1892" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M2203,180.140625H2193" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1892,180.140625H1902" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1997,180.140625H2007" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M2163,180.140625Q2173,180.140625,2173,190.140625V256.984375Q2173,266.984375,2163,266.984375H2037Q2027,266.984375,2027,256.984375V190.140625Q2027,180.140625,2037,180.140625" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M2007,180.140625Q2017,180.140625,2017,170.140625V102.109375Q2017,92.109375,2027,92.109375H2173Q2183,92.109375,2183,102.109375V170.140625Q2183,180.140625,2193,180.140625" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M2193,180.140625H2163" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M2007,180.140625H2037" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M2058,180.140625H2068" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M2153,180.140625Q2163,180.140625,2163,190.140625V246.984375Q2163,256.984375,2153,256.984375H2078Q2068,256.984375,2068,246.984375V190.140625Q2068,180.140625,2078,180.140625" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M2163,180.140625H2153" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M2068,180.140625H2078" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1987,180.140625Q1997,180.140625,1997,190.140625V246.984375Q1997,256.984375,1987,256.984375H1912Q1902,256.984375,1902,246.984375V190.140625Q1902,180.140625,1912,180.140625" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1997,180.140625H1987" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1902,180.140625H1912" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M908,180.140625Q918,180.140625,918,170.140625V20Q918,10,928,10H1807Q1817,10,1817,20V170.140625Q1817,180.140625,1827,180.140625" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1827,180.140625H1807" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M908,180.140625H928" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M950,180.140625H960" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1807,180.140625H1797" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M960,180.140625H970" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1333,180.140625H1343" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1767,180.140625Q1777,180.140625,1777,190.140625V309.09375Q1777,319.09375,1767,319.09375H1373Q1363,319.09375,1363,309.09375V190.140625Q1363,180.140625,1373,180.140625" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1343,180.140625Q1353,180.140625,1353,170.140625V51.1875Q1353,41.1875,1363,41.1875H1777Q1787,41.1875,1787,51.1875V170.140625Q1787,180.140625,1797,180.140625" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1797,180.140625H1767" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1343,180.140625H1373" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1394,180.140625H1404" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1767,180.140625Q1757,180.140625,1757,190.140625V222.25Q1757,232.25,1747,232.25H1747" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1404,180.140625Q1414,180.140625,1414,190.140625V222.25Q1414,232.25,1424,232.25H1424" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1602,232.25H1612" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1517,232.25H1527" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1717,232.25Q1727,232.25,1727,242.25V299.09375Q1727,309.09375,1717,309.09375H1642Q1632,309.09375,1632,299.09375V242.25Q1632,232.25,1642,232.25" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1612,232.25Q1622,232.25,1622,222.25V154.21875Q1622,144.21875,1632,144.21875H1727Q1737,144.21875,1737,154.21875V222.25Q1737,232.25,1747,232.25" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1747,232.25H1717" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1612,232.25H1642" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1487,232.25Q1497,232.25,1497,242.25V243.9609375Q1497,253.9609375,1487,253.9609375H1454Q1444,253.9609375,1444,243.9609375V242.25Q1444,232.25,1454,232.25" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1424,232.25Q1434,232.25,1434,222.25V220.5390625Q1434,210.5390625,1444,210.5390625H1497Q1507,210.5390625,1507,220.5390625V222.25Q1507,232.25,1517,232.25" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1517,232.25H1487" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1424,232.25H1454" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1767,180.140625Q1757,180.140625,1757,170.140625V122.5078125Q1757,112.5078125,1747,112.5078125H1674" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1404,180.140625Q1414,180.140625,1414,170.140625V122.5078125Q1414,112.5078125,1424,112.5078125H1497" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1571,112.5078125H1581" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1644,112.5078125Q1654,112.5078125,1654,122.5078125V124.21875Q1654,134.21875,1644,134.21875H1611Q1601,134.21875,1601,124.21875V122.5078125Q1601,112.5078125,1611,112.5078125" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1581,112.5078125Q1591,112.5078125,1591,102.5078125V100.796875Q1591,90.796875,1601,90.796875H1654Q1664,90.796875,1664,100.796875V102.5078125Q1664,112.5078125,1674,112.5078125" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1674,112.5078125H1644" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1581,112.5078125H1611" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1767,180.140625Q1757,180.140625,1757,170.140625V72.8984375Q1757,62.8984375,1747,62.8984375H1598" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1404,180.140625Q1414,180.140625,1414,170.140625V72.8984375Q1414,62.8984375,1424,62.8984375H1573" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1333,180.140625Q1323,180.140625,1323,190.140625V222.25Q1323,232.25,1313,232.25H1313" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M970,180.140625Q980,180.140625,980,190.140625V222.25Q980,232.25,990,232.25H990" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1168,232.25H1178" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1083,232.25H1093" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1283,232.25Q1293,232.25,1293,242.25V299.09375Q1293,309.09375,1283,309.09375H1208Q1198,309.09375,1198,299.09375V242.25Q1198,232.25,1208,232.25" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1178,232.25Q1188,232.25,1188,222.25V154.21875Q1188,144.21875,1198,144.21875H1293Q1303,144.21875,1303,154.21875V222.25Q1303,232.25,1313,232.25" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1313,232.25H1283" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1178,232.25H1208" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1053,232.25Q1063,232.25,1063,242.25V243.9609375Q1063,253.9609375,1053,253.9609375H1020Q1010,253.9609375,1010,243.9609375V242.25Q1010,232.25,1020,232.25" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M990,232.25Q1000,232.25,1000,222.25V220.5390625Q1000,210.5390625,1010,210.5390625H1063Q1073,210.5390625,1073,220.5390625V222.25Q1073,232.25,1083,232.25" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1083,232.25H1053" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M990,232.25H1020" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1333,180.140625Q1323,180.140625,1323,170.140625V122.5078125Q1323,112.5078125,1313,112.5078125H1240" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M970,180.140625Q980,180.140625,980,170.140625V122.5078125Q980,112.5078125,990,112.5078125H1063" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1137,112.5078125H1147" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1210,112.5078125Q1220,112.5078125,1220,122.5078125V124.21875Q1220,134.21875,1210,134.21875H1177Q1167,134.21875,1167,124.21875V122.5078125Q1167,112.5078125,1177,112.5078125" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1147,112.5078125Q1157,112.5078125,1157,102.5078125V100.796875Q1157,90.796875,1167,90.796875H1220Q1230,90.796875,1230,100.796875V102.5078125Q1230,112.5078125,1240,112.5078125" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1240,112.5078125H1210" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1147,112.5078125H1177" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M1333,180.140625Q1323,180.140625,1323,170.140625V72.8984375Q1323,62.8984375,1313,62.8984375H1164" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M970,180.140625Q980,180.140625,980,170.140625V72.8984375Q980,62.8984375,990,62.8984375H1139" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M898,180.140625H888" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M661,180.140625H671" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M888,180.140625Q878,180.140625,878,190.140625V189.9453125Q878,199.9453125,868,199.9453125H868" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M671,180.140625Q681,180.140625,681,190.140625V189.9453125Q681,199.9453125,691,199.9453125H691" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M765,199.9453125H775" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M838,199.9453125Q848,199.9453125,848,209.9453125V211.65625Q848,221.65625,838,221.65625H805Q795,221.65625,795,211.65625V209.9453125Q795,199.9453125,805,199.9453125" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M775,199.9453125Q785,199.9453125,785,189.9453125V188.234375Q785,178.234375,795,178.234375H848Q858,178.234375,858,188.234375V189.9453125Q858,199.9453125,868,199.9453125" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M868,199.9453125H838" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M775,199.9453125H805" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M888,180.140625Q878,180.140625,878,170.140625V160.3359375Q878,150.3359375,868,150.3359375H792" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M671,180.140625Q681,180.140625,681,170.140625V160.3359375Q681,150.3359375,691,150.3359375H767" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M620,180.140625H610" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M383,180.140625H393" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M610,180.140625Q600,180.140625,600,190.140625V189.9453125Q600,199.9453125,590,199.9453125H590" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M393,180.140625Q403,180.140625,403,190.140625V189.9453125Q403,199.9453125,413,199.9453125H413" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M487,199.9453125H497" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M560,199.9453125Q570,199.9453125,570,209.9453125V211.65625Q570,221.65625,560,221.65625H527Q517,221.65625,517,211.65625V209.9453125Q517,199.9453125,527,199.9453125" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M497,199.9453125Q507,199.9453125,507,189.9453125V188.234375Q507,178.234375,517,178.234375H570Q580,178.234375,580,188.234375V189.9453125Q580,199.9453125,590,199.9453125" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M590,199.9453125H560" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M497,199.9453125H527" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M610,180.140625Q600,180.140625,600,170.140625V160.3359375Q600,150.3359375,590,150.3359375H514" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M393,180.140625Q403,180.140625,403,170.140625V160.3359375Q403,150.3359375,413,150.3359375H489" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M342,180.140625H332" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M105,180.140625H115" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M332,180.140625Q322,180.140625,322,190.140625V189.9453125Q322,199.9453125,312,199.9453125H312" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M115,180.140625Q125,180.140625,125,190.140625V189.9453125Q125,199.9453125,135,199.9453125H135" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M209,199.9453125H219" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M282,199.9453125Q292,199.9453125,292,209.9453125V211.65625Q292,221.65625,282,221.65625H249Q239,221.65625,239,211.65625V209.9453125Q239,199.9453125,249,199.9453125" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M219,199.9453125Q229,199.9453125,229,189.9453125V188.234375Q229,178.234375,239,178.234375H292Q302,178.234375,302,188.234375V189.9453125Q302,199.9453125,312,199.9453125" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M312,199.9453125H282" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M219,199.9453125H249" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M332,180.140625Q322,180.140625,322,170.140625V160.3359375Q322,150.3359375,312,150.3359375H236" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<path fill="none" stroke="#000000" d="M115,180.140625Q125,180.140625,125,170.140625V160.3359375Q125,150.3359375,135,150.3359375H211" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<desc style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">Created with Raphaël 2.1.0
</desc>
<defs style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</defs>
<rect x="105" y="128.625" width="237" height="103.03125" r="0" rx="3" ry="3" fill="none" stroke="#a0a0a0" stroke-dasharray="6,2" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="127" y="123.03125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10px; line-height: normal; font-family: Arial;" font-size="10px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="3.46875">Major
</tspan>
</text>
<rect x="249" y="188.234375" width="33" height="23.421875" r="0" rx="3" ry="3" fill="#bada55" stroke="#bada55" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="265.5" y="199.9453125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">digit
</tspan>
</text>
<rect x="135" y="183.234375" width="74" height="33.421875" r="0" rx="3" ry="3" fill="#cbcbba" stroke="#cbcbba" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="152.5" y="177.640625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10px; line-height: normal; font-family: Arial;" font-size="10px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="3.46875">One of:
</tspan>
</text>
<text x="172" y="199.9453125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px" font-weight="bold">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">-
</tspan>
</text>
<rect x="179" y="188.234375" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="191.5" y="199.9453125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"9"
</tspan>
</text>
<rect x="140" y="188.234375" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="152.5" y="199.9453125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"1"
</tspan>
</text>
<rect x="211" y="138.625" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="223.5" y="150.3359375" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"0"
</tspan>
</text>
<rect x="352" y="168.4296875" width="21" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="362.5" y="180.140625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">"."
</tspan>
</text>
<rect x="383" y="128.625" width="237" height="103.03125" r="0" rx="3" ry="3" fill="none" stroke="#a0a0a0" stroke-dasharray="6,2" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="405" y="123.03125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10px; line-height: normal; font-family: Arial;" font-size="10px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="3.46875">Minor
</tspan>
</text>
<rect x="527" y="188.234375" width="33" height="23.421875" r="0" rx="3" ry="3" fill="#bada55" stroke="#bada55" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="543.5" y="199.9453125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">digit
</tspan>
</text>
<rect x="413" y="183.234375" width="74" height="33.421875" r="0" rx="3" ry="3" fill="#cbcbba" stroke="#cbcbba" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="430.5" y="177.640625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10px; line-height: normal; font-family: Arial;" font-size="10px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="3.46875">One of:
</tspan>
</text>
<text x="450" y="199.9453125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px" font-weight="bold">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">-
</tspan>
</text>
<rect x="457" y="188.234375" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="469.5" y="199.9453125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"9"
</tspan>
</text>
<rect x="418" y="188.234375" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="430.5" y="199.9453125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"1"
</tspan>
</text>
<rect x="489" y="138.625" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="501.5" y="150.3359375" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"0"
</tspan>
</text>
<rect x="630" y="168.4296875" width="21" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="640.5" y="180.140625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">"."
</tspan>
</text>
<rect x="661" y="128.625" width="237" height="103.03125" r="0" rx="3" ry="3" fill="none" stroke="#a0a0a0" stroke-dasharray="6,2" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="683" y="123.03125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10px; line-height: normal; font-family: Arial;" font-size="10px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="3.46875">Patch
</tspan>
</text>
<rect x="805" y="188.234375" width="33" height="23.421875" r="0" rx="3" ry="3" fill="#bada55" stroke="#bada55" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="821.5" y="199.9453125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">digit
</tspan>
</text>
<rect x="691" y="183.234375" width="74" height="33.421875" r="0" rx="3" ry="3" fill="#cbcbba" stroke="#cbcbba" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="708.5" y="177.640625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10px; line-height: normal; font-family: Arial;" font-size="10px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="3.46875">One of:
</tspan>
</text>
<text x="728" y="199.9453125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px" font-weight="bold">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">-
</tspan>
</text>
<rect x="735" y="188.234375" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="747.5" y="199.9453125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"9"
</tspan>
</text>
<rect x="696" y="188.234375" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="708.5" y="199.9453125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"1"
</tspan>
</text>
<rect x="767" y="138.625" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="779.5" y="150.3359375" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"0"
</tspan>
</text>
<rect x="928" y="168.4296875" width="22" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="939" y="180.140625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">"-"
</tspan>
</text>
<rect x="960" y="31.1875" width="847" height="297.90625" r="0" rx="3" ry="3" fill="none" stroke="#a0a0a0" stroke-dasharray="6,2" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="982" y="25.59375" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10px; line-height: normal; font-family: Arial;" font-size="10px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="3.46875">Pre-release
</tspan>
</text>
<rect x="1642" y="165.40625" width="75" height="133.6875" r="0" rx="3" ry="3" fill="#cbcbba" stroke="#cbcbba" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1659.5" y="159.8125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10px; line-height: normal; font-family: Arial;" font-size="10px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="3.46875">One of:
</tspan>
</text>
<rect x="1668.5" y="270.671875" width="22" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1679.5" y="282.3828125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"-"
</tspan>
</text>
<text x="1679.5" y="248.9609375" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px" font-weight="bold">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">-
</tspan>
</text>
<rect x="1686.5" y="237.25" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1699" y="248.9609375" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"9"
</tspan>
</text>
<rect x="1647.5" y="237.25" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1660" y="248.9609375" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"0"
</tspan>
</text>
<text x="1679.5" y="215.5390625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px" font-weight="bold">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">-
</tspan>
</text>
<rect x="1687" y="203.828125" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1699.5" y="215.5390625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"Z"
</tspan>
</text>
<rect x="1647" y="203.828125" width="26" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1660" y="215.5390625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"A"
</tspan>
</text>
<text x="1679.5" y="182.1171875" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px" font-weight="bold">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">-
</tspan>
</text>
<rect x="1687" y="170.40625" width="24" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1699" y="182.1171875" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"z"
</tspan>
</text>
<rect x="1648" y="170.40625" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1660.5" y="182.1171875" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"a"
</tspan>
</text>
<rect x="1527" y="182.1171875" width="75" height="100.265625" r="0" rx="3" ry="3" fill="#cbcbba" stroke="#cbcbba" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1544.5" y="176.5234375" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10px; line-height: normal; font-family: Arial;" font-size="10px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="3.4609375">One of:
</tspan>
</text>
<rect x="1553.5" y="253.9609375" width="22" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1564.5" y="265.671875" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">"-"
</tspan>
</text>
<text x="1564.5" y="232.25" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px" font-weight="bold">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">-
</tspan>
</text>
<rect x="1572" y="220.5390625" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1584.5" y="232.25" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">"Z"
</tspan>
</text>
<rect x="1532" y="220.5390625" width="26" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1545" y="232.25" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">"A"
</tspan>
</text>
<text x="1564.5" y="198.828125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px" font-weight="bold">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">-
</tspan>
</text>
<rect x="1572" y="187.1171875" width="24" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1584" y="198.828125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">"z"
</tspan>
</text>
<rect x="1533" y="187.1171875" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1545.5" y="198.828125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">"a"
</tspan>
</text>
<rect x="1454" y="220.5390625" width="33" height="23.421875" r="0" rx="3" ry="3" fill="#bada55" stroke="#bada55" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1470.5" y="232.25" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">digit
</tspan>
</text>
<rect x="1611" y="100.796875" width="33" height="23.421875" r="0" rx="3" ry="3" fill="#bada55" stroke="#bada55" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1627.5" y="112.5078125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">digit
</tspan>
</text>
<rect x="1497" y="95.796875" width="74" height="33.421875" r="0" rx="3" ry="3" fill="#cbcbba" stroke="#cbcbba" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1514.5" y="90.203125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10px; line-height: normal; font-family: Arial;" font-size="10px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="3.46875">One of:
</tspan>
</text>
<text x="1534" y="112.5078125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px" font-weight="bold">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">-
</tspan>
</text>
<rect x="1541" y="100.796875" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1553.5" y="112.5078125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"9"
</tspan>
</text>
<rect x="1502" y="100.796875" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1514.5" y="112.5078125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"1"
</tspan>
</text>
<rect x="1573" y="51.1875" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1585.5" y="62.8984375" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"0"
</tspan>
</text>
<rect x="1373" y="168.4296875" width="21" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1383.5" y="180.140625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">"."
</tspan>
</text>
<rect x="1208" y="165.40625" width="75" height="133.6875" r="0" rx="3" ry="3" fill="#cbcbba" stroke="#cbcbba" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1225.5" y="159.8125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10px; line-height: normal; font-family: Arial;" font-size="10px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="3.46875">One of:
</tspan>
</text>
<rect x="1234.5" y="270.671875" width="22" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1245.5" y="282.3828125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"-"
</tspan>
</text>
<text x="1245.5" y="248.9609375" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px" font-weight="bold">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">-
</tspan>
</text>
<rect x="1252.5" y="237.25" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1265" y="248.9609375" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"9"
</tspan>
</text>
<rect x="1213.5" y="237.25" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1226" y="248.9609375" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"0"
</tspan>
</text>
<text x="1245.5" y="215.5390625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px" font-weight="bold">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">-
</tspan>
</text>
<rect x="1253" y="203.828125" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1265.5" y="215.5390625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"Z"
</tspan>
</text>
<rect x="1213" y="203.828125" width="26" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1226" y="215.5390625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"A"
</tspan>
</text>
<text x="1245.5" y="182.1171875" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px" font-weight="bold">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">-
</tspan>
</text>
<rect x="1253" y="170.40625" width="24" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1265" y="182.1171875" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"z"
</tspan>
</text>
<rect x="1214" y="170.40625" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1226.5" y="182.1171875" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"a"
</tspan>
</text>
<rect x="1093" y="182.1171875" width="75" height="100.265625" r="0" rx="3" ry="3" fill="#cbcbba" stroke="#cbcbba" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1110.5" y="176.5234375" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10px; line-height: normal; font-family: Arial;" font-size="10px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="3.4609375">One of:
</tspan>
</text>
<rect x="1119.5" y="253.9609375" width="22" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1130.5" y="265.671875" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">"-"
</tspan>
</text>
<text x="1130.5" y="232.25" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px" font-weight="bold">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">-
</tspan>
</text>
<rect x="1138" y="220.5390625" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1150.5" y="232.25" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">"Z"
</tspan>
</text>
<rect x="1098" y="220.5390625" width="26" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1111" y="232.25" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">"A"
</tspan>
</text>
<text x="1130.5" y="198.828125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px" font-weight="bold">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">-
</tspan>
</text>
<rect x="1138" y="187.1171875" width="24" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1150" y="198.828125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">"z"
</tspan>
</text>
<rect x="1099" y="187.1171875" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1111.5" y="198.828125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">"a"
</tspan>
</text>
<rect x="1020" y="220.5390625" width="33" height="23.421875" r="0" rx="3" ry="3" fill="#bada55" stroke="#bada55" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1036.5" y="232.25" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">digit
</tspan>
</text>
<rect x="1177" y="100.796875" width="33" height="23.421875" r="0" rx="3" ry="3" fill="#bada55" stroke="#bada55" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1193.5" y="112.5078125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">digit
</tspan>
</text>
<rect x="1063" y="95.796875" width="74" height="33.421875" r="0" rx="3" ry="3" fill="#cbcbba" stroke="#cbcbba" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1080.5" y="90.203125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10px; line-height: normal; font-family: Arial;" font-size="10px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="3.46875">One of:
</tspan>
</text>
<text x="1100" y="112.5078125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px" font-weight="bold">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">-
</tspan>
</text>
<rect x="1107" y="100.796875" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1119.5" y="112.5078125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"9"
</tspan>
</text>
<rect x="1068" y="100.796875" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1080.5" y="112.5078125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"1"
</tspan>
</text>
<rect x="1139" y="51.1875" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1151.5" y="62.8984375" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"0"
</tspan>
</text>
<rect x="1857" y="168.4296875" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1869.5" y="180.140625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">"+"
</tspan>
</text>
<rect x="1892" y="82.109375" width="311" height="194.875" r="0" rx="3" ry="3" fill="none" stroke="#a0a0a0" stroke-dasharray="6,2" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1914" y="76.515625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10px; line-height: normal; font-family: Arial;" font-size="10px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="3.46875">Build
</tspan>
</text>
<rect x="2078" y="113.296875" width="75" height="133.6875" r="0" rx="3" ry="3" fill="#cbcbba" stroke="#cbcbba" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="2095.5" y="107.703125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10px; line-height: normal; font-family: Arial;" font-size="10px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="3.46875">One of:
</tspan>
</text>
<rect x="2104.5" y="218.5625" width="22" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="2115.5" y="230.2734375" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"-"
</tspan>
</text>
<text x="2115.5" y="196.8515625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px" font-weight="bold">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">-
</tspan>
</text>
<rect x="2123" y="185.140625" width="24" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="2135" y="196.8515625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"z"
</tspan>
</text>
<rect x="2084" y="185.140625" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="2096.5" y="196.8515625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"a"
</tspan>
</text>
<text x="2115.5" y="163.4296875" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px" font-weight="bold">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">-
</tspan>
</text>
<rect x="2123" y="151.71875" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="2135.5" y="163.4296875" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"Z"
</tspan>
</text>
<rect x="2083" y="151.71875" width="26" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="2096" y="163.4296875" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"A"
</tspan>
</text>
<text x="2115.5" y="130.0078125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px" font-weight="bold">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">-
</tspan>
</text>
<rect x="2122.5" y="118.296875" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="2135" y="130.0078125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"9"
</tspan>
</text>
<rect x="2083.5" y="118.296875" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="2096" y="130.0078125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"0"
</tspan>
</text>
<rect x="2037" y="168.4296875" width="21" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="2047.5" y="180.140625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">"."
</tspan>
</text>
<rect x="1912" y="113.296875" width="75" height="133.6875" r="0" rx="3" ry="3" fill="#cbcbba" stroke="#cbcbba" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1929.5" y="107.703125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10px; line-height: normal; font-family: Arial;" font-size="10px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="3.46875">One of:
</tspan>
</text>
<rect x="1938.5" y="218.5625" width="22" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1949.5" y="230.2734375" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"-"
</tspan>
</text>
<text x="1949.5" y="196.8515625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px" font-weight="bold">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">-
</tspan>
</text>
<rect x="1957" y="185.140625" width="24" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1969" y="196.8515625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"z"
</tspan>
</text>
<rect x="1918" y="185.140625" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1930.5" y="196.8515625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"a"
</tspan>
</text>
<text x="1949.5" y="163.4296875" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px" font-weight="bold">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">-
</tspan>
</text>
<rect x="1957" y="151.71875" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1969.5" y="163.4296875" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"Z"
</tspan>
</text>
<rect x="1917" y="151.71875" width="26" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1930" y="163.4296875" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"A"
</tspan>
</text>
<text x="1949.5" y="130.0078125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: bold; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px" font-weight="bold">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">-
</tspan>
</text>
<rect x="1956.5" y="118.296875" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1969" y="130.0078125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"9"
</tspan>
</text>
<rect x="1917.5" y="118.296875" width="25" height="23.421875" r="0" rx="3" ry="3" fill="#dae9e5" stroke="#dae9e5" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="1930" y="130.0078125" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#000000" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.15625">"0"
</tspan>
</text>
<rect x="20" y="168.4296875" width="75" height="23.421875" r="0" rx="0" ry="0" fill="#6b6659" stroke="#6b6659" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="57.5" y="180.140625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#ffffff" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">Start
</tspan>
</text>
<rect x="2233" y="168.4296875" width="72" height="23.421875" r="0" rx="0" ry="0" fill="#6b6659" stroke="#6b6659" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</rect>
<text x="2269" y="180.140625" text-anchor="middle" font="10px &quot;Arial&quot;" stroke="none" fill="#ffffff" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); text-anchor: middle; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-family: Arial;" font-size="12px">
<tspan style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);" dy="4.1640625">End
</tspan>
</text>
<path fill="none" stroke="#000000" d="M10,180.140625H20" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<circle cx="10" cy="180.140625" r="5" fill="#6b6659" stroke="#000" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</circle>
<path fill="none" stroke="#000000" d="M2315,180.140625H2305" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</path>
<circle cx="2315" cy="180.140625" r="5" fill="#6b6659" stroke="#000" stroke-width="2" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);">
</circle>
</svg>

After

Width:  |  Height:  |  Size: 80 KiB