<?xml version="1.0" encoding="UTF-8"?>
<tdt:epcTagDataTranslation version="2.0" date="2023-03-31T17:30:00Z" epcTDSVersion="2.0" xmlns:tdt="urn:epcglobal:tdt:xsd:2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:epcglobal:tdt:xsd:2 EpcTagDataTranslation.xsd">
	<scheme name="CPI-var" optionKey="gs1companyprefixlength">
		<level type="BINARY" prefixMatch="00111101" requiredFormattingParameters="filter,tagLength">
			<option optionKey="12" pattern="^00111101([01]{3})000([01]{40})((?:(?!000000)[01]{6})+)000000([01]{40})" grammar="'00111101' filter '000' gs1companyprefix comppartref '000000' cpiserial">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="40"/>
				<field seq="3" name="comppartref" characterSet="[01]*" compaction="6-bit"/>
				<field seq="4" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="40"/>
			</option>
			<option optionKey="11" pattern="^00111101([01]{3})001([01]{37})((?:(?!000000)[01]{6})+)000000([01]{40})" grammar="'00111101' filter '001' gs1companyprefix comppartref '000000' cpiserial">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="99999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="37"/>
				<field seq="3" name="comppartref" characterSet="[01]*" compaction="6-bit"/>
				<field seq="4" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="40"/>
			</option>
			<option optionKey="10" pattern="^00111101([01]{3})010([01]{34})((?:(?!000000)[01]{6})+)000000([01]{40})" grammar="'00111101' filter '010' gs1companyprefix comppartref '000000' cpiserial">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="9999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="34"/>
				<field seq="3" name="comppartref" characterSet="[01]*" compaction="6-bit"/>
				<field seq="4" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="40"/>
			</option>
			<option optionKey="9" pattern="^00111101([01]{3})011([01]{30})((?:(?!000000)[01]{6})+)000000([01]{40})" grammar="'00111101' filter '011' gs1companyprefix comppartref '000000' cpiserial">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="30"/>
				<field seq="3" name="comppartref" characterSet="[01]*" compaction="6-bit"/>
				<field seq="4" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="40"/>
			</option>
			<option optionKey="8" pattern="^00111101([01]{3})100([01]{27})((?:(?!000000)[01]{6})+)000000([01]{40})" grammar="'00111101' filter '100' gs1companyprefix comppartref '000000' cpiserial">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="99999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="27"/>
				<field seq="3" name="comppartref" characterSet="[01]*" compaction="6-bit"/>
				<field seq="4" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="40"/>
			</option>
			<option optionKey="7" pattern="^00111101([01]{3})101([01]{24})((?:(?!000000)[01]{6})+)000000([01]{40})" grammar="'00111101' filter '101' gs1companyprefix comppartref '000000' cpiserial">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="9999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="24"/>
				<field seq="3" name="comppartref" characterSet="[01]*" compaction="6-bit"/>
				<field seq="4" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="40"/>
			</option>
			<option optionKey="6" pattern="^00111101([01]{3})110([01]{20})((?:(?!000000)[01]{6})+)000000([01]{40})" grammar="'00111101' filter '110' gs1companyprefix comppartref '000000' cpiserial">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="20"/>
				<field seq="3" name="comppartref" characterSet="[01]*" compaction="6-bit"/>
				<field seq="4" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="40"/>
			</option>
		</level>
		<level type="TAG_ENCODING" prefixMatch="urn:epc:tag:cpi-var" requiredFormattingParameters="filter,tagLength">
			<option optionKey="12" pattern="^urn:epc:tag:cpi-var:([0-7]{1})\.([0-9]{12})\.((?:[A-Z0-9-]|%2F|%23){1,18})\.([0-9]{1,12})$" grammar="'urn:epc:tag:cpi-var:' filter '.' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[0-7]*" length="1" padChar="0" padDir="LEFT"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*" length="12" padChar="0" padDir="LEFT"/>
				<field seq="3" name="urnEncodedCompPartRef" characterSet="(?:[A-Z0-9-]|%2F|%23)*" compaction="6-bit"/>
				<field seq="4" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="11" pattern="^urn:epc:tag:cpi-var:([0-7]{1})\.([0-9]{11})\.((?:[A-Z0-9-]|%2F|%23){1,19})\.([0-9]{1,12})$" grammar="'urn:epc:tag:cpi-var:' filter '.' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[0-7]*" length="1" padChar="0" padDir="LEFT"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="99999999999" characterSet="[0-9]*" length="11" padChar="0" padDir="LEFT"/>
				<field seq="3" name="urnEncodedCompPartRef" characterSet="(?:[A-Z0-9-]|%2F|%23)*" compaction="6-bit"/>
				<field seq="4" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="10" pattern="^urn:epc:tag:cpi-var:([0-7]{1})\.([0-9]{10})\.((?:[A-Z0-9-]|%2F|%23){1,20})\.([0-9]{1,12})$" grammar="'urn:epc:tag:cpi-var:' filter '.' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[0-7]*" length="1" padChar="0" padDir="LEFT"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="9999999999" characterSet="[0-9]*" length="10" padChar="0" padDir="LEFT"/>
				<field seq="3" name="urnEncodedCompPartRef" characterSet="(?:[A-Z0-9-]|%2F|%23)*" compaction="6-bit"/>
				<field seq="4" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="9" pattern="^urn:epc:tag:cpi-var:([0-7]{1})\.([0-9]{9})\.((?:[A-Z0-9-]|%2F|%23){1,21})\.([0-9]{1,12})$" grammar="'urn:epc:tag:cpi-var:' filter '.' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[0-7]*" length="1" padChar="0" padDir="LEFT"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="999999999" characterSet="[0-9]*" length="9" padChar="0" padDir="LEFT"/>
				<field seq="3" name="urnEncodedCompPartRef" characterSet="(?:[A-Z0-9-]|%2F|%23)*" compaction="6-bit"/>
				<field seq="4" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="8" pattern="^urn:epc:tag:cpi-var:([0-7]{1})\.([0-9]{8})\.((?:[A-Z0-9-]|%2F|%23){1,22})\.([0-9]{1,12})$" grammar="'urn:epc:tag:cpi-var:' filter '.' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[0-7]*" length="1" padChar="0" padDir="LEFT"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="99999999" characterSet="[0-9]*" length="8" padChar="0" padDir="LEFT"/>
				<field seq="3" name="urnEncodedCompPartRef" characterSet="(?:[A-Z0-9-]|%2F|%23)*" compaction="6-bit"/>
				<field seq="4" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="7" pattern="^urn:epc:tag:cpi-var:([0-7]{1})\.([0-9]{7})\.((?:[A-Z0-9-]|%2F|%23){1,23})\.([0-9]{1,12})$" grammar="'urn:epc:tag:cpi-var:' filter '.' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[0-7]*" length="1" padChar="0" padDir="LEFT"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="9999999" characterSet="[0-9]*" length="7" padChar="0" padDir="LEFT"/>
				<field seq="3" name="urnEncodedCompPartRef" characterSet="(?:[A-Z0-9-]|%2F|%23)*" compaction="6-bit"/>
				<field seq="4" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="6" pattern="^urn:epc:tag:cpi-var:([0-7]{1})\.([0-9]{6})\.((?:[A-Z0-9-]|%2F|%23){1,24})\.([0-9]{1,12})$" grammar="'urn:epc:tag:cpi-var:' filter '.' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial">
				<field seq="1" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[0-7]*" length="1" padChar="0" padDir="LEFT"/>
				<field seq="2" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="999999" characterSet="[0-9]*" length="6" padChar="0" padDir="LEFT"/>
				<field seq="3" name="urnEncodedCompPartRef" characterSet="(?:[A-Z0-9-]|%2F|%23)*" compaction="6-bit"/>
				<field seq="4" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<rule type="EXTRACT" inputFormat="STRING" seq="1" newFieldName="comppartref" characterSet="[\x23\x2D\x2F\x30-\x39\x41-\x5A]*" function="URNDECODE(urnEncodedCompPartRef)"/>
			<rule type="FORMAT" inputFormat="STRING" seq="1" newFieldName="urnEncodedCompPartRef" characterSet="(?:[A-Z0-9-]|%2F|%23)*" function="URNENCODE(comppartref)"/>
		</level>
		<level type="PURE_IDENTITY" prefixMatch="urn:epc:id:cpi" requiredFormattingParameters="filter,tagLength">
			<option optionKey="12" pattern="^urn:epc:id:cpi:([0-9]{12})\.((?:[A-Z0-9-]|%2F|%23){1,18})\.([0-9]{1,10})$" grammar="'urn:epc:id:cpi:' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial">
				<field seq="1" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*" length="12" padChar="0" padDir="LEFT"/>
				<field seq="2" name="urnEncodedCompPartRef" characterSet="(?:[A-Z0-9-]|%2F|%23)*" compaction="6-bit"/>
				<field seq="3" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="11" pattern="^urn:epc:id:cpi:([0-9]{11})\.((?:[A-Z0-9-]|%2F|%23){1,19})\.([0-9]{1,10})$" grammar="'urn:epc:id:cpi:' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial">
				<field seq="1" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="99999999999" characterSet="[0-9]*" length="11" padChar="0" padDir="LEFT"/>
				<field seq="2" name="urnEncodedCompPartRef" characterSet="(?:[A-Z0-9-]|%2F|%23)*" compaction="6-bit"/>
				<field seq="3" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="10" pattern="^urn:epc:id:cpi:([0-9]{10})\.((?:[A-Z0-9-]|%2F|%23){1,20})\.([0-9]{1,10})$" grammar="'urn:epc:id:cpi:' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial">
				<field seq="1" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="9999999999" characterSet="[0-9]*" length="10" padChar="0" padDir="LEFT"/>
				<field seq="2" name="urnEncodedCompPartRef" characterSet="(?:[A-Z0-9-]|%2F|%23)*" compaction="6-bit"/>
				<field seq="3" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="9" pattern="^urn:epc:id:cpi:([0-9]{9})\.((?:[A-Z0-9-]|%2F|%23){1,21})\.([0-9]{1,10})$" grammar="'urn:epc:id:cpi:' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial">
				<field seq="1" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="999999999" characterSet="[0-9]*" length="9" padChar="0" padDir="LEFT"/>
				<field seq="2" name="urnEncodedCompPartRef" characterSet="(?:[A-Z0-9-]|%2F|%23)*" compaction="6-bit"/>
				<field seq="3" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="8" pattern="^urn:epc:id:cpi:([0-9]{8})\.((?:[A-Z0-9-]|%2F|%23){1,22})\.([0-9]{1,10})$" grammar="'urn:epc:id:cpi:' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial">
				<field seq="1" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="99999999" characterSet="[0-9]*" length="8" padChar="0" padDir="LEFT"/>
				<field seq="2" name="urnEncodedCompPartRef" characterSet="(?:[A-Z0-9-]|%2F|%23)*" compaction="6-bit"/>
				<field seq="3" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="7" pattern="^urn:epc:id:cpi:([0-9]{7})\.((?:[A-Z0-9-]|%2F|%23){1,23})\.([0-9]{1,10})$" grammar="'urn:epc:id:cpi:' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial">
				<field seq="1" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="9999999" characterSet="[0-9]*" length="7" padChar="0" padDir="LEFT"/>
				<field seq="2" name="urnEncodedCompPartRef" characterSet="(?:[A-Z0-9-]|%2F|%23)*" compaction="6-bit"/>
				<field seq="3" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="6" pattern="^urn:epc:id:cpi:([0-9]{6})\.((?:[A-Z0-9-]|%2F|%23){1,24})\.([0-9]{1,10})$" grammar="'urn:epc:id:cpi:' gs1companyprefix '.' urnEncodedCompPartRef '.' cpiserial">
				<field seq="1" name="gs1companyprefix" decimalMinimum="0" decimalMaximum="999999" characterSet="[0-9]*" length="6" padChar="0" padDir="LEFT"/>
				<field seq="3" name="urnEncodedCompPartRef" characterSet="(?:[A-Z0-9-]|%2F|%23)*" compaction="6-bit"/>
				<field seq="3" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<rule type="EXTRACT" inputFormat="STRING" seq="1" newFieldName="comppartref" characterSet="[\x23\x2D\x2F\x30-\x39\x41-\x5A]*" function="URNDECODE(urnEncodedCompPartRef)"/>
			<rule type="FORMAT" inputFormat="STRING" seq="1" newFieldName="urnEncodedCompPartRef" characterSet="(?:[A-Z0-9-]|%2F|%23)*" function="URNENCODE(comppartref)"/>
		</level>
		<level type="BARE_IDENTIFIER" prefixMatch="cpi=" requiredParsingParameters="gs1companyprefixlength">
			<option optionKey="12" pattern="^cpi=([0-9]{12}[A-Z0-9/#-]{1,18});cpiserial=([0-9]{1,12})$" grammar="'cpi=' gs1companyprefix comppartref ';cpiserial=' cpiserial">
				<field seq="1" name="cpi" characterSet="[A-Z0-9/#-]]*" gcpOffset="0"/>
				<field seq="2" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="11" pattern="^cpi=([0-9]{11}[A-Z0-9/#-]{1,19});cpiserial=([0-9]{1,12})$" grammar="'cpi=' gs1companyprefix comppartref ';cpiserial=' cpiserial">
				<field seq="1" name="cpi" characterSet="[A-Z0-9/#-]*" gcpOffset="0"/>
				<field seq="2" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="10" pattern="^cpi=([0-9]{10}[A-Z0-9/#-]{1,20});cpiserial=([0-9]{1,12})$" grammar="'cpi=' gs1companyprefix comppartref ';cpiserial=' cpiserial">
				<field seq="1" name="cpi" characterSet="[A-Z0-9/#-]*" gcpOffset="0"/>
				<field seq="2" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="9" pattern="^cpi=([0-9]{9}[A-Z0-9/#-]{1,21});cpiserial=([0-9]{1,12})$" grammar="'cpi=' gs1companyprefix comppartref ';cpiserial=' cpiserial">
				<field seq="1" name="cpi" characterSet="[A-Z0-9/#-]*" gcpOffset="0"/>
				<field seq="2" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="8" pattern="^cpi=([0-9]{8}[A-Z0-9/#-]{1,22});cpiserial=([0-9]{1,12})$" grammar="'cpi=' gs1companyprefix comppartref ';cpiserial=' cpiserial">
				<field seq="1" name="cpi" characterSet="[A-Z0-9/#-]*" gcpOffset="0"/>
				<field seq="2" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="7" pattern="^cpi=([0-9]{7}[A-Z0-9/#-]{1,23});cpiserial=([0-9]{1,12})$" grammar="'cpi=' gs1companyprefix comppartref ';cpiserial=' cpiserial">
				<field seq="1" name="cpi" characterSet="[A-Z0-9/#-]*" gcpOffset="0"/>
				<field seq="2" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="6" pattern="^cpi=([0-9]{6}[A-Z0-9/#-]{1,24});cpiserial=([0-9]{1,12})$" grammar="'cpi=' gs1companyprefix comppartref ';cpiserial=' cpiserial">
				<field seq="1" name="cpi" characterSet="[A-Z0-9/#-]*" gcpOffset="0"/>
				<field seq="2" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<rule type="EXTRACT" inputFormat="STRING" seq="1" newFieldName="comppartref" characterSet="[A-Z0-9/#-]*" function="SUBSTR(cpi,gs1companyprefixlength)"/>
			<rule type="EXTRACT" inputFormat="STRING" seq="2" newFieldName="gs1companyprefix" characterSet="[0-9]*" function="SUBSTR(cpi,0,gs1companyprefixlength)"/>
		</level>
		<level type="ELEMENT_STRING" prefixMatch="(8010)" requiredParsingParameters="gs1companyprefixlength">
			<option optionKey="12" pattern="^\(8010\)([0-9]{12}[A-Z0-9/#-]{1,18})\(8011\)([0-9]{1,12})\b" grammar="'(8010)' gs1companyprefix comppartref '(8011)' cpiserial">
				<field seq="1" name="cpi" characterSet="[A-Z0-9/#-]*" gcpOffset="0"/>
				<field seq="2" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="11" pattern="^\(8010\)([0-9]{11}[A-Z0-9/#-]{1,19})\(8011\)([0-9]{1,12})\b" grammar="'(8010)' gs1companyprefix comppartref '(8011)' cpiserial">
				<field seq="1" name="cpi" characterSet="[A-Z0-9/#-]*" gcpOffset="0"/>
				<field seq="2" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="10" pattern="^\(8010\)([0-9]{10}[A-Z0-9/#-]{1,20})\(8011\)([0-9]{1,12})\b" grammar="'(8010)' gs1companyprefix comppartref '(8011)' cpiserial">
				<field seq="1" name="cpi" characterSet="[A-Z0-9/#-]*" gcpOffset="0"/>
				<field seq="2" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="9" pattern="^\(8010\)([0-9]{9}[A-Z0-9/#-]{1,21})\(8011\)([0-9]{1,12})\b" grammar="'(8010)' gs1companyprefix comppartref '(8011)' cpiserial">
				<field seq="1" name="cpi" characterSet="[A-Z0-9/#-]*" gcpOffset="0"/>
				<field seq="2" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="8" pattern="^\(8010\)([0-9]{8}[A-Z0-9/#-]{1,22})\(8011\)([0-9]{1,12})\b" grammar="'(8010)' gs1companyprefix comppartref '(8011)' cpiserial">
				<field seq="1" name="cpi" characterSet="[A-Z0-9/#-]*" gcpOffset="0"/>
				<field seq="2" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="7" pattern="^\(8010\)([0-9]{7}[A-Z0-9/#-]{1,23})\(8011\)([0-9]{1,12})\b" grammar="'(8010)' gs1companyprefix comppartref '(8011)' cpiserial">
				<field seq="1" name="cpi" characterSet="[A-Z0-9/#-]*" gcpOffset="0"/>
				<field seq="2" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="6" pattern="^\(8010\)([0-9]{6}[A-Z0-9/#-]{1,24})\(8011\)([0-9]{1,12})\b" grammar="'(8010)' gs1companyprefix comppartref '(8011)' cpiserial">
				<field seq="1" name="cpi" characterSet="[A-Z0-9/#-]*" gcpOffset="0"/>
				<field seq="2" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<rule type="EXTRACT" inputFormat="STRING" seq="1" newFieldName="comppartref" characterSet="[A-Z0-9/#-]*" function="SUBSTR(cpi,gs1companyprefixlength)"/>
			<rule type="EXTRACT" inputFormat="STRING" seq="2" newFieldName="gs1companyprefix" characterSet="[0-9]*" function="SUBSTR(cpi,0,gs1companyprefixlength)"/>
		</level>
		<level type="GS1_DIGITAL_LINK" prefixMatch="http" requiredFormattingParameters="uriStem" requiredParsingParameters="gs1companyprefixlength">
			<option optionKey="12" pattern="\/8010\/([0-9]{12}(?:[A-Z0-9-]|%2F|%23){1,18})\/8011\/([0-9]{1,12})\b" grammar="uriStem '/8010/' gs1companyprefix urlEncodedCompPartRef '/8011/' cpiserial">
				<field seq="1" name="cpi" characterSet="(?:[A-Z0-9-]|%2F|%23)*" gcpOffset="0"/>
				<field seq="2" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="11" pattern="\/8010\/([0-9]{11}(?:[A-Z0-9-]|%2F|%23){1,19})\/8011\/([0-9]{1,12})\b" grammar="uriStem '/8010/' gs1companyprefix urlEncodedCompPartRef '/8011/' cpiserial">
				<field seq="1" name="cpi" characterSet="(?:[A-Z0-9-]|%2F|%23)*" gcpOffset="0"/>
				<field seq="2" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="10" pattern="\/8010\/([0-9]{10}(?:[A-Z0-9-]|%2F|%23){1,20})\/8011\/([0-9]{1,12})\b" grammar="uriStem '/8010/' gs1companyprefix urlEncodedCompPartRef '/8011/' cpiserial">
				<field seq="1" name="cpi" characterSet="(?:[A-Z0-9-]|%2F|%23)*" gcpOffset="0"/>
				<field seq="2" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="9" pattern="\/8010\/([0-9]{9}(?:[A-Z0-9-]|%2F|%23){1,21})\/8011\/([0-9]{1,12})\b" grammar="uriStem '/8010/' gs1companyprefix urlEncodedCompPartRef '/8011/' cpiserial">
				<field seq="1" name="cpi" characterSet="(?:[A-Z0-9-]|%2F|%23)*" gcpOffset="0"/>
				<field seq="2" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="8" pattern="\/8010\/([0-9]{8}(?:[A-Z0-9-]|%2F|%23){1,22})\/8011\/([0-9]{1,12})\b" grammar="uriStem '/8010/' gs1companyprefix urlEncodedCompPartRef '/8011/' cpiserial">
				<field seq="1" name="cpi" characterSet="(?:[A-Z0-9-]|%2F|%23)*" gcpOffset="0"/>
				<field seq="2" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="7" pattern="\/8010\/([0-9]{7}(?:[A-Z0-9-]|%2F|%23){1,23})\/8011\/([0-9]{1,12})\b" grammar="uriStem '/8010/' gs1companyprefix urlEncodedCompPartRef '/8011/' cpiserial">
				<field seq="1" name="cpi" characterSet="(?:[A-Z0-9-]|%2F|%23)*" gcpOffset="0"/>
				<field seq="2" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<option optionKey="6" pattern="\/8010\/([0-9]{6}(?:[A-Z0-9-]|%2F|%23){1,24})\/8011\/([0-9]{1,12})\b" grammar="uriStem '/8010/' gs1companyprefix urlEncodedCompPartRef '/8011/' cpiserial">
				<field seq="1" name="cpi" characterSet="(?:[A-Z0-9-]|%2F|%23)*" gcpOffset="0"/>
				<field seq="2" name="cpiserial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<rule type="EXTRACT" inputFormat="STRING" seq="1" newFieldName="urlEncodedCompPartRef" characterSet="(?:[A-Z0-9-]|%2F|%23)*" function="SUBSTR(cpi,gs1companyprefixlength)"/>
			<rule type="EXTRACT" inputFormat="STRING" seq="2" newFieldName="comppartref" characterSet="[\x23\x2D\x2F\x30-\x39\x41-\x5A]*" function="URLDECODE(urlEncodedCompPartRef)"/>
			<rule type="EXTRACT" inputFormat="STRING" seq="3" newFieldName="gs1companyprefix" characterSet="[0-9]*" function="SUBSTR(cpi,0,gs1companyprefixlength)"/>
			<rule type="FORMAT" inputFormat="STRING" seq="1" newFieldName="urlEncodedCompPartRef" characterSet="(?:[A-Z0-9-]|%2F|%23)*" function="URLENCODE(comppartref)"/>
		</level>
	</scheme>
</tdt:epcTagDataTranslation>
