<?php
class rejestracje_data {
static $wyrozniki = array(
  'B' => 'podlaskie',
  'BAU' => 'Augustów',
  'BBI' => 'Bielsk Podlaski',
  'BGR' => 'Grajewo',
  'BHA' => 'Hajnówka',
  'BI' => 'Białystok miasto',
  'BIA' => 'Białystok powiat',
  'BKL' => 'Kolno',
  'BL' => 'Łomża miasto',
  'BLM' => 'Łomża powiat',
  'BMN' => 'Mońki',
  'BS' => 'Suwałki miasto',
  'BSE' => 'Sejny',
  'BSI' => 'Siemiatycze',
  'BSK' => 'Sokółka',
  'BSU' => 'Suwałki powiat',
  'BWM' => 'Wysokie Mazowieckie',
  'BZA' => 'Zambrów',
  'C' => 'kujawsko-pomorskie',
  'CAL' => 'Aleksandrów Kujawski',
  'CB' => 'Bydgoszcz miasto',
  'CBR' => 'Brodnica',
  'CBY' => 'Bydgoszcz powiat',
  'CCH' => 'Chełmno',
  'CG' => 'Grudziądz miasto',
  'CGD' => 'Golub-Dobrzyń',
  'CGR' => 'Grudziądz powiat',
  'CIN' => 'Inowrocław',
  'CLI' => 'Lipno',
  'CMG' => 'Mogilno',
  'CNA' => 'Nakło nad Notecią',
  'CRA' => 'Radziejów',
  'CRY' => 'Rypin',
  'CSE' => 'Sępólno Krajeńskie',
  'CSW' => 'Świecie',
  'CT' => 'Toruń miasto',
  'CTR' => 'Toruń powiat',
  'CTU' => 'Tuchola',
  'CW' => 'Włocławek miasto',
  'CWA' => 'Wąbrzeźno',
  'CWL' => 'Włocławek powiat',
  'CZN' => 'Żnin',
  'D' => 'dolnośląskie',
  'DB' => 'Wałbrzych miasto',
  'DBA' => 'Wałbrzych powiat',
  'DBL' => 'Bolesławiec',
  'DDZ' => 'Dzierżoniów',
  'DGL' => 'Głogów',
  'DGR' => 'Góra',
  'DJ' => 'Jelenia Góra miasto',
  'DJA' => 'Jawor',
  'DJE' => 'Jelenia Góra powiat',
  'DKA' => 'Kamienna Góra',
  'DKL' => 'Kłodzko',
  'DL' => 'Legnica miasto',
  'DLB' => 'Lubań',
  'DLE' => 'Legnica powiat',
  'DLU' => 'Lubin',
  'DLW' => 'Lwówek',
  'DMI' => 'Milicz',
  'DOA' => 'Oława',
  'DOL' => 'Oleśnica',
  'DPL' => 'Polkowice',
  'DSR' => 'Środa Śląska',
  'DST' => 'Strzelin',
  'DSW' => 'Świdnica',
  'DTR' => 'Trzebnica',
  'DW' => 'Wrocław miasto',
  'DWL' => 'Wołów',
  'DWR' => 'Wrocław powiat',
  'DZA' => 'Ząbkowice',
  'DZG' => 'Zgorzelec',
  'DZL' => 'Złotoryja',
  'E' => 'łódzkie',
  'EBE' => 'Bełchatów',
  'EBR' => 'Brzeziny',
  'EKU' => 'Kutno',
  'EL' => 'Łódź miasto',
  'ELA' => 'Łask',
  'ELC' => 'Łowicz',
  'ELE' => 'Łęczyca',
  'ELW' => 'Łódź Wschodni',
  'EOP' => 'Opoczno',
  'EP' => 'Piotrków Trybunalski miasto',
  'EPA' => 'Pabianice',
  'EPD' => 'Poddębice',
  'EPI' => 'Piotrków Trybunalski powiat',
  'EPJ' => 'Pajęczno',
  'ERA' => 'Radomsko',
  'ERW' => 'Rawa Mazowiecka',
  'ES' => 'Skierniewice powiat',
  'ESI' => 'Sieradz',
  'ESK' => 'Skierniewice powiat',
  'ETM' => 'Tomaszów Mazowiecki',
  'EWE' => 'Wieruszów',
  'EWI' => 'Wieluń',
  'EZD' => 'Zduńska Wola',
  'EZG' => 'Zgierz',
  'F' => 'lubuskie',
  'FG' => 'Gorzów Wielkopolski miasto',
  'FGW' => 'Gorzów Wielkopolski powiat',
  'FKR' => 'Krosno Odrzańskie',
  'FMI' => 'Międzyrzecz',
  'FNW' => 'Nowa Sól',
  'FSD' => 'Strzelce Krajeńskie',
  'FSL' => 'Słubice',
  'FSU' => 'Sulęcin',
  'FSW' => 'Świebodzin',
  'FWS' => 'Wschowa',
  'FZ' => 'Zielona Góra miasto',
  'FZA' => 'Żary',
  'FZG' => 'Żagań',
  'FZI' => 'Zielona Góra powiat',
  'G' => 'pomorskie',
  'GA' => 'Gdynia',
  'GBY' => 'Bytów',
  'GCH' => 'Chojnice',
  'GCZ' => 'Człuchów',
  'GD' => 'Gdańsk miasto',
  'GDA' => 'Pruszcz Gdański',
  'GKA' => 'Kartuzy',
  'GKS' => 'Kościerzyna',
  'GKW' => 'Kwidzyn',
  'GLE' => 'Lębork',
  'GMB' => 'Malbork',
  'GND' => 'Nowy Dwór Gdański',
  'GPU' => 'Puck',
  'GS' => 'Słupsk miasto',
  'GSL' => 'Słupsk powiat',
  'GSP' => 'Sopot',
  'GST' => 'Starogard Gdański',
  'GSZ' => 'Sztum',
  'GTC' => 'Tczew',
  'GWE' => 'Wejherowo',
  'HA' => 'Centralne Biuro Antykorupcyjne',
  'HB' => 'Biuro Ochrony Rządu',
  'HC' => 'Służba Celna',
  'HK' => 'Agencja Bezpieczeństwa Wewnętrznego/Agencja Wywiadu',
  'HM' => 'Służba Kontrwywiadu Wojskowego/Służba Wywiadu Wojskowego',
  'HN' => 'GROM',
  'HPA' => 'Komenda Główna Policji',
  'HPB' => 'Policja, woj. dolnośląskie',
  'HPC' => 'Policja, woj. kujawsko-pomorskie',
  'HPD' => 'Policja, woj. lubelskie',
  'HPE' => 'Policja, woj. lubuskie',
  'HPF' => 'Policja, woj. łódzkie',
  'HPG' => 'Policja, woj. małopolskie',
  'HPH' => 'Policja, woj. mazowieckie',
  'HPJ' => 'Policja, woj. opolskie',
  'HPK' => 'Policja, woj. podkarpackie',
  'HPL' => 'Jednostki szkoleniowe Policji',
  'HPM' => 'Policja, woj. podlaskie',
  'HPN' => 'Policja, woj. pomorskie',
  'HPP' => 'Policja, woj. śląskie',
  'HPS' => 'Policja, woj. świętokrzyskie',
  'HPT' => 'Policja, woj. warmińsko-mazurskie',
  'HPU' => 'Policja, woj. wielkopolskie',
  'HPW' => 'Policja, woj. zachodniopomorskie',
  'HPZ' => 'Komenda Główna Policji',
  'HS' => 'Kontrola Skarbowa',
  'HW' => 'Straż Graniczna',
  'K' => 'małopolskie',
  'KBC' => 'Bochnia',
  'KBR' => 'Brzesko',
  'KCH' => 'Chrzanów',
  'KDA' => 'Dąbrowa Tarnowska',
  'KGR' => 'Gorlice',
  'KLI' => 'Limanowa',
  'KMI' => 'Miechów',
  'KMY' => 'Myślenice',
  'KN' => 'Nowy Sącz miasto',
  'KNS' => 'Nowy Sącz powiat',
  'KNT' => 'Nowy Targ',
  'KOL' => 'Olkusz',
  'KOS' => 'Oświęcim',
  'KPR' => 'Proszowice',
  'KR' => 'Kraków miasto',
  'KRA' => 'Kraków powiat',
  'KSU' => 'Sucha Beskidzka',
  'KT' => 'Tarnów miasto',
  'KTA' => 'Tarnów powiat',
  'KTT' => 'Zakopane',
  'KWA' => 'Wadowice',
  'KWI' => 'Wieliczka',
  'L' => 'lubelskie',
  'LB' => 'Biała Podlaska miasto',
  'LBI' => 'Biała Podlaska powiat',
  'LBL' => 'Biłgoraj',
  'LC' => 'Chełm miasto',
  'LCH' => 'Chełm powiat',
  'LHR' => 'Hrubieszów',
  'LJA' => 'Janów Lubelski',
  'LKR' => 'Kraśnik',
  'LKS' => 'Krasnystaw',
  'LLB' => 'Lubartów',
  'LLE' => 'Łęczna',
  'LLU' => 'Łuków',
  'LOP' => 'Opole Lubelskie',
  'LPA' => 'Parczew',
  'LPU' => 'Puławy',
  'LRA' => 'Radzyń Podlaski',
  'LRY' => 'Ryki',
  'LSW' => 'Świdnik',
  'LTM' => 'Tomaszów Lubelski',
  'LU' => 'Lublin miasto',
  'LUB' => 'Lublin powiat',
  'LWL' => 'Włodawa',
  'LZ' => 'Zamość miasto',
  'LZA' => 'Zamość powiat',
  'N' => 'warmińsko-mazurskie',
  'NBA' => 'Bartoszyce',
  'NBR' => 'Braniewo',
  'NDZ' => 'Działdowo',
  'NE' => 'Elbląg miasto',
  'NEB' => 'Elbląg powiat',
  'NEL' => 'Ełk',
  'NGI' => 'Giżycko',
  'NGO' => 'Gołdap',
  'NIL' => 'Iława',
  'NKE' => 'Kętrzyn',
  'NLI' => 'Lidzbark Warmiński',
  'NMR' => 'Mrągowo',
  'NNI' => 'Nidzica',
  'NNM' => 'Nowe Miasto Lubawskie',
  'NO' => 'Olsztyn miasto',
  'NOE' => 'Olecko-Gołdap',
  'NOG' => 'Olecko',
  'NOL' => 'Olsztyn powiat',
  'NOS' => 'Ostróda',
  'NPI' => 'Pisz',
  'NSZ' => 'Szczytno',
  'NWE' => 'Węgorzewo',
  'O' => 'opolskie',
  'OB' => 'Brzeg',
  'OGL' => 'Głubczyce',
  'OK' => 'Kędzierzyn Koźle',
  'OKL' => 'Kluczbork',
  'OKR' => 'Krapkowice',
  'ONA' => 'Namysłów',
  'ONY' => 'Nysa',
  'OOL' => 'Olesno',
  'OP' => 'Opole miasto',
  'OPO' => 'Opole powiat',
  'OPR' => 'Prudnik',
  'OST' => 'Strzelce Opolskie',
  'P' => 'wielkopolskie',
  'PCH' => 'Chodzież',
  'PCT' => 'Czarnków',
  'PGN' => 'Gniezno',
  'PGO' => 'Grodzisk Wielkopolski',
  'PGS' => 'Gostyń',
  'PJA' => 'Jarocin',
  'PK' => 'Kalisz miasto',
  'PKA' => 'Kalisz powiat',
  'PKE' => 'Kępno',
  'PKL' => 'Koło',
  'PKO' => 'Konin miasto',
  'PKR' => 'Krotoszyn',
  'PKS' => 'Kościan',
  'PL' => 'Leszno miasto',
  'PLE' => 'Leszno powiat',
  'PLN' => 'Konin powiat',
  'PMI' => 'Międzychód',
  'PN' => 'Konin miasto',
  'PNT' => 'Nowy Tomyśl',
  'PO' => 'Poznań miasto',
  'POB' => 'Oborniki',
  'POS' => 'Ostrów Wielkopolski',
  'POT' => 'Ostrzeszów',
  'POZ' => 'Poznań powiat',
  'PP' => 'Piła',
  'PPL' => 'Pleszew',
  'PRA' => 'Rawicz',
  'PSE' => 'Śrem',
  'PSL' => 'Słupca',
  'PSR' => 'Środa Wielkopolska',
  'PSZ' => 'Szamotuły',
  'PTU' => 'Turek',
  'PWA' => 'Wągrowiec',
  'PWL' => 'Wolsztyn',
  'PWR' => 'Września',
  'PZ' => 'Poznań powiat',
  'PZL' => 'Złotów',
  'R' => 'podkarpackie',
  'RBI' => 'Ustrzyki Dolne',
  'RBR' => 'Brzozów',
  'RDE' => 'Dębica',
  'RJA' => 'Jarosław',
  'RJS' => 'Jasło',
  'RK' => 'Krosno miasto',
  'RKL' => 'Kolbuszowa',
  'RKR' => 'Krosno powiat',
  'RLA' => 'Łańcut',
  'RLE' => 'Leżajsk',
  'RLS' => 'Lesko',
  'RLU' => 'Lubaczów',
  'RMI' => 'Mielec',
  'RNI' => 'Nisko',
  'RP' => 'Przemyśl miasto',
  'RPR' => 'Przemyśl powiat',
  'RPZ' => 'Przeworsk',
  'RRS' => 'Ropczyce',
  'RSA' => 'Sanok',
  'RSR' => 'Strzyżów',
  'RST' => 'Stalowa Wola',
  'RT' => 'Tarnobrzeg miasto',
  'RTA' => 'Tarnobrzeg powiat',
  'RZ' => 'Rzeszów miasto',
  'RZE' => 'Rzeszów powiat',
  'S' => 'śląskie',
  'SB' => 'Bielsko-Biała miasto',
  'SBE' => 'Będzin',
  'SBI' => 'Bielsko-Biała powiat',
  'SBL' => 'Tychy powiat',
  'SC' => 'Częstochowa miasto',
  'SCI' => 'Cieszyn',
  'SCZ' => 'Częstochowa powiat',
  'SD' => 'Dąbrowa Górnicza',
  'SG' => 'Gliwice miasto',
  'SGL' => 'Gliwice powiat',
  'SH' => 'Chorzów',
  'SI' => 'Siemianowice Śląskie',
  'SJ' => 'Jaworzno',
  'SJZ' => 'Jastrzębie Zdrój',
  'SK' => 'Katowice',
  'SKL' => 'Kłobuck',
  'SL' => 'Ruda Śląska',
  'SLU' => 'Lubliniec',
  'SM' => 'Mysłowice',
  'SMI' => 'Mikołów',
  'SMY' => 'Myszków',
  'SO' => 'Sosnowiec',
  'SPI' => 'Piekary Śląskie',
  'SPS' => 'Pszczyna',
  'SR' => 'Rybnik miasto',
  'SRB' => 'Rybnik powiat',
  'SRC' => 'Racibórz',
  'SRS' => 'Ruda Śląska',
  'ST' => 'Tychy miasto',
  'STA' => 'Tarnowskie Góry',
  'STY' => 'Tychy powiat',
  'SW' => 'Świętochłowice',
  'SWD' => 'Wodzisław',
  'SY' => 'Bytom',
  'SZ' => 'Zabrze',
  'SZA' => 'Zawiercie',
  'SZO' => 'Żory',
  'SZY' => 'Żywiec',
  'T' => 'świętokrzyskie',
  'TBU' => 'Busko',
  'TJE' => 'Jędrzejów',
  'TK' => 'Kielce miasto',
  'TKA' => 'Kazimierza Wielka',
  'TKI' => 'Kielce powiat',
  'TKN' => 'Końskie',
  'TLW' => 'Włoszczowa',
  'TOP' => 'Opatów',
  'TOS' => 'Ostrowiec Świętokrzyski',
  'TPI' => 'Pińczów',
  'TSA' => 'Sandomierz',
  'TSK' => 'Skarżysko-Kamienna',
  'TST' => 'Starachowice',
  'TSZ' => 'Staszów',
  'UA' => 'Siły Zbrojne: samochody osobowe, osobowo-terenowe oraz specjalne na podwoziu osobowym (osobowo-terenowym)',
  'UB' => 'Siły Zbrojne: transportery opancerzone',
  'UC' => 'Siły Zbrojne: samochody osobowo-ciężarowe (dostawcze)',
  'UD' => 'Siły Zbrojne: autobusy',
  'UE' => 'Siły Zbrojne: samochody ciężarowe i ciężarowo-terenowe o przeznaczeniu transportowym',
  'UG' => 'Siły Zbrojne: pojazdy specjalne na podwoziu ciężarowym (ciężarowo-terenowym)',
  'UI' => 'Siły Zbrojne: przyczepy transportowe',
  'UJ' => 'Siły Zbrojne: przyczepy specjalne',
  'UK' => 'Siły Zbrojne: motocykle',
  'W' => 'mazowieckie',
  'WA' => 'Warszawa-Białołęka',
  'WB' => 'Warszawa-Bemowo',
  'WBR' => 'Białobrzegi',
  'WCI' => 'Ciechanów',
  'WD' => 'Warszawa-Bielany',
  'WE' => 'Warszawa-Mokotów',
  'WF' => 'Warszawa-Praga Południe',
  'WG' => 'Garwolin',
  'WGM' => 'Grodzisk Mazowiecki',
  'WGR' => 'Grójec',
  'WGS' => 'Gostynin',
  'WH' => 'Warszawa-Praga Północ',
  'WI' => 'Warszawa-Śródmieście',
  'WJ' => 'Warszawa-Targówek',
  'WK' => 'Warszawa-Ursus',
  'WKZ' => 'Kozienice',
  'WL' => 'Legionowo',
  'WLI' => 'Lipsko',
  'WLS' => 'Łosice',
  'WM' => 'Mińsk Mazowiecki',
  'WMA' => 'Maków Mazowiecki',
  'WML' => 'Mława',
  'WN' => 'Warszawa-Ursynów',
  'WND' => 'Nowy Dwór Mazowiecki',
  'WO' => 'Ostrołęka miasto',
  'WOR' => 'Ostrów Mazowiecki',
  'WOS' => 'Ostrołęka powiat',
  'WOT' => 'Otwock',
  'WP' => 'Płock miasto',
  'WPI' => 'Piaseczno',
  'WPL' => 'Płock powiat',
  'WPN' => 'Płońsk',
  'WPR' => 'Pruszków',
  'WPU' => 'Pułtusk',
  'WPY' => 'Przysucha',
  'WPZ' => 'Przasnysz',
  'WR' => 'Radom miasto',
  'WRA' => 'Radom powiat',
  'WS' => 'Siedlce miasto',
  'WSC' => 'Sochaczew',
  'WSE' => 'Sierpc',
  'WSI' => 'Siedlce powiat',
  'WSK' => 'Sokołów Podlaski',
  'WSZ' => 'Szydłowiec',
  'WT' => 'Warszawa-Wawer',
  'WU' => 'Warszawa-Ochota',
  'WW' => array(
	'Warszawa',
	'A' => 'Warszawa-Rembertów',
	'C' => 'Warszawa-Rembertów',
	'E' => 'Warszawa-Rembertów',
	'F' => 'Warszawa-Wilanów',
	'G' => 'Warszawa-Wilanów',
	'H' => 'Warszawa-Wilanów',
	'J' => 'Warszawa-Wilanów',
	'K' => 'Warszawa-Włochy',
	'L' => 'Warszawa-Włochy',
	'M' => 'Warszawa-Włochy',
	'N' => 'Warszawa-Włochy',
	'V' => 'Warszawa-Włochy',
	'X' => 'Warszawa-Rembertów',
	'Y' => 'Urząd Miasta stołecznego Warszawy',
	'W' => 'Warszawa-Wilanów',
	'YV' => 'Warszawa-Wesoła',
	'YY' => 'Warszawa-Sulejówek',
	'YZ' => 'Warszawa-Wesoła',
  ),
  'WWE' => 'Węgrów',
  'WWL' => 'Wołomin',
  'WWY' => 'Wyszków',
  'WX' => 'Warszawa-Żoliborz',
  'WY' => 'Warszawa-Wola',
  'WZ' => 'Warszawa-Zachód',
  'WZU' => 'Żuromin',
  'WZW' => 'Zwoleń',
  'WZY' => 'Żyrardów',
  'Z' => 'zachodniopomorskie',
  'ZBI' => 'Białogard',
  'ZCH' => 'Choszczno',
  'ZDR' => 'Drawsko',
  'ZGL' => 'Goleniów',
  'ZGR' => 'Gryfino',
  'ZGY' => 'Gryfice',
  'ZK' => 'Koszalin miasto',
  'ZKA' => 'Kamień Pomorski',
  'ZKL' => 'Kołobrzeg',
  'ZKO' => 'Koszalin powiat',
  'ZLO' => 'Łobez',
  'ZMY' => 'Myślibórz',
  'ZPL' => 'Police',
  'ZPY' => 'Pyrzyce',
  'ZS' => 'Szczecin',
  'ZSD' => 'Świdwin',
  'ZSL' => 'Sławno',
  'ZST' => 'Stargard Szczeciński',
  'ZSW' => 'Świnoujście',
  'ZSZ' => 'Szczecinek',
  'ZWA' => 'Wałcz',
);

static $dyplomatyczne = array(
	'001' => 'USA',
	'002' => 'Wielka Brytania',
	'003' => 'Francja',
	'004' => 'Kanada',
	'005' => 'Niemcy',
	'006' => 'Holandia',
	'007' => 'Włochy',
	'008' => 'Austria',
	'009' => 'Japonia',
	'010' => 'Turcja',
	'011' => 'Belgia',
	'012' => 'Dania',
	'013' => 'Norwegia',
	'014' => 'Grecja',
	'015' => 'Australia',
	'016' => 'Algieria',
	'017' => 'Afganistan',
	'018' => 'Argentyna',
	'019' => 'Brazylia',
	'020' => 'Bangladesz',
	'021' => 'Egipt',
	'022' => 'Ekwador',
	'023' => 'Finlandia',
	'024' => 'Hiszpania',
	'025' => 'Irak',
	'026' => 'Iran',
	'027' => 'Indie',
	'028' => 'Indonezja',
	'029' => 'Kolumbia',
	'030' => 'Malezja',
	'031' => 'Libia',
	'032' => 'Maroko',
	'033' => 'Meksyk',
	'034' => 'Nigeria',
	'035' => 'Pakistan',
	'036' => 'Portugalia',
	'037' => 'Palestyna',
	'038' => 'Syria',
	'039' => 'Szwecja',
	'040' => 'Szwajcaria',
	'041' => 'Tunezja',
	'042' => 'Tajlandia',
	'043' => 'Wenezuela',
	'044' => 'Urugwaj',
	'045' => 'Peru',
	'046' => 'Jemen',
	'047' => 'Kostaryka',
	'048' => 'Kongo',
	'049' => 'Izrael',
	'050' => 'Nikaragua',
	'051' => 'Chile',
	'052' => 'Watykan',
	'053' => 'Korea Południowa',
	'054' => 'Przedstawicielstwo Komisji Wspólnot Europejskich',
	'055' => 'Irlandia',
	'056' => 'Bank Światowy',
	'057' => 'Międzynarodowy Fundusz Walutowy',
	'058' => 'Filipiny',
	'059' => 'Międzynarodowa Korporacja Finansowa',
	'060' => 'RPA',
	'061' => 'Biuro Instytucji Demokratycznych i Praw Człowieka OBWE',
	'062' => 'Cypr',
	'063' => 'Kuwejt',
	'064' => 'Organizacja Narodów Zjednoczonych',
	'065' => 'Rosja',
	'066' => 'Słowacja',
	'067' => 'Czechy',
	'068' => 'Bułgaria',
	'069' => 'Węgry',
	'070' => 'Rumunia',
	'071' => 'Wietnam',
	'072' => 'Serbia',
	'073' => 'Korea Północna',
	'074' => 'Kuba',
	'075' => 'Albania',
	'076' => 'Chiny',
	'077' => 'Mongolia',
	'078' => 'Międzynarodowa Organizacja Pracy',
	'079' => 'Organizacja Kooperacyjna ds. Kolei',
	'080' => 'Klub Dyplomatyczny',
	'081' => 'Laos',
	'082' => 'Angola',
	'083' => 'Ukraina',
	'084' => 'Europejski Bank Odbudowy i Rozwoju',
	'085' => 'Litwa',
	'086' => 'Białoruś',
	'087' => 'Łotwa',
	'088' => 'Chorwacja',
	'089' => 'Liban',
	'090' => 'Słowenia',
	'091' => 'Gwatemala',
	'092' => 'Estonia',
	'093' => 'Macedonia',
	'094' => 'Mołdawia',
	'095' => 'Izrael',
	'096' => 'Armenia',
	'097' => 'Sri Lanka',
	'098' => 'Kazachstan',
	'099' => 'Arabia Saudyjska',
	'100' => 'Gruzja',
	'101' => 'Uzbekistan',
	'102' => 'UN-HABITAT',
	'103' => 'Nowa Zelandia',
	'104' => 'Azerbejdżan',
	'105' => 'Suwerenny Wojskowy Zakon Maltański',
	'106' => 'Kambodża',
	'107' => 'Frontex',
	'108' => 'Luksemburg',
	'109' => 'Bośnia i Hercegowina',
	'110' => 'Panama',
	'111' => 'Katar',
	'112' => 'Malta',
);
static$dyplomatyczne_przeznaczenie = array(
	'{001-099}' => 'Prywatne pojazdy personelu dyplomatycznego',
	'{200-299}' => 'Prywatne pojazdy attaché wojskowego',
	'{300-399}' => 'Prywatne pojazdy personelu niedyplomatycznego',
	'{501-501}' => 'Pojazd służbowy ambasadora',
	'{500-599}' => 'Służbowe pojazdy ambasady',
	'{700-799}' => 'Służbowe pojazdy ambasady',
	'{900-999}' => 'Pojazdy personelu konsularnego',
);

static $formaty = array(
	'U[!OU]{00001-99999}' => 'specjalne',
	'U[!OU]{0001-9999}T' => 'specjalne',
	'H[ABKPW][!Q]{001-999}' => 'specjalne',
	'H[ABKPW][!Q]{01-99}[!Q][!Q]' => 'specjalne',
	
	// Samochodowe wyróżnik trzyliterowy => '', zasoby 1-9
	'___ _{001-999}' => 'zwykłe',
	'___ {01-99}__' => 'zwykłe',
	'___ {1-9}_{01-99}' => 'zwykłe',
	'___ {00-99}_{1-9}' => 'zwykłe',
	'___ {1-9}__{1-9}' => 'zwykłe',
	'___ __{01-99}' => 'zwykłe',
	'___ {00001-99999}' => 'zwykłe',
	'___ {0001-9999}_' => 'zwykłe',
	'___ {001-999}__' => 'zwykłe',
	'___' => 'wyróżnik',
	
	// Samochodowe wyróżnik dwuliterowy => '', zasoby 1-5
	'__ {00001-99999}' => 'zwykłe',
	'__ {0001-9999}_' => 'zwykłe',
	'__ {001-999}__' => 'zwykłe',
	'__ {0-9}_{001-999}' => 'zwykłe',
	'__ {0-9}__{01-99}' => 'zwykłe',
	// Motocyklowe wyróżnik dwuliterowy => '', zasoby 1-2
	'__ {0001-9999}' => 'motocyklowe',
	'__ {001-999}_' => 'motocyklowe',
	'__' => 'wyróżnik',
	
	// Tablice zabytkowe
	'__ {01-99}_' => 'zabytkowe',
	'___ {0-9}_' => 'zabytkowe',
	
	// Tablice dyplomatyczne
	'W {001000-112999}' => 'dyplomatyczne',
	
	// Tablice badawcze
	'_ {0-9}{001-999}B' => 'badawcze',
	
	// Tablice tymczasowe
	'_ {0-9}{0001-9999}' => 'tymczasowe',
	'_ {0-9}{001-999}[!B]' => 'tymczasowe',
	
	// Tablice indywidualne
	'_ {0-9}___' => 'indywidualne',
	'_ {0-9}__{0-9}' => 'indywidualne',
	'_ {0-9}_{00-99}' => 'indywidualne',
	'_ {0-9}____' => 'indywidualne',
	'_ {0-9}___{0-9}' => 'indywidualne',
	'_ {0-9}__{00-99}' => 'indywidualne',
	'_ {0-9}_____' => 'indywidualne',
	'_ {0-9}____{0-9}' => 'indywidualne',
	'_ {0-9}___{00-99}' => 'indywidualne',
	'_' => 'wyróżnik',
);

static function regex($format, $tekst) {
	//echo "\n\n".'NEW REGEX('.$format.', '.$tekst.')'."\n";
	
	$olen = strpos($format, ' ');
	if($olen && !ctype_alpha(substr($tekst, 0, $olen))) return FALSE;
	
	$j = 0;
	for($i=0; $i<strlen($format) && $j<strlen($tekst); $i++) {
		//echo $i;
		$chr = substr($format, $i, 1);
		$part = substr($tekst, $j, 1);
		
		if($chr == '_') {
			//echo "\t".'any character'."\n";
			if(!ctype_alpha($part)) return FALSE;
		}
		elseif($chr == '[') {
			if(!ctype_alpha($part)) return FALSE;
			
			$range = substr($format, $i+1, strpos($format, ']', $i+1)-$i-1);
			//echo "\t".'one of letters: '.$range."\n";
			
			if(substr($range, 0, 1)=='!') {
				$range = str_split($range);
				array_shift($range);
				
				if(in_array($part, $range)) {
					return FALSE;
				}
			}
			else
			{
				$range = str_split($range);
				
				if(!in_array($part, $range)) {
					return FALSE;
				}
			}
			
			$i += strpos($format, ']', $i+1)-$i;
		}
		elseif($chr == '{') {
			$range = substr($format, $i+1, strpos($format, '}', $i+1)-$i-1);
			$len = (strlen($range)-1)/2;
			$part = substr($tekst, $j, $len);
			
			//echo "\t".'range: ('.$len.') '.$range."\n";
			
			if(!ctype_digit($part)) {
				return FALSE;
			}
			if($part < substr($range, 0, $len)) {
				return FALSE;
			}
			if($part > substr($range, $len+1)) {
				return FALSE;
			}
			
			$i+=strlen($range)+1;
			$j+=$len-1;
		}
		elseif(ctype_alpha($chr)) {
			//echo "\t".'letter: '.$chr."\n";
			if($part!=$chr) {
				return FALSE;
			}
		}
		elseif($chr == ' ') {
			continue;
		}
		else
		{
			throw new Exception('Unknown character ('.$i.') '.$chr);
		}
		
		$j++;
	}
	
	if($i != strlen($format) || $j != strlen($tekst)) {
		return FALSE;
	}
	
	if(!$olen) $olen = 0;
	
	return $olen;
}

static function find($rej) {
	$rej = strtoupper(str_replace(array(' ', "\t", "\n", "\r", '-'), '', $rej));
	foreach(self::$formaty as $format => $typ) {
		if(($olen=self::regex($format, $rej))!==FALSE) {
			$return = TRUE;
			break;
		}
	}
	
	if(!$return) return array($rej, 'błąd', 'Błędny format numeru rejestracyjnego');
	
	if($olen) {
		$rej = substr($rej, 0, $olen).' '.substr($rej, $olen);
	}
	
	//var_dump($format, $typ, $rej);
	
	if($typ == 'dyplomatyczne') {
		$first = substr($rej, 2, 3);
		$second = substr($rej, 5, 3);
		
		if(!isset(self::$dyplomatyczne[$first])) {
			return array($rej, 'dyplomatyczna', 'Nieznane państwo/organizacja');
		}
		
		$return = FALSE;
		
		foreach(self::$dyplomatyczne_przeznaczenie as $format => $dyp) {
			if(self::regex($format, $second) !== FALSE) {
				$return = TRUE;
				break;
			}
		}
		
		if($return == FALSE) {
			return array($rej, 'dyplomatyczna', 'Państwo/organizacja: '.self::$dyplomatyczne[$first]);
		}
		else
		{
			return array($rej, 'dyplomatyczna', 'Państwo/organizacja: '.self::$dyplomatyczne[$first], $dyp);
		}
	}
	elseif($typ == 'indywidualne') {
		if(!isset(self::$wyrozniki[substr($rej, 0, 1)])) {
			return array($rej, 'błąd', 'Błędny format numeru rejestracyjnego');
		}
		
		$rej = substr($rej, 0, 1).substr($rej, 2, 1).' '.substr($rej, 3);
		return array($rej, 'indywidualna', 'Województwo: '.self::$wyrozniki[substr($rej, 0, 1)]);
	}
	elseif($typ == 'specjalne') {
		if(substr($rej, 0, 2) == 'HP') {
			if(!isset(self::$wyrozniki[substr($rej, 0, 3)])) {
				return array($rej, 'błąd', 'Błędny format numeru rejestracyjnego');
			}
			
			return array($rej, 'specjalne', self::$wyrozniki[substr($rej, 0, 3)]);
		}
		else
		{
			if(!isset(self::$wyrozniki[substr($rej, 0, 2)])) {
				return array($rej, 'błąd', 'Błędny format numeru rejestracyjnego');
			}
			
			return array($rej, 'specjalne', self::$wyrozniki[substr($rej, 0, 2)]);
		}
	}
	elseif($typ == 'wyróżnik') {
		if(!isset(self::$wyrozniki[$rej])) {
			return array($rej, 'błąd', 'Podany wyróżnik nie istnieje');
		}
		else
		{
			if(strlen($rej)>1 && isset(self::$wyrozniki[substr($rej, 0, 1)])) {
				return array($rej, 'wyróżnik', 'Województwo '.self::$wyrozniki[substr($rej, 0, 1)], self::$wyrozniki[$rej]);
			}
			else
			{
				return array($rej, 'wyróżnik', self::$wyrozniki[$rej]);
			}
		}
	}
	else
	{
		if(!isset(self::$wyrozniki[substr($rej, 0, $olen)])) {
			return array($rej, 'błąd', 'Błędny format numeru rejestracyjnego');
		}
		
		$typ = substr($typ, 0, -1).'a';
		
		$return = array($rej, $typ, 'Województwo '.self::$wyrozniki[substr($rej, 0, 1)]);
		
		$wyrozniki = self::$wyrozniki[substr($rej, 0, $olen)];
		
		if(is_array($wyrozniki)) {
			$return[] = 'Miasto: '.$wyrozniki[0];
			if(isset($wyrozniki[substr($rej, 0, 1)])) {
				$return[] = 'Dzielnica: '.$wyrozniki[substr($rej, 0, 1)];
			}
			elseif(isset($wyrozniki[substr($rej, 0, 2)])) {
				$return[] = 'Dzielnica: '.$wyrozniki[substr($rej, 0, 2)];
			}
		}
		else
		{
			$return[] = $wyrozniki;
		}
		
		return $return;
	}
}
}
?>