File: //home/arjun/projects/env/lib/python3.10/site-packages/faker/providers/ssn/zh_CN/__init__.py
import datetime
from typing import List, Optional
from ....typing import SexLiteral
from .. import Provider as SsnProvider
class Provider(SsnProvider):
# Extracted from
# http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/201504/t20150415_712722.html
area_codes: List[str] = [
"110000",
"110100",
"110101",
"110102",
"110105",
"110106",
"110107",
"110108",
"110109",
"110111",
"110112",
"110113",
"110114",
"110115",
"110116",
"110117",
"110200",
"110228",
"110229",
"120000",
"120100",
"120101",
"120102",
"120103",
"120104",
"120105",
"120106",
"120110",
"120111",
"120112",
"120113",
"120114",
"120115",
"120116",
"120200",
"120221",
"120223",
"120225",
"130000",
"130100",
"130101",
"130102",
"130104",
"130105",
"130107",
"130108",
"130109",
"130110",
"130111",
"130121",
"130123",
"130125",
"130126",
"130127",
"130128",
"130129",
"130130",
"130131",
"130132",
"130133",
"130181",
"130183",
"130184",
"130200",
"130201",
"130202",
"130203",
"130204",
"130205",
"130207",
"130208",
"130209",
"130223",
"130224",
"130225",
"130227",
"130229",
"130281",
"130283",
"130300",
"130301",
"130302",
"130303",
"130304",
"130321",
"130322",
"130323",
"130324",
"130400",
"130401",
"130402",
"130403",
"130404",
"130406",
"130421",
"130423",
"130424",
"130425",
"130426",
"130427",
"130428",
"130429",
"130430",
"130431",
"130432",
"130433",
"130434",
"130435",
"130481",
"130500",
"130501",
"130502",
"130503",
"130521",
"130522",
"130523",
"130524",
"130525",
"130526",
"130527",
"130528",
"130529",
"130530",
"130531",
"130532",
"130533",
"130534",
"130535",
"130581",
"130582",
"130600",
"130601",
"130602",
"130603",
"130604",
"130621",
"130622",
"130623",
"130624",
"130625",
"130626",
"130627",
"130628",
"130629",
"130630",
"130631",
"130632",
"130633",
"130634",
"130635",
"130636",
"130637",
"130638",
"130681",
"130682",
"130683",
"130684",
"130700",
"130701",
"130702",
"130703",
"130705",
"130706",
"130721",
"130722",
"130723",
"130724",
"130725",
"130726",
"130727",
"130728",
"130729",
"130730",
"130731",
"130732",
"130733",
"130800",
"130801",
"130802",
"130803",
"130804",
"130821",
"130822",
"130823",
"130824",
"130825",
"130826",
"130827",
"130828",
"130900",
"130901",
"130902",
"130903",
"130921",
"130922",
"130923",
"130924",
"130925",
"130926",
"130927",
"130928",
"130929",
"130930",
"130981",
"130982",
"130983",
"130984",
"131000",
"131001",
"131002",
"131003",
"131022",
"131023",
"131024",
"131025",
"131026",
"131028",
"131081",
"131082",
"131100",
"131101",
"131102",
"131121",
"131122",
"131123",
"131124",
"131125",
"131126",
"131127",
"131128",
"131181",
"131182",
"140000",
"140100",
"140101",
"140105",
"140106",
"140107",
"140108",
"140109",
"140110",
"140121",
"140122",
"140123",
"140181",
"140200",
"140201",
"140202",
"140203",
"140211",
"140212",
"140221",
"140222",
"140223",
"140224",
"140225",
"140226",
"140227",
"140300",
"140301",
"140302",
"140303",
"140311",
"140321",
"140322",
"140400",
"140401",
"140402",
"140411",
"140421",
"140423",
"140424",
"140425",
"140426",
"140427",
"140428",
"140429",
"140430",
"140431",
"140481",
"140500",
"140501",
"140502",
"140521",
"140522",
"140524",
"140525",
"140581",
"140600",
"140601",
"140602",
"140603",
"140621",
"140622",
"140623",
"140624",
"140700",
"140701",
"140702",
"140721",
"140722",
"140723",
"140724",
"140725",
"140726",
"140727",
"140728",
"140729",
"140781",
"140800",
"140801",
"140802",
"140821",
"140822",
"140823",
"140824",
"140825",
"140826",
"140827",
"140828",
"140829",
"140830",
"140881",
"140882",
"140900",
"140901",
"140902",
"140921",
"140922",
"140923",
"140924",
"140925",
"140926",
"140927",
"140928",
"140929",
"140930",
"140931",
"140932",
"140981",
"141000",
"141001",
"141002",
"141021",
"141022",
"141023",
"141024",
"141025",
"141026",
"141027",
"141028",
"141029",
"141030",
"141031",
"141032",
"141033",
"141034",
"141081",
"141082",
"141100",
"141101",
"141102",
"141121",
"141122",
"141123",
"141124",
"141125",
"141126",
"141127",
"141128",
"141129",
"141130",
"141181",
"141182",
"150000",
"150100",
"150101",
"150102",
"150103",
"150104",
"150105",
"150121",
"150122",
"150123",
"150124",
"150125",
"150200",
"150201",
"150202",
"150203",
"150204",
"150205",
"150206",
"150207",
"150221",
"150222",
"150223",
"150300",
"150301",
"150302",
"150303",
"150304",
"150400",
"150401",
"150402",
"150403",
"150404",
"150421",
"150422",
"150423",
"150424",
"150425",
"150426",
"150428",
"150429",
"150430",
"150500",
"150501",
"150502",
"150521",
"150522",
"150523",
"150524",
"150525",
"150526",
"150581",
"150600",
"150601",
"150602",
"150621",
"150622",
"150623",
"150624",
"150625",
"150626",
"150627",
"150700",
"150701",
"150702",
"150703",
"150721",
"150722",
"150723",
"150724",
"150725",
"150726",
"150727",
"150781",
"150782",
"150783",
"150784",
"150785",
"150800",
"150801",
"150802",
"150821",
"150822",
"150823",
"150824",
"150825",
"150826",
"150900",
"150901",
"150902",
"150921",
"150922",
"150923",
"150924",
"150925",
"150926",
"150927",
"150928",
"150929",
"150981",
"152200",
"152201",
"152202",
"152221",
"152222",
"152223",
"152224",
"152500",
"152501",
"152502",
"152522",
"152523",
"152524",
"152525",
"152526",
"152527",
"152528",
"152529",
"152530",
"152531",
"152900",
"152921",
"152922",
"152923",
"210000",
"210100",
"210101",
"210102",
"210103",
"210104",
"210105",
"210106",
"210111",
"210112",
"210113",
"210114",
"210122",
"210123",
"210124",
"210181",
"210200",
"210201",
"210202",
"210203",
"210204",
"210211",
"210212",
"210213",
"210224",
"210281",
"210282",
"210283",
"210300",
"210301",
"210302",
"210303",
"210304",
"210311",
"210321",
"210323",
"210381",
"210400",
"210401",
"210402",
"210403",
"210404",
"210411",
"210421",
"210422",
"210423",
"210500",
"210501",
"210502",
"210503",
"210504",
"210505",
"210521",
"210522",
"210600",
"210601",
"210602",
"210603",
"210604",
"210624",
"210681",
"210682",
"210700",
"210701",
"210702",
"210703",
"210711",
"210726",
"210727",
"210781",
"210782",
"210800",
"210801",
"210802",
"210803",
"210804",
"210811",
"210881",
"210882",
"210900",
"210901",
"210902",
"210903",
"210904",
"210905",
"210911",
"210921",
"210922",
"211000",
"211001",
"211002",
"211003",
"211004",
"211005",
"211011",
"211021",
"211081",
"211100",
"211101",
"211102",
"211103",
"211121",
"211122",
"211200",
"211201",
"211202",
"211204",
"211221",
"211223",
"211224",
"211281",
"211282",
"211300",
"211301",
"211302",
"211303",
"211321",
"211322",
"211324",
"211381",
"211382",
"211400",
"211401",
"211402",
"211403",
"211404",
"211421",
"211422",
"211481",
"220000",
"220100",
"220101",
"220102",
"220103",
"220104",
"220105",
"220106",
"220112",
"220113",
"220122",
"220182",
"220183",
"220200",
"220201",
"220202",
"220203",
"220204",
"220211",
"220221",
"220281",
"220282",
"220283",
"220284",
"220300",
"220301",
"220302",
"220303",
"220322",
"220323",
"220381",
"220382",
"220400",
"220401",
"220402",
"220403",
"220421",
"220422",
"220500",
"220501",
"220502",
"220503",
"220521",
"220523",
"220524",
"220581",
"220582",
"220600",
"220601",
"220602",
"220605",
"220621",
"220622",
"220623",
"220681",
"220700",
"220701",
"220702",
"220721",
"220722",
"220723",
"220781",
"220800",
"220801",
"220802",
"220821",
"220822",
"220881",
"220882",
"222400",
"222401",
"222402",
"222403",
"222404",
"222405",
"222406",
"222424",
"222426",
"230000",
"230100",
"230101",
"230102",
"230103",
"230104",
"230108",
"230109",
"230110",
"230111",
"230112",
"230123",
"230124",
"230125",
"230126",
"230127",
"230128",
"230129",
"230182",
"230183",
"230184",
"230200",
"230201",
"230202",
"230203",
"230204",
"230205",
"230206",
"230207",
"230208",
"230221",
"230223",
"230224",
"230225",
"230227",
"230229",
"230230",
"230231",
"230281",
"230300",
"230301",
"230302",
"230303",
"230304",
"230305",
"230306",
"230307",
"230321",
"230381",
"230382",
"230400",
"230401",
"230402",
"230403",
"230404",
"230405",
"230406",
"230407",
"230421",
"230422",
"230500",
"230501",
"230502",
"230503",
"230505",
"230506",
"230521",
"230522",
"230523",
"230524",
"230600",
"230601",
"230602",
"230603",
"230604",
"230605",
"230606",
"230621",
"230622",
"230623",
"230624",
"230700",
"230701",
"230702",
"230703",
"230704",
"230705",
"230706",
"230707",
"230708",
"230709",
"230710",
"230711",
"230712",
"230713",
"230714",
"230715",
"230716",
"230722",
"230781",
"230800",
"230801",
"230803",
"230804",
"230805",
"230811",
"230822",
"230826",
"230828",
"230833",
"230881",
"230882",
"230900",
"230901",
"230902",
"230903",
"230904",
"230921",
"231000",
"231001",
"231002",
"231003",
"231004",
"231005",
"231024",
"231025",
"231081",
"231083",
"231084",
"231085",
"231100",
"231101",
"231102",
"231121",
"231123",
"231124",
"231181",
"231182",
"231200",
"231201",
"231202",
"231221",
"231222",
"231223",
"231224",
"231225",
"231226",
"231281",
"231282",
"231283",
"232700",
"232721",
"232722",
"232723",
"310000",
"310100",
"310101",
"310104",
"310105",
"310106",
"310107",
"310108",
"310109",
"310110",
"310112",
"310113",
"310114",
"310115",
"310116",
"310117",
"310118",
"310120",
"310200",
"310230",
"320000",
"320100",
"320101",
"320102",
"320104",
"320105",
"320106",
"320111",
"320113",
"320114",
"320115",
"320116",
"320117",
"320118",
"320200",
"320201",
"320202",
"320203",
"320204",
"320205",
"320206",
"320211",
"320281",
"320282",
"320300",
"320301",
"320302",
"320303",
"320305",
"320311",
"320312",
"320321",
"320322",
"320324",
"320381",
"320382",
"320400",
"320401",
"320402",
"320404",
"320405",
"320411",
"320412",
"320481",
"320482",
"320500",
"320501",
"320505",
"320506",
"320507",
"320508",
"320509",
"320581",
"320582",
"320583",
"320585",
"320600",
"320601",
"320602",
"320611",
"320612",
"320621",
"320623",
"320681",
"320682",
"320684",
"320700",
"320701",
"320703",
"320706",
"320707",
"320722",
"320723",
"320724",
"320800",
"320801",
"320802",
"320803",
"320804",
"320811",
"320826",
"320829",
"320830",
"320831",
"320900",
"320901",
"320902",
"320903",
"320921",
"320922",
"320923",
"320924",
"320925",
"320981",
"320982",
"321000",
"321001",
"321002",
"321003",
"321012",
"321023",
"321081",
"321084",
"321100",
"321101",
"321102",
"321111",
"321112",
"321181",
"321182",
"321183",
"321200",
"321201",
"321202",
"321203",
"321204",
"321281",
"321282",
"321283",
"321300",
"321301",
"321302",
"321311",
"321322",
"321323",
"321324",
"330000",
"330100",
"330101",
"330102",
"330103",
"330104",
"330105",
"330106",
"330108",
"330109",
"330110",
"330122",
"330127",
"330182",
"330183",
"330185",
"330200",
"330201",
"330203",
"330204",
"330205",
"330206",
"330211",
"330212",
"330225",
"330226",
"330281",
"330282",
"330283",
"330300",
"330301",
"330302",
"330303",
"330304",
"330322",
"330324",
"330326",
"330327",
"330328",
"330329",
"330381",
"330382",
"330400",
"330401",
"330402",
"330411",
"330421",
"330424",
"330481",
"330482",
"330483",
"330500",
"330501",
"330502",
"330503",
"330521",
"330522",
"330523",
"330600",
"330601",
"330602",
"330603",
"330604",
"330624",
"330681",
"330683",
"330700",
"330701",
"330702",
"330703",
"330723",
"330726",
"330727",
"330781",
"330782",
"330783",
"330784",
"330800",
"330801",
"330802",
"330803",
"330822",
"330824",
"330825",
"330881",
"330900",
"330901",
"330902",
"330903",
"330921",
"330922",
"331000",
"331001",
"331002",
"331003",
"331004",
"331021",
"331022",
"331023",
"331024",
"331081",
"331082",
"331100",
"331101",
"331102",
"331121",
"331122",
"331123",
"331124",
"331125",
"331126",
"331127",
"331181",
"340000",
"340100",
"340101",
"340102",
"340103",
"340104",
"340111",
"340121",
"340122",
"340123",
"340124",
"340181",
"340200",
"340201",
"340202",
"340203",
"340207",
"340208",
"340221",
"340222",
"340223",
"340225",
"340300",
"340301",
"340302",
"340303",
"340304",
"340311",
"340321",
"340322",
"340323",
"340400",
"340401",
"340402",
"340403",
"340404",
"340405",
"340406",
"340421",
"340500",
"340501",
"340503",
"340504",
"340506",
"340521",
"340522",
"340523",
"340600",
"340601",
"340602",
"340603",
"340604",
"340621",
"340700",
"340701",
"340702",
"340703",
"340711",
"340721",
"340800",
"340801",
"340802",
"340803",
"340811",
"340822",
"340823",
"340824",
"340825",
"340826",
"340827",
"340828",
"340881",
"341000",
"341001",
"341002",
"341003",
"341004",
"341021",
"341022",
"341023",
"341024",
"341100",
"341101",
"341102",
"341103",
"341122",
"341124",
"341125",
"341126",
"341181",
"341182",
"341200",
"341201",
"341202",
"341203",
"341204",
"341221",
"341222",
"341225",
"341226",
"341282",
"341300",
"341301",
"341302",
"341321",
"341322",
"341323",
"341324",
"341500",
"341501",
"341502",
"341503",
"341521",
"341522",
"341523",
"341524",
"341525",
"341600",
"341601",
"341602",
"341621",
"341622",
"341623",
"341700",
"341701",
"341702",
"341721",
"341722",
"341723",
"341800",
"341801",
"341802",
"341821",
"341822",
"341823",
"341824",
"341825",
"341881",
"350000",
"350100",
"350101",
"350102",
"350103",
"350104",
"350105",
"350111",
"350121",
"350122",
"350123",
"350124",
"350125",
"350128",
"350181",
"350182",
"350200",
"350201",
"350203",
"350205",
"350206",
"350211",
"350212",
"350213",
"350300",
"350301",
"350302",
"350303",
"350304",
"350305",
"350322",
"350400",
"350401",
"350402",
"350403",
"350421",
"350423",
"350424",
"350425",
"350426",
"350427",
"350428",
"350429",
"350430",
"350481",
"350500",
"350501",
"350502",
"350503",
"350504",
"350505",
"350521",
"350524",
"350525",
"350526",
"350527",
"350581",
"350582",
"350583",
"350600",
"350601",
"350602",
"350603",
"350622",
"350623",
"350624",
"350625",
"350626",
"350627",
"350628",
"350629",
"350681",
"350700",
"350701",
"350702",
"350721",
"350722",
"350723",
"350724",
"350725",
"350781",
"350782",
"350783",
"350784",
"350800",
"350801",
"350802",
"350821",
"350822",
"350823",
"350824",
"350825",
"350881",
"350900",
"350901",
"350902",
"350921",
"350922",
"350923",
"350924",
"350925",
"350926",
"350981",
"350982",
"360000",
"360100",
"360101",
"360102",
"360103",
"360104",
"360105",
"360111",
"360121",
"360122",
"360123",
"360124",
"360200",
"360201",
"360202",
"360203",
"360222",
"360281",
"360300",
"360301",
"360302",
"360313",
"360321",
"360322",
"360323",
"360400",
"360401",
"360402",
"360403",
"360421",
"360423",
"360424",
"360425",
"360426",
"360427",
"360428",
"360429",
"360430",
"360481",
"360482",
"360500",
"360501",
"360502",
"360521",
"360600",
"360601",
"360602",
"360622",
"360681",
"360700",
"360701",
"360702",
"360703",
"360721",
"360722",
"360723",
"360724",
"360725",
"360726",
"360727",
"360728",
"360729",
"360730",
"360731",
"360732",
"360733",
"360734",
"360735",
"360781",
"360800",
"360801",
"360802",
"360803",
"360821",
"360822",
"360823",
"360824",
"360825",
"360826",
"360827",
"360828",
"360829",
"360830",
"360881",
"360900",
"360901",
"360902",
"360921",
"360922",
"360923",
"360924",
"360925",
"360926",
"360981",
"360982",
"360983",
"361000",
"361001",
"361002",
"361021",
"361022",
"361023",
"361024",
"361025",
"361026",
"361027",
"361028",
"361029",
"361030",
"361100",
"361101",
"361102",
"361121",
"361122",
"361123",
"361124",
"361125",
"361126",
"361127",
"361128",
"361129",
"361130",
"361181",
"370000",
"370100",
"370101",
"370102",
"370103",
"370104",
"370105",
"370112",
"370113",
"370124",
"370125",
"370126",
"370181",
"370200",
"370201",
"370202",
"370203",
"370211",
"370212",
"370213",
"370214",
"370281",
"370282",
"370283",
"370285",
"370300",
"370301",
"370302",
"370303",
"370304",
"370305",
"370306",
"370321",
"370322",
"370323",
"370400",
"370401",
"370402",
"370403",
"370404",
"370405",
"370406",
"370481",
"370500",
"370501",
"370502",
"370503",
"370521",
"370522",
"370523",
"370600",
"370601",
"370602",
"370611",
"370612",
"370613",
"370634",
"370681",
"370682",
"370683",
"370684",
"370685",
"370686",
"370687",
"370700",
"370701",
"370702",
"370703",
"370704",
"370705",
"370724",
"370725",
"370781",
"370782",
"370783",
"370784",
"370785",
"370786",
"370800",
"370801",
"370811",
"370812",
"370826",
"370827",
"370828",
"370829",
"370830",
"370831",
"370832",
"370881",
"370883",
"370900",
"370901",
"370902",
"370911",
"370921",
"370923",
"370982",
"370983",
"371000",
"371001",
"371002",
"371003",
"371082",
"371083",
"371100",
"371101",
"371102",
"371103",
"371121",
"371122",
"371200",
"371201",
"371202",
"371203",
"371300",
"371301",
"371302",
"371311",
"371312",
"371321",
"371322",
"371323",
"371324",
"371325",
"371326",
"371327",
"371328",
"371329",
"371400",
"371401",
"371402",
"371403",
"371422",
"371423",
"371424",
"371425",
"371426",
"371427",
"371428",
"371481",
"371482",
"371500",
"371501",
"371502",
"371521",
"371522",
"371523",
"371524",
"371525",
"371526",
"371581",
"371600",
"371601",
"371602",
"371603",
"371621",
"371622",
"371623",
"371625",
"371626",
"371700",
"371701",
"371702",
"371721",
"371722",
"371723",
"371724",
"371725",
"371726",
"371727",
"371728",
"410000",
"410100",
"410101",
"410102",
"410103",
"410104",
"410105",
"410106",
"410108",
"410122",
"410181",
"410182",
"410183",
"410184",
"410185",
"410200",
"410201",
"410202",
"410203",
"410204",
"410205",
"410211",
"410221",
"410222",
"410223",
"410224",
"410225",
"410300",
"410301",
"410302",
"410303",
"410304",
"410305",
"410306",
"410311",
"410322",
"410323",
"410324",
"410325",
"410326",
"410327",
"410328",
"410329",
"410381",
"410400",
"410401",
"410402",
"410403",
"410404",
"410411",
"410421",
"410422",
"410423",
"410425",
"410481",
"410482",
"410500",
"410501",
"410502",
"410503",
"410505",
"410506",
"410522",
"410523",
"410526",
"410527",
"410581",
"410600",
"410601",
"410602",
"410603",
"410611",
"410621",
"410622",
"410700",
"410701",
"410702",
"410703",
"410704",
"410711",
"410721",
"410724",
"410725",
"410726",
"410727",
"410728",
"410781",
"410782",
"410800",
"410801",
"410802",
"410803",
"410804",
"410811",
"410821",
"410822",
"410823",
"410825",
"410882",
"410883",
"410900",
"410901",
"410902",
"410922",
"410923",
"410926",
"410927",
"410928",
"411000",
"411001",
"411002",
"411023",
"411024",
"411025",
"411081",
"411082",
"411100",
"411101",
"411102",
"411103",
"411104",
"411121",
"411122",
"411200",
"411201",
"411202",
"411221",
"411222",
"411224",
"411281",
"411282",
"411300",
"411301",
"411302",
"411303",
"411321",
"411322",
"411323",
"411324",
"411325",
"411326",
"411327",
"411328",
"411329",
"411330",
"411381",
"411400",
"411401",
"411402",
"411403",
"411421",
"411422",
"411423",
"411424",
"411425",
"411426",
"411481",
"411500",
"411501",
"411502",
"411503",
"411521",
"411522",
"411523",
"411524",
"411525",
"411526",
"411527",
"411528",
"411600",
"411601",
"411602",
"411621",
"411622",
"411623",
"411624",
"411625",
"411626",
"411627",
"411628",
"411681",
"411700",
"411701",
"411702",
"411721",
"411722",
"411723",
"411724",
"411725",
"411726",
"411727",
"411728",
"411729",
"419000",
"419001",
"420000",
"420100",
"420101",
"420102",
"420103",
"420104",
"420105",
"420106",
"420107",
"420111",
"420112",
"420113",
"420114",
"420115",
"420116",
"420117",
"420200",
"420201",
"420202",
"420203",
"420204",
"420205",
"420222",
"420281",
"420300",
"420301",
"420302",
"420303",
"420304",
"420322",
"420323",
"420324",
"420325",
"420381",
"420500",
"420501",
"420502",
"420503",
"420504",
"420505",
"420506",
"420525",
"420526",
"420527",
"420528",
"420529",
"420581",
"420582",
"420583",
"420600",
"420601",
"420602",
"420606",
"420607",
"420624",
"420625",
"420626",
"420682",
"420683",
"420684",
"420700",
"420701",
"420702",
"420703",
"420704",
"420800",
"420801",
"420802",
"420804",
"420821",
"420822",
"420881",
"420900",
"420901",
"420902",
"420921",
"420922",
"420923",
"420981",
"420982",
"420984",
"421000",
"421001",
"421002",
"421003",
"421022",
"421023",
"421024",
"421081",
"421083",
"421087",
"421100",
"421101",
"421102",
"421121",
"421122",
"421123",
"421124",
"421125",
"421126",
"421127",
"421181",
"421182",
"421200",
"421201",
"421202",
"421221",
"421222",
"421223",
"421224",
"421281",
"421300",
"421301",
"421303",
"421321",
"421381",
"422800",
"422801",
"422802",
"422822",
"422823",
"422825",
"422826",
"422827",
"422828",
"429000",
"429004",
"429005",
"429006",
"429021",
"430000",
"430100",
"430101",
"430102",
"430103",
"430104",
"430105",
"430111",
"430112",
"430121",
"430124",
"430181",
"430200",
"430201",
"430202",
"430203",
"430204",
"430211",
"430221",
"430223",
"430224",
"430225",
"430281",
"430300",
"430301",
"430302",
"430304",
"430321",
"430381",
"430382",
"430400",
"430401",
"430405",
"430406",
"430407",
"430408",
"430412",
"430421",
"430422",
"430423",
"430424",
"430426",
"430481",
"430482",
"430500",
"430501",
"430502",
"430503",
"430511",
"430521",
"430522",
"430523",
"430524",
"430525",
"430527",
"430528",
"430529",
"430581",
"430600",
"430601",
"430602",
"430603",
"430611",
"430621",
"430623",
"430624",
"430626",
"430681",
"430682",
"430700",
"430701",
"430702",
"430703",
"430721",
"430722",
"430723",
"430724",
"430725",
"430726",
"430781",
"430800",
"430801",
"430802",
"430811",
"430821",
"430822",
"430900",
"430901",
"430902",
"430903",
"430921",
"430922",
"430923",
"430981",
"431000",
"431001",
"431002",
"431003",
"431021",
"431022",
"431023",
"431024",
"431025",
"431026",
"431027",
"431028",
"431081",
"431100",
"431101",
"431102",
"431103",
"431121",
"431122",
"431123",
"431124",
"431125",
"431126",
"431127",
"431128",
"431129",
"431200",
"431201",
"431202",
"431221",
"431222",
"431223",
"431224",
"431225",
"431226",
"431227",
"431228",
"431229",
"431230",
"431281",
"431300",
"431301",
"431302",
"431321",
"431322",
"431381",
"431382",
"433100",
"433101",
"433122",
"433123",
"433124",
"433125",
"433126",
"433127",
"433130",
"440000",
"440100",
"440101",
"440103",
"440104",
"440105",
"440106",
"440111",
"440112",
"440113",
"440114",
"440115",
"440116",
"440117",
"440118",
"440200",
"440201",
"440203",
"440204",
"440205",
"440222",
"440224",
"440229",
"440232",
"440233",
"440281",
"440282",
"440300",
"440301",
"440303",
"440304",
"440305",
"440306",
"440307",
"440308",
"440400",
"440401",
"440402",
"440403",
"440404",
"440500",
"440501",
"440507",
"440511",
"440512",
"440513",
"440514",
"440515",
"440523",
"440600",
"440601",
"440604",
"440605",
"440606",
"440607",
"440608",
"440700",
"440701",
"440703",
"440704",
"440705",
"440781",
"440783",
"440784",
"440785",
"440800",
"440801",
"440802",
"440803",
"440804",
"440811",
"440823",
"440825",
"440881",
"440882",
"440883",
"440900",
"440901",
"440902",
"440904",
"440981",
"440982",
"440983",
"441200",
"441201",
"441202",
"441203",
"441223",
"441224",
"441225",
"441226",
"441283",
"441284",
"441300",
"441301",
"441302",
"441303",
"441322",
"441323",
"441324",
"441400",
"441401",
"441402",
"441403",
"441422",
"441423",
"441424",
"441426",
"441427",
"441481",
"441500",
"441501",
"441502",
"441521",
"441523",
"441581",
"441600",
"441601",
"441602",
"441621",
"441622",
"441623",
"441624",
"441625",
"441700",
"441701",
"441702",
"441721",
"441723",
"441781",
"441800",
"441801",
"441802",
"441803",
"441821",
"441823",
"441825",
"441826",
"441881",
"441882",
"441900",
"442000",
"445100",
"445101",
"445102",
"445103",
"445122",
"445200",
"445201",
"445202",
"445203",
"445222",
"445224",
"445281",
"445300",
"445301",
"445302",
"445303",
"445321",
"445322",
"445381",
"450000",
"450100",
"450101",
"450102",
"450103",
"450105",
"450107",
"450108",
"450109",
"450122",
"450123",
"450124",
"450125",
"450126",
"450127",
"450200",
"450201",
"450202",
"450203",
"450204",
"450205",
"450221",
"450222",
"450223",
"450224",
"450225",
"450226",
"450300",
"450301",
"450302",
"450303",
"450304",
"450305",
"450311",
"450312",
"450321",
"450323",
"450324",
"450325",
"450326",
"450327",
"450328",
"450329",
"450330",
"450331",
"450332",
"450400",
"450401",
"450403",
"450405",
"450406",
"450421",
"450422",
"450423",
"450481",
"450500",
"450501",
"450502",
"450503",
"450512",
"450521",
"450600",
"450601",
"450602",
"450603",
"450621",
"450681",
"450700",
"450701",
"450702",
"450703",
"450721",
"450722",
"450800",
"450801",
"450802",
"450803",
"450804",
"450821",
"450881",
"450900",
"450901",
"450902",
"450903",
"450921",
"450922",
"450923",
"450924",
"450981",
"451000",
"451001",
"451002",
"451021",
"451022",
"451023",
"451024",
"451025",
"451026",
"451027",
"451028",
"451029",
"451030",
"451031",
"451100",
"451101",
"451102",
"451121",
"451122",
"451123",
"451200",
"451201",
"451202",
"451221",
"451222",
"451223",
"451224",
"451225",
"451226",
"451227",
"451228",
"451229",
"451281",
"451300",
"451301",
"451302",
"451321",
"451322",
"451323",
"451324",
"451381",
"451400",
"451401",
"451402",
"451421",
"451422",
"451423",
"451424",
"451425",
"451481",
"460000",
"460100",
"460101",
"460105",
"460106",
"460107",
"460108",
"460200",
"460201",
"460202",
"460203",
"460204",
"460205",
"460300",
"469000",
"469001",
"469002",
"469003",
"469005",
"469006",
"469007",
"469021",
"469022",
"469023",
"469024",
"469025",
"469026",
"469027",
"469028",
"469029",
"469030",
"500000",
"500100",
"500101",
"500102",
"500103",
"500104",
"500105",
"500106",
"500107",
"500108",
"500109",
"500110",
"500111",
"500112",
"500113",
"500114",
"500115",
"500116",
"500117",
"500118",
"500119",
"500120",
"500151",
"500200",
"500223",
"500226",
"500228",
"500229",
"500230",
"500231",
"500232",
"500233",
"500234",
"500235",
"500236",
"500237",
"500238",
"500240",
"500241",
"500242",
"500243",
"510000",
"510100",
"510101",
"510104",
"510105",
"510106",
"510107",
"510108",
"510112",
"510113",
"510114",
"510115",
"510121",
"510122",
"510124",
"510129",
"510131",
"510132",
"510181",
"510182",
"510183",
"510184",
"510300",
"510301",
"510302",
"510303",
"510304",
"510311",
"510321",
"510322",
"510400",
"510401",
"510402",
"510403",
"510411",
"510421",
"510422",
"510500",
"510501",
"510502",
"510503",
"510504",
"510521",
"510522",
"510524",
"510525",
"510600",
"510601",
"510603",
"510623",
"510626",
"510681",
"510682",
"510683",
"510700",
"510701",
"510703",
"510704",
"510722",
"510723",
"510724",
"510725",
"510726",
"510727",
"510781",
"510800",
"510801",
"510802",
"510811",
"510812",
"510821",
"510822",
"510823",
"510824",
"510900",
"510901",
"510903",
"510904",
"510921",
"510922",
"510923",
"511000",
"511001",
"511002",
"511011",
"511024",
"511025",
"511028",
"511100",
"511101",
"511102",
"511111",
"511112",
"511113",
"511123",
"511124",
"511126",
"511129",
"511132",
"511133",
"511181",
"511300",
"511301",
"511302",
"511303",
"511304",
"511321",
"511322",
"511323",
"511324",
"511325",
"511381",
"511400",
"511401",
"511402",
"511421",
"511422",
"511423",
"511424",
"511425",
"511500",
"511501",
"511502",
"511503",
"511521",
"511523",
"511524",
"511525",
"511526",
"511527",
"511528",
"511529",
"511600",
"511601",
"511602",
"511603",
"511621",
"511622",
"511623",
"511681",
"511700",
"511701",
"511702",
"511703",
"511722",
"511723",
"511724",
"511725",
"511781",
"511800",
"511801",
"511802",
"511803",
"511822",
"511823",
"511824",
"511825",
"511826",
"511827",
"511900",
"511901",
"511902",
"511903",
"511921",
"511922",
"511923",
"512000",
"512001",
"512002",
"512021",
"512022",
"512081",
"513200",
"513221",
"513222",
"513223",
"513224",
"513225",
"513226",
"513227",
"513228",
"513229",
"513230",
"513231",
"513232",
"513233",
"513300",
"513321",
"513322",
"513323",
"513324",
"513325",
"513326",
"513327",
"513328",
"513329",
"513330",
"513331",
"513332",
"513333",
"513334",
"513335",
"513336",
"513337",
"513338",
"513400",
"513401",
"513422",
"513423",
"513424",
"513425",
"513426",
"513427",
"513428",
"513429",
"513430",
"513431",
"513432",
"513433",
"513434",
"513435",
"513436",
"513437",
"520000",
"520100",
"520101",
"520102",
"520103",
"520111",
"520112",
"520113",
"520115",
"520121",
"520122",
"520123",
"520181",
"520200",
"520201",
"520203",
"520221",
"520222",
"520300",
"520301",
"520302",
"520303",
"520321",
"520322",
"520323",
"520324",
"520325",
"520326",
"520327",
"520328",
"520329",
"520330",
"520381",
"520382",
"520400",
"520401",
"520402",
"520421",
"520422",
"520423",
"520424",
"520425",
"520500",
"520501",
"520502",
"520521",
"520522",
"520523",
"520524",
"520525",
"520526",
"520527",
"520600",
"520601",
"520602",
"520603",
"520621",
"520622",
"520623",
"520624",
"520625",
"520626",
"520627",
"520628",
"522300",
"522301",
"522322",
"522323",
"522324",
"522325",
"522326",
"522327",
"522328",
"522600",
"522601",
"522622",
"522623",
"522624",
"522625",
"522626",
"522627",
"522628",
"522629",
"522630",
"522631",
"522632",
"522633",
"522634",
"522635",
"522636",
"522700",
"522701",
"522702",
"522722",
"522723",
"522725",
"522726",
"522727",
"522728",
"522729",
"522730",
"522731",
"522732",
"530000",
"530100",
"530101",
"530102",
"530103",
"530111",
"530112",
"530113",
"530114",
"530122",
"530124",
"530125",
"530126",
"530127",
"530128",
"530129",
"530181",
"530300",
"530301",
"530302",
"530321",
"530322",
"530323",
"530324",
"530325",
"530326",
"530328",
"530381",
"530400",
"530401",
"530402",
"530421",
"530422",
"530423",
"530424",
"530425",
"530426",
"530427",
"530428",
"530500",
"530501",
"530502",
"530521",
"530522",
"530523",
"530524",
"530600",
"530601",
"530602",
"530621",
"530622",
"530623",
"530624",
"530625",
"530626",
"530627",
"530628",
"530629",
"530630",
"530700",
"530701",
"530702",
"530721",
"530722",
"530723",
"530724",
"530800",
"530801",
"530802",
"530821",
"530822",
"530823",
"530824",
"530825",
"530826",
"530827",
"530828",
"530829",
"530900",
"530901",
"530902",
"530921",
"530922",
"530923",
"530924",
"530925",
"530926",
"530927",
"532300",
"532301",
"532322",
"532323",
"532324",
"532325",
"532326",
"532327",
"532328",
"532329",
"532331",
"532500",
"532501",
"532502",
"532503",
"532504",
"532523",
"532524",
"532525",
"532527",
"532528",
"532529",
"532530",
"532531",
"532532",
"532600",
"532601",
"532622",
"532623",
"532624",
"532625",
"532626",
"532627",
"532628",
"532800",
"532801",
"532822",
"532823",
"532900",
"532901",
"532922",
"532923",
"532924",
"532925",
"532926",
"532927",
"532928",
"532929",
"532930",
"532931",
"532932",
"533100",
"533102",
"533103",
"533122",
"533123",
"533124",
"533300",
"533321",
"533323",
"533324",
"533325",
"533400",
"533421",
"533422",
"533423",
"540000",
"540100",
"540101",
"540102",
"540121",
"540122",
"540123",
"540124",
"540125",
"540126",
"540127",
"540200",
"540202",
"540221",
"540222",
"540223",
"540224",
"540225",
"540226",
"540227",
"540228",
"540229",
"540230",
"540231",
"540232",
"540233",
"540234",
"540235",
"540236",
"540237",
"542100",
"542121",
"542122",
"542123",
"542124",
"542125",
"542126",
"542127",
"542128",
"542129",
"542132",
"542133",
"542200",
"542221",
"542222",
"542223",
"542224",
"542225",
"542226",
"542227",
"542228",
"542229",
"542231",
"542232",
"542233",
"542400",
"542421",
"542422",
"542423",
"542424",
"542425",
"542426",
"542427",
"542428",
"542429",
"542430",
"542431",
"542500",
"542521",
"542522",
"542523",
"542524",
"542525",
"542526",
"542527",
"542600",
"542621",
"542622",
"542623",
"542624",
"542625",
"542626",
"542627",
"610000",
"610100",
"610101",
"610102",
"610103",
"610104",
"610111",
"610112",
"610113",
"610114",
"610115",
"610116",
"610122",
"610124",
"610125",
"610126",
"610200",
"610201",
"610202",
"610203",
"610204",
"610222",
"610300",
"610301",
"610302",
"610303",
"610304",
"610322",
"610323",
"610324",
"610326",
"610327",
"610328",
"610329",
"610330",
"610331",
"610400",
"610401",
"610402",
"610403",
"610404",
"610422",
"610423",
"610424",
"610425",
"610426",
"610427",
"610428",
"610429",
"610430",
"610431",
"610481",
"610500",
"610501",
"610502",
"610521",
"610522",
"610523",
"610524",
"610525",
"610526",
"610527",
"610528",
"610581",
"610582",
"610600",
"610601",
"610602",
"610621",
"610622",
"610623",
"610624",
"610625",
"610626",
"610627",
"610628",
"610629",
"610630",
"610631",
"610632",
"610700",
"610701",
"610702",
"610721",
"610722",
"610723",
"610724",
"610725",
"610726",
"610727",
"610728",
"610729",
"610730",
"610800",
"610801",
"610802",
"610821",
"610822",
"610823",
"610824",
"610825",
"610826",
"610827",
"610828",
"610829",
"610830",
"610831",
"610900",
"610901",
"610902",
"610921",
"610922",
"610923",
"610924",
"610925",
"610926",
"610927",
"610928",
"610929",
"611000",
"611001",
"611002",
"611021",
"611022",
"611023",
"611024",
"611025",
"611026",
"620000",
"620100",
"620101",
"620102",
"620103",
"620104",
"620105",
"620111",
"620121",
"620122",
"620123",
"620200",
"620201",
"620300",
"620301",
"620302",
"620321",
"620400",
"620401",
"620402",
"620403",
"620421",
"620422",
"620423",
"620500",
"620501",
"620502",
"620503",
"620521",
"620522",
"620523",
"620524",
"620525",
"620600",
"620601",
"620602",
"620621",
"620622",
"620623",
"620700",
"620701",
"620702",
"620721",
"620722",
"620723",
"620724",
"620725",
"620800",
"620801",
"620802",
"620821",
"620822",
"620823",
"620824",
"620825",
"620826",
"620900",
"620901",
"620902",
"620921",
"620922",
"620923",
"620924",
"620981",
"620982",
"621000",
"621001",
"621002",
"621021",
"621022",
"621023",
"621024",
"621025",
"621026",
"621027",
"621100",
"621101",
"621102",
"621121",
"621122",
"621123",
"621124",
"621125",
"621126",
"621200",
"621201",
"621202",
"621221",
"621222",
"621223",
"621224",
"621225",
"621226",
"621227",
"621228",
"622900",
"622901",
"622921",
"622922",
"622923",
"622924",
"622925",
"622926",
"622927",
"623000",
"623001",
"623021",
"623022",
"623023",
"623024",
"623025",
"623026",
"623027",
"630000",
"630100",
"630101",
"630102",
"630103",
"630104",
"630105",
"630121",
"630122",
"630123",
"630200",
"630202",
"630221",
"630222",
"630223",
"630224",
"630225",
"632200",
"632221",
"632222",
"632223",
"632224",
"632300",
"632321",
"632322",
"632323",
"632324",
"632500",
"632521",
"632522",
"632523",
"632524",
"632525",
"632600",
"632621",
"632622",
"632623",
"632624",
"632625",
"632626",
"632700",
"632701",
"632722",
"632723",
"632724",
"632725",
"632726",
"632800",
"632801",
"632802",
"632821",
"632822",
"632823",
"640000",
"640100",
"640101",
"640104",
"640105",
"640106",
"640121",
"640122",
"640181",
"640200",
"640201",
"640202",
"640205",
"640221",
"640300",
"640301",
"640302",
"640303",
"640323",
"640324",
"640381",
"640400",
"640401",
"640402",
"640422",
"640423",
"640424",
"640425",
"640500",
"640501",
"640502",
"640521",
"640522",
"650000",
"650100",
"650101",
"650102",
"650103",
"650104",
"650105",
"650106",
"650107",
"650109",
"650121",
"650200",
"650201",
"650202",
"650203",
"650204",
"650205",
"652100",
"652101",
"652122",
"652123",
"652200",
"652201",
"652222",
"652223",
"652300",
"652301",
"652302",
"652323",
"652324",
"652325",
"652327",
"652328",
"652700",
"652701",
"652702",
"652722",
"652723",
"652800",
"652801",
"652822",
"652823",
"652824",
"652825",
"652826",
"652827",
"652828",
"652829",
"652900",
"652901",
"652922",
"652923",
"652924",
"652925",
"652926",
"652927",
"652928",
"652929",
"653000",
"653001",
"653022",
"653023",
"653024",
"653100",
"653101",
"653121",
"653122",
"653123",
"653124",
"653125",
"653126",
"653127",
"653128",
"653129",
"653130",
"653131",
"653200",
"653201",
"653221",
"653222",
"653223",
"653224",
"653225",
"653226",
"653227",
"654000",
"654002",
"654003",
"654021",
"654022",
"654023",
"654024",
"654025",
"654026",
"654027",
"654028",
"654200",
"654201",
"654202",
"654221",
"654223",
"654224",
"654225",
"654226",
"654300",
"654301",
"654321",
"654322",
"654323",
"654324",
"654325",
"654326",
"659000",
"659001",
"659002",
"659003",
"659004",
"710000",
"810000",
"820000",
]
def ssn(self, min_age: int = 18, max_age: int = 90, gender: Optional[SexLiteral] = None) -> str:
"""
Return 18 character chinese personal identity code
:param gender: F for female M for male None for default
"""
def checksum(s):
return str((1 - 2 * int(s, 13)) % 11).replace("10", "X")
age = datetime.timedelta(days=self.random_int(min_age * 365, max_age * 365))
birthday = datetime.date.today() - age
birthday_str = birthday.strftime("%Y%m%d")
area_code: str = self.random_element(self.area_codes)
ssn_without_checksum = self.numerify(area_code + birthday_str + "##")
_number = ("0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
if gender:
if gender in ("F", "f"):
gender_num = self.generator.random.choice(_number[::2])
elif gender in ("M", "m"):
gender_num = self.generator.random.choice(_number[1::2])
else:
raise ValueError("Gender must be one of F or M.")
else:
gender_num = self.generator.random.choice(_number)
ssn_without_checksum += gender_num
return ssn_without_checksum + checksum(ssn_without_checksum)